• Tidak ada hasil yang ditemukan

EXERCISE WORKBOOK MI /2012#07

N/A
N/A
Protected

Academic year: 2021

Membagikan "EXERCISE WORKBOOK MI /2012#07"

Copied!
6
0
0

Teks penuh

(1)

1

1 I

DENTITAS

Kajian

Perulangan

Topik

Dasar Logika Perulangan

Referensi

[1] Sedgewick, Robert. Algorithms. Marly-le-Roi: Addison-Wesley Publishing Company, 1983

[2] Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Third Edition. The MIT Press, 2009

[3] Goldman, Sally A., and Kenneth J. Goldman. A Practical Guide to Data Structures and Algorithms using Java. Chapman and Hall/CRC, 2007

Kompetensi Utama

Mahasiswa dapat melakukan penelusuran pada alur algoritma perulangan Mahasiswa dapat membuat algoritma dengan logika perulangan dasar

Lama Pengerjaan

120 menit

Jenis Pengerjaan

Individu Kelompok Mandiri Terbimbing

2 P

ERTANYAAN

P

ENDAHULUAN

1. Sebutkan 3 contoh kondisi perulangan dalam kehidupan sehari-hari! Gambarkan algoritma sederhana dari kondisi-kondisi tersebut dengan menggunakan bahasa Anda sendiri!

2. Jelaskan perbedaan mendasar dari perulangan menggunakan while....do dan for....! 3. Tentukan tampilan dari masing-masing potongan kode program berikut ini:

a. for (i=1;i<=5;i++) { output(i+" "); } b. for (i=1;i<=10;i+=2) { output(i+" "); } c. n=1; for (i=1;i<=10;i++) { output(n+" "); n=n+i; }

3 R

INGKASAN

T

EORI

Struktur kontrol perulangan adalah berupa pernyataan dari Java yang mengijinkan kita untuk mengeksekusi blok kode berulang-ulang sesuai dengan jumlah tertentu yang diinginkan. Ada tiga macam jenis dari struktur kontrol perulangan yaitu while, do .... while, dan for.

(2)

2 3.1 Perulangan while

Pernyataan while adalah pernyataan yang diulang-ulang sampai mencapai kondisi yang cocok. Bentuk pernyataan while, while( boolean_expression ){ statement1; statement2; . . . }

Pernyataan di dalam while akan dieksekusi berulang-ulang selama kondisi boolean_expression bernilai benar (true). Contoh, pada kode di bawah ini,

i ← 4;

while ( i > 0 ){ output(i); i--;

}

Contoh di atas akan mencetak angka 4321 pada layar. Perlu dicatat jika bagian i--; dihilangkan, akan menghasilkan pengulangan yang terus menerus (infinite loop). Sehingga, ketika menggunakan while atau bentuk perulangan yang lain, pastikan Anda memberikan pernyataan yang membuat pengulangan berhenti pada suatu kondisi. Berikut ini adalah beberapa contoh penggunaan while.

Contoh 1: x ← 0; while (x<10) { output(x); x++; } Contoh 2: //infinite loop while(true) output(“hello”); Contoh 3: //no loops

// statement is not even executed while (false)

output(“hello”);

3.2 Perulangan do ... while

do ... while mirip dengan while. Pernyataan di dalam do .... while akan dieksekusi beberapa kali selama kondisi bernilai benar (true). Perbedaan antara while dan do .... while adalah pernyataan di dalam do .... while akan dieksekusi sedikitnya satu kali. Bentuk pernyataan do-while,

do{

statement1; statement2; . . .

}while( boolean_expression );

Pernyataan di dalam do .... while akan dieksekusi pertama kali, dan akan dievaluasi kondisi dari boolean_expression. Jika nilai pada boolean_expression tersebut bernilai true, pernyataan di dalam do .... while akan dieksekusi lagi. Berikut ini beberapa contoh do .... while.

Contoh 1:

(3)

3 do{

output(x); x++;

}while (x<10);

Contoh ini akan memberikan output 0123456789 pada layar. Contoh 2:

