Anda di halaman 1dari 18

MI1264 - KA1024

ALGORITMA DAN PEMROGRAMAN


MODUL PRAKTIKUM

Perulangan For to do – Repeat Until

Hanya dipergunakan di lingkungan Telkom Applied Science School

Departemen Teknologi Informasi


Telkom Applied Science School
2013
Kata Pengantar

Kata Pengantar
-

Daftar Penyusun

1. Versi 1 : 2013 08 31 : Dahliar Ananda, M.T.

Departemen Teknologi Informasi


Telkom Applied Science School Hal i
2013
Daftar Isi

Daftar Isi
Kata Pengantar ....................................................................................................................................................................i
Daftar Isi ............................................................................................................................................................................. ii
1 Identitas......................................................................................................................................................................2
2 Pertanyaan Pendahuluan ...........................................................................................................................................3
3 Praktik.........................................................................................................................................................................4
3.1 Soal I..................................................................................................................................................................4
3.1.1 Contoh jalannya aplikasi ...............................................................................................................................4
3.1.2 Langkah Penyelesaian...................................................................................................................................5
3.1.3 Pengamatan ..................................................................................................................................................7
3.2 Soal 2.................................................................................................................................................................8
3.2.1 Contoh jalannya aplikasi ...............................................................................................................................8
3.2.2 Solusi...........................................................................................................................................................10
3.2.3 Pengamatan ................................................................................................................................................13
4 Test akhir ..................................................................................................................................................................14
5 Resume .....................................................................................................................................................................15
5.1 JURNAL ............................................................................................................................................................15
5.2 TUGAS AKHIR ..................................................................................................................................................15
6 Daftar Pustaka ........................................................................................................................................................... iii

Departemen Teknologi Informasi


Telkom Applied Science School H a l ii
2013
Perulangan While

1 IDENTITAS
Kajian
Struktur Kontrol II – Perulangan.

Topik
1. Perulangan While

Referensi
1. Cantù. M, Essential Pascal 4th edition, http://marcocantu.com, 2008.

Kompetensi Utama
1. Mampu menentukan dan menggunakan struktur perulangan,
2. Mampu menentukan dan menggunakan struktur perulangan While.
Lama Kegiatan Praktikum
1. Pertemuan Terbimbing : 1 x 120 menit
2. Kegiatan Mandiri : 2 x 120 menit

Parameter Penilaian
1. Jurnal Pengamatan
2. Tugas Akhir

Departemen Teknologi Informasi


Telkom Applied Science School Hal 2
2013
Perulangan While

2 PERTANYAAN PENDAHULUAN
1. Dengan menggunakan perulangan FOR dan REPEAT, buatlah sebuah aplikasi yang dapat digunakan
untuk mencetak pola nilai dari 1, 2, 3, 4 . . N dengan N adalah sebuah nilai integer yang berasal dari
inputan pengguna. Contoh :
Input :4
Output :1234

Input : 10
Output : 1 2 3 4 5 6 7 8 9 10

Input : 20
Output : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Input :0
Output :0

2. Apakah perbedaan antara penggunaan perulangan WHILE, FOR dan REPEAT. Tuliskan masing-
masing 4 perbedaan diantara ketiga jenis sintaks perulangan tersebut.

Departemen Teknologi Informasi


Telkom Applied Science School Hal 3
2013
Perulangan While

3 PRAKTIK

3.1 SOAL I
Buatlah sebuah aplikasi yang dapat digunakan untuk melakukan proses penjumlahan nilai genap dari nilai
1 . . N. Dimana N berasal dari inputan pengguna. Soal ini merupakan sebuah soal yang sama dengan soal
pada modul 5. Akan dilihat perbedaan analisis dan kode programnya jika digunakan perulangan FOR dan
REPEAT.

3.1.1 Contoh jalannya aplikasi

Departemen Teknologi Informasi


Telkom Applied Science School Hal 4
2013
Perulangan While

3.1.2 Langkah Penyelesaian


Pada bagian ini, akan dilakukan pembuatan solusi program dengan menggunakan perulangan FOR.

1. Menentukan variabel yang akan digunakan dalam aplikasi


