MSIM4203 - Modul 2
Ringkasan materi Representasi Algoritma untuk persiapan UAS MSIM4203
Representasi Algoritma
Algoritma merupakan dasar dari setiap software komputer. Algoritma efektif dapat menghemat waktu kerja dengan memecahkan masalah kompleks secara efisien. Dalam pengembangan software, algoritma sering direpresentasikan dalam bentuk flowchart atau pseudocode untuk memudahkan programmer.
Tujuan utama dari representasi algoritma adalah:
- Merepresentasikan algoritma dalam bentuk flowchart dan pseudocode.
- Membuat flowchart dan pseudocode yang sederhana dan mudah dimengerti.
- Menganalisis masalah dan membuat flowchart serta pseudocode yang ideal.
- Mengenali simbol-simbol flowchart yang umum digunakan.
- Menyusun struktur pseudocode yang tepat dengan indentasi untuk sub-proses.
Flowchart
Flowchart adalah jenis diagram (grafis atau simbolik) yang mewakili suatu algoritma atau proses. Setiap langkah diwakili oleh simbol yang berisi penjelasan singkat, dihubungkan oleh garis dan panah yang menunjukkan arah aliran proses. Tujuan flowchart adalah mengkomunikasikan cara kerja suatu proses tanpa peristilahan teknis.
Flowchart berfungsi sebagai cetak biru (blueprint) yang membantu programmer memahami permasalahan dan logika program sebelum diubah ke kode program.
Keuntungan Menggunakan Flowchart
- Komunikasi: Sarana efektif untuk mengkomunikasikan logika sistem kepada semua pihak terkait.
- Analisis Efektif: Membantu menganalisis masalah dengan lebih terstruktur.
- Dokumentasi: Berfungsi sebagai dokumentasi program yang baik.
- Pengkodean Efisien: Bertindak sebagai panduan selama analisis dan pengembangan program.
- Proper Debugging: Mempermudah proses debugging karena alur kerja sudah jelas.
- Pemeliharaan Program Efisien: Memudahkan pemeliharaan program karena alur sudah terdokumentasi.
Keterbatasan Menggunakan Flowchart
- Logika yang Kompleks: Sulit mengekspresikan logika program yang sangat rumit secara visual.
- Perubahan/Modifikasi: Memerlukan perubahan total pada desain jika ada modifikasi.
- Reproduksi: Susah direproduksi karena berbentuk simbol/grafik dan tidak bisa diketik dengan mudah.
Simbol-Simbol Flowchart
Flowchart umumnya menggunakan beberapa simbol standar:
- Terminator (Oval): Menunjukkan awal atau akhir proses (Mulai/Selesai).
- Preparation (Segi Enam): Penyiapan penyimpanan atau deklarasi variabel.
- Proses (Persegi Panjang): Menunjukkan langkah aliran proses normal/generik (misalnya, perhitungan).
- Decision (Belah Ketupat): Menunjukkan cabang dalam aliran proses, biasanya pertanyaan Ya/Tidak atau Benar/Salah.
- Connector (Lingkaran): Digunakan untuk menunjukkan lompatan dalam aliran proses, sering untuk menyambungkan flowchart di halaman berbeda.
- Data / Input/Output (Jajaran Genjang): Menunjukkan input atau output data.
- Delay (Kapsul): Menunjukkan penundaan atau menunggu proses.
- Arrow (Tanda Panah): Menunjukkan aliran kontrol dalam suatu proses.
Pedoman Menggambar Flowchart
- Semua persyaratan harus dicantumkan dalam urutan logis.
- Harus rapi, jelas, mudah diikuti, dan tidak ambigu.
- Dibaca dari kiri ke kanan atau dari atas ke bawah.
- Simbol proses hanya memiliki satu garis aliran keluar.
- Simbol keputusan memiliki satu garis aliran masuk, tetapi dua garis keluar (true/false).
- Simbol terminal hanya memiliki satu garis aliran masuk/keluar.
Pseudocode
Pseudocode adalah deskripsi tingkat tinggi dan singkat yang ditulis untuk dibaca oleh manusia (bukan mesin kompilator). Ini mirip "kode bahasa Inggris" atau "kode bahasa Indonesia" yang dapat dipahami umum. Meskipun mirip bahasa pemrograman, pseudocode tidak terikat pada bahasa pemrograman tertentu dan dapat diubah ke bahasa apa pun.
Karakteristik Pseudocode
- Bisa menggunakan bahasa alamiah (misal: "Tambahkan", "Kalikan").
- Dapat menggunakan indentasi untuk menggambarkan blok kode (if, loop).
- Nomor urut sangat membantu identifikasi langkah.
- Pemahaman manusia adalah inti dari pseudocode.
Panduan Menulis Pseudocode
- Ditulis dalam bahasa sederhana, dimulai dengan "Mulai" dan diakhiri dengan "Selesai".
- Notasi
←digunakan untuk mengisi nilai ke variabel. - Setiap pernyataan dapat berdiri sendiri dalam baris.
- Disarankan variabel skalar menggunakan huruf kecil.
- Disarankan variabel array menggunakan huruf besar semua atau huruf besar di awal.
- Notasi
L[i]menyatakan elemen ke-i dari larikL(biasanya dimulai dari indeks 0). jumlahElemen(L)digunakan untuk mendapatkan jumlah elemen larik.- Variabel majemuk (GROUP) untuk menyimpan berbagai jenis data.
- Dapat menyertakan nomor urut dengan indentasi untuk sub-blok.
- Pembacaan dilakukan secara urut. Jika ada lompatan, harus dituliskan.
- Simbol
//atau/* ... */untuk komentar. - Instruksi harus jelas, termasuk tipe data variabel.
- Notasi seperti
Masukan(),Input(),Tampilkan(),Cetak(),Print()mewakili I/O. - Operator logika:
<, <=, >, >=, <>, !=danAND, OR. - Struktur perulangan:
ULANG-SELAMA(while-loop),ULANG ... SELAMA(do-loop),UNTUK(for-loop). - Struktur prosedur/fungsi:
Procedure nama_prosedur(parameter) ... Akhir-Procedure.
Struktur Pseudocode Umum
- Judul: Nama program atau kelas.
- Deskripsi: Deklarasi semua elemen yang digunakan (tipe, konstanta, variabel, fungsi).
- Implementasi: Langkah-langkah inti algoritma.
Pseudocode yang ideal menjelaskan dengan gamblang nama proses, variabel dan tipe datanya, formulasi, serta output. Pseudocode ini meminimalkan kebutuhan programmer untuk mencari informasi tambahan. Sebaliknya, pseudocode yang tidak ideal akan menimbulkan banyak pertanyaan bagi programmer dan tidak cukup detail.
Poin Penting
- Algoritma adalah inti dari setiap software komputer yang memecahkan masalah.
- Representasi algoritma memudahkan pemahaman dan implementasi oleh programmer.
- Flowchart adalah representasi grafis algoritma menggunakan simbol standar.
- Pseudocode adalah deskripsi tekstual algoritma yang mendekati bahasa manusia, bukan bahasa mesin.
- Keuntungan flowchart meliputi komunikasi, analisis efektif, dokumentasi, pengkodean efisien, debugging, dan pemeliharaan.
- Keterbatasan flowchart adalah kompleksitas tinggi, kesulitan modifikasi, dan reproduksi.
- Simbol-simbol flowchart yang utama adalah Terminator, Proses, Decision, Data (I/O), Connector, Delay, dan Arrow.
- Pseudocode tidak memiliki aturan baku yang ketat, namun disarankan menggunakan bahasa yang sederhana, indentasi, dan penomoran urut.
- Struktur pseudocode umum terdiri dari Judul, Deskripsi (Deklarasi), dan Implementasi.
- Pseudocode yang baik harus jelas dan informatif, mengurangi ambiguitas bagi programmer.
Tes Formatif 1 — Kegiatan Belajar 1
1.Semua pernyataan di bawah ini berkaitan dengan dengan flowchart, kecuali ...
2.Salah satu keuntungan menggunakan flowchart adalah komunikasi. Artinya adalah ...
3.Jika mengikuti aturan yang benar dalam simbol keputusan, maka penggunaan simbol keputusan yang salah di bawah ini adalah ...
4.Sebuah potongan algoritma sebagai berikut: Input panjang, lebar. Luas = panjang * lebar. Potongan algoritma di atas cocok dengan potongan flowchart ...
5.Simbol yang digunakan untuk proses pada flowchart adalah simbol ...
6.Pedoman dasar dalam menggunakan simbol-simbol flowchart, kecuali ...
7.Perhatikan algoritma berikut: (1. Start, 2. Input NilaiUTS, 3. Input NilaiUAS, 4. NilaiAkhir = (NilaiUTS + NilaiUAS)/2, 5. If NilaiAkhir >= 60, then 5.1. print "Lulus", 6. Else print "Tidak Lulus", 7. End). Pada algoritma di atas, jika dibuat menjadi flowchart yang utuh, maka terdiri dari simbol-simbol ...
8.Simbol konektor dan tanda panah yang benar ditunjukkan pada gambar ...
9.Simbol ini digunakan untuk menunjukkan aliran kontrol dalam suatu proses, simbol datang dari satu simbol dan berakhir pada simbol lain menunjukkan bahwa keterhubungan. Simbol yang digambarkan oleh kalimat di atas adalah simbol ...
10.Jumlah simbol standar dalam flowchart terdiri dari ...
Tes Formatif 2 — Kegiatan Belajar 2
1.Deskripsi yang cukup singkat dan ringkas yang mampu dibaca oleh manusia, bukan mesin adalah pengertian dari ...
2.Salah satu kelebihan dari sebuah pseudocode adalah ...
3.Jika terdapat sub proses dalam pseudocode, sebaiknya yang dilakukan adalah ...
4.Sebuah potongan pseudocode berikut: (int panjang; panjang < 20; if panjang <= 20 then cetak "Kurang panjang" else cetak "Panjang"). Potongan pseudocode di atas jika ini disempurnakan sesuai sub proses/langkah, maka yang paling benar adalah ...
5.Walaupun tidak ditemukan struktur yang baku dalam pseudocode, namun panduan yang bisa diterima secara umum adalah struktur pseudocode dengan urutan sebagai berikut ...
6.Contoh sebuah pseudocode: (1. Mulai int panjang, Luas; 2. panjang ← 30; 3. Lebar ← 20; 4. Luas ← panjang * Lebar; 5. cetak Luas Selesai). Jika harus memberikan narasi pada pseudocode di atas adalah ...
7.Pseudocode yang tidak ideal adalah ...
8.Perhatikan Pseudocode berikut: (1 MULAI, 2 Kelas MencariKecepatandanPercepatan, 3 Deklarasikan variabel, 4 Lakukan Inisisasi awal, 5 Hitung Kecepatan, 6 Hitung Percepatan, 7 Tampilkan kecepatan, 8 Tampilkan percepatan, 9 Selesai). Pseudocode di atas adalah masuk dalam kategori pseudocode ...
9."Untuk mendapatkan Nilai Akhir dari Mahasiswa adalah Nilai UTS ditambah dengan Nilai UAS kemudian dibagi dengan 2, baru kemudian bisa menentukan Nilai Grade Mahasiswa". Formulasi yang paling tepat untuk mendapatkan Nilai Akhir Mahasiswa dengan pseudocode adalah ...
10.Yang perlu diperhatikan dalam membuat pseudocode adalah ...