Objektif : 1. Mahasiswa dapat memahami konsep struktur kontrol perulangan dalam pemrograman. 2. Mahasiswa dapat menggunakan struktur kontrol perulangan (while, do-while, for !ang digunakan. 3. Mahasiswa dapat mem"uat program !ang "erisi alur program perulangan melalui #ontoh kasus. 3-1 P3.1 Teori 1. Perulangan Struktur kontrol pengulangan adalah "erupa pern!ataan dari Java !ang mengi$inkan kita untuk mengeksekusi "lok #ode "erulang-ulang sesuai dengan $umlah tertentu !ang diinginkan. %da tiga ma#am $enis dari struktur kontrol pengulangan !aitu & 1. While 2. Do-while 3. For loops Pern!ataan-pern!ataan di atas men#iptakan loop. Loop se#ara "erulang mengeksekusi se"arisan instruksi !ang sama sampai kondisi akhir ditemui. 'engan kata lain, looping atau loop artin!a mengulangi eksekusi "lok program tertentu sampai ter#apai kondisi untuk menghentikann!a (terminasi. Setiap perulangan memiliki ( "agian !aitu & inisialisasi (initialization, "adan program (body ) statement, iterasi (iteration, dan termination. 1.1 Stateent While Pern!ataan while loop adalah pern!ataan atau "lok pern!ataan !ang diulang-ulang sampai men#apai kondisi !ang #o#ok. !entuk pern"ataan while# while( "oolean*e+pression , statement1- statement2- . . . . Pern!ataan di dalam while loop akan dieksekusi "erulang-ulang selama kondisi boolean_expression "ernilai "enar (true. /ontoh pada kode di "awah ini& int i 0 (- while ( i 1 2 , S!stem.out.print(i- i--- . /ontoh di atas akan men#etak angka (321 pada la!ar. Perlu di#atat $ika "agian i--- dihilangkan, akan menghasilkan pengulangan !ang terus menerus (infinite loop. Sehingga, ketika menggunakan while loop atau "entuk pengulangan !ang lain, pastikan %nda mem"erikan pern!ataan !ang mem"uat pengulangan "erhenti pada suatu kondisi. 1.$ Stateent Do While 3-2 Do-while loop mirip dengan while-loop. Pern!ataan di dalam do-while loop akan dieksekusi "e"erapa kali selama kondisi "ernilai "enar(true. Per"edaan antara while dan do-while loop adalah dimana pern!ataan di dalam do-while loop akan dieksekusi sedikitn!a satu kali. !entuk pern"ataan %o-while# do, statement1- statement2- . . . .while( "oolean*e+pression - Pern!ataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi kondisi dari boolean_expression. Jika nilai pada boolean_expression terse"ut "ernilai true, pern!ataan di dalam do-while loop akan dieksekusi lagi. !erikut ini beberapa &ontoh %o-while loop: 'ontoh 1: int + 0 2- do , S!stem.out.println(+- +33- .while (+412- /ontoh ini akan mem"erikan output 2123(56789 pada la!ar. 'ontoh $: ))infinite loop do, S!stem.out.println(:hello;- . while (true- /ontoh di atas akan melakukan pengulangan terus menerus !ang menulis kata :hello; pada la!ar. 'ontoh 3: ))one loop )) statement is e+e#uted on#e do S!stem.out.println(:hello;- while (false- /ontoh di atas akan mem"erikan output hello pada la!ar. 1.3 Stateent Perulangan For Perulangan for men!ediakan sarana mengulang kode dalam $umlah !ang tertentu. Pengulangan ini terstruktur untuk mengulangi kode sampai ter#apai "atas tertentu. !erikut bentuk %asar perulangan for : for(InitializationExpression; LoopCondition; tepExpression! statement 3-3 (nitiali)ation*+pression, digunakan untuk inisialisasi varia"el kendali perulangan. ,oop'on%ition, mem"andingkan varia"el kendali perulangan dengan suatu nilai "atas. Step*+pression, menspesifkasikan #ara varia"el kendali dimodifikasi se"elum iterasi "erikutn!a dari perulangan. 'ontoh: pu"li# #lass <or1 , pu"li# stati# void main(String=> args , int i- for (i 0 1-i411-i33 S!stem.out.println(i- . . ?asil (output dari #ontoh listing program di atas& 1 $ 3 - . / 0 1 2 13 Pern"ataan for-loop !ersarang Java memungkinkan loop !ang disarangkan di loop !ang lain. Satu loop "erada di dalam loop !ang lainn!a. 'ontoh: pu"li# #lass @oop"ersarang1, pu"li# stati# void main(String=> args, for(int i02-i412-i33, for(int $0i-$412-$33, S!stem.out.print(ABA-. S!stem.out.println(- . . . ?asil (output dari #ontoh listing program di atas& 4 44 3-( 4 44 4 44 4 P3.$ 'ontoh 5asus Cuat program men#etak segitiga siku-siku menggunakan perulangan forD Eutput !ang dihasilkan& ,angkah-langkah pengerjaan: 1. Jalankan Fet"eans %nda. 2. @alu "uat file pro$e#t "aru dengan memilih menu <ile G Few Pro$e#t, atau dengan menggunakan hotke! /trl3Shift3F. 3. Pilih $enis pro$e#t !ang akan di"uat (Java G Java %ppli#ation (. Hentukan nama pro$e#t dan lokasi pen!impanan pro$e#t. /ontoh& nama pro$e#t& SegitigaSiku, dan nama kelas& SegitigaSiku 3-5 5. Ietikkan kode program di "awah ini pada #ode editor pa#kage segitigasiku- import $ava.io.B- pu"li# #lass SegitigaSiku , pu"li# stati# void main(String=> args throws J+#eption, 'ataKnputStream masukan 0 new 'ataKnputStream(S!stem.in-
int tinggi, i, $, k- tinggi 0 Knteger.parseKnt(strtinggi- )) mengu"ah inputan varia"el strtinggi dengan )) tipe String ke varia"el tinggi dengan tipe data integer
)B perulangan for i melakukan perulangan dari 1 sampai se"an!ak nilai varia"el tinggi !ang dimasukkan(perulangan "aris ) "an!akn!a "aris !ang akan di#etak B) for(i01-i40tinggi-i33,
)B perulangan for $ melakukan perulangan spasi(A Ase"an!ak nilai varia"el tinggi dan "erkurang 1 setiap perulangann!a("erpindah "aris sampai $umlah spasi(A A !ang di#etak pada "aris !ang "ersangkutan "er$umlah 1 B) for($0tinggi-$10i-$--, S!stem.out.print(A A- . )B perulangan for k melakukan perulangan "intang(ABAdari 1 sampai se"an!ak nilai varia"el tinggi dan "ertam"ah 1 setiap perulangann!a sampai $umlah "intang(ABA !ang di#etak sama dengan nilai varia"el tinggi !ang diinput B) for(k01-k40i-k33, S!stem.out.print(ABA- . )) perintah "erganti "aris ini dilakukan setiap selesai 1+ dalam melakukan perulangan $ dan perulangan k S!stem.out.print(ALnA- . . . 3-6 6. Cuild pro$e#t terse"ut dengan memilih menu Mun 01 Cuild Main Pro$e#t, atau dengan menggunakan hotke! <11. 7. Jika tidak ada kesalahan (CNK@' SN//JSS<N@, $alankan pro$e#t terse"ut dengan memilh menu Mun 01 Mun Main Pro$e#t, atau dengan menggunakan hotke! <6. P3.3 ,atihan Cuat program deret fi"ona#i. Eutput !ang dihasilkan adalah se"agai "erikut& Jawa"an& 1. Jalankan Fet"eans %nda 2. @akukan langkah-langkah penger$aan seperti #ontoh kasus se"elumn!a. 3. Pada #ode editor Fet"eans, ketikkan program "erikut& #pa#kage fi"ona#i- )BB B B Oauthor Shinigami B) import $ava.io.B- pu"li# #lass <i"ona#i , pu"li# stati# void main(String=> args throws J+#eption, CufferedMeader masuk 0 new CufferedMeader(new KnputStreamMeader(S!stem.in-
S!stem.out.println(a- 3-7 S!stem.out.println("- do , # 0 a 3 "- S!stem.out.println(#- a 0 "- " 0 #- i33- . while (i 4 ($umlah-1- . . P3.- Daftar Pustaka Faughton, Patri#k, "a#a $andboo%& 'onsep Dasar (emrograman "a#a, %ndi Pog!akarta, 1996. Qar! /ornell dan /a! S.?orstmann, Core "a#a edisi Indonesia, %ndi, Pog!akarta, 1997. %Fuff, (enuntun (emrograman "a#a, %ndi Pog!akarta, 1997. %"dul Iadir, Dasar (emrograman "a#a ), %ndi Pog!akarta, 2228. 3-8 Pertemuan 3 Struktur Perulangan pada J%R% Objektif : Mahasiswa dapat memahami konsep struktur kontrol perulangan dalam pemrograman. Mahasiswa dapat menggunakan struktur kontrol perulangan (while, do-while, for !ang digunakan. Mahasiswa dapat mem"uat program !ang "erisi alur program perulangan melalui #ontoh kasus. 3-9 P.1.1 Teori 1. Perulangan Struktur kontrol pengulangan adalah "erupa pern!ataan dari Java !ang mengi$inkan kita untuk mengeksekusi "lok #ode "erulang-ulang sesuai dengan $umlah tertentu !ang diinginkan. %da tiga ma#am $enis dari struktur kontrol pengulangan !aitu & While Do-while For loops Pern!ataan-pern!ataan diatas men#iptakan loop. Loop se#ara "erulang mengeksekusi se"arisan instruksi !ang sama sampai kondisi akhir ditemui. 'engan kata lain, looping atau loop artin!a mengulangi eksekusi "lok program tertentu sampai ter#apai kondisi untuk menghentikann!a (terminasi. Setiap perulangan memiliki ( "agian !aitu & inisialisasi (initialization, "adan program (body) statement, iterasi (iteration, dan termination. 1.- Stateent While Pern!ataan while loop adalah pern!ataan atau "lok pern!ataan !ang diulang-ulang sampai men#apai kondisi !ang #o#ok. !entuk pern"ataan while# while( "oolean*e+pression , statement1- statement2- . . . . Pern!ataan di dalam while loop akan dieksekusi "erulang-ulang selama kondisi boolean_expression "ernilai "enar (true. /ontoh, pada kode di"awah ini, int i 0 (- while ( i 1 2 , S!stem.out.print(i- i--- . /ontoh diatas akan men#etak angka (321 pada la!ar. Perlu di#atat $ika "agian i--- dihilangkan, akan menghasilkan pengulangan !ang terus menerus (infinite loop. Sehingga, ketika menggunakan while loop atau "entuk pengulangan !ang lain, 3-12 pastikan %nda mem"erikan pern!ataan !ang mem"uat pengulangan "erhenti pada suatu kondisi. 1.. Stateent Do While Do-while loop mirip dengan while-loop. Pern!ataan di dalam do-while loop akan dieksekusi "e"erapa kali selama kondisi "ernilai "enar(true. Per"edaan antara while dan do-while loop adalah dimana pern!ataan di dalam do-while loop akan dieksekusi sedikitn!a satu kali. !entuk pern"ataan %o-while# do, statement1- statement2- . . . .while( "oolean*e+pression - Pern!ataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi kondisi dari boolean_expression. Jika nilai pada boolean_expression terse"ut "ernilai true, pern!ataan di dalam do-while loop akan dieksekusi lagi. !erikut ini beberapa &ontoh %o-while loop: 'ontoh 1: int + 0 2- do , S!stem.out.println(+- +33- .while (+412- /ontoh ini akan mem"erikan output 2123(56789 pada la!ar. 'ontoh $: ))infinite loop do, S!stem.out.println(:hello;- . while (true- /ontoh di atas akan melakukan pengulangan terus menerus !ang menulis kata :hello; pada la!ar. 'ontoh 3: ))one loop )) statement is e+e#uted on#e do S!stem.out.println(:hello;- while (false- /ontoh di atas akan mem"erikan output hello pada la!ar. 1./ Stateent Perulangan For Perulangan for men!ediakan sarana mengulang kode dalam $umlah !ang tertentu. Pengulangan ini terstruktur untuk mengulangi kode sampai ter#apai "atas tertentu. 3-11 !erikut bentuk %asar perulangan for : for(InitializationExpression; LoopCondition; tepExpression! statement (nitiali)ation*+pression, digunakan untuk inisialisasi varia"el kendali perulangan. ,oop'on%ition, mem"andingkan varia"el kendali perulangan dengan suatu nilai "atas. Step*+pression, menspesifkasikan #ara varia"el kendali dimodifikasi se"elum iterasi "erikutn!a dari perulangan. 'ontoh: pu"li# #lass <or1 , pu"li# stati# void main(String=> args , int i- for (i 0 1-i411-i33 S!stem.out.println(i- . . ?asil (output dari #ontoh listing program diatas& 1 $ 3 - . / 0 1 2 13 Pern"ataan for-loop !ersarang Java memungkinkan loop !ang disarangkan di loop !ang lain. Satu loop "erada di dalam loop !ang lainn!a. 'ontoh: pu"li# #lass @oop"ersarang1, pu"li# stati# void main(String=> args, for(int i02-i412-i33, for(int $0i-$412-$33, S!stem.out.print(ABA-. S!stem.out.println(- . . . ?asil (output dari #ontoh listing program diatas& 3-12 4 44 4 44 4 44 4 P1.$ 'ontoh 5asus Cerikut ini adalah #ontoh program men#etak segitiga siku-siku menggunakan perulangan for. Kkuti langkah-langkah "erikut & Step 1 - Jalankan Fet"eans %nda. - @alu "uat file pro$e#t "aru dengan memilih menu <ile 01 Few Pro$e#t, atau dengan menggunakan hotke! /trl3Shift3F. - Pilih $enis pro$e#t !ang akan di"uat(Java 01 Java %ppli#ation - Hentukan nama pro$e#t dan lokasi pen!impanan pro$e#t(disini nama pro$e#tn!a SegitigaSiku, dan untuk nama kelasn!a $uga SegitigaSiku - Selan$utn!a ketikkan kode program di"awah ini pada #ode editor pa#kage segitigasiku- import $ava.io.B- 3-13 pu"li# #lass SegitigaSiku , pu"li# stati# void main(String=> args throws J+#eption, 'ataKnputStream masukan 0 new 'ataKnputStream(S!stem.in-
int tinggi, i, $, k- tinggi 0 Knteger.parseKnt(strtinggi- )) mengu"ah inputan varia"el strtinggi dengan )) tipe String ke varia"el tinggi dengan tipe data integer
)B perulangan for i melakukan perulangan dari 1 sampai se"an!ak nilai varia"el tinggi !ang dimasukkan(perulangan "aris ) "an!akn!a "aris !ang akan di#etak B) for(i01-i40tinggi-i33,
)B perulangan for $ melakukan perulangan spasi(A Ase"an!ak nilai varia"el tinggi dan "erkurang 1 setiap perulangann!a("erpindah "aris sampai $umlah spasi(A A !ang di#etak pada "aris !ang "ersangkutan "er$umlah 1 B) for($0tinggi-$10i-$--, S!stem.out.print(A A- . )B perulangan for k melakukan perulangan "intang(ABAdari 1 sampai se"an!ak nilai varia"el tinggi dan "ertam"ah 1 setiap perulangann!a sampai $umlah "intang(ABA !ang di#etak sama dengan nilai varia"el tinggi !ang diinput B) for(k01-k40i-k33, S!stem.out.print(ABA- . )) perintah "erganti "aris ini dilakukan setiap selesai 1+ dalam melakukan perulangan $ dan perulangan k S!stem.out.print(ALnA- . . . Step $ - Cuild pro$e#t terse"ut dengan memilih menu Mun 01 Cuild Main Pro$e#t, atau dengan menggunakan hotke! <11. - Jika tidak ada kesalahan(CNK@' SN//JSS<N@, $alankan pro$e#t terse"ut dengan memilh menu Mun 01 Mun Main Pro$e#t, atau dengan menggunakan hotke! <6. T67P(,68 O9TP9T 3-1( P1.3 ,atihan Cerikut ini adalah program untuk menginput nilai dan menampilkan hasiln!a Step 1 - Jalankan Fet"eans %nda. - @alu "uat file pro$e#t "aru dengan memilih menu <ile 01 Few Pro$e#t, atau dengan menggunakan hotke! /trl3Shift3F. - Pilih $enis pro$e#t !ang akan di"uat(Java 01 Java %ppli#ation - Hentukan nama pro$e#t dan lokasi pen!impanan pro$e#t(disini nama pro$e#tn!a <i"ona#i, dan untuk nama kelasn!a $uga <i"ona#i - Pada #ode editor di net"eans, ketikkan program "erikut (@engkapi kode program dengan mengisi titik-titik !ang "erwarna merah pa#kage fi"ona#i- import $ava.io.B- pu"li# #lass <i"ona#i , pu"li# stati# void main(String=> args throws J+#eption, :::::::.. )) deklarasi varia"el masuk se"agai inputan utama melalui CufferedMeader
:::::: )) deklarasikan varia"el $umlah dengan tipe data integer
:::::: )B u"ahlah input untuk varia"el $umlahfi"o tipe data String ke varia"el $umlah dengan tipe data Knteger B)
:::::: )) #etak nilai awal dari varia"el a 3-15
:::::: )) #etak nilai awal dari varia"el " do , # 0 a 3 "- S!stem.out.println(#- a 0 "- " 0 #- i33- :::::: )) kondisi untuk perulangan do..while selama nilai i 4 (nilai $umlah-1 . . T67P(,68 O9TP9T ,6T(;68 P<O=<67 5O<*5S( ,6T(;68 P<O=<67 pa#kage fi"ona#i- )BB B B Oauthor Shinigami B) import $ava.io.B- pu"li# #lass <i"ona#i , pu"li# stati# void main(String=> args throws J+#eption, CufferedMeader masuk 0 new CufferedMeader(new KnputStreamMeader(S!stem.in-