Berikut ini pernyataan yang benar mengenai algoritma perulangan dengan pencacah turun,kecuali

Published by permadhi, 2020-10-08 01:19:45

Pemrograman Dasar-X-1

    Pages:
  • 1 - 50
  • 51 - 100
  • 101 - 150
  • 151 - 200
  • 201 - 205

Pemrograman Dasar-X-1

Keywords: pemrograman,dasar

Kalian pernah menggunakan Microsoft Excel? Dalam program ini kita mengolah berbagai macam
data, baik data berupa bilangan, karakter, dan string atau tipe-tipe data lain. Ada banyak perintah
atau fungsi yang disediakan oleh Microsoft Excel seperti mengurutkan, memilih minimum
maksimum, menjumlahkan, mencari rata-rata dan sebagainya. Fungsi-fungsi ini tentu bekerja tidak
hanya 1 atau dua data tapi banyak data, bisa puluhan, ratusan atau ribuan. Bayangkan jika kita
akan mencari manjulhakn ratusan data, bagaimna algoritma akan disusun untuk menjumlahkan
keseluruhan data ini. Mungkinkah kita akan menyusun ratusan operasi dalam satu baris? Hal ini
tidak mungkin dilakukan karena tidak efektif jika dilihat dari penyusunan algoritma, karena
banyaknya data pasti berubah-ubah, sehingga menentukan banyaknya operasi penjumlahan tentu
tidak bisa diprediksi, hal ini yang menyebabkan algoritma menjadi tidak define (terdefinisi dengan
pasti). Bagaimana solusinya? Untuk operasi-operasi semacam ini diperlukan struktur perulangan.
Meskupin bicara strutur perulangan identik dengan struktur data array, yang lebih jelas nanti di
kelas XI, kita akan mengenalkan sekilas bagaimna algoritma perulangan ini dibuat.

148 Pemrograman Dasar SMK Kelas X Sem 1

3.1. KEGIATAN BELAJAR 1 PERULANGAN DENGAN KONDISI DI AWAL
3.1.1. Tujuan Pembelajaran

Dengan kegiatan belajar ini diharapkan siswa memahami algoritma perulangan dengan
kondisi di awal dan menerapkannya untuk menyelesaikan permasalahan nyata.
3.1.2. Aktivitas Kegiatan Belajar

Bicara struktur perulangan, kita akan bermain-main dengan banyak bilangan. Sebelum
masuk ke pembahasan, perhatikan permasalahan berikut ini.
3.1.2.1. Mengamati
Kasus 1
Perhatikan algoritma dalam pseudocode berikut
Algoritma Perulangan1
Variabel i : integer

1) i=1
2) WHILE (i<=10)
3) WRITE Hello
4) i=i+1
5) END

Kasus 2
Dalam sebuah algoritma kita diminta untuk mencetak seluruh bilangan kelipatan 5 yang kurang dari
100.

3.1.2.2. Menanya
Dari kedua kasus di atas, buatlah pertanyaan seperti contoh berikut.

Kasus 1
1. Apa output dari algoritma tersebut?
2. Apa yang terjadi jika baris i=i+1 dihapus?
3. Apa yang terjadi jika syaratnya diganti i>10?
4. Apa arti kata WHILE DO?
Kasus 2
1. Bagaimana algoritma pada kasus 1 bisa dibentuk?
2. Apakah boleh kita menuliskan perintah WRITE(5), WRITE(10), dst hingga WRITE(95)
3. Bagaimana perulangan WRITE (kelipatan lima) bisa dilakukan?

3.1.2.3. Mengumpulkan Informasi/Mencoba
Dua struktur utama, percabangan dan perulangan merupakan struktur yang tidak

terpisahkan dengan algoritma dan pemrograman. Struktur perulangan memungkinkan algoritma
untuk melakukan serangkaian perintah secara berulang-ulang. Dan untuk memenuhi syarat bahwa

Bab 3 Algoritma Perulangan 149

algoritma harus finite (terbatas) maka dalam perulangan pasti ada titik pemberhentian. Jika
ternyata dalam sebuah kasus perulangan tidak mencapai titik berhenti maka dapat dikatakan
algoritma tersebut salah.

Titik pemberhentian dapat diberikan dengan beberapa cara, sebagai berikut.
1. Pemberhentian dengan syarat

Pemberhentian dengan syarat artinya ada sebuah kondisi yang akan menyebabkan perulangan
berhenti. Pemberian syarat ini juga dapat dilakukan dengan dua cara, yaitu
a. Syarat diberikan di awal, di mana selama persayaratan dipenuhi maka dilakuakn

serangkain perintah
b. Syarat diberikan di akhir, di mana proses akan diulang-ulang sampai syarat dipenuhi.
Bedakan antara kedua kalimat pada a dan b. Ketika syarat dinerikan di awal, maka selama
persayaratn itu dipenuhi , maka perulangan dilakukan. Jika kondisi sudah tidak dipenuhi maka
berhenti. Sedangakan pada kasus syarat di akhir, dikerjakan serangkaian langkah. Setiap
selesai rangkaian langkah diperiksa apakah kondisi sudah dicapai, jika belum maka proses
diulangi lagi.
2. Pemberhentian dengan pencacah
Pemberhentian dengan pencacah, artinya dari awal sudah ditentukan bahwa perulangan akan
dilakukan berapa kali. Pencacah ini juga ada dua macam cara, yaitu
a. Pencacah naik

Pemberhentian dengan pencacah naik artinya untuk suatu pencacah, misalkan i dari 1
sampai 100 lakukan rangkain langkah x. Artinya langkah tersebut akan diulangi sebanyak
seratus kali
b. Pencacah turun
Pemberhentian dengan pencacah turun , artinya sebaliknya untuk suatu pencacah i dari
100 sampai 1 lakukan rangkaian langkah x, artinya langkah x akan diulangi sebanyak
seratus kali.
Penggunaan beberapa macam pemberhentian di atas tergantung dari situasi dan kondisi, untuk
lebih jelasnya akan dijelaskan pada tiap-tiap kegiatan Belajar.

Baik, pada Kegiatan Belajar pertama ini dimulai dengan struktur perulangan dengan sayarat di
depan.
Perhatikan kembali dua permasalahan di atas.
Kasus 1
Diketahui potongan algoritma berikut
Algoritma Perulangan1
Variabel i : integer

150 Pemrograman Dasar SMK Kelas X Sem 1

1) i=1
2) WHILE (i<=10)
3) WRITE Hello
4) i=i+1
5) END

Jika ditelusuri maka, akan menghasilkan proses sebagai berkut.
Mula-mula nilai i =1
Selama i<=10 maka cetak kata kata Hello dan naikkan nilai i = i+1
Dengan demikian urutan perintah yang dilakukan adalah:
- Mulai i=1
- Cek apakah i<=10? Iya karena i=1, berarti cetak Hello, tambahkan i = i+1=2
- Cek apakah i<=10? Iya karena i=2, berarti cetak Hello, tambahkan i = i+1=3
- Cek apakah i<=10? Iya karena i=3, berarti cetak Hello, tambahkan i = i+1=4
- Cek apakah i<=10? Iya karena i=4, berarti cetak Hello, tambahkan i = i+1=5
- Cek apakah i<=10? Iya karena i=5, berarti cetak Hello, tambahkan i = i+1=6
- Cek apakah i<=10? Iya karena i=6, berarti cetak Hello, tambahkan i = i+1=7
- Cek apakah i<=10? Iya karena i=7, berarti cetak Hello, tambahkan i = i+1=8
- Cek apakah i<=10? Iya karena i=8, berarti cetak Hello, tambahkan i = i+1=9
- Cek apakah i<=10? Iya karena i=9, berarti cetak Hello, tambahkan i = i+1=10
- Cek apakah i<=10? Iya karena i=10, berarti cetak Hello, tambahkan i = i+1=11
- Cek apakah i<=10? Tidak karena i=11, berarti STOP keluar dari perulangan, END.
- Jadi dengan dmeikian kata Hello dicetak 10 kali.

Kasus 2
Pada kasus 2, diminta membuat algoritma untuk menuliskan semua bilangan kelipatan 5

yang kurang dari 100.
5 10 15 20 25 ... 95
Strategi yang harus dijalankan adalah menentukan:

1) Tentukan iterator, yaitu variabel yang berperan sebagai penggerak perulangan
2) Tentukan sentinel, syarat perulangan yang dibutuhkan agar perulangan dapat berhenti.
Untuk memecahkan permasalahan tersebut, ada beberapa strategi yang bisa diterapkan.

Jika 5, 10, 15, adalah suku dari sebuah barisan, bagaimana cara mendapatkan setiap
sukunya? Bisa dari rumus suku ke-n atau menghubungkan antara suku ke n dengan suku
sebelumnya. Kita tahu bahwa barisan di atas dapat dituliskan ulang dalam bentuk 5x1, 5x2, 5x3,
dan seterusnya, maka dalam hal ini bilangan 1, 2, 3 sebagai iterator, selanjutnya dapat dituliskan
langkah-langkahnya adalah sebagai berikut.

