Struktur dasar Algoritma pemrograman

A.Struktur Dasar Algoritma Pemrograman 


Dalam sebuah algoritma langkah-langkah penyelesaian masalahnya dapat berupa struktur urut (sequence), struktur pemilihan (selection), dan struktur pengulangan (repetition). Ketiga jenis langkah tersebut membentuk konstrukti suatu algoritma.

1. Struktur Urut (Sequence)

Struktur urut adalah suatu struktur program dimana setiap baris program akan dikerjakan secara urut dari atas ke bawah sesuai dengan urutan penulisannya.

Dari flowchart diatas mula-mula pemroses akan melaksanakan instruksi baris program 1, instruksi baris program 2 akan dikerjakan jika instruksi baris program 1 telah selesai dikerjakan. Selanjutnya instruksi baris program 3 dikerjakan setelah instruksi baris program 2 selesai dikerjakan. Setelah instruksi baris program 3 selesai dilaksanakan maka algoritma berhenti. Contoh:

2. Algoritma Luas Persegi Panjang

Akan dihitung luas pesegi panjang yang diketahui panjang dan lebarnya, maka algoritmanya sebagai berikut:

Diketahui sebuah pesegi panjang yang memiliki panjang dan lebar.

Deskripsi Struktur:

  1. mulai
  2. Baca panjang
  3. Baca lebar
  4. Hitung luas = panjang * lebar
  5. Tampilkan luas
  6. selesai

Flowchart Luas_Pesegi_Panjang:


3. Algoritma Isi Tabung

Akan dihitung isi sebuah tabung yang diketahui jari-jari lingkaran dan tinggi tabung.

Tabung 1

Diketahui sebuah tabung yang diketahui jari-jari tabung dan tinggi tabung.

Deskripsi Struktur:

  1. mulai
  2. Baca jari_jari
  3. Baca tinggi
  4. Hitung luas_lingk = 3.14 * jari_jari * jari_jari
  5. Hitung isi_tabung = luas_lingk * tinggi
  6. Tampilkan isi_tabung
  7. selesai

Flowchart Isi_Tabung1:



Perhatikan bahwa algoritma Isi_Tabung1 diatas memiliki 5 baris intruksi yang harus dikerjakan sebelum algoritma selesai. Pada algoritma diatas bisa disederhanakan lagi sehingga baris prosesnya lebih sedikit.

Tabung 2

Diketahui sebuah tabung yang diketahui jari-jari tabung dan tinggi tabung.

Deskripsi Struktur:

  1. mulai
  2. Baca jari_jari
  3. Baca tinggi
  4. Hitung isi_tabung = (3.14 * jari_jari * jari_jari) * tinggi
  5. Tampilkan isi_tabung
  6. selesai

Flowchart Isi_Tabung2 :

4. Algoritma Kelulusan Siswa 1

Diketahui seorang siswa dikatakan lulus jika nilainya >= 60.

Deskripsi Struktur:

  1. mulai
  2. Baca nilai_siswa
  3. Jika nilai_siswa >= 60 maka kerjakan langkah 4
  4. Cetak “Siswa tersebut lulus”
  5. selesai

Flowchart Kelulusan_Siswa1:


Dari flowchart diatas dapat dijelaskan bahwa setelah nilai_siswa dimasukkan maka akan diuji apakah nilai_siswa lebih besar atau sama dengan 60? Jika benar maka akan dicetak “Siswa tersebut lulus” kemudian selesai, jika tidak maka selesai.

5. Algoritma Kelulusan Siswa 2

Dibuat suatu aturan kelulusan seorang siswa yang diketahui dari hasil nilainya dalam bentuk angka. Seorang siswa dikatakan lulus jika nilai lebih besar atau sama dengan 60, dan jika nilainya lebih kecil dari 60 maka siswa tidak lulus.

Diketahui seorang siswa dikatakan lulus jika nilainya >= 60, dan jika nilainya < 60 maka siswa tidak lulus.