//infinite loop do{

output(“hello”); } while (true);

Contoh di atas akan melakukan pengulangan terus menerus yang menulis kata “hello” pada layar. Contoh 3:

//one loop

// statement is executed once do{

output(“hello”); }while (false);

Contoh di atas akan memberikan output hello pada layar. 3.3 Perulangan for

Perulangan for digunakan untuk melakukan proses perulangan pada kondisi pencacahan. Setiap bentuk perulangan for dapat diubah menjadi bentuk perulangan while dengan fungsi yang sama tanpa mengubah alur program. Tetapi tergantung dari permasalahan yang akan kita pecahkan, menulis program dengan for akan membuat alur program lebih mudah dipahami. Misalnya, kita akan menghitung 1+2+3+4+5+...+100. Kita bisa ekspresikan program tersebut dalam bentuk

i ← 1; jumlah ← 0; while (i <= 100) { jumlah += i; i++; }

Perulangan ini dapat ditulis juga dengan jumlah ← 0;

for (i = 1; i <= 100; i++) jumlah += i

Apa point-point penting yang kita lihat dari perubahan ini? Pertama mari kita lihat bentuk penggunaan while yang umum dilakukan inisialisasi variabel while (suatu_kondisi_variabel) { perintah update_variabel }

Di sini perulangan while memiliki 3 komponen penting, yaitu inisialisasi, yaitu memberikan nilai awal suatu variabel, suatu_kondisi_variabel, yaitu pengujian bahwa perulangan akan terus dilakukan selama kondisi ini bernilai true dan terakhir update_variabel, yaitu instruksi mengubah nilai kondisi variabel untuk membatasi perulangan sehingga akan selesai suatu saat, tidak berulang terus menerus. Pada perulangan for, ketiga komponen ini dirangkai menjadi satu dalam bentuk

for (inisialisasi_variabel; kondisi_variabel; update_variabel)

(4)

4

atau jika perintah merupakan blok yang terdiri dari banyak perintah, dapat dituliskan juga dalam bentuk for (inisialisasi_variabel; kondisi_variabel; update_variabel) {

banyak_perintah

}

Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah, misalnya memberikan variabel dengan nilai awal tertentu, dalam bentuk variabel = nilai_awal. Kondisi_variabel harus berbentuk pernyataan boolean seperti suatu_kondisi pada pernyataan while. Sedangkan update_variabel juga berbentuk perintah. Bentuk paling umum dari perulangan for adalah menghitung. Biasanya perulangan ini memiliki bentuk seperti

for (variabel=nilai_minimum; variabel<=nilai_maksimum; variabel++) {

perintah

}

Perhatikan bagian terakhir adalah menaikkan nilai variabel dengan 1, yang artinya perulangan akan dimulai dengan nilai_minimum, diakhiri dengan nilai_maksimum dengan jeda 1. Contoh, jika kita ingin berhitung 2,5,8,11,14,17, atau dengan kata lain, mulai dari 2 hingga 17 dengan jeda 3, kita bisa mengekspresikan for dengan

for (i = 2; i <= 17; i += 3) {

output(i);

}

Untuk menghitung mundur, kita bisa menggunakan perintah seperti for (i = 20; i >= 0; i--) {

output(i);

}

Atau jika kita ingin menghitung maju dan mundur pada saat yang bersamaan, misalnya i dari 1 hingga 10 dan j dari 10 hingga 1, kita bisa ekspresikan dengan

for (i = 1, j = 10; i <= 10; i++, j--) { output(i + " " + j);

}

Variabel yang akan digunakan, dalam contoh di atas i dan j, adalah variabel yang harus dideklarasikan sebelumnya. Untuk banyak kasus, deklarasi variabel dan perulangannya bisa dilakukan serentak pada bagian inisialisasi variabel. Misalnya

for (int i = 1; i <= 10; i++) {

output(i)

}

Perhatikan ada imbuhan int di depan inisialisasi variabel i, yang merupakan deklarasi variabel i dengan tipe data int sekaligus menginisialisasi nilainya dengan 1.