Bab 3 Algoritma Perulangan 151

1) Nilai awal i =1 {i sebagai iterator} {syarat a<100 disebut sentinel}
2) Suku awal, a=5
3) Selama a< 100 maka lakukan langkah berikut
4) Tuliskan a;
5) i=i+1;
6) a=5*i
7) Selesai

Dalam tiap perulangan iterator dan sentinel harus ada. Iterator akan menjamin perulangan

dilakukan hingga mencapai kondisi (sentinel) dipenuhi sedangkan sentinel akan menjamin

perulangan akan berhenti.

Perhatikan potongan algoritma di atas, kita dapat menelusuri algoritma di atas sebagai

berikut.

Pertama nilai i=1 dan a=5

Diperiksa apakah a<100? Iya, maka perintah berikutnya dijalankan

Tuliskan a {output: 5}

i=i+1=2 {nilai i menjadi 2}

a=5*i=5*2=10 {nilai a menjadi 10}

Di akhir struktur maka, kembali ke atas untuk diperiksa persyaratan

Apakah a<100? Iya, maka perintah berikutny dijalankan lagi

Tuliskan a {output: 10}

i=i+1=3 {nilai i menjadi 3}

a=5*i=5*3=15 {nilai a menjadi 15}

Di akhir struktur maka, kembali ke atas untuk diperiksa persyaratan

Apakah a<100? Iya, maka perintah berikutny dijalankan lagi

Tuliskan a {output: 15}

i=i+1=4 {nilai i menjadi 4}

a=5*i=5*4=20 {nilai a menjadi 20}

dan seterusnya sehingga ketika a=95, i=19

Apakah a<100? Iya, maka perintah berikutnya dijalankan lagi

Tuliskan a {output: 95}

i=i+1=20 {nilai i menjadi 20}

a=5*i=5*20=100 {nilai a menjadi 100}

Apakah a<100? Tidak perulangan maka berhenti

Jadi keluaran dari algoritma adalah 5 10 15 ... 95

Struktur Perulangan dengan WHILE DO

152 Pemrograman Dasar SMK Kelas X Sem 1

Dalam berbagai bahasa pemrograman dikenal struktur WHILE DO, yang berarti selama memenuhi
kriteri/kondisi tertentu, maka dilakukan serangkaian proses. Struktur ini dapat diterapkan pada
contoh di atas sebagai berikut.
Algoritma Kelipatan5
Variabel i, a:integer

1) i =1 {i sebagai iterator}
2) a=5
3) WHILE (a< 100) DO
4) WRITE a
5) i=i+1
6) a=5*i
7) END

Alternatif Penyelesaian
Selain menggunakan bentuk 5x1, 5x2, ..., 5xn sebagai model perulangan kita juga dapat melihat
hubungan sebagai berikut
Suku pertama =5
Suku kedua = 5+5 =10
Suku ketiga = 10+5=15
Suku keempat =15+5=20
Dan seterusnya

Sehingga dapat dilihat hubungan bahwa suku ke-n diperoleh dari suku sebelumnya ditambah
dengan 5. Sehingga yang menjadi iterator di sini adalah a itu sendiri dangkan sentinelnya tetap.
Sehingga dapat dibuat algoritma alternatif untuk permasalahan di atas sebagai berikut
Algoritma Kelipatan5
Variabel a:integer

1) a=5
2) WHILE (a< 100) DO
3) WRITE a
4) a=a+5
5) END

Algoritma ini lebih sederhana buka? Coba kita telusuri idenya.
Pertama a=5
Periksa apakah a<100, iya maka lakukan

a=a+5=5+5=10
Periksa apakah a<100, iya maka lakukan

Bab 3 Algoritma Perulangan 153

a=a+5=10+5=15
Periksa apakah a<100, iya maka lakukan

a=a+5=15+5=20
dan seterusnya
Periksa apakah a<100, iya maka lakukan

a=a+5=5+5=10
Periksa apakah a<100? Tidak maka berhenti

Dari kedua macam solusi di atas, dapat disimpulkan bahwa dalam menentukan struktur perulangan
untuk masalah yang sama bisa lebih dari satu. Untuk lebih memperjelas pemahahaman kalian
mengenai struktur ini, perhatikan satu contoh brikut.

Contoh 1
Kalian pernah belajar barisan dan deret bilangan kan? Perhatikan barisan berikut
2, 4, 6, 8, ....
Rancang sebuah algoritma untuk menentukan suku ke -20.
Jawab:
Pada contoh ini, berhentinya perulangan berdasarkan urutan suku ke berapa.

2, 4, 6, 8 ......
Urutan suku ke-n akan menggunakan hubungan antara n dengan suku ke-n. Ini berarti kita harus
menggunakan iterator i sebagaimana contoh pertama yang akan berhenti jika i = n.
Untuk menentukan suku ke 20, misalkan dapat dicari dengan algoritma berikut.
Algoritma BarisanGenap
Variabel i,a:integer

1) i=1
2) a=2
3) WHILE i<20 DO
4) i=i+1
5) a=a+2
6) WRITE a
7) END

Perhatikan algoritma di atas, mengapa menggunakan sentinel i<20, bukannya i<=20? Misalkan
digunakan bentuk sentinelnya i<=20, maka ketika i=20 masih dapat diolah dalam struktur
perulangan hingga nilai i=21 dan nilai a bukan lagi nilai suku ke 20 tapi nilai suku ke 21 sehingga
tidak sesuai dengan tujuan.

154 Pemrograman Dasar SMK Kelas X Sem 1 ... 19 20 (STOP)
... 38 40
Untuk memeriksa dapat dicek dengan tabel berikut
I 1234
A2 4 6 8

Perintah WRITE diletakkan di luar struktur perulangan, karena yang dicari hanyalah suku ke-20
dari barisan tersbut, berbeda dengan Kasus 1 yaitu menuliskan semua bilangan kelipatan 5
sedangkan pada kasus ini hanya suku ke-20 saja.

Penyajian struktur perulangan WHILE DO dengan flowchart
Pada prinsipnya strutur WHILE DO adalah struktur perulangan dengan menggunakan persyaratn
(percabnagan di depan). Jika syarat dipenuhi maka proses dilanjutkan pada sebuah blok yang
terdiri serangkaian operasi. Di akhir blok maka aliran proses dikembalikan ke atas, yaitu pada
syarat yang ditetapkan di awal. Aliran ini ditunjukkan oleh garis panah. Berikut ini flowcharts ecara
umum dari struktur

WHILE (kondisi) DO
Pernyataan

Kondisi
Benar
Pernyataan

Salah

Dengan flowchart dapat disajikan algoritma pada kasus 1 sebagai berikut.

Bab 3 Algoritma Perulangan 155

Algoritma Kelipatan5 START
Variabel a:integer a=5

1) a=5 a<100
2) WHILE (a< 100) DO Benar
3) WRITE a WRITE a
4) a=a+5
5) END a=a+5

Salah
END

Sedangkan pada kasus dua START
Algoritma BarisanGenap
Variabel i, a:integer i=1
a=2
1) i=1
2) a=2 i<20
3) WHILE i<20 DO
4) i=i+1 Benar
5) a=a+2
6) WRITE a i=i+1
7) END a=a+2

Salah

WRITE a

END

156 Pemrograman Dasar SMK Kelas X Sem 1

Kerjakan LKS berikut secara berkelompok.

LEMBAR KERJA SISWA

1. Buatlah algoritma untuk menenentukan suku terbesar dari barisan 1, 2, 4, 7, 11 ....yang kurang

dari 200 dan flowchartnya menggunakan struktur WHILE DO. Sebagai bantuan berikut ini telah

diberikan strategi penyusunan algoritma. Lengkapilah setiap langkah dan algoritma dengan tepat.

a. Algoritma dengan pseudocodepertama, cari hubungan antar suku barisan

1, 2, 4, 7, 11, 16 ....

Suku pertama: 1

Suku Kedua = 2 =1+1

Suku ketiga = 4 =2+2

Suku keempat = 7 = 4 + ...

Suku kelima = 11 = 7 + ....

Dan seterusnya sehigga diperoleh ....

Suku ke-n adalah suku sebelumnya + ....

Algoritma berhenti ketika suku ke-n kurang dari 200

Langkah

1) a=...... {Nilai suku pertama}

2) i=... {karena sudah sampai suku kedua yang diketahui}

3) WHILE (...<...) DO

4) a= ... + ...

5) i= ...+ ... {nilai suku berikutnya jumlahan dua suku sebelumnya}

6) WRITE ...

7) END

b. Algoritma dengan flowchart
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

Bab 3 Algoritma Perulangan 157

.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

2. Buatlah algoritma untuk mencari Jumlah deret berikut

1+4+9+16 + ...+100

Jawab:

a. Kasus ini adalah penjumlahan bairsan (deret ) bilangan kuadrat.

1+4+9+16 + ...+100 = 12 + 22 + 32 + ...102

Langkah-langkah

1) Jumlah=0 {Jumlah awal }

2) i=...

3) WHILE (i <...) DO