Deskripsi Struktur:

  1. mulai
  2. Baca nilai_siswa
  3. Jika nilai_siswa >= 60 maka kerjakan langkah 4, selain itu kerjakan langkah 5
  4. Cetak “Siswa tersebut lulus”
  5. Cetak “Siswa tidak lulus”
  6. selesai

Flowchart Kelulusan_Siswa2:


Dari flowchart diatas dapat dijelaskan bahwa setelah nilai_siswa dimasukkan maka akan diuji apakah nilai_siswa lebih besar atau sama dengan 60? Jika benar maka akan dicetak “Siswa tersebut lulus” kemudian selesai, jika tidak maka akan dicetak “Siswa tidak lulus” kemudian selesai.

6. Algoritma Pembayaran Gaji

Buatlah algoritma dan flowchart untuk menghitung jumlah pembayan gaji dengan input nama, jumlah hari kerja dan jumlah jam lembur. Tarif untuk hari kerja adalah Rp. 30.000,- per hari, sedangkan tarif perjam lembur adalah Rp.5.000,-. Jika seorang karyawan jam lemburnya lebih dari 10 jam maka akan mendapatkan tambahan transport lembur sebesar 10% dari jumlah uang lembur, jika tidak maka tidak mendapatkan transport lembur.

Diketahui input data nama, jumlah hari kerja dan jumlah jam lembur, tarif per hari kerja Rp. 30.000, tarif per jam lembur Rp. 5.000, jika jumlah jam lembur lebih dari 10 jam maka akan mendapatkan tambahan uang transport lembur 10% dari jumlah uang lembur. 

Deskripsi Struktur:

  1. mulai
  2. Baca nama
  3. Baca jhr_kerja
  4. Baca jjam_lembur
  5. Hitung upah = jhr_kerja * 30000
  6. Hitung uang_lembur = jjam_lembur * 5000
  7. Jika jjam_lebur > 10 maka kerjakan langkah 8 selain itu kerjakan langkah 9
  8. Hitung trans_lembur = (10/100) * uang_lembur
  9. trans_lembur = 0
  10. Hitung gaji = upah + uang_lembur + trans_lembur
  11. Tampilkan gaji
  12. selesai

Flowchart Pembayaran_Gaji:


Dari flowchart diatas dapat dijelaskan bahwa setelah nama, jhari_kerjajjam_lemburdimasukkan maka akan dihitung besarnya upah, kemudian dihitung besarnya uang_lembur, kemudian diuji apakah jjam_lembur > 10, jika benar maka dihitung trans_lembur 10% dari uang_lembur, jika salah maka trans_lembur = 0, kemudian dihitung besar gaji yang diperoleh. Terakhir dicetak berupa nama dan gaji, kemudian selesai.

7. Algoritma Konversi Nilai

Buatlah algoritma dan flowchart untuk menghitung konfersi nilai siswa, input berupa nama siswa dan nilai berupa nilai angka. Hasilnya akhir adalah berupa nilai huruf hasil konfersi dengan aturan:
  • Jika nilai_angka >= 80 maka nilai huruf sama dengan A
  • Jika nilai_angka >= 70 maka nilai huruf sama dengan B
  • Jika nilai_angka >= 60 maka nilai huruf sama dengan C
  • Jika nilai_angka >= 50 maka nilai huruf sama dengan D
  • Jika nilai_angka < 50 maka nilai huruf sama dengan E

Diketahui nilai angka seorang siswa yang akan dikonfersikan ke nilai huruf.

Deskripsi Struktur:

  1. mulai
  2. Baca nama_siswa
  3. Baca nilai_angka
  4. Jika nilai_angka >= 80 maka nilai_huruf = “A”, selain itu
  5. jika nilai_angka >= 70 maka nilai_huruf = “B”, selain itu
  6. jika nilai_angka >= 60 maka nilai_huruf = “C”, selain itu
  7. jika nilai_angka >= 50 maka nilai_huruf = “D”, selain itu
  8. nilai_huruf = “E”
  9. Cetak nama_siswa dan nilai_huruf
  10. selesai

