Algoritma Perulangan Pemrograman Dasar Andi Saputro | August 24, 2014 |
1. Algoritma Perulangan Ada kalanya untuk menyelesaikan suatu masalah, satu atau beberapa perintah harus dikerjakan beberapa kali. Misalnya anda hendak menampilkan tulisan algoritma sebanyak tiga kali. Maka algoritmanya dapat ditulis 1. Mulai 2. Tulis ‘Algoritma’ 3. Tulis ‘Algoritma’ 4. Tulis ‘Algoritma’
5. Selesai Sehingga diperoleh keluaran Algoritma Algoritma Algoritma
Contoh lain. Anda hendak menghitung suatu bilangan dipangkatkan tiga. Maka algoritmanya dapat dituliskan 1. Mulai 2. Masukkan bilangan X 3. Set nilai Y=1 4. Kalikan X dengan Y, simpan sebagai Y 5. Kalikan X dengan Y, simpan sebagai Y 6. Kalikan X dengan Y, simpan sebagai Y 7. Tulis (Y) 8. Selesai Atau dalam algoritma standar ditulis 1Deskripsi X*YY
Read(X)
Y
X*Y Write(Y)X*Y Jika input algoritma (X) adalah 2, maka dengan tabel penyimpanan data Perintah Read(X)
X
Y
YY Ouput
Cara ini memang dapat menyelesaikan permasalahan tersebut di atas, tapi sangat tidak efisien dalam penulisannya. Bayangkan kalau pengulangannya dilakukan sebanyak 1000 kali, maka kita harus menulisnya sebanyak seribu kali pula. Tentunya akan sangat merepotkan. Untuk itu kita perlu mengenal satu lagi algoritma dasar yaitu algoritma pengulangan. Dengan algoritma ini kita cukup menuliskan perintahnya sekali untuk pengulangan berapapun banyaknya. Bila mengacu pada bahasa pemrograman Pascal, terdapat tiga ekspresi algoritma untuk pengulangan : 1. for-do 2. while-do
3. repeat-until yaitu : Namun demikian, ketiganya memiliki komponen-komponen pengulangan yang sama - Kondisi pengulangan : Setiap aksi atau kumpulan aksi dikerjakan jika memenuhi kondisi tertentu. Selama kondisi terpenuhi aksi akan terus dikerjakan - Badan pengulangan : bagian aksi yang diulang - Nilai awal atau inisialisasi : Pemberian nilai satu atau beberapa variabel sebelum pengulangan dilakukan. 2. Pengulangan For-Do Ada 2 macam pengulangan for-do, yaitu for-do menaik dan for-do menurun. Berikut ini adalah bentuk umumnya. For-do menaik nilai_awal to nilai_akhir do pernyataanFor var Flowchart for-do menaik pernyataan For-do menurun nilai_awal downto nilai_akhir doPernyataanFor variabel Flowchart for-do menurun Var = ni…nf
pernyataan Kondisi pengulangan for secara tersirat dapat dilihat pada ni (nilai_awal) dan nf (nilai_akhir); Nilai yang terkandung pada var mula-mula sama dengan nilai_awal, kemudian bertambah (berkurang) sebanyak satu, kemudian berhenti setelah var lebih besar (lebih kecil) nilai_akhir. Karakteristik pengulangan for-do - Aksi mula-mula dilakukan saat var=nilai_awal dan terakhir saat var=nilai_akhir.
- Var, nilai_awal dan nilai_akhir bertipe bilangan bulat (integer) - Setiap selesai satu kali pengulangan var berubah +1 (for-do menaik) atau –1 (for-do menurun). - Pengulangan paling sedikit dilakukan sekali, banyaknya pengulangan adalah selisih nilai_awal dan nilai_akhir ditambah 1 Contoh 1 to 3 dofor i Write(‘Halo’) 3…1var Write (‘Halo’)
Pada perintah di atas, mula-mula i diberi nilai 1. Kemudian perintah write(‘Halo’) dikerjakan. Setelah itu i bertambah satu sehingga menjadi 2, dilanjutkan dengan perintah write(‘Halo’). Proses yang sama diulang lagi hingga i bernilai tiga, perintah write(’Halo’) dikerjakan. Setelah itu proses pengulangan berhenti di situ. Dengan demikian outputnya dapat kita nyatakan seperti berikut : Halo Halo Kita dapat membuat output yang sama seperti di atas dengan for-do menurun.
Halo
3 downto 1 do for i Write(‘Halo’) 3…1var Write (‘Halo’)
Perbedaannya, pada for-do menaik i berubah dari 1 sebanyak +1 dan berhenti setelah lebih dari 3, sedangkan pada for-do menurun, i berubah dari 3 sebanyak –1 hingga akhirnya berhenti saat i kurang dari 1. Coba tentukan bentuk dari algoritma di atas. 3. Perulangan While-Do
Secara umum while do begin
algoritma
while
adalah
:
end pernyataan sedangkan bentuk flowchartnya t ? y loop Aksi Teks algoritma dan flowchart di atas menunjukkan bahwa ada pengecekan kondisi dulu sebelum aksi berikutnya dilakukan. Aksi di bawah kondisi dikerjakan jika kondisinya atau lebih tepatnya nilai boolean kondisi bernilai benar. Jika kondisi bernilai salah maka proses akan ‘melompat’ atau mengerjakan aksi yang berada di luar loop. Contoh soal. Buat algoritma menampilkan deret 2, 4, 6, …, N. N adalah masukan berupa bilangan genap. Algoritma deret Deklarasi N,x : integer Deskripsi read(N) 2x while x<=N do Write(x) x+2x begin
read (N) x<–2 t x<=N y write (x) x<–x+2 End Mula-mula inputkan nilai N, kemudian x diberi nilai 2 (proses inisialisasi). Setelah itu x dibandingkan dengan N, jika pernyataan (x<=N) bernilai benar maka x ditampilkan, lalu x ditambah 2 dan menghasilkan x baru. Setelah itu arus data kembali ke atas untuk menguji apakah pernyataan x<=N bernilai benar. Jika iya, maka proses yang sama dengan sebelumnya dilakukan kembali. Demikian seterusnya hingga pernyataan x<=N bernilai salah. Untuk input N = 8, tabel penyimpanan datanya dapat kita nyatakan sebagai berikut. erintah Read(N) 2 Blok pengulangan
Kondisi
x
N
Output 8 2x
x<=N Write(x) / x+2output true 2 true 4 true 6 true 8 false Jika N adalah 10 maka output algoritma deret : 2, 4, 6, 8 4. Perulangan Repeat-Until Secara umum algoritma repeat-until adalah
x 4 6 8 10
repeat until
aksi
sedangkan bentuk flowchartnya Aksi loop t y Secara umum teks dan flowchart di atas berarti bahwa aksi tidak dikerjakan lagi jika kondisi bernilai benar. Algoritma while-do dengan repeat-until sebenarnya hampir sama, perbedaannya hanya terletak pada penempatan kondisinya. Pada while-do pengecekan kondisi diletakkan di awal loop, sedangkan pada repeat-until pengecekan kondisi dilakukan di akhir loop. Itu sebabnya pada algoritma while-do aksi bisa jadi tidak dilakukan sama sekali jika sejak awal kondisinya sudah bernilai salah. Sedangkan pada pada repeatuntil aksi sekurang- kurangnya dilakukan sebanyak satu kali. (Perhatikan flowchart) Andi Saputro Artikel Algoritma Perulangan Pemrograman Dasar Materi Pertemuan 12 – 15 ditulis oleh : Andi Saputro Kata Kunci : Featured, Materi, Materi Multimedia, Materi Pemrograman Dasar, Pemrograman Dasar Kelompok Artikel: Materi, Pemrograman Dasar
Struktur Algoritma Percabangan Written By Anisa indra on Wednesday, May 29, 2013 | 3:50 AM 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 5.7. Pengemudi harus memutuskan apakah harus menempuh jalur yang kanan atau yang kiri (lurus).
Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu kondisi yang disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision harus digunakan. Simbol decision akan berisi pernyataan yang akan diuji kebenarannya. Nilai hasil pengujian akan menentukan cabang mana yang akan ditempuh. Contoh 5.15. 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 5.9. 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 5.16. 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 5.10.
dalam struktur percabangan yang lain, atau yang biasa disebut nested (bersarang). Perhatikan contoh-contoh berikut. Contoh 5.17. 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,-.
Buatlah 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. 'Jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100 lembar harga perlembarnya Rp.100' pernyataan jika yang kedua berada di dalam jika yang pertama. Input yang dibutuhkan untuk permasalahan ini adalah status orang yang fotokopi, dan jumlah lembar yang difotokopi. Sehingga variable input yang digunakan adalah:
Status untuk status orang yang fotokopi JLF untuk jumlah lembar yang difotokopi
Selain itu, terdapat variable dengan nama HPP yang digunakan untuk menyimpan harga per lembar, dan TH untuk menyimpan nilai total harga. Perhatikan, variable Status bertipe data char, sehingga penulisannya harus menggunakan tanda " ". Flowchart penyelesaian masalah ini dapat dilihat pada gambar 5.11.
Contoh 5.18. Struktur percabangan bersarang untuk masalah kelulusan siswa. Aturan kelulusan siswa pada mata pelajaran Pemrograman Web diterapkan sebagai berikut:
Jika nilai ujian tengah semester (UTS) lebih besar dari 70 maka siswa dinyatakan lulus dan Nilai Akhir sama dengan nilai UTS. Jika nilai UTS kurang atau sama dengan 70, maka siswa dinyatakan lulus jika Nilai Akhir lebih besar atau sama dengan 60 dimana Nilai Akhir = (nilai UTS x 40%) + (nilai UAS x 60%).
Buatlah flowchart penyelesaian masalah tersebut apabila output yang diinginkan adalah NIM, Nama Siswa, Nilai Akhir, dan Status Kelulusan. Penyelesaian: Pada contoh ini, ada dua percabangan. Yang pertama adalah pemeriksaan apakah nilai UTS siswa lebih dari 70. Kedua, apabila nilai UTS tidak lebih dari 70, maka dilakukan pemeriksaan apakah nilai akhir lebih dari 60. Input yang dibutuhkan untuk permasalahan ini adalah NIM, nama siswa, nilai UTS, dan nilai UAS. Sehingga variable input yang digunakan adalah: NIM untuk Nomor induk siswa, nama untuk nama siswa, NUTS untuk nilai ujian tengah semester, dan NUAS untuk nilai ujian akhir semester. Sedangkan variabel ouput terdiri dari NA yang digunakan untuk menyimpan nilai akhir, dan Status untuk menyimpan status kelulusan.
Copyright © 2013. Halaman Terkait: | Struktur algoritma pemrograman | Pengertian algoritma | Cara penulisan algoritma | Struktur algoritma berurutan | Struktur algoritma pengulangan | Diposkan oleh Anisa indra di 3:50 AM
Nama
: Siti Nur Hidayah
No.Absen : 23 Kelas
: X TKJ 3