No Nama atribut Nama Variabel Tipe Data
1 Inputan user Batas Integer
2 Total jumlah Total Integer
3 Counter Ctr Integer
2. Masukkan nilai N.
WRITELN(‘Masukkan nilai batas atas : ‘);
READLN(batas);
3. Perhatikan bahwa hasil akhir yang diharapkan adalah menjumlahkan nilai-nilai genap dalam
rentang 1 . . N. Maka yang perlu diperhatikan adalah bagaimana mencari nilai genap dalam rentang
tersebut. Sebagai contoh, jika diberikan N=11.
a. Kontrol variabel yang digunakan pada perulangan ini adalah ctr, dimana nilainya akan
bergerak dari nilai awal 1 hingga batas N,
b. Antara rentang 1 . . 11, dimulai dari 1 hingga kurang dari sama dengan 11, tentukan nilai
genap dan jumlahkan nilai tersebut,
c. Proses penjumlahan dilakukan TIDAK dengan menyimpan masing-masing nilai tersebut,
namun dengan menggunakan sebuah variabel penampung dan menjumlahkan satu-
persatu nilai tersebut kedalam nilai penampung.
4. Tentukan inisialisasi nilai variabel kontrol ctr dan awal total

total := 0;
Perhatikan bahwa pada perulangan FOR, letak proses inisialisasi terdapat pada struktur perulangan
tersebut. Berbeda dengan jenis perulangan yang lainnya, yang harus diletakkan sebelum struktur
perulangan tersebut. Oleh karena itu, proses inisialisasi nilai ctr := 0 , akan diletakkan pada
struktur FOR itu sendiri.
5. Cek berdasarkan kondisi berhenti/kondisi eksekusi pada no 3.a diatas. Kondisi berhenti pada
perulangan FOR adalah ketika nilai control variabel telah sama dengan nilai dari akhir perulangan.
Dalam kasus ini adalah ketika sudah mencapai nilai batas.
FOR ctr :=1 TO batas
a. Jika nilai ctr <= nilai batas, maka lanjutkan proses menuju nomor 6,
b. Jika nilai ctr = nilai batas, maka lanjutkan proses menuju nomor 9,
6. Pada perulangan FOR, proses iterasi sudah dilakukan secara langsung didalam proses deklarasinya,
yaitu pada bagian no 5 diatas. Proses iterasi pada FOR dilakukan secara pasti dan terdiri dari 2 jenis,
yaitu :
a. TO : proses iterasi naik, dengan bertambah satu (+1) nilai pada setiap proses
perulangannya,
b. DOWNTO : proses iterasi turun, dengan berkurang satu (-1) nilai pada setiap proses
perulangannya.

Departemen Teknologi Informasi


Telkom Applied Science School Hal 5
2013
Perulangan While

7. Cek nilai pertama apakah nilai tersebut ganjil atau genap.


IF ((ctr mod 2) = 0) THEN
a. Jika genap (hasil bagi = 0 ), tambahkan kedalam jumlah total;
BEGIN
total := total + ctr;
if ((ctr=inputData) or ((ctr+1)=inputData)) THEN
write(ctr)
else
write(ctr, ' + ');
END
b. Jika ganjil (hasil bagi != 0), lanjutkan ke proses selanjutnya
8. Kembali ke no 5.
9. Tampilkan hasil penjumlahan

WRITELN(‘ = ’, total);

Departemen Teknologi Informasi


Telkom Applied Science School Hal 6
2013
Perulangan While

3.1.3 Pengamatan
1. Gabungkan potongan-potongan kode program diatas, sehingga dapat membentuk sebuah
program sesuai dengan kebutuhan soal.

2. Jika pada bagian


FOR ctr :=0 TO batas
diubah menjadi FOR ctr :=0 DOWNTO batas
Apakah perbedaan hasil dari kedua cara tersebut? Jelaskan pendapat anda mengenai hal tersebut.

3. Jika pada bagian diubah dari


ctr := 1; diubah menjadi ctr := 0
Apakah perbedaan hasil dari kedua cara tersebut? Jelaskan pendapat anda mengenai hal tersebut.

Departemen Teknologi Informasi


Telkom Applied Science School Hal 7
2013
Perulangan While

3.2 SOAL 2
Buatlah sebuah aplikasi yang akan digunakan untuk menebak sebuah nilai X dalam rentang 0-100. Setiap
kali melakukan input memasukkan nilai, maka user akan diberikan informasi apakah nilai tersebut :

a. Lebih kecil  “Nilai yang anda masukkan lebih kecil”. Kemudian nilai tersebut akan menjadi batas
bawah (menggantikan nilai bawah sebelumnya),
b. Lebih besar ”Nilai yang anda masukkan lebih besar”. Kemudian nilai tersebut akan menjadi batas
atas (menggantikan nilai atas sebelumnya),
c. Sama  “Tebakan yang bagus, anda berhasil menebaknya dalam N kali tebakan”

3.2.1 Contoh jalannya aplikasi

Departemen Teknologi Informasi


Telkom Applied Science School Hal 8
2013
Perulangan While

