Algoritma dan Diagram Alir (Flowchart) Algoritma • Algoritma adalah urutan langkah-langkah logis yang disusun secara sistematis untuk menyelesaikan suatu masalah. • Kata logis (logika) merupakan kunci dalam algoritma. • Langkah-langkah dalam algoritma harus logis, hasil algoritma harus dapat ditentukan bernilai benar atau salah. • Langkah yang salah akan memberikan hasil yang salah. Algoritma dalam Kehidupan • Algoritma dapat dikatakan jantung dalam ilmu komputer dan informatika. • Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. • Selain itu algoritma juga dapat ditemukan dalam kehidupan sehari-hari Kriteria Algoritma • Input: algoritma dapat memiliki nol atau lebih inputan dari luar. • Output: algoritma harus memiliki minimal satu buah output keluaran. • Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu. Kriteria Algoritma • Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role). • Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1 Jenis Proses Algoritma • Sequence Process: instruksi dikerjakan secara sekuensial/berurutan. • Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu • Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu. • Concurrent Process: beberapa instruksi dikerjakan secara bersama. Jenis Proses Algoritma • Sequence Process: instruksi dikerjakan secara sekuensial/berurutan. • Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu • Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu. • Concurrent Process: beberapa instruksi dikerjakan secara bersama. 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. Contoh Algoritma 1 Menggoreng Ayam • Hidupkan Kompor • Ambil Penggorengan dan Minyak Goreng • Panaskan Minyak goreng menggunakan penggorengan • Setelah minyak panas, masukkan ayam dan adukaduk menggunakan sendok penggorengan sampai matang • Setelah matang , tiriskan dan letakkan di atas tempat atau piring Contoh Algoritma 2 Mengupas Kentang • Ibu Dwi mengambil kantong kentang dari • rak • Ibu Dwi mengambil panci dari almari • Ibu Dwi mengupas kentang • Ibu Dwi mengembalikan kantong kentang dari rak Contoh Algoritma 2 - Lanjut Ada hal yang “tergantung” pada sesuatu: 1. Ibu Dwi mengambil kantong kentang dari rak 2. Ibu Dwi mengambil panci dari almari 3. Lakukan persiapan, menggunakan celemek -> Tergantung pada Pakaian 4. Ibu Dwi mengupas kentang 5. Ibu Dwi mengembalikan kantong kentang dari rak Kondisi – dari Algo. 2 • Warna cerah: Ibu Dwi melihat bahwa bajunya berwarna muda karena itu ia memakai celemek • Warna tidak cerah: Ibu Tati melihat bahwa bajunya tidak berwarna muda/cerah karena itu ia tidak memakai celemek (berarti tidak ada aksi memakai celemek) Kondisi – dari Algo. 2 Jadi: • Ambil kantong kentang dari rak • Ambil panci dari almari • Depend on warna baju – berwarnamuda: Pakai celemek – tidak berwarna muda: Tidak pakai celemek • Kupas kentang • Kembalikan kantong kentang ke rak Kondisi – dari Algo. 2 Karena dapat pesanan, maka kentang yg harus dikupas 500 buah • tergantung pada jumlah kentang yang sudah dikupas • Belum cukup: kupas 1 kentang • Cukup: selesai Atau: • while “jumlah kentang terkupas belum cukup” do Kupas 1 kentang Kondisi – dari Algo. 2 • Bisa jadi pada saat mengupas kentang tergantung pada kentangnya, jika rusak / busuk, maka kentang dibuang/tidak dikupas Jadi: • Jika jumlah kentang terkupas belum cukup do -> Tergantung pada kondisi kentang – Busuk: buang dan cari kentang berikutnya, tidak dihitung. – Tidak Busuk: kupas 1 kentang. Kondisi – dari Algo. 2 • Bisa jadi pada saat mengupas kentang tergantung pada kentangnya, jika rusak / busuk, maka kentang dibuang/tidak dikupas Jadi: • Jika jumlah kentang terkupas belum cukup do -> Tergantung pada kondisi kentang – Busuk: buang dan cari kentang berikutnya, tidak dihitung. – Tidak Busuk: kupas 1 kentang. Contoh Algoritma • Sebagai contoh, menukarkan isi dua buah gelas. • Gelas A berisi cairan biru dan gelas B berisi cairan merah. • Tukarkanlah isi kedua gelas tersebut. Contoh Algoritma • Sebagai contoh, menukarkan isi dua buah gelas. • Gelas A berisi cairan biru dan gelas B berisi cairan merah. • Tukarkanlah isi kedua gelas tersebut. Contoh Algoritma • Algoritma 1 : 1. Tuangkan isi gelas A ke gelas B 2. Tuangkan isi gelas B ke gelas A Contoh Algoritma • Jawaban pada Algoritma 1 diatas tidak menghasilkan pertukaran yang benar. • Cairan pada kedua gelas bisa saja tercampur Contoh Algoritma • Algoritma 2 : 1. Tuangkan isi gelas A ke gelas C 2. Tuangkan isi gelas B ke gelas A 3. Tuangkan isi gelas C ke gelas B Contoh Algoritma • Algoritma 2 : 1. Tuangkan isi gelas A ke gelas C 2. Tuangkan isi gelas B ke gelas A 3. Tuangkan isi gelas C ke gelas B Latihan 1 : • Menghitung apakah suatu Bilangan Ganjil atau Genap • Menghitung Luas Persegi Panjang • Menghitung Luas Segitiga Latihan 1.1 : Menentukan apakah suatu bilangan merupakan bilangan ganjil atau genap: 1. Masukkan sebuah bilangan sembarang. 2. Bagi bilangan tersebut dengan bilangan 2. 3. Hitung sisa hasil bagi pada langkah 2. 4. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil. Latihan 1 .2: • Algoritma menghitung luas persegi panjang: 1. Masukkan panjang (P) 2. Masukkan lebar (L) 3. Luas P * L 4. Tulis Luas Latihan 1 .3: • Algoritma menghitung luas Segitiga: 1. Masukkan alas (a) 2. Masukkan tinggi (t) 3. Luas -> a * t / 2 4. Tulis Luas Flowchart • Flowchart merupakan representasi secara diagram dari urutan langkah-langkah untuk mendapatkan suatu hasil. • Algoritma dapat dituangkan dalam notasi gambar flowchart. • Flowchart dapat membantu kita menyusun dan mengerti algoritma yang ditampilkan dalam bentuk gambar dan simbol tertentu. Simbol Flowchart Simbol Arti Start / End Proses Input / Output Percabangan Koneksi 2 bagian flowchart Simbol Flowchart Simbol Keterangan Koneksi dengan halaman yang berbeda Perulangan Posedur /Fungsi Aliran Data Contoh Flowchart • Sebagai contoh algoritma untuk menjumlahkan dua buah bilangan adalah sebagai berikut : Contoh Flowchart Contoh Flowchart • Contoh lain, misalkan kita ingin mengetahui apakah sebuah bilangan ganjil atau genap. • Untuk itu kita harus membuat flowchart seperti berikut : Contoh Flowchart SEKIAN