Download - Kuliah Pemrograman Komputer Tm5
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
1/12
JURUSAN TEKNIK ELEKTRO
FTI-ITS
2008
KULIAH PEMROGRAMAN KOMPUTER
Tatap Muka V & VI
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
2/12
Kontrol pengulangan perintah
Proses yang dikerjakan mungkin harusdiulangi beberapa kali berdasarkan
hitungan ataupun syarat yang harus
dipenuhi. Kontrol perulangan berdasarkan hitungan
diperlukan untuk melakukan proses yang
mempunyai urutan. Kontrol perulangan bersyarat diperlukan
untuk melakukan proses dengan prinsip
pendekatan.
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
3/12
1. Perulangan dengan hitungan
Diberikan dengan bentuktraversal from to/downto
end-traversal
adalah variabel bertipe urutan
dan adalah suatu konstanta atauoperasi bertipe urutan.
Tipe urutan : integer, char, enumerasi, boolean
Kata to dipakai bila diinginkan isi dari berurutan
naik dari s/d
Kata downto dipakai bila diinginkan isi dari berurutan turun dari s/d
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
4/12
Perulangan dengan urutan (lanj)
Contoh :
Bila X diinputkan 6 (genap), maka : X - (X + 1) mod 2 menghasilkan 5
Bila X diinputkan 5 (ganjil), maka : X - (X + 1) mod 2 menghasilkan 5
Sehingga output program menjadi : 7 9 11 13 15
Program mencetak_5_bilangan_ganjil_berurutanDeskripsi mencetak 5 bilangan ganjil pertama yang lebih besar
dari bilangan yang diinputkanKamus X,Y : integer
AlgoritmaInput(X)X X - (X + 1) mod 2 {Buat X sebagai bil ganjil}Traversal Y from 1 to 5 {isi Y mulai dari 1 s/d 5}
output(X + y * 2)End-traversal {di titik ini bila isi Y
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
5/12
Perulangan dengan urutan (lanj)
Contoh :
Bila X diinputkan 20 (genap), maka : X + (X + 1) mod 2 menghasilkan 21
Bila X diinputkan 21 (ganjil), maka : X + (X + 1) mod 2 menghasilkan 21
Sehingga output program menjadi : 11 13 15 17 19
Program mencetak_5_bilangan_ganjil_berurutanDeskripsi mencetak 5 bilangan ganjil terdekat dan lebih
kecil dari bilangan yang diinputkanKamus X,Y : integer
AlgoritmaInput(X)X X + (X + 1) mod 2 {Buat X sebagai bil ganjil}Traversal Y from 5 downto 1 {isi Y mulai dari 5 s/d 1}
output(X - Y * 2)End-traversal {di titik ini bila isi Y > 1, maka otomatis}
{diturunkan dan pelaksanaan perintah diulangi}
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
6/12
Perulangan dengan urutan (lanj)
Contoh :
Bila X diinputkan 20
Maka output program menjadi : 1 2 4 5 10 20
Program mencetak_daftar_faktor_bilangan_XDeskripsi mencetak semua faktor dari bilangan yang diinputkanKamus X,Y : integer
Algoritma
Input(X)Traversal Y from 1 to X {isi Y mulai dari 1 s/d X}if(X mod Y = 0) thenoutput(Y)
endifEnd-traversal {di titik ini bila isi Y < X, maka otomatis}
{dinaikkan dan pelaksanaan perintah diulangi}
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
7/12
2. Perulangan dengan syarat
a. Syarat diperiksa di awal :while do
end while
b. Syarat diperiksa di akhir :
Repeat
Until
c. Syarat diperiksa di tengah :
Iterate
Stop
End iterate
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
8/12
Perulangan bersyarat diperiksa di awal :
Hanya bila syarat berharga BENAR maka perintah akan dikerjakan,
lalu syarat dievaluasi kembali sampai akhirnya berharga SALAH.
Dan program akan berlanjut ke perintah setelah end-while. Harap
perhatikan agar syarat harus bisa berubah harga menjadi SALAH.
Contoh:
Program Teks_lagu_anak_ayam
Deskripsicetak teks lagu kotek-kotekKamus jmlayam : integerAlgoritmaInput(jmlayam)While(jmlayam>0)do {Kalau 0, maka tidak usah dilakukan sama sekali. Kasus kosong}
Output(Anak ayam turun ,jmlayam, mati 1 tinggal ,jmlayam 1)Jmlayam jmlayam 1
End-while {jmlayam 0 }
Perintah ini memastikan syarat (jmlayam>0)
akhirnya akan berharga SALAH
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
9/12
Perulangan bersyarat diperiksa di akhir :
Perintah dikerjakan terlebih dahulu, lalu syarat dievaluasi. Hanya bila
syarat berharga SALAH maka perintah akan diulangi sampaiakhirnya berharga BENAR. Dan program akan berlanjut ke perintah
setelah until.
Harap perhatikan agar syarat harus bisa berubah harga menjadi
BENAR. Contoh:
Program Memastikan_input_bulan_validDeskripsi mengambil input bilangan bulan sampai benarKamus bulan : integerAlgoritmarepeatInput(bulan)
Until((bulan>0) and (bulan
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
10/12
Perulangan bersyarat diperiksa di tengah:Perintah1 dikerjakan terlebih dahulu, lalu syarat dievaluasi. Hanya bila syarat
berharga SALAH maka perintah2 akan dijalankan dan kemudian kembali
menjalankan perintah1 sampai akhirnya syarat berharga BENAR. Lalu kontrolperintah ini akan diakhiri. Dan program akan berlanjut ke perintah setelah
end-iterate.
Harap perhatikan agar syarat harus bisa berubah harga menjadi BENAR.
Contoh:
Program Mencari_berat_rata-rata_karung
Deskripsi menghitung berat rata2 karung yang diinputkan. Akhiri dengan 0Kamus Jumlahberat, Jumlahkarung, berat : realAlgoritma
Jumlahberat 0Jumlahkarung 0IterateInput(berat)
Stop(berat=0)Jumlahkarung Jumlahkarung + 1Jumlahberat Jumlahberat + berat
End-iterate {berat = 0}If(jumlahkarung>0)thenOutput(Rata-rata berat karung : ,jumlahberat / jumlahkarung)
Else
Output(Tidak ada karung yang ditimbang)End-if
Perintah ini memastikan akhirnya syarat
akan berharga BENAR
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
11/12
Pilih letak evaluasi syarat yang tepatDengan letak evaluasi syarat yang benar, maka akan dapat dihindari kasus yangmenjadi anomali dari syarat yang diberikan.
Contoh : kita kutip dari program sebelumnya (while do end-while)AlgoritmaInput(jmlayam)While(jmlayam>0)do {Kalau 0, maka tidak usah dilakukan sama sekali. Kasus kosong}
Output(Anak ayam turun ,jmlayam, mati 1 tinggal ,jmlayam 1)Jmlayam jmlayam 1
End-while {jmlayam 0 }
Bila input 0 diberikan maka akan menghasilkan anomali output sbb. :
Anak ayam turun 0 mati 1 tinggal 1
AlgoritmaInput(jmlayam)Repeat {Struktur kontrol ini tidak memperhatikan kemungkinan kasus kosong}Output(Anak ayam turun ,jmlayam, mati 1 tinggal ,jmlayam 1)Jmlayam jmlayam 1
Until(jmlayam0)
Menjadi :
-
5/19/2018 Kuliah Pemrograman Komputer Tm5
12/12
Latihan
1. Buat program untuk mencetak nbilangan dari deret :
(Traversal... end-traversal)a. 1 2 4 8 16 . . .
b. 1 3 6 10 15 21 28 . . .
c. 1 1 2 3 5 8 13 21 . . .
2. Buat program untuk memastikan tanggal, bulan dan tahun yangdiinputkan adalah benar. (Repeat until)
3. Buat program untuk menentukan kelipatan persekutuan terkecil(KPK) dari dua bilangan yang diinputkan. (While do end-
while)
4. Buat program untuk menentukan faktor perskutuan terbesar(FPB) dari dua bilangan yang diinputkan. (Iterate stopend-iterate)
5. Buat program untuk menentukan tanggal, bulan dan tahun yangdiinputkan dan dianggap benar adalah hari ke berapa pada tahun
tsb. (Apa yang cocok?)