4) Jumlah= ... + i*i {perbarui nilai jumlah}

5) i= ...+ ...

6) WRITE .......

7) END

b. Buatlah flowchart dari algoritma yang sudah kalian peroleh.

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

3. Buatlah algoritma dengan pseudocode untuk menentukan suku ke-30 dan flowchartya
1, 1, 2, 3, 5, 8,....{barisan bilangan fibonacci}

158 Pemrograman Dasar SMK Kelas X Sem 1

Jawab :

a. Algoritma untuk menentukan suku ke-n dari barisan 1,1,2,3,5,8,....

Pertama harus dicari dulu bentuk barisannya

Suku pertama : 1

Suku kedua=1

Suku ketiga = 2, Dari mana? 2=1+1

Suku ketiga = 3, dari mana? 3= 2+1

Suku keempat=5, dari mana ? 5 = ...+ ....

Suku kelima=8, dari mana? 8=...+ ....

Jadi suku ke-30 adalah penjumlahan dari .....

Jadi idenya nanti adalah diberikan dua buah nilai awal, a dan b, kemudian dengan iterator i,

algoritma akan memperbarui nilai a dan b

1) a=...... {Nilai suku pertama}

2) b=...... {Nilai suku kedua}

3) i=2 {karena sudah sampai suku kedua yang diketahui}

4) WHILE (...<...) DO

5) i= ... + ...

6) c= ...+ ... {nilai suku berikutnya jumlahan dua suku sebelumnya}

7) a=..... {perbarui nilai a utk perulangan berikutnya}

8) b =.... {perbarui nilai b untuk perulangan berikutnya}

9) WRITE ...

10) END

b. Flowchart
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

Bab 3 Algoritma Perulangan 159

.............................................................................................................................................
.............................................................................................................................................

3.1.2.4. Mengasosiasikan
Dari kegiatan belajar kali apa yang dapat kalian simpulkan mengenai algorita perulangan dengan
kondisi di awal? Lengkapi rangkuman berikut.

1. Struktur perulangan dalam suatu algoritma adalah .......................................................
..................................................................................................................................................
...........................................................................................................................

2. Struktur perulangan dengan kondisi di depan mengandung arti ...................................
..................................................................................................................................................
...........................................................................................................................
.......................................................................................................................................

3. Struktur perulangan memerlukan iterator dan sentinel. Fungsi keduanya adalah
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
.........................................................................................

4. Bentuk umum struktur perulangan dengan kondisi di depan menggunakan struktur WHILE
DO adalah ......................................................................................................
..................................................................................................................................................
...........................................................................................................................
..................................................................................................................................................
...........................................................................................................................
..................................................................................................................................................
...........................................................................................................................

3.1.2.5. Mengkomunikasikan
Presentasikan hasil pekerjaan LKS dan rangkuman kalian di depan kelas. Diskusikan hasilnya
dengan teman-teman kalian.
3.1.3. Rangkuman
1. Algoritma perulangan adalah sebuah struktur untuk melakukan serangkaian proses
secara berulang-ulang

3.1.4. Tugas
Gunakan algoritma perulangan dengan kondisi di awal untuk semua permasalahan di bawah ini.

160 Pemrograman Dasar SMK Kelas X Sem 1

1. Buatlah sebuah algoritma yang akan mencetak keluaran berupa tulisan Hello World sebanyak
1000 kali.

2. Buatlah sebuah algoritma untuk menentukan hasl penjumlahan
1+2+3+4+...+1000

dalam pseudocode dan flowchart.
3. Buatlah sebuah algoritma untu menentukan suku ke-50 dari barisan

2,7,12,17, .....
dalam pseudocode dan flowchart
4. Buatlah sebuah algoritma untuk menjumlahkan semua bilangan kelipatan 7 yang kurang dari
100 dalam pseudocode dan flowchart

3.1.5. Uji Kompetensi
A. Pilihan ganda

Pilihlah jawaban yang benar dengan memberikan tanda silang pada huruf a, b, c, d, atau e!
1. Berikut ini permasalahan yang memerlukan struktur perulangan kecuali ....

a. Menyimpan sekumpulan data murid di sebuah sekolah
b. Menghitung rata-rata hasil ujian semua siswa kelas X
c. Mengurutkan bilangan
d. Mencari judul buku dari koleksi perpustakaan
e. Menghitung konversi suhu
2. Salah satu bagain dari sebuah perulangan adalah sentinel, fungsinya adalah ....
a. Agar perulangan berjalan
b. Agar perulangan ada titik hentinya
c. Agar proses atau langkah jelas, tidak ambigu
d. Agar hasil akhirnya benar
e. Agar tidak ada perulangan dalam perulangan
Perhatikan algoritma berikut untuk soal nomor 3 dan 4
Algoritma UlangAlik
Variabel i, a, n:integer
1) n=10
2) a=2
3) i=1
4) WHILE a<=3n DO
5) a=a+4
6) WRITE a
7) END

Bab 3 Algoritma Perulangan 161

3. Output dari algoritma di atas adalah ...
a. 28
b. 29
c. 30
d. 31
e. 32

4. Jika nilai n dan a diganti dengan nilai berturut-turut adalah 5 dan 20 maka output algoritma di
atas adalah ....
a. 20
b. 24
c. 28
d. 32
e. 36

5. Perhatikan algoritma berikut
Algoritma UlangAlik
Variabel i, a, n, sum:integer
1) a=1
2) n=30
3) sum=0
4) WHILE a<n DO
5) a=i*i
6) i=i+1
7) WRITE sum
8) END
Apakah output dari algoritma di atas?
a. 40
b. 45
c. 50
d. 55
e. 65

B. Essay

Buatlah algoritma untuk menentukan jumlah bilangan ganjil yang kurang dari 30 dengan
struktur WHILE DO. Sajikan dalam pseudocode dan flowchart!

162 Pemrograman Dasar SMK Kelas X Sem 1

3.2. KEGIATAN BELAJAR 2 PERULANGAN DENGAN KONDISI DI AKHIR
Sebagaimna yang dijelaskan di awal bahwa perulangan dengan kondisi persyaratan dapat

di awal maupun di akhir. Keduanya mempunyai fungsi dan tujuan yang sama dan dapat dikonversi
satu sama lain. Dari bentuk bentuk persyaratan di di awal menjadi persyaratan di akhir dan
sebaliknya. Namun pada beberapa kasus, ada permasalahan yang lebih cocok jika menggunakan
perulangan dengan syarat di awal, namun sebaliknya juga ada permasalahan yang lebih cocok
menggunakan perulangan dengan syarat di akhir.
3.2.1. Tujuan Pembelajaran
Dengan kegaiatan belajar ini siswa diharapkan memahami algoritma perulangan dengan kondisi di
akhir dan menerapkannya untuk menyelesakan masalaha dalam dunia nyata
3.2.2. Aktivitas Kegiatan Belajar
3.2.2.1. Mengamati
Kasus 1
Perhatikan potongan algoritma berikut.
Algoritma HELLO
Variabel i:integer

1) i=1
2) REPEAT
3) WRITE Hello
4) i=i+1
5) UNTIL i=10

Kasus 2 Algoritma 2
Perhatikan kedua algoritma ini Variabel a:integer
Algoritma 1
Variabel a:integer 1) a=5
2) REPEAT
1) a=5 3) WRITE a
2) WHILE a<=100 DO 4) a=a+5
3) WRITE a 5) UNTIL a>100
4) a=a+5 6) END
5) END

3.2.2.2. Menanya
Dari dua kasus di atas, buatlah pertanyaan seperti contoh berikut.

Bab 3 Algoritma Perulangan 163

Kasus 1

1. Apa keluaran dari algoritma di atas, berapa kali dicetak Hello?
2. Apa arti REPEAT UNTIL?
3. Apa fungsi variabel i?
4. Apa fungsi kondisi i=10, dan sebagainya

Kasus 2

1. Apa keluaran dari kedua algoritma tersebut?
2. Apa arti REPEAT UNTIL?
3. Perintah yang manakah yang akan diulangi terus? Kapan perulangan itu dihentikan
4. Kapan perulanagan seperti [ada algoritma 2 digunakan?

3.2.2.3. Mengumpulkan Informasi/Mencoba
Pada dua kasus ini ditunjukkan bagaimana membuat perulangan dengan kondisi di akhir.

Penggunaan kata REPEAT UNTIL menjadi kata kunci dari struktur perulangan ini.
Perhatikan Kasus 1, diberikan nilai awal i=1, kemudian diperintahkan untuk mengulangi

(REPEAT) dua pernyataan perikutnya WRITE Hello diikuti penambahan nilai i, i = i+1. Kemudian
ada perintah UNTIL (i=10). Artinya perulangan dilakukan sehingga i=10. Dari sini jelas apa peranan
i dan kondisi i=10. Variabel i berfungsi sebagai iterator, yaitu variabel yang akan terus
menyebabkan perulangan shingga dipenuhi i==10, perulangan baru akan berhenti. Jadi kondisi
1==10 menjadi sentinel nya. Apa yang terjadi jika tidak ada i atau kondisi, maka bisa jadi
perulangan akan terus dilakukan tanpa batas. Maka algoritma menjadi salah karena tidak memnuhi
syarat finite (terbatas) seperti yang telah dijelaskan pada Bab-bab awal.

Perhatikan Kasus 2.Pada kasus dua ditunjukkan perbandingan antara dua algoritma.
Algoritma 1 dan algoritma 2 menunjukkan dua buah algoritma dengan tujuan sama namun
disajikan dengan dua cara yang berbeda. Sama-sama menggunakan perulangan namun pada
Algoritma 1 digunakan perulangan dengan kondisi di awal sedangkan pada Algoritma 2 perulangan
dengan kondisi di akhir.

Dalam struktur perulangan dengan kondisi di awal, mensyaratkan bahwa perulangan
dilakukan selama kondisi tertentu masih dipenuhi. Ini ditandai dengan penggunaan kata kunci
WHILE (kondisi) DO. Sebaliknay dalam perulangan dengan kondisi di akhir.
Perhatikan proses dalam Algoritma 2 sebagai berikut.

1) a=5
2) REPEAT
3) WRITE a
4) a=a+5
5) UNTIL a>100

