Dasar-dasar Algoritma Dan Representasi Algoritma Pengampu : Muhammad Zidny Naf’an, M.Kom
Struktur dasar algoritma
Proses, Instruksi, dan Aksi Algoritma merupakan deskripsi urutan pelaksanaan suatu proses. Algoritma tersusun oleh sederetan langkah instruksi yang logis. Tiap langkah instruksi akan mengerjakan suatu tindakan (Aksi). Bila Aksi dilaksanakan, maka sejumlah operasi yang bersesuaian akan dikerjakan oleh CPU 3
Struktur Dasar Algoritma Runtunan (Sequence) Pemilihan (Selection) Pengulangan (Repetition)
Struktur Dasar Algoritma Runtunan (sequence) Aksi-aksi dalam algoritma yang dikerjakan secara berurutan Tiap instruksi dikerjakan satu per satu Tiap instruksi dilaksanakan tepat satu kali; tidak ada instruksi yang di ulang Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang tertulis di dalam teks algoritmanya. Akhir dari instruksi terakhir merupakan akhir algoritma Contoh : A1. Aksi 1 A2. Aksi 2 A3. Aksi 3 mula-mula aksi 1 dilakukan aksi 2 dilakukan setelah aksi 1 selesai dilaksanakan dst. 5
Struktur Dasar Algoritma Pemilihan (Selection) memungkinkan suatu Aksi dieksekusi jika suatu kondisi terpenuhi atau tidak terpenuhi Bentuk-bentuk pemilihan if – else switch - case
Struktur Dasar Algoritma Pemilihan (Selection) if (ekspresi boolean) Aksi 1; Aksi 2; ………… end if Aksi 1 dan Aksi 2 akan diproses jika dan hanya jika nilai ekspresi Boolean = TRUE
Struktur Dasar Algoritma Pemilihan (Selection) switch - case Konstruksi ini digunakan sebagai pengganti konstruksi if-else, bila konstruksi if-else bertingkat terlalu jauh, sehingga menjadi sulit dibaca. switch (ekspresi) { case constant_1 : statements_1; break; case constant_2 : statements_2; … case constant_N : statements_N; break; default : statements; }
Struktur Dasar Algoritma Pengulangan (repeatition) Aksi-aksi yang dikerjakan berulang kali Bentuk-bentuk Pengulangan : FOR pencacah pengulangan dari a sampai b DO Aksi (aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari a sampai b yakni sebanyak b-a+1 kali) 9
REPEAT Aksi UNTIL kondisi (pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti terpenuhi) WHILE kondisi DO (selama kondisi/persyaratan pengulangan masih benar, maka aksi dikerjakan) 10
Representasi algoritma
Representasi Algoritma (Notasi Algoritmik) Kalimat Deklaratif Pseudocode Flowchart (diagram alir)
Kalimat Deklaratif Judul program/algoritma Algoritma Algoritma: Baca r PROGRAM Hitung Luas Lingkaran Program untuk menghitung luas lingkaran dengan diketahui PHI=3.14 Algoritma Algoritma: Baca r Hitung Luas dengan rumus = PHI*r*r Cetak Luas
Kalimat Deklaratif Judul program/algoritma Algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan bulat positif m dan n (m >= n). GCD dari m dan n adalah bilangan bulat positif terbesar yang habis membagi m dan n Algoritma Algoritma: Baca m dan n Jika n=0 maka m adalah jawabannya; stop Tetapi jika n!= 0 Lanjutkan ke langkah 3 Bagilah m dengan n dan misalkan r adalah sisanya Ganti m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1
Pseudocode Kode atau tanda yang menyerupai (pseudo) program atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudocode sering digunakan oleh manusia (programmer) untuk menuliskan algoritma sebab mudah mudah dipahami dan digunakan karena mirip dengan kode-kode program sebenarnya. 15
Struktur Pseudocode PROGRAM Nama Program {Penjelasan tentang algoritma, berisi uraian singkat mengenai masalah yang akan diselesaikan} DEKLARASI {semua nama yang dipakai, meliputi nama tipe, nama konstanta, nama peubah, nama prosedur, dan nama fungsi} ALGORITMA: {semua langkah/aksi algoritma dituliskan disini}
Format Pseudocode Lengkap Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan bulat positif m dan n (m >= n). GCD dari m dan n adalah bilangan bulat positif terbesar yang habis membagi m dan n Deklarasi: m,n : integer {bil bulat} r : integer {sisa hasil bagi} Deklarasi variable komentar Algoritma read(m,n) {m >= n} while n!= 0 do r m MOD n m n n r end while {kondisi selesai pengulangan n=0, maka gcd(m,n) = m} Algoritma
Perbandingan Antara Notasi Algoritmik Kalimat Deklaratif Dengan Pseudocode Algoritma Pseudocode Nilai A dikali dengan 10 A A x 10 Cetak nilai A bila lebih besar 10 IF A >10 THEN PRINT A Dari dua bilangan A dan B, cari bilangan terbesar IF A > B THEN PRINT A ELSE PRINT B 18
Flow Chart Flow chart suatu bagan/diagram yang menggambarkan aliran proses yang dikerjakan program dari awal sampai akhir. Flow chart adalah algoritma yang digambarkan dengan diagram. Fungsi dari flow chart adalah mendeskripsikan urutan pelaksanaan suatu proses (sama dengan fungsi algoritma). 19
Jenis Flowchart Sistem Flowchart Urutan proses dalam sistem dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data. 20
Jenis Flowchart Program Flowchart Start Program Flowchart Urutan instruksi yang digambarkan dengan simbol tertentu untuk memecahkan masalah dalam suatu program Input alas, tinggi Luas = alas*tinggi Print Luas End 21
Pembuatan Flowchart Dalam pembuatan flowchart tidak ada kaidah yang baku. Flowchart = gambaran hasil analisa suatu masalah. Flowchart dapat bervariasi antara satu pemrogram dengan pemrogram lainnya. Secara garis besar ada 3 bagian utama: Input Proses Output 22
Beberapa hal yang perlu diperhatikan dalam pembuatan flowchart, yaitu : Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END. 23
Simbol Flowchart Simbol Nama Keterangan Terminator Tanda mulai/selesai Input/output Operasi pemasukan data atau penampilan data Proses Menyatakan sebarang proses Keputusan Pengambilan keputusan. Di dalam simbol berupa pertanyaan dengan jawaban YA atau TIDAK
Simbol Flowchart Simbol Nama Keterangan Proses Terdefinisi Tanda prosedur/fungsi Konektor Sambungan dari satu proses ke poses yang lain dalam halaman yang sama Sambungan dari satu proses ke poses yang lain dalam halaman yang berbeda
Simbol Flowchart Simbol Nama Keterangan Preparation Inisialisasi perulangan
Contoh Algoritma sekuensial
Contoh 1 (Konversi Fahrenheit - Celcius)
Contoh 1 (Konversi Fahrenheit - Celcius) PROGRAM Konversi Fahrenheit ke Celcius {algoritma ini akan menghitung nilai Celcius dari nilai Fahrenheit yang diinputkan} DEKLARASI f,c : float ALGORITMA read(f) c (F-32) * 5/9 print(c)
Contoh 2 (Menghitung Luas Lingkaran)
Contoh 2 (Menghitung Luas Lingkaran) PROGRAM Menghitung Luas Lingkaran {algoritma ini akan menghitung luas lingkaran berdasarkan jari-jari yang diinputkan} DEKLARASI r, Luas : float ALGORITMA read(r) Luas phi * r *r print(Luas)
Contoh 3 (Konversi Koordinat Polar ke Koordinat Cartesian)
Contoh 3 (Konversi Koordinat Polar ke Koordinat Cartesian) PROGRAM Konversi Koordinat {algoritma ini akan mengkonversi koordinat polar menjadi koordinat cartesian} DEKLARASI radius, alpha, X, Y : integer ALGORITMA read(radius) read(alpha) X Radius * Cos(Alpha) Y Radius * Sin(Alpha) print(X) print(Y)
Contoh 3 (Bilangan Terbesar)
Contoh 3 (Bilangan Terbesar) PROGRAM Mendapatkan Bilangan Terbesar {algoritma ini akan mencari dan mendapatkan bilangan terbesar dari dua bilangan yang diinputkan} DEKLARASI bilanganPertama, bilanganKedua : integer ALGORITMA read(bilanganPertama) read(bilanganKedua) if bilanganPertama > bilanganKedua print(bilanganPertama) else print(bilanganKedua) end if
Diskusi Silahkan bentuk kelompok kecil dgn anggota 5 orang Buatlah algoritma dalam kalimat deklaratif, flowchart, dan pseudocode untuk suatu masalah tertentu Silahkan tentukan sendiri masalahnya Waktu 15 menit dan presentasi 1 kelompok dipilih secara acak
Buatlah Flowchart dan Pseudocode Problem: Seorang salesman akan menerima komisi berdasarkan nilai penjualan yang dicapai. Salesman itu mendapat komisi 5% dari hasil penjualannya. Buatlah flowchart dan pseudocode untuk menghitung komisi yang didapatkan seorang salesman. Algoritma program: pertama program meminta input data nama salesman dan nilai penjualannya, kemudian program akan menghitung komisi, lalu mencetak nama salesman dan komisi yang didapatkan.
Tugas Problem: Seorang kasir menginputkan data barang yang dibeli oleh pelanggan ke dalam sistem. Setiap pembelian barang akan mendapatkan diskon sebesar 15% Alur program: pertama program meminta input data nama barang dan harga asli, kemudian program akan menghitung diskon, lalu mencetak nama barang, diskon, dan harga setelah diskon Buatlah algoritma untuk kasus tersebut dalam bentuk flowchart dan pseudocode
TUGAS Buat algoritma dalam bentuk kalimat deklaratif, pseudocode & flowchart untuk mengkonversi dari satuan jam dan menit menjadi detik Misal 1 jam, 20 menit = 3600 + 1200 = 4800 detik
Di suatu pertemuan ada 4 orang pria dewasa, 4 wanita dewasa, dan 4 anak-anak. Keempat pria dewasa itu bernama: Santo, Markam, Gunawan, dan Saiful. Keempat wanita dewasa itu bernama Ria, Gina, Dewi, dan Hesti. Keempat anak itu bernama Hadi, Putra, Bobby dan Soleh. Sebenarnya mereka berasal dari 4 keluarga yang setiap keluarga terdiri dari seorang ayah, seorang ibu dan satu orang orang anak, namun tidak diketahui yang mana yang menjadi ayah dan mana yang menjadi ibu dan mana yang menjadi anak dari masing-masing keluarga itu. Kecuali, beberapa hal diketahui sebagai berikut: Ibu Ria adalah ibu dari Soleh. Pak Santo adalah ayah dari Hadi. Pak Saiful adalah suami dari Ibu Dewi, tapi bukan ayah dari Bobby. Pak Gunawan adalah suami Ibu Hesti. (1) Putra adalah anak dari Pak ........ (2) Anak dari Pak Gunawan adalah ........
Terimakasih 41