JUDUL “PERULANGAN DAN PROGRAM REKURSIF” TUJUAN

advertisement
A.
JUDUL
“PERULANGAN DAN PROGRAM REKURSIF”
B.
TUJUAN
1. Mahasiswa dapat memahami perulangan (loop) dengan Java
2. Mahasiswa dapat memahami fungsi Rekursif
C.
TEORI DASAR
Rekursif adalah suatu proses yang bisa memanggil dirinya sendiri .
Perulangan rekursif merupakan salah satu metode didalam pemrograman yang
mana dalam sebuah fungsi terdapat instruksi yang memanggil fungsi itu sendri,
atau lebih sering disebut memanggil dirinya sendiri.
Perulangan iteratif merupakan perulangan yang melakukan proses
perulangan terhadap sekelompok instruksi. Perulangan dilakukan dalam batasan
syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan akan
terhenti.
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.
1. While Loop
Pernyataan while loop adalah pernyataan atau blok pernyataan yang
diulang-ulang sampai mencapai kondisi yang cocok. Bentuk pernyataan
while,
while( boolean_expression ){
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--;
}
2. Do-While Loop
Do-while loop mirip dengan while-loop. Pernyataan di dalam dowhile 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.
3. 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.
Berikut ini adalah contoh dari for loop,
int i;
for( i = 0; i < 10; i++ ){
System.out.print(i);
}
D.
HADWARE dan SOFTWARE
1. Hadware:
a. Laptop Acer Aspire 4736G (Core 2Duo)
2. Software :
a. Software “My Eclipse Enterprise Workbench 6.0”
b.
E.
Sistem Operasi Windows XP SP3
LANGKAH KERJA
1.
Siapkan alat dan bahan.
2. Menbuka software Eclipse yang telah terinstall pada PC atau Laptop anda. Start
 My Eclipse 6.0
3. Setelah jendela eclipse muncul, mengklik Menu File kemudian pilih New 
Java Project maka akan muncul jendela untuk membuat java project baru.
Ketikkan nama java project dengan naman Modul 4 kemudian klik Finish. Java
project telah berhasil dibuat.
4. Setelah itu, tambahkan Package dengan cara klik kanan Modul_4 yang berada
pada Package Explorer, pilih New  Package. Jendela baru akan muncul
untuk membuat package, ketikkan nama package yang anda inginkan, misalnya
pada praktikum ini ada 3 package yaitu nomor1, nomor2, nomor3 kemudian
klik Finish. Package telah berhasil dibuat.
5. Selanjutnya buat Class dengan cara klik kanan package typedata, pilih New 
Class. Jendela baru akan muncul untuk memasukkan nama class sesuai
keinginan anda, misalnya pada praktikum ini ada 3 class yang di buat pada
masing-masing package yaitu untuk Dowhile, Forloop, While. Setelah
mengetikkan sebuah nama class, klik Finish. Masing-masing class dibuat setelah
satu class telah selesai dibuat dan dimasukkan sintax perintahnya dan telah
berhasil dieksekusi.
6. Ketiklah kode program di text editor pada masing – masing kelas yang telah di
buat
F.
HASIL PRAKTIKUM
1. Class cetak_nama_dowhile package Modul_4
 Source Code
