Sabar Rudiarto Definisi Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Logis artinya sesuai dengan logika manusia. Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar. Guna algoritma adalah untuk membantu seseorang dalam menyelesaikan suatu masalah berdasarkan pada pola pikirnya masing-masing. Definisi Algoritma Ciri – ciri algoritma: Ada input. Ada proses. Ada output. Memiliki instruksi instruksi yang jelas dan tidak ambigu. Harus mempunyai stopping role. Sifat algoritma : Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman. Tidak tergantung pada suatu bahasa pemrograman. Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun. Penulisan Algoritma Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya) Tapi sering membingungkan (ambiguous) Menggunakan flow chart (diagram alir) Bagus secara visual akan tetapi repot kalau algoritmanya panjang Menggunakan pseudo-code Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman Contoh algoritma 1 Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas? Kopi Teh Contoh algoritma 1 Siapkan gelas cadangan R Tuangkan gelas yang berisi teh ke gelas R Tuangkan gelas yang berisi kopi ke gelas teh Tuangkan gelas R yang berisi teh ke gelas kopi R R Teh Kopi Teh Kopi R Contoh Algoritma 2 Requirement Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan Nantinya ini bisa digeneralisir menjadi n buah bilangan Algoritma Dalam Bahasa Natural 1. 2. Ambil bilangan pertama dan set maks sama dengan bilangan pertama Ambil bilangan kedua dan bandingkan dengan maks 3. 4. 5. 6. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua Ambil bilangan ketiga dan bandingan dengan maks Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga Variabel maks berisi bilangan terbesar. Tayangkan hasilnya Algoritma dengan Flowchart Mulai Maks = bilangan pertama Maks < bilangan kedua Ya Maks = bilangan kedua Ya Maks = bilangan ketiga Tidak Maks < bilangan ketiga Tidak Selesai Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga Aspek Penting dari Algoritma 1. Finiteness • Algoritma harus berhenti after a finite number of steps 2. Definiteness • Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) 3. Input • Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan 4. Output • Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input 5. Effectiveness • Setiap algoritma diharapkan memiliki sifat efektif Struktur Dasar Algoritma Runtunan (sequence) Pemilihan (selection) Pengulangan (repetition) Runtunan Sebuah runtunan terdiri dari satu atau lebih instruksi Tiap instruksi dikerjakan berurutan Urutan instruksi menentukan keadaan akhir algoritma Contoh A1 A2 A3 A4 A5 A6 Algoritma TUKAR_ISI_BEJANA Diberikan dua buah bejana, A dan B; bejana A berisi larutan merah, bejana B berisi larutan biru. Pertukarkan isi kedua bejana itu sehingga bejana A berisi larutan biru dan bejana B berisi larutan merah DESKRIPSI 1. Tuangkan larutan dari bejana A ke bejana X 2. Tuangkan larutan dari bejana B ke bejana A 3. Tuangkan larutan dari bejana X ke bejana B Hasil akhir Bejana A berisi larutan dari bejana B semula Bejana B berisi larutan dari bejana A semula Algoritma TUKAR_ISI_BEJANA Misal urutan diubah menjadi 1. 2. 3. Tuangkan larutan dari bejana B ke bejana A Tuangkan larutan dari bejana A ke bejana X Tuangkan larutan dari bejana X ke bejana B Hasil akhir menjadi Bejana A kosong Bejana B berisi campuran larutan dari bejana A dan bejana semula B Runtunan Algoritma merupakan runtunan (sequence) satu atau lebih instruksi, yang berarti bahwa : 1. Tiap instruksi dikerjakan satu per satu 2. Tiap instruksi dilaksanakan satu kali 3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi sebagaimana tertulis di dalam Algoritma 4. Akhir dari instruksi terakhir merupakan akhir algoritma Runtunan Aksi 1 Aksi 2 Aksi 3 Aksi 4 Aksi 5 Aksi 6 Runtunan yang terdiri dari 6 buah instruksi. Tiap instruksi dikerjakan satu per satu secara berurutan, sesuai dengan urutannya di dalam algoritma Runtunan Urutan di dalam algoritma sangat penting. Urutan instruksi yang berbeda akan menghasilkan hasil yang berbeda pula Contoh : A 10 A2*A BA write (B) A 10 BA A2*A write (B) LATIHAN (QUIZ) Algoritma memasak mie instan (5). Rebus air hingga mendidih. Masukkan mie instan ke dalam air mendidih tersebut. Tunggu beberapa hingga mie terlihat matang. Jika mie sudah dirasa matang, angkat dan tiriskan. Campurkan bumbu-bumbu, dan aduk hingga rata. LATIHAN (QUIZ) Algoritma menghitung luas persegi panjang (4). Masukkan panjang. Masukkan lebar. Nilai luas adalah panjang * lebar. Tampilkan luas. LATIHAN (QUIZ) Algoritma mengkonversi waktu ke dalam jam:menit:detik.