Flowchart Konfersi_Nilai:

8. STRUKTUR FOR

Struktur pengulangan dengan intruksi for digunakan untuk mengulang satu baris instruksi atau satu blok instruksi sampai jumlah perulangan yang disyaratkan terpenuhi. Ciri utama pengulangan for adalah terdapat nilai awal dan nilai akhir yang menunjukkan banyaknya pengulangan yang akan dilakukan.

Flowchart struktur for:

Dari gambar flowchart diatas dapat dijelaskan bahwa instruksi1, instruksi2, instruksi3 akan dikerjakan berulang yang dimulai dari nilai_awal sampai nilai_akhir yang diberikan. Jika pengulangan sudah sampai pada kondisi nilai_akhir yang diberikan maka pengulangan akan berhenti.

B.Struktur Algoritma Pemrograman Versi Lain

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Masalah dapat berupa apa saja, dengan catatan untuk setiap masalah, ada syarat kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Konsep algoritma sering kali disetarakan dengan sebuah resep. Sebuah resep biasanya memiliki daftar bahan atau bumbu yang akan digunakan, urutan pengerjaan dan bagaimana hasil dari urutan pengerjaan tersebut. Apabila bahan yang digunakan tidak tertera (tidak tersedia) maka resep tersebut tidak akan dapat dikerjakan. Demikian juga jika urutan pengerjaannya tidak beraturan, maka hasil yang diharapkan tidak akan dapat diperoleh.

Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan syarat yang sama. Tingkat kerumitan dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Umumnya, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki tingkat kerumitan yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi.

Perhatikan algoritma sederhana berikut.

Contoh Algoritma menghitung luas segitiga
  1. Start
  2. Baca data alas dan tinggi.
  3. Luas adalah alas kali tinggi kali 0.5
  4. Tampilkan Luas
  5. Stop

Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali.

Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan yang mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi. Bagaimana jika nilai data alas atau tinggi adalah bilangan 0 atau bilangan negatif ? Tentunya hasil yang keluar menjadi tidak sesuai dengan yang diharapkan. Dalam kasus seperti ini kita perlu menambahkan langkah untuk memastikan nilai alas dan tinggi memenuhi syarat, misalnya dengan melakukan pengecekan pada input yang masuk. Apabila input nilai alas dan tinggi kurang dari 0 maka program tidak akan dijalankan. Sehingga algoritma di atas dapat dirubah menjadi seperti contoh berikut.Contoh 5.11. Hasil perbaikan algoritma perhitungan luas segitiga
  1. Start
  2. Baca data alas dan tinggi.
  3. Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka lanjutkan ke langkah ke 4 jika tidak maka stop
  4. Luas adalah alas kali tinggi kali 0.5
  5. Tampilkan Luas
  6. Stop

Dari penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma. Pertama, algoritma harus benar. Kedua algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar.

1. Cara Penulisan Algoritma

Ada tiga cara penulisan algoritma, yaitu:

Structured English (SE)

SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured Indonesian (SI). Algoritma seperti pada Contoh 5.10 dan 5.11 merupakan algoritma yang ditulis menggunakan SI. Karena dasarnya adalah bahasa sehari-hari, maka SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak.

Pseudocode

Pseudocode mirip dengan SE. Karena kemiripan ini kadang-kadang SE dan Pseudocode dianggap sama. Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program. Sehingga pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC, FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan. Kadang-kadang orang menyebut pseudocode sebagai PASCAL-LIKE algoritma. Apabila Contoh 5.10 ditulis dalam pseudocode berbasis bahasa BASIC akan tampak seperti pada contoh 5.12.

Contoh 5.12. Pseudocode
  1. Start
  2. READ alas, tinggi
  3. Luas = 0.5 * alas * tinggi
  4. PRINT Luas
  5. Stop
  6. Start
  7. READ alas, tinggi
  8. Luas = 0.5 * alas * tinggi
  9. PRINT Luas
  10. Stop

