Algoritma, Struktur Data dan Program Komputer • Algoritma merupakan tahapan-tahapan yang sistematis tentang jalannya suatu program dari awal sampai akhir. • Struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. • Program komputer merupakan serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik pada komputer. Kriteria Algoritma (Donald E. Knuth) • 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. • 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 Algoritma pemrograman yang baik memiliki ciri-ciri : • Tepat, benar,sederhana,standar dan efektif • Logis, terstruktur dan sistematis • Semua operasi terdefinisi • Semua proses harus berakhir setelah sejumlah langkah dilakukan • Ditulis dengan bahasa yang standar dengan format pemrograman agar mudah untuk diimplementasikan dan tidak menimbulkan arti ganda. Contoh 1 : Algoritma menghitung luas persegi panjang 1. Masukkan panjang (P) 2. Masukkan lebar (L) 3. L←P*L 4. Tulis L Contoh 2 : Algoritma mencari bilangan terbesar dari dua bilangan yang diinputkan 1. Masukkan bilangan pertama (a) 2. Masukkan bilangan kedua (b) 3. if a > b then kerjakan langkah 4 4. print a 5. print b Latihan • Buatlah algoritma untuk menjumlahkan dua bilangan • Buatlah algoritma untuk menghitung luas lingkaran Latihan • Terdapat 9 batu dengan bentuk, warna dan ukuran yang sama. • Setiap batu diberi nomor 1-9. • Jika 8 batu memiliki berat yang sama dan 1 memiliki berat yang berbeda (bisa lebih berat/lebih ringan) dari pada batu lain, buatlah algoritma untuk menemukan 1 batu yang memiliki berat berbeda tersebut. • Selanjutnya, hitung berapa kali timbangan dilakukan untuk kemungkinan terbanyak. Tahapan Penyelesaian Masalah Tahapan Detail Penyelesaian Masalah Teknik Penyajian Algoritma • Simbol Instruksi Simbol Instruksi
Assignment, nilai di sebelah kanan diberikan pada operand di sebelah kiri
> Lebih besar dari
< Lebih kecil dari
. Kalikan
+ Tambahkan
- Dikurangi
/ Dibagi Teknik Penyajian Algoritma No Simbol Nama Simbol Keterangan
1 Terminal simbol yang digunakan untuk
• Flowchart menyatakan awal atau akhir suatu program
2 Input/Output simbol yang digunakan untuk
menunjukkan operasi masukan atau keluaran
3 Proses simbol yang digunakan untuk
menggambarkan proses pengolahan data
4 Keputusan simbol yang digunakan untuk
menyatakan suatu pilihan berdasarkan suatu kondisi tertentu
5 persiapan (Preparation) simbol yang digunakan untuk
memberikan nilai awal pada suatu variabel atau pencacah Teknik Penyajian Algoritma No Simbol Nama Simbol Keterangan
6 proses terdefinisi simbol yang digunakan untuk
• Flowchart (predefined process proses yang detilnya dijelaskan symbol) terpisah, misal dalam bentuk subroutine
7 Penghubung ke simbol yang digunakan untuk
halaman lain menghubungkan bagian diagram alir pada halaman yang berbeda
8 Penghubung ke simbol yang digunakan untuk
halaman yang sama menghubungkan bagian diagram alir pada halaman yang sama
9 Arah aliran simbol yang digunakan untuk
menunjukkan arah aliran proses
10 Annotation simbol simbol yang digunakan untuk
memberikan keterangan- keterangan untuk memperjelas simbol-simbol lain Teknik Penyajian Algoritma • Contoh Flowchart Teknik Penyajian Algoritma • Pseudocode Pseudocode sering digunakan dalam buku-buku tentang ilmu komputer ataupun publikasi ilmiah untuk menjelaskan urutan proses atau metode tertentu. pseudocode C++
if sales > 1000 then int sales;
bonus sales * 25% sales=1001; salary 2000000 + bonus if (sales > 1000) endif { bonus = sales * 0.25; output(salary) salary = 2000 + bonus; } cout << "Salary : "<<salary; Latihan • Buat Algoritma yang disajikan dengan teknik penyajian Algoritma Flowchart dan Pseudocode – algoritma untuk menjumlahkan dua bilangan – algoritma untuk menghitung luas lingkaran Coba tebak