Looping for ( ... )
2
t3a
3
t3b
3
t3c
4
t3d
4
while ( ... )
6
t3e
7
t3f
7
t3g
8
do ... while ( ... )
9
t3h
10
Tugas
11
1. Faktorial
11
2. Ganjil
11
3. Penjumlahan Integer Positif
11
4. Rumus xi di
12
5. Hasil Operasi + -
12
6. Segitiga Siku-Siku
12
7. Segitiga Sama Sisi
13
8. Tiga Faktor
13
9. Deret
13
Pada modul sebelumnya, kita sudah mengetahui bahwa pada dasarnya program dapat berjalan secara linier, bercabang atau berulang. Minggu ini kita akan mempelajari mengenai perulangan (loop). Secara garis besar, perulangan dapat dilakukan dengan menggunakan : • for ( ... ) • while ( ... ) • do ... while ( ... )
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
1
for ( ... ) Biasanya skema for digunakan untuk melakukan pengulangan, dimana kita sudah mengetahui dengan pasti berapa kali pengulangan yang akan dilakukan. Misalnya : • Mencetak nama ke layar sebanyak 5 kali. • Menuliskan 10 buah bilangan prima pertama ke layar.
Perhatikan skema for berikut ini :
Penjelasan : • Inisialisasi : satu atau lebih statement yang dieksekusi hanya satu kali pada awal loop dan sesudah itu tidak pernah dieksekusi lagi. Biasanya diisi dengan inisialisasi variabel counter atau pencacah. • Kondisi : biasanya berisi ekspresi yang nilainya akan mentukan apakah bagian statement/block statement akan dikerjakan atau tidak. Jika ekspresi pada kondisi menghasilkan nilai true, maka statement/block statement akan dieksekusi (masuk ke bagian loop dan mengeksekusi semua statement yang ada di dalamnya), sedangkan jika menghasilkan nilai false, maka statement/block statement tidak dieksekusi (langsung melanjutkan ke statement berikutnya setelah skema for). • Setelah semua statement pada bagian loop dieksekusi, program akan melakukan eksekusi pada bagian perubahan (yang dirubah biasanya nilai pencacah atau counter). Kemudian akan dilakukan lagi pengetesan terhadap kondisi. • Looping ini akan berjalan terus sampai suatu saat kondisi bernilai false.
Agar lebih jelas, perhatikan program berikut :
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
2
t3a
Jangan lupa menuliskan identitas program pada setiap file. Pada saat awal, variabel i diisi dengan nilai 0, kemudian dicek apakah nilai i lebih kecil dari 10, karena hasil pengecekan adalah true, maka karakter '#' akan diprint ke layar. Setelah itu nilai i akan ditambah satu. Demikian seterusnya sampai saat nilai i berisi 10, maka program akan keluar dari skema loop.
Variabel i pada program yang anda buat, selain sebagai counter, atau pencacah, dapat juga digunakan untuk keperluan lainnya. Cobalah membuat program t3b, isi program sama dengan t3a, tetapi bagian printf ("#") diganti dengan menampilkan isi variabel i. t3b
Kemudian lakukan sedikit percobaan : • Dapatkah variabel i tidak dimulai dari 0, tetapi dari 1 atau 2 ? (1a) • Bagaimana jika dimuali dari bilangan negatif ? Apakah dapat dilakukan ? (1b) • Kemudian perhatikan sekali lagi bagian perubahan, i++ menunjukkan counter i ditambah 1 setiap kali looping. Dapatkah counter i dapat dinaikkan tdk hanya 1 tetapi 2 atau 3 ? (1c) • Ekspresi apa yang harus ditulis agar counter i bertambah 2 setiap kali looping. (1d) • Tuliskan hasil tampilan di layar dari program t3b, setelah counter i ditambah 2 setiap kali looping. (1e) Tuliskan jawaban pertanyaan-pertanyaan diatas di file t3b. Dari program t3b, kita dapat menampilkan angka 0,1,2,3,4,5,6,7,8 secara berurutan dan membesar. Ini karena kita menginisialisasi variabel i dengan 1, kemudian menambah 1 selama masih lebih kecil dari 10. Bagaimana agar kita dapat menampilkannya secara terurut menurun ? Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
3
Perhatikan program berikut : t3c
Program ini bermaksud menampilkan nilai i setiap kali looping. Hasil yang diinginkan : Nilai i = 1 Nilai i = 2 Nilai i = 3 Tetapi hasilnya ternyata tidak sesuai. Apa yang ditampilkan program ke layar ? Bagaimana cara memperbaikinya ? Perbaiki program t3c di atas.
Ada beberapa kesalahan mendasar yang sering sekali kita lakukan pada saat menggunakan skema for. Berikut beberapa contohnya. Jawab pertanyaan-pertanyaan dibawah ini pada t3d. t3d
✦ Perhatikan program berikut (program bermaksud menampilkan kalimat hello world sebanyak 10 kali).
Apakah program dapat menampilkan kalimat hello world sebanyak 10 kali ? (1a) Jika tidak, berapa kali hello world ditampilkan ? (1b) Apa kesalahan yang terdapat pada program sehingga hello world tidak ditampilkan 10 kali ? (1c) Bagaimana cara memperbaikinya ? (1d) ✦ Perhatikan program berikut (program bermaksud menampilkan bilangan 10 sampai dengan 1 secara terurut).
Apakah program dapat berjalan dengan benar ? (2a) Jika tidak, apa yang ditampilkan di layar ? (2b) Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
4
Apa kesalahan yang terdapat pada program ? (2c) Bagaimana cara memperbaikinya ? (2d) ✦ Perhatikan program berikut (program bermaksud menampilkan pangkat dua dari semua bilangan antara 1 sampai dengan 10).
Apakah program dapat berjalan dengan benar ? (3a) Jika tidak, apa yang ditampilkan di layar ? (3b) Apa kesalahan yang terdapat pada program ? (3c) Bagaimana cara memperbaikinya ? (3d) Berdasarkan contoh contoh di atas : • Ingat, jangan menaruh tanda ' ; ' setelah for ( ) dan sebelum statement / block statement. • Pastikan kita membuat kondisi yang suatu saat akan bernilai tidak benar, agar perulangan dapat berjalan dengan benar. • Jangan melakukan perubahan terhadap nilai variabel counter di dalam loop.
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
5
while ( ... ) Biasanya skema while digunakan untuk melakukan pengulangan, dimana kita belum mengetahui dengan pasti berapa kali pengulangan yang akan dilakukan. Misalnya : • Menuliskan semua bilangan prima yang lebih kecil dari 10233. • Menerima input bilangan integer positif dari user sampai user memasukkan angka -1.
Perhatikan skema while berikut ini :
Penjelasan : • Kondisi : biasanya berisi ekspresi yang nilainya akan mentukan apakah bagian statement/block statement akan dikerjakan atau tidak. Jika ekspresi pada kondisi menghasilkan nilai true, maka statement/block statement akan dieksekusi ( masuk ke bagian loop dan mengeksekusi semua statement yang ada di dalamnya ), sedangkan jika menghasilkan nilai false maka statement/block statement tidak akan dieksekusi (langsung melanjutkan ke statement berikutnya setelah skema while). • Kemudian program kembali akan melakukan eksekusi pada bagian kondisi untuk memeriksa nilai kondisi saat ini. Demikian seterusnya sampai suatu saat nilai kondisi adalah false. • Perhatikan bahwa pada saat awal, akan dilakukan pemeriksan kondisi sebelum memasuki statement/block statement.
Agar lebih jelas, perhatikan program berikut:
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
6
t3e
Pada saat awal, variabel i diisi dengan nilai 1, kemudian dicek apakah nilai i lebih kecil dari 7, karena hasil pengecekan true, maka "hello world" akan diprint ke layar. Setelah itu nilai i akan ditambah satu. Kemudian program kembali akan memeriksa apakah nilai i lebih kecil dari 7 atau tidak. Demikian seterusnya sampai saat nilai i berisi 8, maka program akan keluar dari skema loop.
Seperti telah disebutkan sebelumnya, skema while umumnya digunakan untuk pada saat tidak diketahui dengan pasti berapa kali pengulangan yang harus dilakukan. Perhatikan contoh berikut : t3f
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
7
Ada beberapa kesalahan mendasar yang sering sekali kita lakukan pada saat menggunakan skema while. Berikut beberapa contohnya. Jawab pertanyaan-pertanyaan dibawah ini pada t3g. t3g
✦ Perhatikan program berikut (program bermaksud menampilkan angka dari 10 sampai 1).
Apakah program dapat menampilkan angka 10 sampai 1 ? (1a) Jika tidak, berapa saja angka ditampilkan ? (1b) Apa kesalahan yang terdapat pada program ? (1c) Bagaimana cara memperbaikinya ? (1d) ✦ Perhatikan program berikut (program bermaksud menampilkan akar kuadrat dari 100 sampai 1).
Apakah program dapat menampilkan akar kuadrat dari 100 sampai 1 ? (2a) Jika tidak, akar kuadrat dari berapa saja yang ditampilkan ? (2b) Apa kesalahan yang terdapat pada program ? (2c) Bagaimana cara memperbaikinya ? (2d) Berdasarkan contoh-contoh di atas : • Ingat, jangan lupa mendeklarasikan variabel counter sebelum digunakan. • Pastikan kita membuat kondisi yang suatu saat akan bernilai tidak benar, agar perulangan dapat berjalan dengan benar.
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
8
do ... while ( ... ) Skema do ... while memiliki kegunaan yang hampir sama dengan skema while. Perhatikan skema do ... while berikut ini :
Penjelasan : • Kondisi : di sini sama dengan kondisi pada skema for dan skema while, gunanya untuk menghentikan pengulangan bila ekspresi/kondisi menghasilkan nilai false. • Perbadaan skema do .. while dengan skema while adalah pada skema do .. while statement/block statement dieksekusi terlebih dahulu baru kondisi-nya diperiksa, sedangkan pada skema while, kondisi-nya diperiksa terlebih dahulu baru statement/block statement-nya dieksekusi.
Perhatikan contoh program berikut :
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
9
t3h
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
10
Tugas Nama file: t09NYYXXX.java (N: nomor soal, YY: angkatan, XXX: 3 digit terakhir NPM) Lihat jam pengumpulan di E-Learning.
1. Faktorial Buatlah sebuah program yang digunakan untuk menghitung faktorial. Input akan berhenti jika user memasukkan angka nol. Tulisan berwarna merah adalah input user. Contoh :
Masukkan angka : 3 Hasil faktorial : 6 Masukkan angka : 5 Hasil faktorial : 120 Masukkan angka : 0 -- Terima Kasih --
2. Ganjil Buatlah program dengan spesifikasi sebagai berikut : • Menerima masukan berupa bilangan integer n dari user. • Menampilkan semua bilangan ganjil yang lebih kecil dari n. Contoh : Jika n = 5 ditampilkan 1,3. Jika n = 13 ditampilkan 1,3,5,7,9,11.
3. Penjumlahan Integer Positif Buatlah program dengan spesifikasi sebagai berikut : 1. Menerima masukan n buah bilangan integer positif dari user. 2. Jumlahkan semua bilangan positif yang dimasukkan oleh user. 3. Penjumlahan dan masukan dari user diakhiri jika user memasukkan bilangan negatif. 4. Tampilkan hasil penjumlahan semua bilangan yang dimasukkan user (kecuali bilangan negatif).
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
11
4. Rumus xi di Buatlah program yang menghitung rumus dibawah ini:
Contoh: x = 1, d = 1, n = 2 Hasil = 5
5. Hasil Operasi + Buatlah sebuah program yang menerima sebuah bilangan bulat positif dan menghasilkan nilai dari operasi berikut: Input
:n
Output
: +1-2+3-4+5 ... n
Tampilkan pesan kesalahan jika input bukan bilangan positif. Contoh input: -3 10 5 Contoh output: Bukan bilangan positif -5 3
6. Segitiga Siku-Siku Buatlah program yang menampilkan segitiga siku-siku. Ukuran segitiga dimasukkan oleh user. Contoh :
Panjang sisi : 3 * ** ***
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
12
7. Segitiga Sama Sisi Buatlah sebuah program yang menerima masukan sebuah nilai n. n harus ganjil dan lebih besar dari 1, kemudian menampilkan gambar segitiga dengan panjang alas n.
4 Bilangan genap 5 * *** *****
8. Tiga Faktor Program menerima int n dan mengeluarkan semua bilangan yang memiliki 3 buah faktor dari 1 sampai dengan n. Contoh input : 25 Contoh output : 4 9 25
9. Deret Diketahui sebuah deret bilangan dengan S(n) = 2*n+3. S(0) = 2*0+3 = 3 S(1) = 2*1+3 = 5 S(2) = 2*2+3 = 7 dan seterusnya. Jika diberikan sebuah bilangan n, hitunglah U(n). U(0) = S(0) = 3 U(1) = S(1) + S(0) = 8 U(2) = S(2) + S(1) + S(0) = 15 dan seterusnya. Buatlah program yang menghitung nilai U(n) seperti diatas. Program diakhiri dengan angka -1.
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
13
0 3 1 8 2 15 -1
Teknik Informatika UNPAR . Praktikum AKS141 - Dasar-Dasar Pemrograman Ganjil 2009/2010
14