Pada Contoh 5.12 tampak bahwa algoritma sudah sangat mirip dengan bahasa BASIC. Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada bahasa BASIC yang masing-masing menggantikan kata “baca data” dan “tampilkan”. Dengan menggunakan pseudocode seperti di atas maka proses penterjemahan dari algoritma ke kode program menjadi lebih mudah.

Flowchart

Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu program secara logika. Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentu notasi-notasi tertentu. Secara lebih detil bagian ini akan dibahas pada bagian berikutnya.

Pada flowchart ada beberapa simbol penting yang digunakan untuk membuat algoritma sebagaimana tercantum pada Gambar

Notasi ini disebut Terminator yang berarti digunakan untuk menunjukkan awal dan akhir suatu algoritma

Notasi ini disebut Data yang digunakan untuk mewakili data input atau output atau menyatakan operasi pemasukan data dan pencetakan hasil.

Notasi ini disebut Process yang digunakan untuk mewakili suatu proses

Notasi ini disebut Decision yang digunakan untuk suatu pemilihan, penyeleksian kondisi di dalam suatu program

Notasi ini disebut Preparation yang digunakan untuk memberi nilai awal, nilai akhir, penambahan/pengurangan bagi suatu variable counter.

Notasi ini disebut Predefined Process yang digunakan untuk menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain (prosedur, sub-prosedur, fungsi)

Notasi ini disebut Connector yang digunakan untuk menunjukkan sambungan dari flowchart yang terputus di halaman yang sama atau haraman berikutnya.

Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus data atau aliran data dari proses satu ke proses lainnya.

Program Flowchart dapat terdiri dari dua macam, yaitu bagan alir logika program (program logic flowchart) dan bagan alir program komputer terinci (detailed computer program flowchart). Bagan alir logika program digunakan untuk menggambarkan tiap-tiap langkah di dalam program komputer secara logika dan biasanya dipersiapkan oleh seorang analis system. Sedangkan bagan alir program komputer terinci digunakan untuk menggambarkan instruksiinstruksi program komputer secara terinci dan biasanya dipersiapkan oleh seorang programmer. Apabila Contoh 5.10 dibuat program flowchartnya maka akan tampak pada gambar 

2. Struktur Algoritma Berurutan


Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu struktur berurutan (sequencing), struktur pemilihan/keputusan/percabangan (branching) dan struktur pengulangan (looping). Sebuah algoritma biasanya akan menggabungkan ketiga buah struktur ini untuk menyelesaikan masalah.

Pada bagian ini kita akan bahas lebih dulu struktur algoritma berurutan. Struktur berurutan dapat kita samakan dengan mobil yang sedang berjalan pada jalur lurus yang tidak terdapat persimpangan seperti tampak pada Gambar 5.5. Mobil tersebut akan melewati kilometer demi kilometer jalan sampai tujuan tercapai.

Contoh Flowchart untuk konversi suhu.

Buat flowchart untuk mengubah temperatur dalam Fahrenheit menjadi temperatur dalam Celcius dengan rumus oC = 5/9 x (oF -32).

Penyelesaian:

Soal ini juga masih menggunakan algoritma dengan struktur berurutan. Variabel input yang dibutuhkan adalah F dan variabel outputnya adalah C. Flowchart untuk dua masalah ini dapat dilihat pada Gambar.

3. Struktur Algoritma Percabangan

Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan atau keputusan. Hal ini seperti halnya ketika mobil berada dalam persimpangan seperti pada Gambar,Pengemudi harus memutuskan apakah harus menempuh jalur yang kanan atau yang kiri.

Contoh Struktur percabangan untuk masalah batasan umur

Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut, jika usia penonton lebih dari 17 tahun maka penonton diperbolehkan dan apabila kurang dari 17 tahun maka penonton tidak diperbolehkan nonton. Buatlah flowchart untuk permasalahan tersebut.