Departemen Teknologi Informasi


Telkom Applied Science School Hal 9
2013
Perulangan While

3.2.2 Solusi
1. Kita tentukan variabel-variabel yang akan digunakan
No Nama atribut Nama Variabel Tipe Data
1 Nilai random x Integer
2 Nilai tebakan tebak Integer
3 Batas atas atas Integer
4 Batas bawah bawah Integer
5 Counter ctr Integer

Kontrol variabel yang digunakan disini adalah nilai tebakan yang dimasukkan oleh pengguna.
Karena nilai itulah yang dimasukkan, diubah dan diperiksa dalam pengecekan kondisi berhenti.
2. Inisialisasi nilai-nilai yang akan digunakan
a. Nilai yang akan ditebak. Untuk memperoleh sebuah nilai random, maka kita akan
menggunakan fungsi Randomize dan random;
Randomize;
x:=Random(100);

Fungsi random diatas akan memilih sebuah nilai antara 0-100, contoh lainnya sebagai
berikut

i. Random(1000) : satu nilai random antara 0-1000,


ii. Random(567) : satu nilai random antara 0-567,
iii. Random(100) : satu nilai random antara 0-100.
b. Batas atas. Untuk menentukan batas atas nilai tebakan di awal.
atas :=100;
c. Batas bawah. Untuk membatasi batas bawah nilai tebakan di awal.
bawah :=0;
d. Nilai tebakan awal. Karena di awal proses user belum memberikan suatu nilai tebakan, dan
nilai tersebut akan digunakan dalam proses pencarian, maka nilai tebakan awal akan di-
inisialisasi dengan sebuah nilai diluar rentang nilai.
tebak :=999;
e. Counter. Digunakan untuk menghitung berapa kali proses penebakan dilakukan.
ctr :=0;
3. Proses penebakan dan pengecekan tidaklah dapat dipastikan akan selesai dalam N kali tebakan.
Maka proses tersebut harus dilakukan secara berulang hingga kondisinya terpenuhi, yaitu nilai x
dan tebak adalah sama.
4. Kondisi berhenti. Akan berhenti jika nilai x dan nilai tebakan adalah sama.
REPEAT
.
.
UNTIL (tebak = x);

Departemen Teknologi Informasi


Telkom Applied Science School H a l 10
2013
Perulangan While

5. Inputan pengguna untuk nilai tebakan


WRITELN('Tebaklah antara nilai ',bawah, ' dan ', atas);
WRITE('Tebakan anda : ');
READLN(tebak);
6. Iterasi Perhitungan counter jumlah tebakan

ctr := ctr + 1;

