Algoritma Dan Pemrograman Pengampu : Muhammad Zidny Naf’an, Lc., S.Kom., M.Kom Algoritma Dan Pemrograman Algoritma adalah jantung ilmu komputer dan informatika. Banyak cabang dari ilmu komputer yang diacu dalam terminology algoritma. Algoritma berasal dari kata algorism yang berarti proses menghitung. Kata algorism berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa al-Khuwarizmi 2 Definisi Algoritma Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis Urutan logis pengambilan keputusan untuk pemecahan masalah 3 Ciri Penting Algoritma (1) Memiliki Input Algoritma dapat memiliki nol atau lebih inputan dari luar. Memiliki Output Algoritma harus memiliki minimal satu buah output keluaran. Definiteness (pasti) Algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu atau memilikuiarti ganda. 4 Ciri Penting Algoritma (2) Finiteness (ada batas atau berakhir) Algoritma harus memiliki titik berhenti (stopping role). Effectiveness(efektif dan efisien) Algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah : A = A + 0 atau A = A * 1. 5 Algoritma Terbaik Algoritma dikatakan terbaik atau The Best jika Suatu algoritma menghasilkan output yang tepat guna (efektif) dalam waktu yang relative singkat dan penggunaan memori yang relatif sedikit (efisien) dengan langkah berhingga dan prosedurnya berakhir baik dalam keadaan diperoleh solusi ataupun tidak ada solusi. 6 Belajar Memprogram dan Belajar Bahasa Pemrograman Belajar Memprogram : Pemahaman persoalan, analisis, dan sintesis Pemecahan Masalah -Strategi -Metodologi -Sistematika Notasi yang telah disepakati Belajar Bahasa Pemrograman : • Belajar memakai suatu bahasa • Aturan sintaks (tata bahasa) 7 Program adalah…. Program : Perwujudan atau implementasi algoritma yang ditulis dalam bahasa pemrograman tertentu 8 Pengertian Program dan Bahasa Pemrograman Kumpulan instruksi yang digunakan untuk mengatur komputer agar melakukan suatu tindakan tertentu dinamakan program. Instruksi yang digunakan dalam menulis program disebut bahasa pemrograman. Orang yang membuat program komputer dinamakan pemrogram atau programmer. 9 Dan kegiatan merancang dan menulis program komputer disebut pemrograman atau programming. Suatu program ditulis dengan mengikuti kaidah bahasa pemrograman tertentu (Pascal, Turbo C, Basic, Borland C++, Java, dll). Salah satu dari sekian banyak bahasa pemrograman, dalam matakuliah ini akan memakai bahasa pemrograman C++. 10 Perkembangan Bahasa Pemrograman • Bahasa Mesin. Bahasa yang berisi kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh mesin komputer Keuntungan: Eksekusi cepat Kerugian: Sangat sulit dipelajari manusia • Bahasa Assembly. Bahasa simbol dari bahasa mesin Kelebihan: Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file kecil Kekurangan: Tetap sulit dipelajari, program sangat panjang. 11 Perkembangan Bahasa Pemrograman • Bahasa Tingkat Tinggi (3rd GL) Bahasa pemrograman yang lebih tinggi dari bahasa assembly Keuntungan: • Mudah dipelajari • Mendekati permasalahan yang akan dipecahkan • Kode program pendek Kerugian: Eksekusi lambat Contoh: C, C++, Pascal, Basic, dan java • Bahasa yang berorientasi pada masalah spesifik (4th GL) Digunakan langsung untuk memecahkan masalah tertentu Contoh: SQL untuk database 12 Translator • Assembler. Source code: bahasa assembly, Object code: bahasa mesin • Interpreter. Source code: bahasa scripting seperti php, ASP, javascript, Perl. Tidak menghasilkan object code hanya translasi internal • Kompiler. Source code: bahasa program spt C, C++, pascal Object code: bahasa assembly 13 Tahap Penyelesaian Masalah 14 Proses Translasi-Kompilasi-Intrepretasi Algoritma Translasi Program dalam Bahasa Tingkat Tinggi Kompilasi Program dalam Bahasa Mesin Interpretasi oleh CPU Operasi (Baca, tulis, hitung, perbandingan, dll) 15 Paradigma Pemrograman (1) Prosedural (imperatif) Program = Struktur + Data Misalnya : Pascal, C, Basic Object Oriented data dan instruksi dibungkus menjadi satu, disebut: kelas, kelas pada saat run-time disebut objek. Misalnya : C++, Java 16 Paradigma Pemrograman (2) Fungsional konsep pemetaan dan fungsi pada matematika Misalnya : Matlab Deklaratif pendefinisian relasi antar individu yang dinyatakan sebagai predikat Misalnya : Prolog 17 Jenis Proses Algoritma Sequence Process merupakan instruksi yang dikerjakan secara sekuensial atau berurutan. Selection Process merupakan instruksi yang dikerjakan jika memenuhi kriteria tertentu. 18 Jenis Proses Algoritma Iteration Process merupakan instruksi dikerjakan yang selama memenuhi suatu kondisi tertentu. Concurrent Process merupakan beberapa instruksi yang dikerjakan secara bersama. 19 Algoritma Pengerjaan didalam Resep Makanan 1. Tuangkan satu gelas santan ke dalam wajan. 2. Masukkan bumbu-bumbu yang sudah dihaluskan. 3. Aduk hingga merata. 4. Tambahkan garam, merica dan kecap asin. 5. Masak dengan api sedang, sambil diaduk-aduk. Algoritma Dalam Mengerjakan Praktikum Kimia 1. Siapkan tabung reaksi ukuran 100cc. 2. Teteskan 50 cc larutan H2SO4 ke dalam tabung. 3. Campurkan 20 cc larutan NaOH kedalamnya, aduk hingga tercampur merata. Algoritma Mengirim Surat Kepada Teman 1. 2. 3. 4. 5. Tulis surat pada secarik kertas surat. Ambil sampul surat. Masukkan surat ke dalam sampul. Tutup sampul surat menggunakan perekat. Jika kita ingat alamat teman tersebut, maka tulis alamat pada sampul surat. 6. Jika tidak ingat, lihat buku alamat, kemudian tulis alamat pada sampul surat. 7. Tempel perangko pada surat. 8. Bawa surat ke kantor pos untuk diposkan. Algoritma Mencari Kuadrat Suatu Bilangan 1. Masukkan bilangan A yang akan dkuadratkan 2. Kalikan A dengan A 3. Selesai Latihan Soal • Tiga pasang suami istri sedang menempuh perjalanan sampai ke sebuah sungai. Disitu mereka menemukan sebuah perahu kecil yang hanya bisa membawa tidak lebih dari 2 orang. Penyebrangan air sungai itu dirumitkan oleh kenyataan para suami tersebut pencemburu. Tuliskan algoritmanya agar ketiga pasang suami istri tersebut dapat menyeberangi sesuai dengan ketentuan di atas! Latihan Soal Tiga buah cakram yang masing-masing berdiameter berbeda mempunyai lubang dititik pusatnya.Ketiga cakram tersebut dimasukan pada sebuah batang besi A sedemikian sehingga cakram yang berdiameter lebih besar selalu terletak dibawah cakram yang berdiameter lebih kecil. Tulislah Algoritma untuk memindahkan seluruh cakram tersebut ke batang besi B; setiap kali hanya satu cakram yang boleh dipindahkan, tetapi pada setiap perpindahan tidak boleh ada cakram yang ebih besar berada diatas cakram kecil.Batang besi C dapat dipakai sebagai tempat peralihan dengan tetap memegang aturan yang telah disebutkan. 25 Latihan Soal Ada sebuah algoritma program pemutar kaset tape recorder: 1. Pastikan tape power ON 2. Tekan tombol play 3. 3.masukkan kaset dalam tape recorder Dimanakah letak kesalahan logika algoritma tersebut? 26 Latihan Soal Seorang salesman (petugas pemasaran) suatu perusahaan minuman harus mengunjungi 5 warung untuk memperkenalkan produk minuman terbaru. Kelima warung tersebut adalah: P, Q, R, S, dan T. Dia hanya akan mengunjungi masing-masing satu kali saja, satu warung per hari, Senin s/d Jumat, dengan aturan berikut: • Tidak boleh mengunjungi warung R pada hari Senin. • Harus mengunjungi warung P sebelum mengunjungi S. • Harus mengunjungi warung Q sebelum mengunjungi T. Mana jadwal yang memenuhi syarat? A. Q, S, P, T, R B. R, Q, T, P, S C. R, S, P, Q, T D. T, R, Q, P, S E. P, S, R, Q, T Jika ia mengunjungi R lebih dahulu daripada P, mana yang pasti benar? A. Q dikunjungi pertama kali B. R dikunjungi pada hari Selasa C. P dikunjungi pada hari Rabu D. T dikunjungi pada hari Kamis E. S dikunjungi terakhir kali 27 Tiga orang dewasa Roni(pria), Susi(wanita), dan Vina(wanita) bersama dengan lima anak-anak Fredi(pria), Heru(pria), Jono(pria), Lisa(wanita) dan Marta(wanita) akan pergi berdarmawisata ke Kebun Binatang dengan menggunakan sebuah kendaraan minibus. Minibus tersebut memiliki satu tempat di sebelah pengemudi, dan dua buah bangku panjang di belakang yang masing-masing terdiri dari 3 tempat duduk, sehingga total terdapat delapan tempat duduk di dalam minibus tersebut, termasuk pengemudi. Setiap peserta wisata harus duduk sendiri, masing-masing di sebuah kursi yang ada dan susunan tempat duduk harus disesuaikan dengan beberapa ketentuan sebagai berikut: • Pada masing-masing bangku harus terdapat satu orang dewasa yang duduk • Salah satu di antara Roni dan Susi harus duduk sebagai pengemudi • Jono harus duduk bersebelahan dengan Marta Pertanyaan: Jika Fredi duduk bersebelahan dengan Vina, siapakah penumpang pria yang duduk di paling depan? Jawab: ....... 28 Tugas Buatlah algoritma untuk menghitung luas dan keliling lingkaran. Dengan masukan jari-jari lingkaran. Menghitung Luas Lingkaran 1. 2. 3. 4. 5. 6. Start Menetapkan nilai Phi yaitu 3.14 Masukan jari-jari lingkaran Menghitung luas lingkaran dengan rumus L=phi x r x r Mencetak nilai Luas Finish Menghitung Keliling Lingkaran 1. 2. 3. 4. 5. 6. Start Menetapkan nilai Phi yaitu 3.14 Masukan jari-jari lingkaran Menghitung keliling lingkaran dengan rumus K=2 x phi x r Mencetak nilai Keliling Finish Terimakasih 32