Penyelesaian:

Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur percabangan. Hal ini ditandai dengan adanya pernyataan jika .. maka ...(atau If ... Then dalam Bahasa Inggris.

Flowchart penyelesaian masalah tampak pada Gambar Pada gambar tersebut, tampak penggunaan simbol Decision. Pada simbol ini terjadi pemeriksaan kondisi, yaitu apakah usia lebih dari 17 tahun atau tidak. Jika jawaban ya maka program akan menghasilkan keluaran teks “Silahkan Menonton”, sedangkan jika input usia kurang dari 17 tahun maka program akan menghasilkan keluaran teks “Anda Tidak Boleh Menonton”.

Contoh Struktur percabangan untuk perhitungan dua buah bilangan

Dalam suatu perhitungan nilai P = X + Y. Jika P positif, maka Q = X * Y, sedangkan jika negative maka nilai Q = X/Y. Buatlah flowchart untuk mencari nilai P dan Q.

Penyelesaian:

Pada contoh ini input yang dibutuhkan adalah nilai X dan Y, sedangkan proses pemeriksaan kondisi dilakukan pada nilai P apakah positif (termasuk 0) ataukah negative. Perhatikan flowchart  penyelesaian masalah pada Gambar

Contoh Struktur percabangan bersarang untuk masalah fotokopi

Sebuah usaha fotokopi mempunyai aturan sebagai berikut:
  • jika yang fotokopi statusnya adalah langganan, maka berapa lembar pun dia fotokopi, harga perlembarnya Rp. 75,-
  • jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100 lembar harga perlembarnya Rp. 100,-. Sedangkan jika lebih atau sama dengan 100 lembar maka harga perlembarnya Rp. 85,-.

Buat flowchart untuk menghitung total harga yang harus dibayar jika seseorang memfotokopi sejumlah X lembar.

Penyelesaian:

Pada contoh ini, masalah terlihat lebih rumit. Ada dua percabangan yang terjadi. Yang pertama adalah pemeriksaan apakah status seseorang pelanggan atau bukan. Kedua, apabila status seseorang bukan pelanggan, maka dilakukan pemeriksaan berapa jumlah lembar fotokopi, apakah lebih dari 100 lembar atau tidak.

Pada soal ini kita juga menjumpai apa yang disebut sebagai nested. Perhatikan pernyataan pada syarat kedua dari persoalan di atas.

Flowchart penyelesaian masalah ini dapat dilihat pada Gambar 

4. Struktur Algoritma Pengulangan

Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang harus diulang berkali.

Salah satu contoh yang gampang kita jumpai adalah balapan mobil seperti tampak pada gambar 5.13. Mobil-mobil peserta harus mengelilingi lintasan sirkuit berkali-kali sesuai yang ditetapkan dalam aturan lomba. Siapa yang mencapai garis akhir paling cepat, dialah yang menang.Pada pembuatan program komputer, kita juga kadang-kadang harus mengulang satu atau sekelompok perintah berkali-kali agar memperoleh hasil yang diinginkan. Dengan menggunakan komputer, eksekusi pengulangan mudah dilakukan. Hal ini karena salah satu kelebihan komputer dibandingkan dengan manusia adalah kemampuannya untuk mengerjakan tugas atau suatu instruksi berulangkali tanpa merasa lelah, bosan, atau malas. Bandingkan dengan pengendara mobil balap, suatu ketika pasti  ia merasa lelah dan bosan untuk berputar-putar mengendarai mobil balapnya.

Struktur pengulangan terdiri dari dua bagian:
  1. Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false)
  2. Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang.

Pada struktur pengulangan, biasanya juga disertai bagian inisialisasi dan bagian terminasi. Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali. Bagian insialisasi umumnya digunakan untuk memberi nilai awal sebuah variable. Sedangkan terminasi adalah instruksi yang dilakukan setelah pengulangan selesai dilaksanakan.