164 Pemrograman Dasar SMK Kelas X Sem 1

6) END

Pada langkah pertama, diberikan kondisi awal a=5.

Perintah REPEAT, berarti ulangi dua perintah di bawahnya:

WRITE a {tuliskan nilai a}

a=a+5 {tambahkan a dengan 5}

sampai kondisi a>100 dipenuhi.

Sehingga dapat ditelusuri tiap langkahnya sebagai berikut
- Nilai awal a =5
- Tuliskn nilai a, yaitu 5
- a=a+5=10
- Dicek apakah a>100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 10
- a=a+5 = 15
- Dicek apakah a>100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 10
- a=a+5 = 20
- Dicek apakah a>100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 10
- a=a+5 = 25
- Dicek apakah a>100? Belum, maka ulngai perintah kembali
- Dan seterusnya sehingga dicapai
- a=a+5 = 95
- Dicek apakah a>100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 95
- a=a+5 = 100
- Dicek apakah a>100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 100
- a=a+5 = 105
- Dicek apakah a>100? Iya, maka STOP
Jadi bentuk perulngan dengan kondisi di akhir menggunakan pseudocode adalah sebagai
berikut

REPEAT
Pernytaan1
Pernyataan2
Dst

UNTIL (kondisi)

Bab 3 Algoritma Perulangan 165

Penyajian dengan flowchart
Ingat kembali penyajian dengan flowcharat untuk kondisi WHILE DO

Kondisi
Benar
Pernyataan

Salah

Perhatikan gamabr di atas, dalam struktur WHILE DO, selama kondisi benar, perulangan
dilakukan, sampai akhirnya ketika kondisi sudah tidak dipenuhi lagi maka keluar dari
perulangan. Bagaimna dengan struktur REPEAT UNTIL? Berikut ini penyajiannya

Pernyataan
SALAH

Kondisi
Benar

Coba kita bandingkan flowchart dari kedua algoritma pada Kasus 2 di atas

166 Pemrograman Dasar SMK Kelas X Sem 1 START

START

a=5 a=5

a<=100 WRITE a
Benar
WRITE a

Salah a=a+5

Salah

a=a+5

END a>100
Benar
END

Agar lebih memperjelas pemahaman kalian bagaimana penggunaan perulangan dengan kondisi di
akhir, kerjakan LKS berikut ini.

LEMBAR KERJA SISWA

1. Perhatikan barisan berkut ini
2, 4, 6, 8 ......

Akan dibuat algoritma untuk menentukan suku ke-20 dari barisan tersebut. Berdasarkan
pembahasan pada KB sebelumnya, sudah disusun algoritma dengan menggunakan struktur
WHILE DO sebagai berikut dalam pseudocode dan flowchart berikut ini

Bab 3 Algoritma Perulangan 167

Algoritma Genap START
Variabel i,a:integer
i=1
1) i=1 a=2
2) a=2
3) WHILE i<20 DO i<20
4) i=i+1
5) a=a+2 Benar
6) WRITE a
7) END i=i+1
a=a+2
Salah

WRITE a

END

Konversikan algoritma di atas ke dalam struktur REPEAT UNTIL dalam bentuk pseudocode-nya
(dengan melengkapi isian) maupun flowchartnya!
Jawab:
a. Algoritma dengan pseudocode

Dengan struktur WHILE DO Dengan struktur REPEAT UNTIL

Algoritma Genap Algoritma Genap
Variabel i,a:integer Variabel i,a:integer

1) i=1 1) i=....
2) a=2 2) a=...

3) WHILE i<20 DO 3) REPEAT
4) i=i+1 4) ......=........
5) a=a+2 5) ......=.........
6) WRITE a 6) UNTIL (...............)
7) END 7) WRITE a
8) END

b. Algoritma dengan Flowchart

168 Pemrograman Dasar SMK Kelas X Sem 1

Dengan struktur WHILE DO Dengan struktur REPEAT UNTIL

START ............

i=1 ....................
a=2 ....................

i<20 Salah .................
.................
Benar Salah
..........
i=i+1 Benar
a=a+2 ...................

WRITE a

END .............

