ALGORITMA & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. 1) 2) blog: abdulkudus.staff.unisba.ac.id
Komponen Nilai Akhir: 1.Tugas (10%) 2.Kuis (10%) 3.UTS (35%) 4.UAS (45%) Syarat kehadiran: minimal 75% (11 kali dari 14 pertemuan)
PENDAHULUAN Konsep Algoritme Pondasi untuk menyelesaikan suatu masalah secara berstruktur, efektif dan efisien. Terutama untuk menyelesaikan suatu masalah dengan bantuan program komputer. Definisi: Algoritme : Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat yang tersusun secara logis dan sistematis.
Catatan Sejarah: Pencetus algoritma adalah Abu Ja’far Muhammad ibnu Musa al- Khwarizmi dalam bukunya Aljabar wal muqobala pada abad IX. al-Khwarizmi algorism algorithm algoritma Ciri Algoritma Donald E. Knuth (penulis beberapa buku algoritma abad XX) menyatakan ciri algoritma: - Punya awal dan akhir. -Didefinisikan secara tepat dan tidak bermakna ganda (tidak ambigu). -Punya input -Punya output -Efektif
Contoh algoritma dalam kehidupan sehari-hari: ProsesAlgoritmaLangkah-langkah 1. Membuat kueResep kueCampurkan 2 butir telur ke dalam adonan, lalu kocok hingga mengembang 2. Membuat pakaianPola pakaianGunting kain dari pinggir kiri bawah ke kanan atas sepanjang 15 cm 3. Praktikum kimiaPetunjuk praktikumCampurkan 10 ml H 2 S0 4 sulfat ke dalam 15 ml NaOH
Contoh: Algoritma untuk mencari angka terbesar (maksimum) dari suatu kumpulan bilangan bulat. Solusi: 1.Anggap angka pertama adalah yang terbesar. 2.Bandingkan dengan angka berikutnya. Jika angka berikut tersebut lebih besar, maka jadikan sebagai yang terbesar. 3.Ulangi langkah 2, sehingga angka terakhir. 4.Angka terbesar adalah angka terbesar yang terakhir. Cari angka terbesar dari himpunan: 1. A = {12, 7, 15, 26, 10} 2. B = {9, 12, 17, 21, 27} 3. C = {15, 10, 8, 6, 2}
Suatu algoritma dapat ditulis dengan menggunakan bahasa sehari-hari, tapi akan sulit diimplementasikan ke dalam bahasa pemrograman komputer. Perlu langkah peralihan.
Struktur Algoritma Agar dapat ditulis lebih teratur, maka dibagi ke dalam beberapa bagian: Bagian kepala Bagian deklarasi variabel Bagian deskripsi/rincian langkah Contoh 1: Algoritma Luas_lingkaran Deklarasi phi = 3.14 jari_jari = 13 Deskripsi luas = phi*jari_jari^2
Contoh 2: Algoritma Cari_Rata_rata Deklarasi data = (2, 1, 3, 5, 8) n = 5 Rincian Langkah akumulasi = 0 for (i in 1:n) { akumulasi = akumulasi + data[i] } Nilai_rata = akumulasi/n
Contoh 2b: Algoritma Cari_Rata_rata Deklarasi data = (2, 1, 3, 5, 8) n = 5 Rincian Langkah akumulasi = data[1] for (i in 2:n) { akumulasi = akumulasi + data[i] } Nilai_rata = akumulasi/n
Contoh 3: Algoritma Cari_Terbesar Deklarasi data = (2, 1, 3, 5, 8) n = 5 Rincian Langkah terbesar = data[1] for (i in 2:n) { if (data[i] > terbesar) then terbesar = data[i] }
Diagram Alir (Flowchart) Untaian simbol diagram yang menunjukkan aliran proses yang dikerjakan terhadap data. Simbol-simbol flowchart dibagi menjadi simbol untuk program dan simbol untuk sistem (computer hardware). Simbol untuk program Terminator: untuk mulai atau selesai Proses: proses terhadap data Input/Output: menerima input atau menampilkan output
Seleksi/Pilihan: memilih aliran berdasarkan syarat Predefined-Data: definisi awal dari variabel Predifened-Process: lambang sub-program Connector: penghubung pada halaman yang sama Off-page Connector: penghubung pada halaman yang berbeda
Simbol untuk sistem Keyboard Printer File Monitor
Contoh 1: Pengaturan jadwal dan ruangan kuliah
Contoh 2: Bilangan yang lebih besar dari dua bilangan Mulai A … B … A > B? Cetak A Cetak B Selesai 1.Mulai 2.Masukkan A dan B 3.Apakah A > B? Bila Ya, cetak A Bila Tidak, cetak B 4.Selesai Ya Tidak
Contoh 3: Bilangan yang terbesar dari tiga bilangan Mulai A … B … C …. A > B? Cetak B Cetak A Selesai B > C? Ya TidakYa A > C? Tidak Cetak C Tidak Ya
Tugas: 1.Buat makalah tentang al-khwarizmi (sumber: perpustakaan atau internet seperti google dan wikipedia) 2.Gambar flowchart untuk menyiapkan secangkir kopi (dimulai dari memasak air sampai menghidangkan kopi)! 3.Gambar flowchart untuk mencari bilangan terbesar dari empat bilangan! 4.Gambar flowchart untuk mencari bilangan terbesar dari sekumpulan bilangan! deadline: 10 Oktober jam 12 tengah malam