cetak_nama_dowhile.Java
package Modul_4;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class cetak_nama_dowhile {
public static void main(String[] args) {
BufferedReader bfr = new BufferedReader (new
InputStreamReader(System.in));
String namaInput = null;
String nimInput = null;
try {
System.out.print("Masukkan Nama Anda: ");
namaInput = bfr.readLine();
System.out.print("Masukkan Nim Anda: ");
nimInput = bfr.readLine();
}catch (IOException e){
e.printStackTrace();
}
int i=0;
do
{
System.out.println(i+"."+"Nama anda: "+
namaInput);
System.out.println("
i+=1;
}while (i <= 50);
}
}
Nim anda : "+ nimInput);
 Hasilnya
Analisa Program
import java.io.BufferedReader;
Artinya menyediakan penyangga untuk aliran input berupa
karekter sehingga bisa meningkatkan efisiensi berupa karakter dan
standarisasi dari metode reader dan juga menyediakan suatu metode
readLine() yang dapat digunakan untuk membaca sati baris teks (tidak
termasuk pemindah baris) dan mengembalikannya dalam bentuk String.
import java.io.IOException;
Artinya
menyediakan
menginisialisasikan
kemungkinan
kesalahan dari input sehingga menghindari output yang error.
 import java.io.InputStreamReader;
Artinya menyediakan karakter yang menggunakan aliran byte input sebagai
sumber data: byte-byte akan dibaca dari InputStream yang ditetapkan
kemudian byte tersebut diterjemahkan ke dalam karakter Unicode
 public class Dowhile {
Artinya class yang bersifat public yang bisa dishare dengan class dari package
lainnya.
 public static void main(String[]args){
Artinya bersifat umum yang bisa dipakai oelh program lain, tetap, dan fungsi
kelas ini tidak mengembalikan suatu nilai.dimana (String[]args) menyatakan
bahwa fungsi kelas program ini dapat menerima argument ketika dijalankan
 int i= 0;
Artinya identifier i yang bernilai awal 0 dengan tipe integer
 BufferedReader bfr = new BufferedReader
(new InputStreamReader(System.in));
Artinya sebuah variable bfr dengan tipe class bufferedreader. Suatu input
yang dideklarasikan dari class InputStreamReader.
 String namaInput = null;
String nimInput = null
Artinya string yang di identifier suatu namainput dan niminmput, variable
namainput dan niminmput diinisialisasi dengan null (variable tidak diisi).
try {
System.out.print("Masukkan Nama Anda: ");
namaInput = bfr.readLine();
System.out.print("Masukkan Nim Anda: ");
nimInput = bfr.readLine();
} catch (IOException ioe) {
System.out.println("Kesalahan IO, program berhenti");
System.exit(1);
}
Artinya perintah di dalam try { ... } adalah perintah yang kita ingin
jalankan pada situasi yang “mungkin” tidak berhasil. Parameter pada catch,
yaitu IOException ioe adalah jenis kesalahan yang ingin kita tangkap.
Dalam hal ini kita ingin menangkap adanya kesalahan IO, yaitu kesalahan
yang bertipe IOException. Perintah di dalam catch { ... } adalah perintah
yang akan dilakukan apabila kesalahan ditangkap. Jika tidak ada kesalahan IO
yang ditemukan, maka bagian ini akan dilewatkan (tidak dijalankan).
 do{
System.out.println(i+" Nama Anda " +namaInput);
System.out.println("
Nim anda : "+ nimInput);
i+=;
}while (i<= 50);
Artinya adalah suatu output sebuah string pada layar yang berada diantara
tanda kutip dalam kurung yaitu Nama Anda yang diikuti dengan namaInput dan
Nim Anda yang diikuti nimInput yang diinputkan user melalui keyboard. Output
tercetak sebanyak i kali dimana setiap output telah tercetak maka data akan
diincrement kemudian dilakukan pemeriksaan persyaratan i<=50. Output akan
tercetak sebanyak lima puluh kali, dan looping akan terhenti saat i>100.
2. Class cetak_nama_forloop package Modul_4
 Source Code
cetak_nama_forloop.Java
package Modul_4;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class cetak_nama_forloop {
public static void main(String[] args) {
BufferedReader bfr = new BufferedReader (new
InputStreamReader(System.in));
String namaInput = null;
String nimInput = null;
try {
System.out.print("Masukkan Nama Anda: ");
namaInput = bfr.readLine();
System.out.print("Masukkan Nim Anda: ");
nimInput = bfr.readLine();
}catch (IOException e){
e.printStackTrace();
}
int i;
for (i=0;i<=50;i++)
 Hasilnya
{
System.out.println(i+"."+"Nama anda: "+
namaInput);
System.out.println("
Nim anda : "+ nimInput);
}
}
}
Hasilnya
Analisa Data
import java.io.BufferedReader;
Artinya menyediakan penyangga untuk aliran input berupa
karekter sehingga bisa meningkatkan efisiensi berupa karakter dan
standarisasi dari metode reader dan juga menyediakan suatu metode
readLine() yang dapat digunakan untuk membaca sati baris teks (tidak
termasuk pemindah baris) dan mengembalikannya dalam bentuk String.
import java.io.IOException;
Artinya
menyediakan
menginisialisasikan
kemungkinan
kesalahan dari input sehingga menghindari output yang error.
 import java.io.InputStreamReader;
Artinya menyediakan karakter yang menggunakan aliran byte input sebagai
sumber data: byte-byte akan dibaca dari InputStream yang ditetapkan kemudian
byte tersebut diterjemahkan ke dalam karakter Unicode
 public class Forloop {
Artinya class program yang dibuat adalah Forloop, class yang bersifat public
yang bisa dishare dengan class dari package lainnya.
 public static void main(String[]args){
Artinya bersifat umum yang bisa dipakai oelh program lain, tetap, dan fungsi
kelas ini tidak mengembalikan suatu nilai.dimana (String[]args) menyatakan
bahwa fungsi kelas program ini dapat menerima argument ketika dijalankan
 int i= 0;
Artinya identifier i dengan tipe integer
 BufferedReader bfr = new BufferedReader
(new InputStreamReader(System.in));
Artinya sebuah variable bfr dengan tipe class bufferedreader. Suatu input yang
dideklarasikan dari class InputStreamReader.
 String namaInput = null;
String nimInput = null
Artinya string yang di identifier suatu namainput dan niminmput, variable
namainput dan niminmput diinisialisasi dengan null (variable tidak diisi)
try {
System.out.print("Masukkan Nama Anda: ");
namaInput = bfr.readLine();
System.out.print("Masukkan Nim Anda: ");
nimInput = bfr.readLine();
} catch (IOException ioe) {
System.out.println("Kesalahan IO, program berhenti");
System.exit(1);
}
for (i=0;i<=50;i++)
{
System.out.println(i+"."+"Nama anda: "+
namaInput);
System.out.println("
Nim anda : "+ nimInput);
}
Artinya adalah perulangan, dimana variabel i bernilai awal 0 dengan tipe integer,
kemudian pemeriksaan kondisi nilai i<=50,dan jika memenuhi maka nilai ulang
diincrement dan dicetak output inisialisasi variable i sebagai urutan di ikuti
string berada diantara tanda kutip yang diinput melalui keyboard oleh user.
Kemudian kembali melakukan identifikasi persyaratan. Program akan berhenti
looping apabila i >50
3. Class cetak_nama_whileloop package Modul_4
 Source Code
cetak_nama_whileloop.Java
package Modul_4;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class cetak_nama_whileloop {
public static void main(String[] args) {
BufferedReader bfr = new BufferedReader (new
InputStreamReader(System.in));
String namaInput = null;
String nimInput = null;
try {
System.out.print("Masukkan Nama Anda: ");
namaInput = bfr.readLine();
System.out.print("Masukkan Nim Anda: ");
nimInput = bfr.readLine();
}catch (IOException e){
e.printStackTrace();
}
int i=0;
while (i <= 50){
System.out.println(i+"."+"Nama anda: "+
namaInput);
 Hasilnya System.out.println("
Nim anda : "+
nimInput);
i+=1;
}
}
}
Analisa Data
import java.io.BufferedReader;
Artinya menyediakan penyangga untuk aliran input berupa
karekter sehingga bisa meningkatkan efisiensi berupa karakter dan
standarisasi dari metode reader dan juga menyediakan suatu metode
readLine() yang dapat digunakan untuk membaca sati baris teks (tidak
termasuk pemindah baris) dan mengembalikannya dalam bentuk String.
import java.io.IOException;
Artinya
menyediakan
menginisialisasikan
kemungkinan
kesalahan dari input sehingga menghindari output yang error.

import java.io.InputStreamReader;
Artinya menyediakan karakter yang menggunakan aliran byte input
sebagai sumber data: byte-byte akan dibaca dari InputStream yang
ditetapkan kemudian byte tersebut diterjemahkan ke dalam karakter
Unicode

public class Forloop {
Artinya class program yang dibuat adalah Forloop, class yang
bersifat public yang bisa dishare dengan class dari package lainnya.

public static void main(String[]args){
Artinya bersifat umum yang bisa dipakai oelh program lain, tetap,
dan fungsi kelas ini tidak mengembalikan suatu nilai.dimana
(String[]args) menyatakan bahwa fungsi kelas program ini dapat
menerima argument ketika dijalankan

int i= 0;
Artinya identifier i yang bernilai awal 0 dengan tipe integer

BufferedReader bfr = new BufferedReader
(new InputStreamReader(System.in));
Artinya sebuah variable bfr dengan tipe class bufferedreader.
Suatu input yang dideklarasikan dari class InputStreamReader.

String namaInput = null;
String nimInput = null
Artinya string yang di identifier suatu namainput dan niminmput,
variable namainput dan niminmput diinisialisasi dengan null
(variable tidak diisi)

try {
System.out.print("Masukkan Nama Anda: ");
namaInput = bfr.readLine();
System.out.print("Masukkan Nim Anda: ");
nimInput = bfr.readLine();
} catch (IOException ioe) {
System.out.println("Kesalahan IO, program berhenti");
System.exit(1);
}

while (i <= 50){
System.out.println(i+"."+"Nama anda: "+
namaInput);
System.out.println("
Nim anda : "+
nimInput);
i+=1;
}
Artinya adalah Identifikasi kondisi persyaratan i<=50 maka outputnya
bertipe string.Kemudian nilai i diincrement dan kembali ke proses awal
perulangan.Program akan berhenti melalukan perulangan jika saat
identifikasi kondisi persyaratan dimana i>50.
4. Class perpankatan_dowhile package Modul_4
 Sourcode
perpankatan_dowhile.Java
package Modul_4;
import javax.swing.JOptionPane;
public class perpankatan_dowhile {
public static void main(String[ ] args){
int hasil = 1;
String x = "";
String y = "";
x = JOptionPane.showInputDialog("Masukkan
angka");
int angka = Integer.valueOf(x).intValue();
y = JOptionPane.showInputDialog("Masukkan
pangkat");
int pangkat = Integer.valueOf(y).intValue();
int i=1;
do
{
i++;
hasil=hasil*angka;
}while(i<=pangkat);
String st3 = angka + " pangkat " + pangkat + " =
" + hasil;
JOptionPane.showMessageDialog (null,
 Hasilnya
"Hasilnya:\n" + st3);
}
}
 Hasilnya
 Analisa data

import javax.swing.JOptionPane;
Artinya adalah kelas tunggal yang mendukung sejumlah kelas
dialog.

int hasil = 1;
Artinya adalah suatu variable hasil dengan nilai awal 1 bertipe
yang integer.

String x ="";
Artinya adalah variable x dengan tipe string. Dimana X adalah
variable yang mewakili angka yang akan diinput dengan keadaan
awal kosong.

String y ="";
Artinya adalah variable y dengan tipe string. dimana Y adalah
variable yang mewakili pangkat yang akan diinput dengan keadaan
awal kosong.

x=JOptionPane.showInputDialog("Masukkan angka");
Artinya adalah untuk mencetak kotak dialog untuk memasukkan
angka dengan output string masukkan angka.

int angka =Integer.valueOf(x).intValue();
Artinya adalah mencetak kotak dialog untuk memasukkan
pangkat dengan output string masukkan pangkat.

y=JOptionPane.showInputDialog("Masukkan pangkat");
Artinya adalah mencetak kotak dialog untuk memasukkan
pangkat dengan output string masukkan pangkat.

int i=1;
Artinya adalah arvariable i dengan nilai awal 1 yang bertipe
integer.

do{i++;
hasil=hasil*angka;
}while(i<=pangkat);
Artinya adalah increment i kemudian mencari hasil dengan
hasil=hasil*angka, dimana hasil awal bernilai 1. Setelah itu deklarasi
persyaratan i<=pangkat dan kembali ke operasi awal (increment).
Program akan berhenti pada pemeriksaan nilai i jika i>pangkat.

String St3=angka + "pangkat" + pangkat + "=" +
hasil;
JOptionPane.showMessageDialog (null,
"Hasilnya:\n" + st3);
Artinya adalah mencetak hasil akhir dimana XpangkatY = hasil.
5.
Class perpangkatan_forloop package Modul_4
 Source Code
perpangkatan_forloop.Java
package Modul_4;
import javax.swing.JOptionPane;
public class perpangkatan_forloop {
public static void main(String[ ] args){
int hasil = 1;
String x = "";
String y = "";
x = JOptionPane.showInputDialog("Masukkan angka");
int angka = Integer.valueOf(x).intValue();
y = JOptionPane.showInputDialog("Masukkan pangkat");
int pangkat = Integer.valueOf(y).intValue();
for(int i=1;i<=pangkat; i++){
hasil=hasil*angka;
}
String st3 = angka + " pangkat " + pangkat + " = " +
hasil;
JOptionPane.showMessageDialog (null, "Hasilnya:\n" +
st3);
}
}
Hasilnya
Analisa Data

import javax.swing.JOptionPane;
Artinya adalah kelas tunggal yang mendukung sejumlah kelas dialog.

int hasil = 1;
Artinya adalah suatu variable hasil dengan nilai awal 1 bertipe yang integer.

String x ="";
Artinya adalah variable x dengan tipe string. Dimana X adalah variable yang
mewakili angka yang akan di input dengan keadaan awal kosong.

String y ="";
Artinya adalah variable y dengan tipe string. dimana Y adalah variable yang
mewakili pangkat yang akan di input


x=JOptionPane.showInputDialog("Masukkan angka");
Artinya adalah untuk mencetak kotak dialog untuk memasukkan angka dengan
output string masukkan angka.
int angka =Integer.valueOf(x).intValue();
Artinya adalah mencetak kotak dialog untuk memasukkan pangkat dengan
output string masukkan pangkat.

y=JOptionPane.showInputDialog("Masukkan pangkat");
Artinya adalah mencetak massage box untuk memasukkan pangkat dengan
output string masukkan pangkat.

int i=1;
Artinya adalah arvariable i dengan nilai awal 1 yang bertipe integer.

do{i++;
hasil=hasil*angka;
}while(i<=pangkat);
Artinya adalah increment i kemudian mencari hasil dengan hasil=hasil*angka,
dimana hasil awal bernilai 1. Setelah itu deklarasi persyaratan i<=pangkat dan
akan kembali ke operasi awal.Program akan berhenti pada pemeriksaan nilai i
jika i>pangkat.

String St3=angka + "pangkat" + pangkat + "=" +
hasil;
JOptionPane.showMessageDialog (null, "Hasilnya:\n" +
st3);
Artinya adalah mencetak hasil akhir dimana XpangkatY = hasil.
6. Class perpangkatan_whileloop package Modul_4
 Source Code
perpangkatan_whileloop.Java
package Modul_4;
import javax.swing.JOptionPane;
public class perpangkatan_whileloop {
public static void main(String[ ] args){
int hasil = 1;
String x = "";
String y = "";
x = JOptionPane.showInputDialog("Masukkan angka");
int angka = Integer.valueOf(x).intValue();
y = JOptionPane.showInputDialog("Masukkan pangkat");
int pangkat = Integer.valueOf(y).intValue();
int i=1;
while(i<=pangkat){
i++;
hasil=hasil*angka;
}
String st3 = angka + " pangkat " + pangkat + " = " +
hasil;
JOptionPane.showMessageDialog (null, "Hasilnya:\n" +
st3);
}
}
}
Hasilnya
Analisa Data

import javax.swing.JOptionPane;
Artinya adalah kelas tunggal yang bersifat dukung sejumlah
kelas dialog.

int hasil = 1;
Artinya adalah mendeklarasikan variable hasil dengan nilai awal
1 bertipe integer.

String x ="";
Artinya adalah variable x dengan yang kosong bertipe
string.dimana X variable bersifat angka yang akan diinput dengan
keadaan awal kosong.

String y ="";
Artinya adalah variable y dengan yang kosong bertipe
string.dimana Y variable yang bersifat pangkat yang akan diinput
dengan keadaan awal kosong.

x=JOptionPane.showInputDialog("Masukkan angka");
Artinya adalah mencetak kontak dialog untuk memasukkan angka
dengan output string

int angka =Integer.valueOf(x).intValue();
Artinya adalah angka yang diinput dengan awal bertipe string,
nilai x diubah menjadi tipe integer.

y=JOptionPane.showInputDialog("Masukkan pangkat");
Artinya adalah mencetak kotak dialog untuk memasukkan
pangkat dengan output string masukkan pangkat.

intpangkat=Integer.valueOf(y).intValue();
artinya adalah pangkat yang diinput dengan awalnya bertipe
string, nilai y diubah menjadi tipe integer.

int i=1;
Artinya adalah variable i dengan nilai awal 1 bertipe integer.

while(i<=pangkat){
i++;
hasil=hasil*angka;
}
Artinya adalah persyaratan i<=1 dimana i telah bernilai awal 1.
Jika memenuhi persyaratan maka i diincrement dan diproses dalam
perhitungan hasil dengan konsep hasil=hasil*angka, dimana hasil
telah bernilai awal 1 kemudian kembali ke looping. Program akan
berhenti jika pada kondisi persyaratan sudah tidak memenuhi

String St3=angka + "pangkat" + pangkat + "=" +
hasil;
JOptionPane.showMessageDialog (null,
"Hasilnya:\n" + st3);
Artinya adalah mencetak output hasil akhir dengan
XpangkatY = hasil. Kotak dialog null atau tidak diisi namun output
secara otomatis tercetak setelah proses looping selesai.
G.
KESIMPULAN
1. Perulangan rekursif merupakan salah satu metode didalam pemrograman yang
mana dalam sebuah fungsi terdapat instruksi yang memanggil fungsi itu
sendri, atau lebih sering disebut memanggil dirinya sendiri.
2. 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.
H.
DAFTAR REFERENSI
 Jobsheet Struktur Data

Modul J.E.N.I Pengenalan Pemrograman 1 : Struktur Kontrol.
Download