`

2. Susunlah sebuah algoritma untuk menentukan suku terbesaar dari barisan 1, 2, 4, 7, 11 ....yang

kurang dari 200 dan buatlah flowchartnya menggunakan struktur REPEAT UNTIL

a. Algoritma dengan pseudocode

Pertama, cari hubungan antar suku barisan

1, 2, 4, 7, 11, 16 ....

Suku pertama: 1

Suku Kedua = 2 =1+1

Suku ketiga = 4 =2+2

Suku keempat = 7 = 4 + ...

Suku kelima = 11 = 7 + ....

Dan seterusnya sehigga diperoleh ....

Suku ke-n adalah suku sebelumnya + ....

Algoritma berhenti ketika suku ke-n kurang dari 200.

Berikut ini algoritma dalam bentuk pseudocode.

Algoritma BarisanBilangan

Variabel ..............................

1) a=...... {Nilai suku pertama}

Bab 3 Algoritma Perulangan 169

2) i=... {karena sudah sampai suku kedua yang diketahui}

3) REPEAT

4) a= ... + ...

5) i= ...+ ...

6) UNTIL (.......<........)

7) WRITE ...

8) END

b. Algoritma dengan flowchart
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

3. Buatlah algoritma untuk mencari Jumlah deret berikut
1+4+9+16 + ...+100

Jawab:
a. Kasus ini adalah penjumlahan barisan (deret ) bilangan kuadrat.
1+4+9+16 + ...+100 = 12 + 22 + 32 + ...102

Algoritma DeretKuadrat {Jumlah awal }
Variabel ......................
1) Jumlah=0

170 Pemrograman Dasar SMK Kelas X Sem 1

2) i=... {nilai awal i}
3) REPEAT {perbarui nilai jumlah}
4) i= ...+ ...
5) Jumlah= ... + i*i
6) UNTIL (...................)
7) WRITE ...
8) END

b. Sajikan algoritma (a) dengan flowchart
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

3.2.2.4. Mengasosiasikan

Dari kegiatan belajar ini, tuliskan kesimpulan mengenai apa yang sudah kalian pelajari dalam
rangkuman berikut.

1. Struktur perulangan dengan kondisi di akhir adalah ...............................................................
........................................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................

2. Bentuk umum struktur perulangan dengan kondisi di depan menggunakan struktur REPEAT
UNTIL adalah ......................................................................................................................
........................................................................................................................................................
...........................................................................................................................................

Bab 3 Algoritma Perulangan 171

........................................................................................................................................................
...........................................................................................................................................
........................................................................................................................................................
..........................................................................................................................................
3. Perbedaan persayaratan antara struktur perulangan dengan WHILE DO dan REPEAT UNTIL,
selain letaknya, adalah .......................................................................................................
........................................................................................................................................................
...........................................................................................................................................
........................................................................................................................................................
............................................................................................................................................

3.2.2.5. Mengkomunikasikan
Presentasikan hasil pekerjaan LKS dan rangkuman kalian di depan kelas. Diskusikan hasilnya
dengan teman-teman kalian.

3.2.3. Rangkuman

3.2.4. Tugas
1. Buatlah sebuah algoritma yang akan mencetak keluaran berupa tulisan Hello World
sebanyak 1000 kali menggunakan algoritma perulangan dengan kondisi di akhir.
2. Buatlah sebuah algoritma untuk menentukan hasl penjumlahan
1+2+3+4+...+1000
dalam pseudocode dan flowchart menggunakan algoritma perulangan dengan kondisi di
akhir
3. Buatlah sebuah algoritma untu menentukan suku ke-50 dari barisan
2,7,12,17, .....
dalam pseudocode dan flowchart menggunakan algoritma perulangan dengan kondisi di
akhir
4. Buatlah sebuah algoritma untuk menjumlahkan semua bilangan kelipatan 7 yang kurang
dari 100 dalam pseudocode dan flowchart menggunakan algoritma perulangan dengan
kondisi di akhir

3.2.6. Uji Kompetensi
A. Pilihan Ganda

Pilihlah jawaban yang benar dengan memberikan tanda silang pada huruf a, b, c, d, atau e!

1. Berikut ini pernyataan yang benar mengenai perulangan dengan struktur REPEAT UNTIL,
kecuali ....
a. kondisi diperiksa setelah proses dilakukan

172 Pemrograman Dasar SMK Kelas X Sem 1

b. dapat dikonversi ke bentuk WHILE DO dan sebaliknya
c. memerlukan iterator
d. perulangan dilakukan selama kondisi dipenuhi
e. minimal menjalankan perintah satu kali

2. Berikut ini komponen yang pasti berbeda antara struktur WHILE DO dengan REPEAT UNTIL
untuk permasalahan yang sama, yaitu
a. Iterator
b. Banyak iterasi
c. Kondisinya
d. Operasi hitung/prosesnya
e. hasilnya

Untuk soal 3 dan 4 perhatikan potongan algoritma berikut.

Algoritma PerulanganAkhir
Variabel i, a, n:integer

1) i= 1
2) a=5
3) n=30
4) REPEAT
5) a=a+ i*i
6) i = i+1
7) UNTIL a>n
8) WRITE a
9) END
3. Apa keluaran dari algoritma di atas?
a. 19
b. 26
c. 35
d. 36
e. 40
4. Jika pada baris keempat diganti n=0, maka keluarannya adalah
a. 5
b. 6
c. 19
d. 26
e. 35
5. Perhatikan algoritma berikut

Algoritma PerulanganAkhir
Variabel i, sum, a, n:integer

1) i= 1

Bab 3 Algoritma Perulangan 173

2) a=5
3) n=20
4) sum=a
5) REPEAT
6) sum=sum+a
7) a=a+3
8) i = i+1
9) UNTIL a>n
10) WRITE sum
11) END
Algoritma di atas adalah menjumlahkan deret berikut....
a. 5+8+11+...+35
b. 5+8+11+..+ 32
c. 5+8+11+..+ 29
d. 8+11+14+..+29
e. 8+11+1+...+32

B. Essay

Perhatikan algoritma berikut!

Algoritma HitungFaktor
Variabel i, sum, a, n:integer

1) i= 1
2) n=36
3) nfaktor=0
4) WHILE i<=36 DO
5) IF (36 MOD i==0) THEN
6) WRITE i
7) Nfaktor=nfaktor+1
8) WRITE nfaktor
9) END

1. Berapa nilai akhir dari nfaktor
2. Ubah algoritma di atas dalam bentuk perulangan dengan kondisi di akhir beserta flowchartnya!

174 Pemrograman Dasar SMK Kelas X Sem 1

3.3. KEGIATAN BELAJAR 3
PERULANGAN DENGAN KONDISI AKHIR DIINPUTKAN USER
Pada dua kegiatan belajar sebelumnya, telah diperkenalkan struktur perulangan dengan

kondisi di awal maupun di akhir. Beberapa vontoh sebelumnya menunjukkan bahwa syarat
diberikan oleh algoritma itu sendiri, misalkan beberapa permasalahan pada contoh-contoh yang
sudah dibahas.
Mencetak Hello 100 kali
Menuliskan semua kelipatan 5 yang kurang dari 100
Mencetak suku terbesar dari suatu bisan yang kurang dari 200
Mencari jumlah dari barisan kuadrat 1+4 + 9 ..+100
Pada contoh-contoh di atas pemberhentian perulangan diberikan oleh algoritma. Namun demikian
pada aplikasi nyata seringkali permasalahan yang tidak ditentukan oleh algoritma namun
ditentukan oleh pengguna algoritma.

3.3.1. Tujuan Pembelajaran
Dengan kegiatan belajar ini diharapkan siswa memahami algoritma perulangan dengan

kondisi diinputkan user dan menerapkannya untuk menyelesaikan masalah di kehidupan nyata.

3.3.2. Aktivitas kegiatan Belajar
3.3.2.1. Mengamati
Perhatikan beberapa kasus permasalahan berikut.
Kasus 1
Seorang programmer akan membuat algoritma untuk menjumlahkan bilangan 1+2+3+...+n, di
mana n ditentukan oleh pengguna. Tentu saja algoritma harus membaca berapa nilai n terlebih
dahulu. Jika pengguana memasukkan nilai n adalah 4 maka algoritma akan menghitung jumlahan
1+2+3+4=10 dan mencetaknya. Jika pengguna memasukkan nilai n adalah 100 maka algoritma
akan menghitung jumlahan 1+2+3+...+100 dan mencetak hasilnya.
Kasus 2
Perhatikan algoritma berikut.
Algoritma UlangVolumeBalok
Variabel p,l,t, V:integer

pilihan:karakter
1) REPEAT
2) READ p
3) READ l
4) READ t
5) V= p*l*t

Bab 3 Algoritma Perulangan 175

6) WRITE (V)
7) WRITE Ingin menghitung lagi? y/n
8) READ pilihan
9)UNTIL (pilihan==n)
10) END

3.3.2.2. Menanya
Dari dua kasus di atas, buatlah pertanyaan-pertanyaan yang semisal pertanyaan berikut.
Kasus1

1) Kapan algoritma pada kasus 1 berhenti? Bagaimana kondisi persaratannya?
2) Variabel manakah yang menjadi syarat pemberhentian?
3) Di manakah meletakkan syarat/kondisi dari user?
4) Bagaimana menerapkannya dengan struktur perulangan dengan kondisi di depan dan di

akhir?
Kasus 2

1) Apa maksud dan tujuan algoritma tersebut?
2) Apa tujuan menggunakan REPEAT UNTIL?
3) Apa fungsi pernyataan

WRITE Ingin menghitung lagi? y/n
4) Apa fungsi pernyataan

READ pilihan
5) Kapan perulangan berhenti

3.3.2.3. Mengumpulkan Informasi/Mencoba
Aplikasi algoritma dalam kehidupan nyata, khususnya yang terkait dengan struktur

perulangan, memerlukan syarat yang diinputkan oleh pengguna. Sebagai contoh, dalam sebuah
aplikasi kasir, ketika melayani pembeli, seorang kasir akan memasukkan data barang-barang yang
dibeli dengan barcode reader, hingga akhirnya kasir akan mengklik sebuah tombol untuk
menghitung total belanjaan. Proses memasukkan data dari barang pertama, kedua, dan ke barang-
barang berikutnya, adalah suatu bentuk perulangan. Dan perulangan ini akan berhenti hingga
akhrinya kasir mengeklik tombol untuk menghitung total belanjaan.

Contoh lain misalkan dalam sebuah video game dengan koin, ketika seorang anak
memasukkan koin, kemudian bermain dan akhirnya terjadi game over. Berikutnya biasanya, video
game akan menampilkan hitungan mundur menunggu anak untuk memasukkan koin berikutnya
agar permainan dapat dilanjutkan. Bentuk hitugan mundur ini juga menggunakan perulangan, dan
akan berhenti perulangan ini untuk dua kemungkinan, si anak memasukkan koin atau perhitungan
mundur selesai dan akhirnya masuk ke menu awal game kembali.

176 Pemrograman Dasar SMK Kelas X Sem 1

Perhatikan kembali Kasus 1 di atas. Sebuah algoritma disusun untuk menghitung

penjumlahan 1+2+...+n dengan nilai n diberikan oleh pengguna. Perbandingkan dua buah

algoritma berikut.

Algoritma JumlahBilangan1 Algoritma JumlahBilangan2

Variabel jumlah, i :integer Variabel jumlah, i, n :integer

1) jumlah=0 1) READ n

2) i=0 2) jumlah=0

3) WHILE (i <=100) DO 3) i=0

4) jumlah=jumlah + i 4) WHILE (i <=n) DO

5) i=i+1 5) jumlah=jumlah + i

6) WRITE jumlah 6) i=i+1

7) END 7) WRITE jumlah

8) END

Dua contoh algoritma di atas menunjukkan perbedaaan antara perulangan dengan kondisi
diberikan algoritma dan perulangan dengan kondisi diberikan oleh user. Algoritma
JumlahBilangan1 menggunakan kondisi (i<=100) yang diberikan oleh algoritma, sehingga jika
dijalankan kondisi ini selalu tetap. Tentu ini mnjadikan algoritma ini menjadi tidak fleksibel. Berbeda
dengan Algoritma JumlahBilangan2. Pada algoritma ini terdapat proses membaca nilai n, di mana
nilai n ini digunakan sebagai kondisi perulangan, (i<=n). Dengan struktur perulangan seperti ini,
algoaritma menjadi lebih fleksibel dan komunikatif terhadap pengguna. Pengguna bisa
memasukkan bilangan n berapa saja, dan hasil penjumlahan akan diberikan sesuai dengan nilai n
yang dimasukkan.

Lihat kembali Algoritma pada Kasus 2.
Algoritma UlangVolumeBalok
Variabel p,l,t, V:integer

Pilihan:karakter
1) REPEAT
2) READ p
3) READ l
4) READ t
5) V= p*l*t
6) WRITE (V)
7) WRITE Ingin menghitung lagi? y/n
8) READ pilihan
9)UNTIL (pilihan==n)
10) END

Bab 3 Algoritma Perulangan 177

Dalam perintah REPEAT ada baeberapa pernyataan berturut-turut READ P, READ l, READ
t, V= p*l*t, dan WRITE (V), di akhiri dengan sebuah pernyatan yang menginginkan pengguna
memasukkan y/n sebagai bentuk persetujuan apakah ingin mengulangi proses yang sama atau
tidak. Artinya, seorang pengguna bisa menghitung volume balok berkali-kali sehingga ia
mengetikkan karakter n di akhir proses sehingga algortima berhenti.

Permintaan kepada pengguna untuk memberikan kondisi pada perulanangan sangat
diperlukan pada suatu algoritma atau program. Karena hal ini akan menjadikan algoritma atau
program menjadi lebih interaktif dengan penggunanya.

LEMBAR KERJA SISWA
1. Tentukan algoritma dalam bentuk pseudocode pada permasalahan berikut (dimodifikasi dari KB

sebelumnya):
a. Menuliskan semua suku dari barisan 2,4,6,8... hingga suku ke-n
b. Mencari suku terbesar dari barisan 1,2,4,7,.... yang kurang dari n
Jawab :
a...........................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
b...........................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

178 Pemrograman Dasar SMK Kelas X Sem 1

.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

2. Sebuah algoritma disusun untuk menghitung besar biaya rekening PDAM. Algoritma meminta
masukan berupa Nomor Meteran pelanggan, besar pemakaian (dalam meter kubik).
Perhitungan biaya terdiri dari
- Biaya Beban: Rp 15.000,-
- Biaya pemakaian dengan aturan
10 m3 pertama, biayanya Rp. 1200,- / m3
Selebihnya dikenai biaya Rp 2000/m3.
Algoritma harus menampilkan biaya PDAM.
Selanjutnya, algoritma meminta input pengguna apakah akan menghitung lagi atau tidak,
hingga akhirnya pengguna menekan Y untuk keluar dari algoritma.
Susunlah algoritma tersebut dalam bentuk pseudocode dan flowchart.
Jawab
a. Algoritma dalam bentuk pseudocode
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

Bab 3 Algoritma Perulangan 179

.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

b. Algoritma dalam bentuk flowchart
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

3.3.2.4. Mengasosiasikan
Dari rangkaian kegiatan belajar kali ini, dan berdasarkan hasil pengerjaan LKS dapat

disimpulkan bahwa perulangan dengan kondisi yang diinputkan dari user sangat diperlukan
karena.......................................................................................................................................
...............................................................................................................................................
................................................................................................................................................
................................................................................................................................................
...............................................................................................................................................

180 Pemrograman Dasar SMK Kelas X Sem 1

3.3.2.5. Mengkomunikasikan

Presentasikan hasil pekerjaan LKS dan rangkuman kalian di depan kelas. Diskusikan
dengan teman-teman Anda yang lain.

3.3.3. Rangkuman
1. Algoritma perulangan dengan kondisi diinputkan oleh pengguna artinya bahwa proses

perulangan akan berhenti berdasarkan input dari user.
2. Input untuk pemberhentian bisa diberikan sebelum perulangan dilakukan atau dapat juga

diberikan di dalam perulangan perulangan itu sendiri.
3. Algoritma perulangan dengan kondisi akhir diinputkan pengguana dapat menggunakan struktur

WHILE DO, REPEAT UNTIL, atau struktur yang lain.

3.3.4. Tugas
1. Buatlah sebuah algoritma untuk menentukna suku ke-n dari barisan 2, 5, 8, 11, 14, ....
Sajikan dalam pseudocode dan flowchart!
2. Buatlah sebuah algoritma untuk menginputkan data mengonversi suhu dalam celcius ke
Reamur, farenheit dan Kelvin. Dalam algoritma tersebut penguna dapat melakukan
perhitungan secara berulang-ulang hingga mengehndaki untuk mengakhiri perhitungan.
3. Tentukan jumlahan dari deret matematika berikut
2+4+8+16+...+2n
Dengan n ditentukan oleh pengguna.
4. Carilah sebuah permasalahan di seiktarmu yang membutuhkan perulangan dengan kondisi
yang diinputkan user. Sajikan algoritma kalian dalam bentuk pseudocode dan fowchart.

3.3.5. Uji Kompetensi
A. Pilihan Ganda

Pilihlah jawaban yang benar dengan memberikan tnda silang pada huruf a, b, c, d, atau e!
1. Berikut ini pernyataan yang benar mengenai perulangan dengan konsidi akhir diinputkan

pengguna, kecuali ....
a. Kondisi dapat di awal ataupun di akhir perulangan
b. Inputan dari pengguna sebgai sentinel dapat diberikan sebelum perulangan
c. Inputan pengguna sebagai sentinel dapat diberikan di dalam perulangan
d. Inputan pengguna sebagai sentinel dapat diberikan setelah perulangan selesai
e. Dapat menggunakan REPEAT UNTIL

Untuk soal 2 dan 4 perhatikan algoritma berikut

Algoritma JumlahBilangan2
Variabel jumlah, a, i, n :integer

Bab 3 Algoritma Perulangan 181

1) READ n
2) READ a
3) jumlah=a
4) i=1
5) WHILE (a <=n) DO
6) a=a+2*i
7) jumlah=jumlah + a
8) i=i+1
9) WRITE jumlah
10) END
2. Output dari algoritma di atas jika dimasukkan nilai n dan a adalah 20 dan 3 adalah ....
a.
a. 32
b. 45
c. 55
d. 60
e. 65
3. Jika baris 8 dihilangkan, dengan outpout yang sama dengan nomor 3 yaitu nilai n adan a
adalah 20 dan 3, yang terjadi adalah ....
a. Hasilnya tetap sama
b. Perulangan tanpa henti
c. Iterasi tidak berjalan
d. Outputnya 120
e. Outputnya 99

Perhatikan algoritma berikut untuk no 4 dan 5.

Algoritma ganjilGenap

Variabel n:integer
Pilihan:karakter

1) REPEAT
2) READ n
3) IF (n MOD 2==0) THEN
4) WRITE Genap
5) ELSE
6) WRITE Ganjil
7) WRITE Ingin menghitung lagi? y/n
8) READ pilihan
9) UNTIL (pilihan==n)
10) END

4. Pernyataan yang benar mengenai algoritma di atas adalah ....
a. Input pengentian perulangan di dalam perulangan itu sendiri
b. Pengguna dapat menentukan bilangan ganjil genap sebanyak yang dia mau

182 Pemrograman Dasar SMK Kelas X Sem 1

c. Pengguna dapat behenti jika dia tidak mengetikkan karakter y
d. Algoritma di atas dapat diubah dalam struktur WHILE DO
e. Iteratornya adalah variabel pilihan

5. Untuk mengantisipasi bahwa pilihan =N atau n dianggap sama, yaitu pengguna ingin
menghentikan perulangan adalah dengan merubah kondisi sebagai berikut.
a. (pilihan<>y)
b. (pilihan <>y) OR (pilihan<>Y)
c. (pilihan==N)
d. (pilihan <>n) OR (pilihan<>N)
e. (pilihan <>n) AND (pilihan<>N)

B. Essay

Buatlah algoritma untuk menghitung luas persegi panjang secara berulang-ulang
dengan struktur WHILE DO!

Bab 3 Algoritma Perulangan 183

3.4. KEGIATAN BELAJAR 4 PERULANGAN MENGGUNAKAN PENCACAH NAIK

Sebagaimana penjelasan pada Kegiatan Belajar Pertama Bab 2 ini, pemberhentian dalam

suatu perulangan dapat dilakukan dengan menggunakan pencacah. Artinya dari awal sudah

ditentukan bahwa perulangan akan dilakukan berapa kali. Pencacah ini dibagi menjadi dua yaitu

pencacah naik dan pencacah turun. Pada kegiatan belajar kali ini kita akan belajar menggunakan

pencacah naik dalam perulangan.

3.4.1. Tujuan Pembelajaran

Dengan kegiatan belajar ini siswa diharapkan memahami algoritma perulangan dengan

pencacah naik dan amenerapkannya untuk menyelesaikan masalah nyata.

3.4.2. Aktivitas Kegiatan Belajar

3.4.2.1. Mengamati

Perhatikan dua algoritma berikut.

Algoritma TulisUlang1 Algorima TulisUlang2

Variabel i:integer Variabel i:integer

1) i=1 1) FOR i=1 TO 10 DO

2) WHILE (i<=10) DO 2) WRITE Hello
3) WRITE Hello 3) END

4) i=i+1

5) END

3.4.2.2. Menanya
Dari dua algoritma di atas susunlah pertanyaan yang semisal pernyataan berikut:

1) Apa tujuan dari kedua algoritma?
2) Kapan Algoritma TulisUlang1 dan TulisUlang2 berhenti?
3) Manakah yang lebih praktis di antara kedua algoritma di atas?
4) Manakah perulangan yang menggunakan pencacah?
5) Apakah yang dimaksud perulangan dengan pencacah?

3.4.2.3. Mengumpulkan Informasi/ Mencoba
Kedua algoritma di atas mempunyai keluaran yang sama yaitu mencetak tulisan Hello

sebanyak 10 kali. Pada algoritma TulisUlang1, perulangan menggunakan kondisi di awal, yaitu
dengan menggunakan struktur WHILE DO, sedangkan pada algoritma TulisUlang2, digunakan
struktur FOR i=1 TO 10. Maksudnya adalah untuk nilai i =1 sampai 10 kerjakan: WRITE Hello.
Artinya secara otomatis nilai i akan bertambah satu setiap perulangan. Dan dalam tiap perulangan
akan dituliskan kata Hello. Kapan berhenti? Sesuai dengan perintahnya bahwa ini dilakukan
sampai i=10. Nilai i=10 inilah yang menggantikan sentinel i<=10 pada struktur WHILE DO. Variabel
i,s ebagai iterator disebut variabel pencacah karena nilai i dihitung dari 1 sampai 10 maka disebut
pencacah naik. Dari namannya, variabel pencacah, tentu sebuah vvariabel pencacah maka tipe

184 Pemrograman Dasar SMK Kelas X Sem 1

data yang bisa dikenakan adalah tipe data ordinal (dapat dihitung), yaitu tipe data integer dan
karakter.

Jika ada pertanyaan manakah yang lebih praktis menggunakan struktur perulangan dengan
kondisi di depan/akhir atau menggunakan pencacah, semua tergantung pada masalah yang
dihadapi. Ada permasalahan yang lebih praktis menggunakan pencacah, namun ada juga lebih
baik menggunakan struktur perulangan dengan kondisi di awal/akhir.

Secara umum, bentuk struktur perulangan dengan pencacah naik dituliskan
FOR i=nilaiAwal TO nilaiAkhir DO
Pernyataan 1
Pernyataan 2
Dst

Variabel i dapat diganti dengan variabel lain. Sebagaimna dalam struktur WHILE DO maupun
REPEAT UNTIL, nilai awal dan nilai akhir dalam struktur FOR TO DO dapat ditentukan oleh
algoritma maupun ditentukan oleh pengguna.
Penyajian dengan Flowchart

Ada beberapa bentuk penyajian struktur FOR TO DO. Karena pada dasarnya bentuk FOR
TO DO adalah bentuk lain dari struktur WHILE DO maka ada yang menuliskannya sama persisi
dengan flowchart pada struktur WHILE DO. Namun demikian ada juga yang mempresentasikan
struktur FOR TO DO dalam bentuk berikut.

FOR i=nilaiAwal
TO nilaiAkhir

Pernyataan 1
Pernyataan 2

dst

Contoh 1
Perhatikan algoritma berikut.
Algoritma JumlahBilangan
Variabel i, jumlah:integer

1) jumlah=0

Bab 3 Algoritma Perulangan 185

2) FOR i=1 to 100 DO
3) jumlah=jumlah+i
4) WRITE jumlah
5) END

Contoh di atas adalah contoh algoritma menentukan jumlahan bilangan dari 1 sampai 100. Dengan
memodofikasi contoh di atas menajdi seperti berikut:

Contoh 2
Algoritma JumlahBilangan2
Variabel i, jumlah:integer

1) jumlah=0
2) FOR i=1 to 100 DO
3) IF (i mod 2==0) THEN
4) jumlah=jumlah+i
5) WRITE jumlah
6) END

Apa keluaran yang dihasilkan dari algoritma di atas? Jika kita telusuri, dalam setiap
perulangan ada suatu kondisi yang harus diperiksa yaitu jika (i mod 2==0) maka nilai i dijumlahkan
pada variabel jumlah. Artinya yang dijumlahkan hanyalah nilai i yang genap. Sehingga outputnya
adalah jumlahan 2+4+...+100.
Bentuk flowchart kedua algoritma di atas dapat dilihat pada Gambar berikut.

186 Pemrograman Dasar SMK Kelas X Sem 1 START
Jumlah=0
START
Jumlah=0

FOR i=1 TO 100 FOR i=1 TO 100
Jumlah=jumlah+i
Salah i mod 2==0
WRITE
jumlah Benar
END
Jumlah=jumlah+i

WRITE
jumlah

END

Agar lebih memperjelas pemahaman kalian mengenai struktur perulangan dengan pencacah naik,
kerjakan LKS berikut.

LEMBAR KERJA SISWA
Selesaikan permasalahan-permasalahan berikut secara berkelompok.
1. Rancanglah sebuah algoritma untuk menuliskan semua bilangan kelipatan 7 yang kurang dari

atau sama dengan 1000 dengan struktur perulangan menggunakan pencacah naik (struktur
FOR TO DO) beserta flowchartnya.
a. Sempurnakan pseudocode berikut
b. Ubah pseudocode (a) dalam bentuk flowchart
c. Cari algoritma alternatif lain
Jawab:
a. Algoritma dengan pseudocode:

Bab 3 Algoritma Perulangan 187

Pada kasus ini, kita tidak tahu berapa kali perulangan menuliskan semua kelipatan 7 yang
kurang dari atau sama dengan 1000 harus dilakukan, karena itulah kunci dari perulahan
dengan pencacah. Salah satu alternatifnya, adalah dengan menjalankan perulangan 1 sampai
1000, kemudian memilih manakah yang kelipatan 7 kemudian di tampilkan.

Algoritma .......................
Variabel i:integer
1) FOR i=... TO ...
2) IF (i mod .... == ....) THEN
3) WRITE (...)
4) END

b. Bentuk Flowchart
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
c. Algoritma alternatif lain
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

188 Pemrograman Dasar SMK Kelas X Sem 1

2. Rancanglah sebuah algoritma untuk menentukan suku ke-n dari barisan 1,2,4,7,11,16, ...
dengan struktur perulangan menggunakan pencacah naik (struktur FOR TO DO) beserta
flowchartnya.
Jawab:
a. Algoritma dalam bentuk pseudocode
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
b. Algoritma dalam bentuk flowchart
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

3. Diketahui sebuah permasalahan untuk menentukan suku terbesar dari barisan 2, 4, 8, 16, 32,
yang kurang dari n. Dapatkah menggunakan perualangan dengan pencacah naik? Mengapa?
Jawab:
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

Bab 3 Algoritma Perulangan 189

.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
4. Rancanglah sebuah algoritma yang menghitung jumlahan dari suatu bilangan asli berturut-turut
dengan nilai awal dan akhir ditentukan oleh pengguna. Sebagai contoh jika pengguna
memasukkan 12 sebagai nilai awal dan 90 sebagai nilai akhir, maka algoritma akan
menampilkan jumlahan dari 12+13+...+90. Gunakan perulangan dengan pencacah naik.
Jawab:
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

3.4.2.4. Mengasosiasikan
Dari kegiatan belajar dan pengerjaan LKS, tuliskan karakteristik dari algoritma perulangan

dengan pencacah naik, dan perbedaanya dengan algoritma perulangan dengan WHILE DO dan
REPEAT UNTIL.

3.4.2.5. Mengkomunikasikan
Presentasikan hasil pekerjaan LKS dan kesimpulan kalian di depan kelas. Diskusikan dengan
teman-teman sekelas kalian.
3.4.3. Rangkuman

1. Algoritma perulangan dengan pencacah naik adalah algoritma perulangan dengan variabel
pencacah di mana serangkain proses di lakukan seiring dengan proses bertambahnya
pencacah dari nilai awal tertentu, berturutan sampai nilai akhir.

190 Pemrograman Dasar SMK Kelas X Sem 1

2. Variabel pencacah ada dua macam yaitu pencacah naik dan pencacah turun
3. Algoritma dengan pencacah naik menggunakan struktur FOR TO DO.
3.4.4. Tugas
Dengan perulangan menggunakan pencacah naik, selesaaikan permasalahan berikut.
1. Buatlah algoritma menentukan suku ke n dari barisan 1,4,7,10, ...
2. Buatlah algoritma untuk menentukan jumlahan 1+22+32+...+n2
3. Buatlah algoritma untuk menuliskan semua bilangan kelipatan 4 atau 9 dari 1 sampai 1000.
4. Buatlah algoritma untuk menjumlahkan seluruh bilangan ganjil dari 1 sampai 200.

3.4.5. Uji Kompetensi
A. Pilihan Ganda
Pilihlah jawaban yang benar dengan memberikan tanda silang pada huruf a, b, c, d, atau e.

1. Berikut ini pernyataan yang benar menganai algoritma perulangan dengan struktur FOR
TO DO, kecuali ....
a. Nilai awal dan akhir variabel pencacah dapat diperoleh dari pengguna
b. Banyaknya iterasi tertentu
c. Variabel iterator bertambah nilainya satu-satu
d. Sulit diubah ke bentuk struktur WHILE DO
e. Nilai awal tidak harus dimulai dari 1

2. Syarat tipe data variabel pencacah adalah ....
a. dapat dihitung
b. tipe data apa saja
c. harus integer
d. bilangan real
e. karakter
Perhatikan algoritma berikut untuk menjawab soal no 3 - 4
Algoritma HitungUlang
Variabel a,i:integer
1) a=0
2) FOR i=1 TO 100
3) IF (i mod 5 == 0) THEN
4) WRITE i
5) a=a+1
6) WRITE a
7) END

3. Nilai akhir a adalah ....
a. 0

Bab 3 Algoritma Perulangan 191

b. 10
c. 20
d. 25
e. 100
4. Algoritma di atas adalah untuk menampilkan ....
a. Banyaknya faktor dari 100
b. Semua bilangan kelipatan 5
c. Jumlah seluruh bilangan kelipatna 5
d. Banyaknya bilangan ganjil
e. Banyaknya bilangan yang tidak habis dibagai 5
5. Perhatikan algoritma berikut
Algoritma Bilangan Sekutu
Variabel a,i,b:integer
1) READ a
2) READ b
3) c=4
4) FOR i=a TO b
5) c=2*i - c
6) WRITE c
7) END
Jika nilai a dan b berturut-turut adalah 5 dan 8, maka output algoritma di atas adalah ....
a. 5
b. 6
c. 7
d. 8
e. 9

B. Essay

Buatlah algoritma dengan untuk menentukan banyak faktor dari 30 dengan algoritma
perulangan menggunakan pencacah naik.

192 Pemrograman Dasar SMK Kelas X Sem 1

3.5. KEGIATAN BELAJAR 5 ALGORITMA PERULANGAN DENGAN PENCACAH

TURUN

Selain menggunakan pencacah naik, perulangan juga dapat menggunakan pencacah turun.
Pada pencacah naik, dengan struktur FOR i=1 nilaiAwal TO nilaiAkhir, i sebagai iterator, dimulai
dari nilaiAwal dan berakhir ketika i sama dengan nilai akhir. Dalam perulangan ini, nilai i otomatis
bertambah 1 dalam setiap perulangan. Bagaimna dengan pencacah turun? Ikuti kegiatan belajar
berikut.
3.5.1. Tujuan Pembelajaran

Dengan kegaiatan belajar ini, siswa diharapkan memahami algoritma perulangan dengan
pencacah turun dan menerapkannya dalam menyelesaikan masalah nyata.
3.5.2. Aktivitas kegiatan Belajar

3.5.2.1. Mengamati
Perhatikan masalah berikut ini.
Sebuah algoritma akan menuliskan bilangan 100 sampai 1. Perhatikan ketiga algoritma di bawah
ini.

Kondisi di depan Pencacah Naik Pencacah Turun

Algoritma HitungMundur1 Algoritma HitungMundur2 Algoritma HitungMundur3
VAR i:integer VAR i:integer VAR i:integer
1) i=100 1) FOR i=1 TO 100 DO 1) FOR i=100 DOWNTO 1 DO
2) WHILE (i>0) DO 2) a=100-i+1 2) WRITE i
3) WRITE i 3) WRITE a 3) END
4) i=i-1 4) END
5) END

3.5.2.2. Menanya
Dari algoritma di atas, buatlah pertanyaan-pertanyaan yang semisal dengan pertanyaan-
pertanyaan berikut ini.
1. Apa perbedaan dari ketiga algoritma di atas?
2. Mengapa pada algoritma kedua (struktur FOR TO DO) perlu menambahkan variabel a, padahal

yang lain tidak?
3. Apa persamaan algoritma 1 dan 3?
4. Apa yang dimaksud dengan pencacah turun? Bagian manakah yang mengindikasikan

pencacah turun?

3.5.2.3. Mengumpulkan Informasi/Mencoba
Ketiga algoritma di aatas adalah algoritma untuk menuliskan bilangan dari 100 hingga 1.

Salah satu kelebihan dari struktur dengan kondisi di awal/maupun di akhir, adalah fleksibilitas untuk

Bab 3 Algoritma Perulangan 193

menyelesaikan semua permasalahan perulangan. Berbeda dengan struktur perulangan dengan
kondisi di awal/akhir, pada perulangan dengan pencacah banyaknya iterasi sudah hanya dibatasi
oleh nilai awal dan nilai akhir iterator. Sehingga ada beberapa permasalahan yang tidak bisa
diselesaikan secara langsung oleh struktur ini.

Termasuk pada contoh di atas, perhatikan algoritma kedua (tengah), meskipun yang
dituliskan adalah bilangan yang berturutan 100, 99, ..., 1 namun dengan perulangan menggunakan
pencacah naik, perlu tambahan variabel a untuk mengkoversi dari pencacah naik, mulai i=1
menjadi bilangan 100. Oleh karena itu dituliskan a=100-i+1. Artinya jika i=1 dituliskan 100, jika i=2
dituliskan 99, dan seterusnya hingga jika i=100 maka dituliskan 1. Alternatif lain bisa langsung
dituliskan

WRITE 100-i+1
Agar lebih praktis, mengingat bahwa yang dituliskan adalah barisna bilangan yang turun dari
100, 99, ..1 maka dikenalkan perulangan dengan turun, yaitu dnegan menggunakan struktur FOR
DOWNTO sebagai berikut.
FOR i=100 DOWNTO 1 DO

WRITE i

Yang artinya, untuk nilai i=100 turun hingga 1, tuliskan i. Hasilnya adalah 100 99 98 97 ...1
Perhatikan contoh berikut
Contoh 1
Algoritma FaktorBilangan
Variabel i:integer
1) READ n
2) FOR i=n DOWNTO 1 DO
3) IF (n mod i==0) THEN
4) WRITE i
5) END

Tentukan output dari algoritma di atas jika penguna memasukkan nilai 36 sebagai nilai n!
Jawab:
Jika nilai n adalah 36, maka kita cek satu persatu
i=36, dicek apakah n mod i = 36 mod 36 sama dengan nol? Iya, berarti cetak 36.
i=35, dicek apakah n mod i = 36 mod 35 sama dengan nol? Tidak, tidak terjadi apa-apa
i=34. dicek apakah n mod i = 36 mod 34 sama dengan nol? Tidak, tidak terjadi apa-apa
...
i=18, dicek apakah n mod i = 36 mod 18 sama dengan nol? Iya, berarti cetak 18
...
i=1, dicek apakah n mod i = 36 mod 1 sama dengan nol? Iya, berarti cetak 1

194 Pemrograman Dasar SMK Kelas X Sem 1

Dari penelusuran di atas, dapadt disimpulkan bahwa algoritma akan mencetak nilai-nilai yang

dapat membagi habis n, yaitu 36, 18, 12, 9, 6, 4, 3, 2, 1.

Penyajian algoritma perulagan dengan pencacah turun menggunakan flowchart.

Penyajian algoritma perulangan dengan pencacah turun menggunakan flowchart tidak berbeda

dengan perulangan dengan pencacah naik. Berikut ini contoh penyajian algoritma dalam bentuk

pseudocode dan flowchart, yang sudah dibahas sebelumnya.

Algoritma HitungMundur3 START
Variabel i:integer

1) FOR i=100 DOWNTO 1 DO

2) WRITE i

3) END FOR i=100
DOWNNTO 1

WRITE i

END

Bab 3 Algoritma Perulangan 195

Algoritma FaktorBilangan START
Variabel i:integer
1) READ n
2) FOR i=n DOWNTO 1 DO
3) IF (n mod i==0) THEN
4) WRITE i
5) END

FOR i=100
DOWNNTO 1

Salah n mod i ==0

Benar

WRITE i

END

Agar pemahaman kalin lebih jelasn mengenai struktur perulangan dengan pencacah turun,
kerjakan LKS berikut secara berkelompok.
LEMBAR KERJA SISWA
1. Perhatikan algoritma berikut

Algoritma Jumlahanbarisan
Variabel i, n, jumlah:integer
1) READ n
2) jumlah=0
3) FOR i=n DOWNTO 1 DO
4) IF (i mod 5 ==0) THEN
5) jumlah=jumlah + i
6) WRITE jumlah
7) END

196 Pemrograman Dasar SMK Kelas X Sem 1

a. Jika diberikan n = 30, berapa nilai yang dicetak (output) dari algoritma di atas?
b. Apa tujuan dari algoritma di atas?
c. Buatlah Flowchartnya
Jawab:
a. .......................................................................................................................................

.......................................................................................................................................
b. .......................................................................................................................................

.......................................................................................................................................
.......................................................................................................................................
c .......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................

2. Buatlah sebuah algoritma untuk menentukan menghitung berapa banyak bilangan
yangmerupakan kelipatan 3 atau 5 dari 1 sampai n, di mana n ditentukan oleh pengguna.
Gunakan perulangan dengan pencacah turun untuk menyelesaikan permasalahan ini. Sajikan
pula algoritma kalian dalam bentuk flowchart.
a. Algoritma dalam bentuk pseudocode
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................


    Pages:
  • 1 - 50
  • 51 - 100
  • 101 - 150
  • 151 - 200
  • 201 - 205