5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 1/37
I. JUDUL :
PERULANGAN PROGRAM REKURSIF
II. TUJUAN :
1. Memahami perulangan (loop) dengan Java
2. Memahami fungsi Rekursif
III. TEORI DASAR
Struktur control perulangan digunakan untuk mengeksekusi bagian tertentu sesuai dengan
jumlah angka perulangannya.
Sifat-sifat Rekursif
Dapat digunakan ketika inti dari masalah terjadi berulang kali
Sedikit lebih efisien dari iterasi tapi lebih elegan
Method-methodnya dimungkikan untuk memanggil dirinya sendiri
Data yang berada dalam method tersebut seperti argument disimpan sementara ke
dalam method pemanggilannya diselesaikan
Struktur Kontrol Perulangan
Struktur kontrol pengulangan adalah berupa pernyataan dari Java yang mengijinkan kita
untuk mengeksekusi blok code berulang-ulang sesuai dengan jumlah tertentu yang
diinginkan. Ada tiga macam jenis dari struktur kontrol pengulangan yaitu while, dowhile,
dan for-loops.
While Loop
Pernyataan while loop adalah pernyataan atau blok pernyataan yang diulang-ulang
sampai mencapai kondisi yang cocok.
Bentuk pernyataan while,
while( boolean_expression ){
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 2/37
statement1;
statement2;
. . .
}
Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama kondisi
boolean_expression bernilai benar (true).
Contoh, pada kode dibawah ini,
int i = 4;
while ( i > 0 ){
System.out.print(i);
i--;
}
Contoh diatas akan mencetak angka 4321 pada layar. Perlu dicatat jika bagian i--;
dihilangkan, akan menghasilkan pengulangan yang terus menerus (infinite loop).
Sehingga, ketika menggunakan while loop atau bentuk pengulangan yang lain, pastikan
Anda memberikan pernyataan yang membuat pengulangan berhenti pada suatu kondisi.
Berikut ini adalah beberapa contoh while loop,
Contoh 1:
int x = 0;while (x<10)
{
System.out.println(x);
x++;
}
Contoh 2:
//infinite loop
while(true)
System.out.println(“hello”);
Contoh 3:
//no loops
// statement is not even executed
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 3/37
while (false)
System.out.println(“hello”);
Do-While Loop
Do-while loop mirip dengan while-loop. Pernyataan di dalam do-while loop akan
dieksekusi beberapa kali selama kondisi bernilai benar(true).Perbedaan antara while
dan do-while loop adalah dimana pernyataan di dalam do-while loop akan dieksekusi
sedikitnya satu kali.
Bentuk pernyataan do-while,
do{
statement1;
statement2;
. . .
}while( boolean_expression );
Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi
kondisi dari boolean_expression. Jika nilai pada boolean_expression tersebut bernilai
true, pernyataan di dalam do-while loop akan dieksekusi lagi.
Berikut ini beberapa contoh do-while loop:
Contoh 1:int x = 0;
do
{
System.out.println(x);
x++;
}while (x<10);
Contoh ini akan memberikan output 0123456789 pada layar.
Contoh 2:
//infinite loop
do{
System.out.println(“hello”);
} while (true);
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 4/37
Contoh di atas akan melakukan pengulangan terus menerus yang menulis kata “hello”
pada layar.
Contoh 3:
//one loop
// statement is executed once
do
System.out.println(“hello”);
while (false);
Contoh di atas akan memberikan output hello pada layar.
Panduan pemrograman:
1. Kesalahan pemrograman yang biasa terjadi ketika menggunakan do-while loop
adalah lupa untuk menulis titik koma (;) setelah ekspresi while.
do{
...
}while(boolean_expression)//- salah>tidak ada titik koma(;)
2. Seperti pada while loop, pastikan do-while loop anda berhenti pada suatu kondisi.
for loop
Pernyataan for loop memiliki kondisi hampir mirip seperti struktur pengulangan
sebelumnya yaitu melakukan pengulangan untuk mengeksekusi kode yang sama
sebanyak jumlah yang telah ditentukan.
Bentuk dari for loop,
for (InitializationExpression; LoopCondition; StepExpression){
statement1;
statement2;
. . .
}
dimana,
InitializationExpression – inisialisasi dari variabel loop.
LoopCondition - membandingkan variabel loop pada nilai batas tertentu
. StepExpression - melakukan update pada variabel loop.
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 5/37
Berikut ini adalah contoh dari for loop,
int i;
for( i = 0; i < 10; i++ ){
System.out.print(i);
}
Pada contoh ini, pernyataan i=0 merupakan inisialisasi dari variabel. Selanjutnya,
kondisi i<10 diperiksa. Jika kondisi bernilai true, pernyataan di dalam for loop
dieksekusi. Kemudian, ekspresi i++ dieksekusi, lalu akan kembali pada bagian
pemeriksaan terhadap kondisi i<10 lagi. Kondisi ini akan dilakukan berulang-ulang
sampai mencapai nilai yang salah (false).
Contoh tadi, adalah contoh yang sama dari while loop,
int i = 0;
while( i < 10 ){
System.out.print(i);
i++;
}
IV. LANGKAH KERJA
Langkah 1 : NetBeans
Ada dua cara untuk menjalankan NetBeans. Pertama menulis perintah menggunakan
terminal, atau hanya dengan mengklik pada tombol shortcut yang dapat ditemukan di
desktop. Setelah Anda membuka NetBeans IDE, Anda akan melihat graphical user
interface (GUI) seperti yang ditunjukkan dibawah ini.
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 6/37
Langkah 2: Membuat sebuah Project
Klik pada File->New Project. Setelah melakukannya, akan ditampilkan kotak dialog
project yang baru. Kemudian klik pada Java Application dan klik tombol NEXT.
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 7/37
Sekarang, dialog aplikasi yang baru akan ditampilkan.
Cobalah untuk mengubah lokasi aplikasi, dengan mengklik pada tombol BROWSE.
Kemudian dialog lokasi project akan muncul. Klik dua kali folder yanganda inginkan.
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 8/37
Lihatlah Project Location dan Project Folder telah berubah sesuai yang di inginkan.
Yang terakhir, pada textfield Create Main Class, tulislah Hello sebagai nama kelas
utama, dan kemudian klik tombol FINISH.
Langkah 3: Menulis dalam Program
Sebelum menulis program Anda, pertama akan dijelaskan mengenai jendela
utamasetelah membuat project. Seperti ditunjukkan di bawah, secara otomatis
NetBeans membuat kode dasar untuk program Java Anda. Anda dapat menambah
pernyataan-pernyataan Anda pada kode yang telah di-generate. Pada sisi kiri jendela,
Anda dapat melihat daftar folder dan filefile yang dihasilkan NetBeans setelah
membuat sebuah project. Semua ini dapat Anda temukan dalam folder
MYJAVAPROGRAMS, dimana dapat metapkan lokasi project tersebut.
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 9/37
Langkah 4: Menjalankan Program
Untuk menjalankan program Anda, klik pada Run->Run Main Project. Atau Anda
juga dapat menggunakan tombol shortcut untuk menjalankan program Anda.
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 10/37
V. HASIL PRAKTIKUM`
1. program Loop While
Source code
/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package di_modul;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
/**
** @author nurchaerah*/ public class main {public static void main(String[] args) {System.out.println("Masukkan angka Anda:");BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));String angkaInput = null;
try {angkaInput = bfr.readLine();
} catch (IOException e) {e.printStackTrace();
}int Data = Integer.valueOf(angkaInput).intValue();int i = 1;while (i <= Data) {
System.out.println("Bilangan" + i);i++;}
}}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 11/37
Analisa
Source Code Penjelasan
import java.io.BufferedReader; digunakan untuk melakukan penginputan data
dengan menggunkan fungsi Buffered Reader.
import java.io.IOException; digunakan untuk melakukan penginputan data
dengan menggunakan fungsi IOException.
import java.io.InputStreamReader; digunakan untuk melakukan penginputan data
dengan menggunakan fungsi
InputStreamReader
public class loop_do while { Public class bernama loop do while
public static void main(String[] args) { mengindikasikan nama suatu method dalamclass loop do while yang bertindak sebagai
method utama.
int Data;
do {
System.out.print("Masukkan
angka Anda :");
menampilkan teks “Masukkan angka Anda!”
pada layar.
BufferedReader bfr = new
BufferedReader
Membuat objek baru yang dibaca dari
keyboard.
(new InputStreamReader(System.in));
String angkaInput = null; Variable baru berupa string (yang bernama
angka input)
try {
angkaInput=bfr.readln();
} catch (IOException e) {
Akan menunggu sampai ada masukan data dari
keyboard
e.printStackTrace();e.printStackTrace();
}
Data =
Integer.valueOf(angkaInput).intValue();
Setelah ada input, input tersebut diubah
menjadiata tipe integer
} while (Data !=99); Pada saat program yang dijalankan akan
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 12/37
memilih data yang dimasukkan sampai data
yang dimasukkan bernilai 99
System.out.println("Anda keluar dari
LOOP");
}
}
menampilkan teks “Anda keluar dari LOOP”
pada layar.
Output
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 13/37
2. program Do While
Source code
Analisa
Source code Penjelasan
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
menjelaskan bahwa kita akan
menggunakan class BufferedReader,
InputStreamReader dan IOException
yang berada di java.io package.
public class main {
public static void main(String[] args) {
Statement ini menyatakan bahwa kita
mendeklarasikan sebuah class maindan
kita mendeklarasikan main method.
int Data; Deklarasi variable Data degan tipe Integer
do { Memulai perulangan dengan Do-While
/** To change this template, choose Tools | Templates
* and open the template in the editor.*/
package di_modul;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
/**** @author nurchaerah*/
public class Do_while {{public static void main(String[] args) {
int Data;do {
System.out.print("Masukkan angka Anda :");BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));String angkaInput = null;
try {angkaInput = bfr.readLine();
} catch (IOException e) {e.printStackTrace();
}Data = Integer.valueOf(angkaInput).intValue();
} while (Data !=99);System.out.println("Anda keluar dari LOOP");}
}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 14/37
System.out.println("Masukkan angka
Anda:");
Menampilkan text “Masukkan angka
Anda:" ke monitor
BufferedReader bfr = new
BufferedReader
(new InputStreamReader(System.in));
mendeklarasikan sebuah variabel bernama
bfr dengan tipe class BufferedReader.
String angkaInput = null; mendeklarasikan variabel String dengan
identifier angkaInput, Nama variabel
diinisialisasi sebagai String kosong
try { Memulai fungsi try-catch
angkaInput = bfr.readLine(); Pernyataan yag akan ditangkap dengan
fungsi try-catch
} catch (IOException e) {
e.printStackTrace();
}
Penanganan pernyataan dengan Exeption
Data
=Integer.valueOf(angkaInput).intValue();
Mendeklarasika variable Data dengan tipe
integer degan value dari variable
angkaInput
} while (Data !=99); Fungsi perulangan yang menyatakan
kondisi jika Data !=99
System.out.println("Anda keluar dari
LOOP");
}
}
Menampilkan text “Anda keluar dari
LOOP”
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 15/37
Output
3. program Loop For
Source code
/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package di_modul;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
/**** @author nurchaerah*/ public class main {public static void main(String[] args) {
System.out.println("Masukkan angka Anda:");BufferedReader bfr = new BufferedReader
(new InputStreamReader(System.in));String angkaInput = null;
try {angkaInput = bfr.readLine();
} catch (IOException e) {e.printStackTrace();}
int Data = Integer.valueOf(angkaInput).intValue();for(int ulang = 1;ulang<=Data; ulang++) {
System.out.println("Bilangan : " + ulang);}}
}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 16/37
Analisa
Source code Penjelasan
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
menjelaskan bahwa kita akan
menggunakan class BufferedReader,
InputStreamReader dan IOException
yang berada di java.io package.
public class main {
public static void main(String[] args) {
Statement ini menyatakan bahwa kita
mendeklarasikan sebuah class maindan
kita mendeklarasikan main method.
System.out.println("Masukkan angka
Anda:");
Menampilkan text “Masukkan angka
Anda:" ke monitor
BufferedReader bfr = new
BufferedReader
(new InputStreamReader(System.in));
mendeklarasikan sebuah variabel bernama
bfr dengan tipe class BufferedReader.
String angkaInput = null; mendeklarasikan variabel String dengan
identifier angkaInput, Nama variabel
diinisialisasi sebagai String kosong
try { Memulai fungsi try-catch
angkaInput = bfr.readLine(); Pernyataan yag akan ditangkap dengan
fungsi try-catch
} catch (IOException e) {
e.printStackTrace();
}
Penanganan pernyataan dengan Exeption
int Data =
Integer.valueOf(angkaInput).intValue();
Mendeklarasika variable Data dengan tipe
integer degan value dari variable
angkaInput
for(int ulang = 1;ulang<=Data; ulang++) { Fungsi perulangan yang menyatakan
variable ulang = 1 dan selama ulang lebih
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 17/37
kecil atau sama dengan nilai pada variable
Data maka increment niali pada variable
ulang
System.out.println("Bilangan : " + ulang);
}
}
}
Menampilkan nilai dari variable ulang
setelah text “Bilangan:”
Output
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 18/37
4. program nestedloop
Source code
/*
* To change this template, choose Tools | Templates* and open the template in the editor.*/
package javaapplication14;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
/**** @author nurchaerah*/ public class Main {
/*** @param args the command line arguments*/ public static void main(String[] args) {
int ulang = inputData();buatSegitiga(ulang);}
private static int inputData() {System.out.print("Masukkan jumlah segitiga yang Anda mau :");
BufferedReader bfr = new BufferedReader
(new InputStreamReader(System.in));String angkaInput = null;
try {angkaInput = bfr.readLine();
} catch (IOException e) {e.printStackTrace();
}int Data = Integer.valueOf(angkaInput).intValue();return Data;}
private static void buatSegitiga(int ulang) {for(int i=1;i<=ulang; i++) {
for (int j=1;j<=(ulang-i);j++) {System.out.print(" ");
}for(int k=1;k<=i;k++) {
System.out.print("#");}
System.out.println("");}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 19/37
Analisa
Source code Penjelasan
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
menjelaskan bahwa kita akan
menggunakan class BufferedReader,
InputStreamReader dan IOException
yang berada di java.io package.
public class main {
public static void main(String[] args) {
Statement ini menyatakan bahwa kita
mendeklarasikan sebuah class maindan
kita mendeklarasikan main method.
int ulang = inputData(); Mendeklarasikan variable “r” dengan tipe
data integer dan value adalah data yang
diinput dari keyboard.
buatSegitiga(ulang);
}
Mendeklarasikan nama dari private
program dengan variable ulang
private static int inputData() { Program private static dengan variable
inputData
System.out.print("Masukkan jumlah
segitiga yang Anda mau :");
Menampilkan text “Masukkan jumlah
segitiga yang Anda mau :" ke monitor
BufferedReader bfr = new
BufferedReader
(new InputStreamReader(System.in));
mendeklarasikan sebuah variabel bernama
bfr dengan tipe class BufferedReader.
String angkaInput = null; mendeklarasikan variabel String dengan
identifier angkaInput, Nama variabel
diinisialisasi sebagai String kosong
try { Memulai fungsi try-catch
angkaInput = bfr.readLine(); Pernyataan yag akan ditangkap dengan
fungsi try-catch
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 20/37
} catch (IOException e) {
e.printStackTrace();
}
Penanganan pernyataan dengan Exeption
int Data =
Integer.valueOf(angkaInput).intValue();
Mendeklarasika variable Data dengan tipe
integer degan value dari variable
angkaInput
return Data;
}
Keluar dari method
private static void buatSegitiga(int ulang)
{
Program private static dengan variable
buatSegitiga
for(int i=1;i<=ulang; i++) { Fungsi perulangan yang menyatakan i = 1
dan selama i lebih kecil atau sama dengan
nilai pada variable ulang maka increment i
for (int j=1;j<=(ulang-i);j++) { Fungsi perulangan yang menyatakan j = 1
dan selama j lebih kecil atau sama dengan
nilai pada variable ulang-i maka increment
j
System.out.print(" ");
}
Menampilkan text kosong digunakan
sebagai space
for(int k=1;k<=i;k++) { Fungsi perulangan yang menyatakan k = 1
dan selama k lebih kecil atau sama dengan
nilai pada variable i maka increment k
System.out.print("#");
}
Cetak “#” pada layar
System.out.println("");
}
}
}
Menampilkan text kosong digunakan
sebagai perpindahan baris
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 21/37
Output
5. program TryCatch
Source code
/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package javaapplication15;
/**** @author nurchaerah*/
public class Main {
/*** @param args the command line arguments*/
public static void main(String args[]) {int[] myArray = new int[10];try {
System.out.println("Sebelum pemberian nilai yang sah");myArray[0] = 1;System.out.println("Sebelum pemberian nilai yang tidak
sah"); // Kode penyeModul kesalahan (eception).myArray[100] = 1;System.out.println("Setelah exception array");} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Kesalahan dalam indeks array");}
}}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 22/37
Analisa
Source code Penjelasan
public class main {
public static void main(String[] args) {
Statement ini menyatakan bahwa kita
mendeklarasikan sebuah class maindan
kita mendeklarasikan main method.
int[] myArray = new int[10]; Deklarasi variable myArray degan tipe
Integer
try { Memulai fungsi try-catch
System.out.println("Sebelum pemberian
nilai yang sah");
Menampilkan text "Sebelum pemberian
nilai yang sah"
myArray[0] = 1; Memesan tempat 0 dengan variable
myArray dengan nilai 1
System.out.println("Sebelum pemberian
nilai yang tidak sah");
Menampilkan text "Sebelum pemberian
nilai yang tidak sah"
myArray[100] = 1; Memesan tempat 100 dengan variable
myArray dengan nilai 1
System.out.println("Setelah exception
array");
Menampilkan text "Setelah exception
array"
} catch
(ArrayIndexOutOfBoundsException e) {
Penanganan pernyataan dengan Exeption
System.out.println("Kesalahan dalam
indeks array");
}
}
}
Menampilkan text “Kesalahan dalam
indeks array”
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 23/37
Output
6. program BagidenganNol
Source code
/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package javaapplication16;
/**** @author nurchaerah*/ public class Main {
public static void main(String[] args) {int bilangan = 100;System.out.println("Sebelum pembagian");for(int i=5; i>=0; i--) {
try {System.out.print(bilangan + "/" + i + "=");System.out.println(bilangan/i);
}catch(RuntimeException r){
System.out.println("Error karena pembagian nol!");
}
finally{System .out.println("Bagian finally dijalankan");
}}System.out.println("Selesai");
}}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 24/37
Analisa
Source code Penjelasan
public class main {
public static void main(String[] args) {
Statement ini menyatakan bahwa kita
mendeklarasikan sebuah class maindan
kita mendeklarasikan main method.
int bilangan = 100; Deklarasi variable bilangan dengan tipe
Integer dan value “100”
System.out.println("Sebelum
pembagian");
Menampilkan text “Masukkan angka
Anda:" ke monitor
for(int i=5; i>=0; i--) { Menyatakan kondisi perulang dimana i
berniali 5 dan selama i lebih besar atau
sama dengan 0 lakukan decrement i
(kurangkankan dengan 1)
try { Memulai fungsi try-catch
System.out.print (bilangan + "/" + i +
"=");
Pernyataan yang akan ditangkap dengan
fungsi try-catch dimana menampilkan nilai
pada variable bilangan lalu text “/” nilai
pada variable i dan text “=”
System.out.println(bilangan/i);
}
Pernyataan yang akan ditangkap dengan
fungsi try-catch dimana menampilkan hasil
dari pembagian
catch(RuntimeException r){ Penanganan pernyataan dengan Exeption
Data
=Integer.valueOf(angkaInput).intValue();
Mendeklarasika variable Data dengan tipe
integer degan value dari variable
angkaInput
System.out.println("Error karenapembagian nol!");
}
Menampilkan text “Error karena pembagian nol!”
Finally Label finally
{ Menampilkan text “Bagian finally
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 25/37
System .out.println("Bagian finally
dijalankan");
}
dijalankan”
}
System.out.println("Selesai");
}
}
Menampilkan text “selesai”
Output
7. program Phytagoras
Source code
/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package javaapplication17;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
/**** @author nurchaerah*/ public class Main {
/*** @param args the command line arguments*/
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 26/37
Analisa
Source code Penjelasan
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
menjelaskan bahwa kita akan
menggunakan class BufferedReader,
InputStreamReader dan IOException
yang berada di java.io package.
public class main {
public static void main(String[] args) {
Statement ini menyatakan bahwa kita
mendeklarasikan sebuah class maindan
kita mendeklarasikan main method.
System.out.print("Masukkan tinggi Menampilkan text "Masukkan tinggi
public static void main(String[] args) {System.out.print("Masukkan tinggi segitiga Phytagoras :");
final int tinggi = inputData();triangle(tinggi);
}
private static int triangle(int n) {int bilangan = 0;if (n == 1) {
bilangan = 1;System.out.println("Bilangan ke-" + n + " adalah " +
bilangan);return bilangan;
} else {bilangan = n + triangle(n - 1);System.out.println("Bilangan ke-" + n + " adalah " +
bilangan);}return bilangan;
}
private static int inputData() {BufferedReader bfr = new BufferedReader(
new InputStreamReader(System.in));String angkaInput = null;try {
angkaInput = bfr.readLine();} catch (IOException e) {
e.printStackTrace();}int Data = Integer.valueOf(angkaInput).intValue();return Data;
}
}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 27/37
segitiga Phytagoras :"); segitiga Phytagoras :"
final int tinggi = inputData(); Mendeklarasikan variable tinggi dengan
tipe integer final dan value diambil dari
nilai yang diinput dari keyboard
triangle(tinggi); Mendeklarasikan nama dari private
program dengan variable tinggi
private static int triangle(int n) { Program private static dengan variable
triangle
int bilangan = 0; Mendeklarasikan variable bilangan dengan
tipe integer dan value 0
if (n == 1) { Pernyataan jika n sama dengan 1
bilangan = 1; Kondisi jika pernyataan diatas benar maka
variable bilangan diisi dengan nilai 1
System.out.println("Bilangan ke-" + n + "
adalah " + bilangan);
Menampilkan text “Bilangan ke-”
kemudian nilai dari variable n lalu text
“adalah” dan nilai dari variable bilangan
return bilangan; Pernyataan untuk keluar dari sebuah
method
else {
bilangan = n + triangle(n - 1);
Jika pernyataan tadi salah maka bilangan
adalah n ditambah nilai pada variable
trangel (nilai variable dikurangkan 1)
System.out.println("Bilangan ke-" + n + "
adalah " + bilangan);
}
Menampilkan text “Bilangan ke-”
kemudian nilai dari variable n lalu text
“adalah” dan nilai dari variable bilangan
}
return bilangan;
Pernyataan untuk keluar dari sebuah
method
private static int inputData() { Program private static dengan variable
inputData
BufferedReader bfr = new
BufferedReader
mendeklarasikan sebuah variabel bernama
bfr dengan tipe class BufferedReader.
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 28/37
(new InputStreamReader(System.in));
String angkaInput = null; mendeklarasikan variabel String dengan
identifier angkaInput, Nama variabel
diinisialisasi sebagai String kosong
try { Memulai fungsi try-catch
angkaInput = bfr.readLine(); Pernyataan yag akan ditangkap dengan
fungsi try-catch
} catch (IOException e) {
e.printStackTrace();
}
Penanganan pernyataan dengan Exeption
int Data =
Integer.valueOf(angkaInput).intValue();
Mendeklarasika variable Data dengan tipe
integer degan value dari variable
angkaInput
return Data;
}
Keluar dari method
Output
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 29/37
8. program RekursifFaktorial
Source code
/*
* To change this template, choose Tools | Templates* and open the template in the editor.*/
package javaapplication18;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
/**** @author nurchaerah*/
public class Main {
/*** @param args the command line arguments*/ public static void main(String[] args) {
System.out.print("Masukkan bilangan yang akan di-FAKTORIAL-kan : ");final int bilangan = inputData();System.out.print("Faktorial dari " + bilangan
+ " adalah " + faktorial(bilangan)+ ".Mudah kan?");}private static int faktorial(int bilangan) {
if (bilangan == 0)return 1;
elsebilangan = bilangan * faktorial(bilangan - 1);
return bilangan;}
private static int inputData() {BufferedReader bfr = new BufferedReader(
new InputStreamReader(System.in));String angkaInput = null;try {
angkaInput = bfr.readLine();} catch (IOException e) {
e.printStackTrace();
}int Data = Integer.valueOf(angkaInput).intValue();return Data;
}}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 30/37
Output:
9. program Hanoi Rekursif
Source code
/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package javaapplication19;
/**** @author nurchaerah*/ public class Main {static int nDisks = 4;public static void main(String[] args)
{doTowers(nDisks,'A','B','C');}public static void doTowers(int topN,char from, char inter, char to)
{if(topN==1)System.out.println("Disk 1 dari " + from + " ke "+ to);else{doTowers(topN-1, from, to, inter); // dari --> media tengah.System.out.println("Disk " + topN +" dari " + from + " ke "+ to);doTowers(topN-1, inter, from, to); // media tengah --> ke}}} // Akhir kelas HanoiRekursif
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 31/37
Analisa
doTowers(nDisks,'A','B','C'); Bahwa variabel doTowers berisi
nDisk,A,B,dan C,
public static void doTowers
(int topN,char from,char inter,char
to)
mengindikasikan nama suatu method dalam
class loop do while yang bertindak sebagai
method utama.
Dimana dideklarasikan bahwa topN
merupakan integer,from,inter dan to
merupakan char.
if(topN==1) Jika TopN sama dengan 1
System.out.println("Disk 1 dari "+ from + "
ke "+ to);
Cetak atau tampilkan Disk 1 dari "+ from + "
ke "+ to
else
{
Jika tidak
doTowers(topN-1,from,to,inter);//dari -->
media tengah.
Kerja Variabel DoTOWERS topN-
1,from,to,inter atau pindah dari ke median
tengah
System.out.println(" Disk " + topN + " dari "
+ from + " ke " + to);
Cetak atau tampilkan Disk 1 dari "+ from + "
ke "+ to
doTowers(topN-1,inter,from,to);// media
tengah--> ke
Kerja Variabel DoTOWERS topN-
1,inter,from,to) atau media tengah--> ke
}
}
}
Program selesai
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 32/37
Output
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 33/37
Soal Praktikum
1. Buat sebuah program yang mencetak nama Anda selama seratus kali. Buat tiga versi
program ini menggunakan while loop, do while loop dan for loop
while loop
Source code
/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package soal_bab_4;
/**** @author nurchaerah*/ public class Main {
/*** @param args the command line arguments*/ public static void main(String[] args) {
int r=0;
while (r<100){System.out.println("NUR CHAERAH");r++;}}
}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 34/37
Analisa
Source code Penjelasan
public class program_while_loop {
public static void main(String
args[]){
Statement ini menyatakan bahwa
kita mendeklarasikan sebuah class
program_while_loop dan kita
mendeklarasikan main method.
int r=0; Mendeklarasikan variable “r”
dengan tipe data integer dan value
“0”.
while (r<100){ Menyatakan kondisi perulang
selama r lebih kecil dari 100.
System.out.println("NUR CHAERAH"); Menampilkan hasil yang berupa
text “NUR CHAERAH”
r++;
}
}
}
Menyatakan variable r
dijumlahkan dengan 1 selama
kondisi masih benar
Output
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 35/37
do while loop
Source code
Analisa
Source code Penjelasan
public class program_do_while {
public static void main(String
args[]){
Statement ini menyatakan bahwa
kita mendeklarasikan sebuah class
program_do_while dan kita
mendeklarasikan main method.
int r = 0; Mendeklarasikan variable “r”
dengan tipe data integer dan value
“0”.
do { Menyatakan sesuatu yang harus
dikerjakan selama proses looping
System.out.println("nur chaerah"); Perintah untuk print text “nur
chaerah”
r++; Menyatakan variable r
dijumlahkan dengan 1 selama
kondisi masih benar
} while (r<100);
}
}
Menyatakan kondisi perulang
selama r lebih kecil dari 100.
public class do_while_loop {public static void main(String args[]){int r = 0;do {System.out.println("nur chaerah");r++;} while (r<100);
}}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 36/37
Output
for loop
Source code
Analisa
Source code Penjelasan
public class program_for_loop {
public static void main(String
args[]){
Statement ini menyatakan bahwa
kita mendeklarasikan sebuah class
program_for_loop dan kita
mendeklarasikan main method.
int r; Mendeklarasikan variable “r”
dengan tipe data integer
for (r=0; r<100; r++){ Menyatakan kondisi perulang
dimana r berniali 0 dan selama r
lebih kecil dari 100 lakukan
public class for_loop {public static void main(String args[]){int r;for (r=0; r<100; r++){System.out.println("Nur Chaerah");
}}
}
5/12/2018 Nur Chaerah Pux Struktur Data - slidepdf.com
http://slidepdf.com/reader/full/nur-chaerah-pux-struktur-data 37/37
increment r (jumlahkan dengan 1)
System.out.println("Nur Chaerah");
}
}
}
Perintah untuk print text “Nur
Chaerah” selama kondisi terpenuhi
Output
2. Hitung pangkat sebuah nilai berdasarkan angka dan pangkatnya. Buat tiga versi dari
program ini menggunakan while loop, do while dan for loop
Top Related