3.4 Perulangan for Bersarang

Seperti pada perulangan while, perulangan for pun dapat dilakukan bersarang, artinya perulangan for di dalam perulangan for. Kita ambil contoh sederhana misalnya membuat pola seperti

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

(5)

5 untuk setiap baris i = 1,2,3...,8

cetak “* “ sebanyak 8 kali cetak baris baru

Kalau kita jabarkan lebih lanjut, perintah kedua juga merupakan perulangan dari 1 hingga 8, sehingga algoritma di atas bisa kita tulis sebagai

untuk setiap baris i = 1,2,3...,8 untuk setiap kolom j = 1,2,3...,8 cetak “* “

cetak baris baru Kita bisa terjemahkan sebagai

for (int i = 1; i <= 8; i++) { for (int j = 1; j <= 8; j++) { output("* "); } output("\n"); }

4 S

TUDI

K

ASUS

1. Buatlah sebuah program yang akan mengoutputkan barisan bilangan genap sejumlah inputan user. Contoh tampilan:

Masukkan angka: 10

Barisan bilangan genap: 2, 4, 6, 8, 10, 12, 14, 16, 18, 20

2. Buatlah sebuah program yang akan meminta inputan nama dan nim mahasiswa sampai user menekan tombol T, kemudian akan menampilkan nama dan nim mahasiswa yang diinputkan.

Contoh tampilan: Masukkan nama: Andi Masukkan NIM: 001 Ingin input lagi? (Y/T): Y Masukkan nama: Leni Masukkan NIM: 014 Ingin input lagi? (Y/T): Y Masukkan nama: Rudi Masukkan NIM: 004 Ingin input lagi? (Y/T): T

Mahasiswa nama Andi, NIM 001 Mahasiswa nama Leni, NIM 014 Mahasiswa nama Rudi, NIM 004

3. Jika input data secara berturut-turut diisi dengan : 25, 37, 31, 16, 23, 19, 32, 28, 20, 14

maka tentukan tampilan output yang muncul pada potongan program berikut: a. x=0;

for (i=1;i<=10;i++) { input(data); if (data > 30) { x = x + data;

(6)

6 } } output(x); b. x=0; for (i=1;i<=10;i++) { input(data); x = x + data; } output(x); c. x=0; for (i=1;i<=10;i++) { input(data); if (data < 30) { x = x + 1; } } output(x); d. x=0; for (i=1;i<=10;i++) { input(data); if (data > x) { x = data; } } output(x); e. i=0; do { input(data); i = i + 1; } while (data <= 30); output(i); f. i=1; while (i<10) { input(data); x = x + data; i = i + 2; } output(x);

Referensi

Dokumen terkait

Di bagian bawah, serviks berhubungan dengan vagina sebagai   portio vaginalis dan bagian kanal serviks yang berhubungan dengan vagina disebut orificium uterina

Hasil Peramalan dengan menggunakan metode Fuzzy Time Series memiliki nilai Average Forecasting Error Rate (AFER) lebih kecil dibandingkan metode Holt- Winter

Setelah melakukan analisa, merancang dan mengimplementasikan program sistem pendukung keputusan penyeleksian karyawan di CV RumahwebIndonesia menggunakan metode

menyebutkan peran rumah tangga konsumsi dalam arus kegiatan ekonomi. Peserta didik mamapu membedakan antara pasar faktor produksi dan pasar output dalam bagan arus

Komponen utama yang terdeteksi dalam plasma darah mencit setelah inhalasi minyak atsiri daun kemangi adalah linalool dan linalil asetat, sedangkan 1,8-sineol, - terpineol

Gaya lift ini ditujukan untuk mengangkat badan kapal yang akan menghasilkan efek damping yaitu mengurangi luasan badan kapal yang tercelup di air, sehingga

Distribusi hubungan antara umur kehamilan, pendidikan ibu, jarak kehamilan, paritas, suplementasi TTD, dan cara konsumsi TTD, terhadap status anemia pada ibu hamil di