7. Pengecekan rentang nilai inputan. Harus diantara batas bawah dan atas.
IF ((tebak > bawah) AND (tebak <=atas)) THEN
BEGIN
.
.
END
ELSE
BEGIN
WRITELN('Nilai diluar rentang masukan');
WRITELN(tebaklah antara ', bawah, ' dan ', atas);
END;
8. Pengecekan apakah nilai tebakan sama atau tidak. Ketika melakukan proses penebakan, maka akan
menghasilkan beberapa kemungkinan :
a. Lebih kecil  “Nilai yang anda masukkan lebih kecil”. Kemudian nilai tersebut akan menjadi
batas bawah (menggantikan nilai bawah sebelumnya),
b. Lebih besar ”Nilai yang anda masukkan lebih besar”. Kemudian nilai tersebut akan
menjadi batas atas (menggantikan nilai atas sebelumnya),
c. Sama  “Tebakan yang bagus, anda berhasil menebaknya dalam N kali tebakan”

IF (tebak < x) THEN


BEGIN
WRITELN('Nilai yang anda masukkan lebih kecil');
bawah := tebak;
END;
IF (tebak > x) THEN
BEGIN
WRITELN('Nilai yang anda masukkan lebih besar');
atas := tebak;
END;
IF (tebak = x) THEN
BEGIN
WRITELN('Sukses dalam ', ctr,' kali tebakan');
WRITELN('Nilai yang dicari adalah ',x);
END;

Departemen Teknologi Informasi


Telkom Applied Science School H a l 11
2013
Perulangan While

9. Pada perulangan REPEAT, maka statement(s) akan dieksekusi terlebih dahulu, baru kemudian
dilakukan proses pengecekan.
a. Jika nilai UNTIL belum terpenuhi (FALSE), maka alur jalan program akan kembali ke poin
no. 4
b. Jika nilai UNTIL terpenuhi (TRUE), maka alur jalan program akan berlanjut ke pon no. 10.
10. Akhir dari aplikasi

Departemen Teknologi Informasi


Telkom Applied Science School H a l 12
2013
Perulangan While

3.2.3 Pengamatan
4. Gabungkan potongan-potongan kode program diatas, sehingga dapat membentuk sebuah
program sesuai dengan kebutuhan soal.

5. Pada kode program diatas, variabel tebak diinisialisasi dengan nilai 999. Kenapa tidak dilakukan
proses inisialisasi antara 0-100?

6. Apakah yang akan terjadi, jika pada bagian 2.e ctr :=0; diubah menjadi ctr :=1;

7. Apakah yang perbedaan yang tejadi jika pada bagian 3.a yang berasal dari
UNTIL ( x = tebak );
Diubah menjadi
UNTIL ( x <> tebak );

8. Apakah yang perbedaan yang tejadi jika pada bagian 3.e yang berasal dari
IF ((tebak > bawah) AND (tebak <=atas)) THEN
Diubah menjadi
IF ((tebak > bawah) OR (tebak <=atas)) THEN

9. Dengan perbandingan terhadap soal yang sama yang telah dikerjakan pada modul pertemuan 5.
Apakah perbedaan antara penggunaan klausa perulangan WHILE dan REPEAT UNTIL.

Departemen Teknologi Informasi


Telkom Applied Science School H a l 13
2013
Perulangan While

4 TEST AKHIR
Pada 3 (tiga) buah soal dibawah ini, kerjakan setiap soal dengan menggunakan jenis perulangan WHILE,
FOR dan REPEAT.

1. Buatlah sebuah aplikasi yang dapat digunakan untuk menampilkan dan menghitung deret kuadrat
dari inputan yang diberikan oleh pengguna. Contoh
a. Input : 5
Output : 1 + 4 + 9 + 16 + 25 = 55
b. Input : 10
Output : 1 + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 + 100 =385
c. Input : 0
Output : inputan tidak valid
d. Input : -6
Output : Inputan tidak valid

2. Buatlah sebuah aplikasi yang dapat digunakan untuk menampilkan dan menghitung deret divergen
dari inputan yang diberikan oleh pengguna. Contoh
a. Input : 6
Output : 1 – 2 + 3 – 4 + 5 – 6 = -3
b. Input : 10
Output : 1 – 2 + 3 – 4 + 5 – 6 + 7 – 8 + 9 – 10 = -5
c. Input : 11
Output : 1 – 2 + 3 – 4 + 5 – 6 + 7 – 8 + 9 – 10 = 6
d. Input : 0
Output : inputan tidak valid
e. Input : -6
Output : Inputan tidak valid

3. Buatlah sebuah aplikasi yang dapat digunakan untuk menampilkan dan menghitung nilai factorial
dari inputan yang diberikan oleh pengguna. Contoh
a. Input : 6
Output : 6! = 6 x 5 x 4 x 3 x 2 x 1 = 120
b. Input : 10
Output : 10! = 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 3628800
c. Input : 0
Output : inputan tidak valid
d. Input : -6
Output : Inputan tidak valid

Departemen Teknologi Informasi


Telkom Applied Science School H a l 14
2013
Perulangan While

5 RESUME

5.1 JURNAL
1. Pertanyaan pendahuluan (2 soal),
2. Pengamatan Praktik (9 soal),

kumpulkan jawaban anda di akhir praktikum.

5.2 TUGAS AKHIR


1. Kerjakan bagian TEST AKHIR (3 soal) dengan pada setiap soal akan dikerjakan dengan
menggunakan perulangan WHILE, FOR dan REPEAT.
2. Maksimal dikumpulkan 24 jam setelah praktikum berakhir kepada email asisten kelas.
3. Aturan pengumpulan email mengikuti penjelasan oleh asisten.

Departemen Teknologi Informasi


Telkom Applied Science School H a l 15
2013
Daftar Pustaka

6 DAFTAR PUSTAKA

[1] D. Ananda, P. Mayadewi, A. Suryan, L. Rasiana and H. Kusmayadi, Algoritma dan Pemrograman,
Bandung: Politeknik Telkom, 2009.

[2] T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms Third Edition,
Cambridge: The MIT Press, 2009.

[3] R. Sedgewick, Algorithm in Java: parts 1-4 Third Edition, Boston: Pearson Education, Inc, 2002.

[4] E. Turban, D. Leidner, E. McLean and J. Wetherbe, Information Technology for Management,
Wiley International, 2008.

[5] P. Deitel and H. Deitel, Java How To Program 9th Edition, Prentice Hall, 2011.

Departemen Teknologi Informasi


Telkom Applied Science School H a l iii
2013

Anda mungkin juga menyukai