PENULISAN ALGORITMA dengan PSEUDOCODE & FLOWCHART
NOTASI ALGORITMA Notasi algoritma dapat berupa : –Uraian kalimat deskriptif (narasi) Contoh : Algoritma Kelulusan_mhs Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 56 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 56 maka dinyatakan tidak lulus. DESKRIPSI : baca nama dan nilai mahasiswa. jika nilai >= 56 maka keterangan = lulus selain itu keterangan = tidak lulus. cetak nama dan keterangan
Jenis Proses dalam Algoritma Runtunan / Sequence Pemilihan / Selection Pengulangan / Repetition
Runtunan / Sequence Algoritma menukar isi 2 buah ember, A dan B Tuangkan isi ember A ke dalam ember C Tuangkan isi ember B ke dalam ember A Tuangkan isi ember C ke dalam ember B
Pemilihan / Selection Jika Nilai lebih besar atau sama dengan 56 maka Keterangan diisi dengan Lulus selain dari itu Keterangan diisi dengan Tidak Lulus
Pengulangan / Repetition Contoh Kasus : Input nilai 10 Siswa Proses : Ulangi Input Nilai Siswa Maju ke Siswa berikutnya Hingga Siswa ke 10
PSEUDOCODE & FLOWCHART Pseudocode dan Flowchart adalah tools untuk menulis algoritma. PSEUDOCODE menggunakan instruksi berupa kalimat (kata) FLOWCHART menggunakan instruksi berupa gambar / simbol / chart.
FLOWCHART Terminator, Start, Selesai Proses Pemilihan Dokumen Konektor Konektor antar halaman
FLOWCHART Mulai Baca Nama & Nillai Ketr tdk Lulus Nilai >= 56 Tidak Ya Ketr tdk Lulus Nilai >= 56 Ketr Lulus Tulis Nama & Ketr Selesai
PSEUDOCODE Baca Nama, Nilai Jika Nilai>=56 maka Ketr Lulus Mulai Baca Nama & Nillai Nilai >= 56 Ketr Lulus Ketr tdk Lulus Ya Tidak Tulis Nama & Ketr Selesai Baca Nama, Nilai Jika Nilai>=56 maka Ketr Lulus selain itu Ketr Tidak Lulus cetak Nama dan Ketr
Contoh A Masalah Tentukan mutu nilai akhir (grade) suatu mata kuliah di UMN Masukan (Input) Nilai Tugas, Nilai UTS, Nilai UAS Pemecahan (Proses) langkah 1 langkah 2 … langkah n Keluaran (Output) grade = X
Contoh A (Model 1) Perhitungan untuk Pemecahan nilai akhir = nilai tugas * 30% + nilai UTS * 30% + nilai UAS * 40% jika 0,00 ≤ nilai akhir ≤ 44,99 maka grade = E jika 45,00 ≤ nilai akhir ≤ 55,99 maka grade = D jika 56,00 ≤ nilai akhir ≤ 67,99 maka grade = C jika 68,00 ≤ nilai akhir ≤ 79,99 maka grade = B jika 80,00 ≤ nilai akhir ≤ 100,00 maka grade = A
Pseudocode Contoh A (Model 1) baca n_tugas, n_UTS, n_UAS n_akhir n_tugas * 30% + n_UTS * 30% + n_UAS * 40% jika n_akhir > 79,99 maka grade A jika n_akhir > 67,99 maka grade B jika n_akhir > 55,99 maka grade C jika n_akhir > 44,99 maka grade D selain itu grade E cetak grade
Flowchart Contoh A (Model 1) Mulai Baca n_tugas Baca n_UTS Baca n_UAS hitung n_akhir A n_akhir > 79,99 n_akhir > 67,99 n_akhir > 55,99 n_akhir > 44,99 Grade = A Grade = B Grade = C Grade = D Grade = E Cetak Grade Selesai Y T
Contoh A (Model 2) Perhitungan untuk Pemecahan nilai akhir = nilai tugas * %nilai tugas + nilai UTS * %nilai UTS + nilai UAS * % nilai UAS jika nilai akhir > 79,99 maka grade = A selain itu jika nilai akhir > 67,99 maka grade = B jika nilai akhir > 55,99 maka grade = C jika nilai akir > 44,99 maka grade = D selain itu grade = E
Pseudocode Contoh A (Model 2) baca n_tugas, n_UTS, n_UAS baca %tugas, %UTS, %UAS n_akhir n_tugas * %tugas + n_UTS * %UTS + n_UAS * %UAS jika n_akhir > 79,99 maka grade A selain itu jika n_akhir > 67,99 maka grade B selain itu jika n_akhir > 55,99 maka grade C selain itu jika n_akhir > 44,99 maka grade D selain itu grade E cetak grade
Flowchart contoh A (Model 2) Mulai Baca n_tugas Baca n_UTS Baca n_UAS hitung n_akhir A n_akhir > 79,99 n_akhir > 67,99 n_akhir > 55,99 n_akhir > 44,99 Grade = A Grade = B Grade = C Grade = D Grade = E Cetak Grade Selesai Y T
Contoh B Masalah Masukan (Input) Pemecahan Keluaran (Output) Tentukan rata-rata nilai algoritma, nilai tertinggi dan nilai terendah Masukan (Input) jumlah mahasiswa nilai mahasiswa ke-1 nilai mahasiswa ke-2 … nilai mahasiswa ke n Pemecahan langkah 1 langkah 2 langkah n Keluaran (Output) Rata - rata = X Nilai tertinggi = Y Nilai terendah = Z
Contoh B (algoritma 1) MODEL PERHITUNGAN jumlah nilai = nilai1 + nilai2 + … nilai rerata = jumlah nilai / jumlah mhs jika nilai1 > nilai2 dan nilai1 > nilai3 dan nilai1 > nilai4 … nilai tertinggi = nilai1 jika nilai2 > nilai1 dan nilai2 > nilai3 dan nilai2 > nilai4 … nilai tertinggi = nilai2 … jika nilai1 < nilai2 dan nilai1 < nilai3 dan nilai1 < nilai4 … nilai terendah = nilai1 jika nilai2 < nilai1 dan nilai2 < nilai3 dan nilai2 < nilai4 … nilai terendah = nilai2
Contoh B (Algoritma 2) MODEL PERHITUNGAN jumlah nilai = 0 ulangi sebanyak jumlah mhs baca nilai akumulasikan nilai ke jumlah nilai akhir pengulangan hitung nilai rata = jumlah nilai / jumlah mhs nilai tertinggi = -1000 nilai terendah = 1000 jika nilai > nilai tertinggi maka nilai tertinggi = nilai jika nilai < nilai terendah maka nilai terendah = nilai
Contoh B (Algoritma 3) MODEL PERHITUNGAN jumlah nilai = 0 nilai tertinggi = -1000 nilai terendah = 1000 ulangi sebanyak jumlah mhs baca nilai akumulasikan nilai ke jumlah nilai jika nilai > nilai tertinggi maka nilai tertinggi = nilai jika nilai < nilai terendah maka nilai terendah = nilai akhir pengulangan hitung nilai rata = jumlah nilai / jumlah mhs
Pseudocode Contoh B (Alg. 3) baca jml_mhs jml_nilai 0 nilai_terendah 1000 nilai_tertinggi -1000 counter 0 ulang baca nilai jml_nilai jml_nilai + nilai jika nilai < nilai_terendah maka nilai_terendah nilai jika nilai > nilai_tertinggi maka nilai_tertinggi nilai counter counter + 1 selama counter < jml_mhs nilai_rerata jml_nilai / jml_mhs cetak nilai_rerata, nilai_tertinggi, nilai_terendah
Flowchart Contoh B (Alg 3) Mulai Baca jml_mhs jml_nilai 0 nilai_terendah 1000 counter 0 A nilai < nilai_terendah nilai > nilai_tertinggi counter < jml_mhs nilai_terendah nilai nilai_tertinggi nilai Selesai Y T nilai_tertinggi -1000 Baca nilai jml_nilai jml_nilai + nilai counter counter + 1 B nilai_rerata jml_nilai / jml_mhs cetak nilai_rerata, nilai_tertinggi, nilai_terendah
References : Thompson SN, 2009, Algoritma dan Struktur Data dengan C. Deitel, PJ, HM.Deitel, 2007, C How to Program, 5th Edition.