Ada beberapa bentuk pengulangan yang dapat digunakan, masing-masing dengan syarat dan karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk kasus yang sama, namun ada bentuk yang hanya cocok untuk kasus tertentu saja. Pemilihan bentuk pengulangan untuk masalah tertentu dapat mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan yang tepat bergantung pada masalah yang akan diprogram.

Struktur pengulangan dengan For

Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut sebagai loop’s counter, yang nilainya akan naik atau turun selama proses pengulangan. Flowchart umum untuk struktur For tampak pada Gambar 5.14. Perhatikan penggunaan simbol preparation pada flowchart tersebut.

Dalam mengeksekusi sebuah pengulangan dengan For, urutan langkahlangkah adalah sebagai berikut:
  1. Menetapkan nilai counter sama dengan awal.
  2. Memeriksa apakah nilai counter lebih besar daripada nilai akhir. Jika benar maka keluar dari proses pengulangan. Apabila kenaikan bernilai negatif, maka proses akan memeriksa apakah nilai counter lebih kecil daripada nilai akhir. Jika benar maka keluar dari proses pengulangan.
  3. Mengeksekusi pernyataan yang ada di badan loop
  4. Menaikkan/menurunkan nilai counter sesuai dengan jumlah yang ditentukan pada argument increment. Apabila argument increment tidak ditetapkan maka secara default nilai counter akan dinaikkan 1.
  5. Ulang kembali mulai langkah no 2.

Satu hal yang penting yang harus kita perhatikan adalah nilai counter selalu ditetapkan diawal dari pengulangan. Apabila kita mencoba merubah nilai akhir pada badan loop, maka tidak akan berdampak pada berapa banyak pengulangan akan dilakukan.

Contoh Algoritma untuk mencetak pernyataan sebanyak 100 kali

Mungkin kalian pernah ketika masih di sekolah dasar melakukan perbuatan nakal yang membuat kalian disuruh menuliskan pernyataan tertentu sebanyak 100 kali sebagai hukuman atas kenakalan tersebut. Misalkan pernyataan yang harus ditulis adalah “Saya tidak akan mengulangi perbuatan itu lagi”. Bagaimanakah caranya algoritma untuk kasus ini?

Penyelesaian:

Pada contoh ini, kita memerlukan variabel counter, misalkan kita beri nama I. Nilai awalnya adalah 1 dan nilai akhirnya adalah 100. Sedangkan increment atau kenaikan tiap kali pengulangan dari I adalah satu. Perintah untuk mencetak pernyataan akan diulang satu persatu sampai nilai akhir dari counter terpenuhi (100). Flowchart penyelesaian untuk contoh ini dapat dilihat pada Gambar 5.15.

Struktur pengulangan dengan While

Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti karena nilai awal (start) dan nilai akhir (end) sudah ditentukan diawal pengulangan. Bagaimana jika kita tidak tahu pasti harus berapa kali mengulang? Pengulangan dengan While merupakan jawaban dari permasalahan ini. Seperti halnya For, struktur pengulangan dengan While juga merupakan struktur yang didukung oleh hampir semua bahasa pemrograman namun dengan sintaks yang berbeda.

Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi pada While bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang. Yang penting sepanjang kondisi pada While dipenuhi maka pernyataan pada badan loop akan diulang. Flowchart umum untuk struktur While dapat dilihat pada Gambar 5.19.

Pada Gambar 5.19., tampak bahwa simbol preparasi untuk pengulangan seperti pada For tidak digunakan lagi. Namun kita menggunakan simbol decision untuk mengendalikan pengulangan. Selain kondisi, biasanya pada pengulangan While harus dilakukan inisialisasi variabel terlebih dahulu.

Contoh Pengulangan dengan While untuk mencetak nilai tertentu.

Perhatikan flowchart pada Gambar 5.20. Bagaimanakah output dari flowchart tersebut?

Penyelesaian:

Perhatikan Gambar 5.20. bisakah kalian menentukan hasil dari lowchart tersebut? Perhatikan tahapan eksekusi flowchart berikut ini.

Komentar