Anda di halaman 1dari 30

Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Modul Praktikum I

Instalasi Java 2 System Development Kit (J2SDK1.4)

Tujuan :
Untuk mengetahui cara instalasi J2SDK1.4
Melakukan setting pada file AUTOEXEC.BAT

Pendahuluan :
Untuk memprogram Java dan melakukan kompilasi terhadap program Java menjadi Java
bytecode, perangkat lunak yang digunakan adalah J2SDK versi 1.4 dari Sun Microsystems.
Setelah program tersebut diinstal pada platform Windows, maka lakukan setting pada file
autoexec.bat dengan cara mengetikan: edit autoexec.bat - pada prompt DOS, kemudian
ketikan pada file autoexec.bat seperti yang ditunjukkan pada gambar 1.1.

Gambar 1.1. Setting path j2sdk pada file autoexec.bat

Setelah melakukan setting pada file tersebut, jalankan file autoexec.bat dengan cara
mengetikkan nama file tersebut pada prompt DOS, contoh :

C:\autoexec.bat
Lakukan pengujian terhadap hasil instalasi dengan membuat sebuah program java yang
sederhana seperti berikut ini :

Contoh program 1.1


nama file : test.java
class test {
public static void main(String[] args) {
System.out.println(“Installation Status : OK”);
}
}

Praktikum :
1. Melakukan Instalasi Java 2 System Development Kit (J2SDK1.4). Perangkat lunak Java
yang akan diinstal harus disesuaikan dengan platform sistem operasi yang digunakan.
Pada pengantar praktikum ini, J2SDK1.4 versi Windows yang digunakan.
2. Melakukan setting PATH dan CLASS PATH, pada file AUTOEXEC.BAT
3. Melakukan pengujian terhadap hasil instalasi.

1
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Modul Praktikum II

Variabel dan Tipe Data

Tujuan :
Mengetahui pendeklarasian Variabel dan Tipe Data

Pendahuluan :
 Keyword dalam bahasa Java tidak boleh digunakan sebagai nama variabel (pengenal),
tabel 2.1 memperlihatkan daftar kata-kata kunci bahasa Java.

Tabel 2.1 Daftar Keyword pada Java

abstract Else Interface super


boolean extends long switch
break final native syncronized
byte finally new this
case float null throw
catch for package throws
char goto private transient
class if protected try
const implements public void
continue import return volatile
do instanceof short while
double int static

 Pendeklarasian variabel dan tipe data dalam Java


Variabel dalam bahasa pemrograman berfungsi untuk menyimpan suatu nilai dengan tipe
data tertentu. Begitu juga dalam bahasa java, memungkinkan untuk mendeklarasikan
suatu variabel. Variabel merupakan tempat penyimpanan data atau informasi dengan tipe
data tertentu yang ada di memori. Pada dasarnya ada 2 macam tipe variabel data dalam
bahasa Java, yaitu tipe data primitif dan tipe data reference. Tabel 2.2 menunjukkan jenis-
jenis tipe data primitif.

Tabel 2.2 Tipe Data Primitif, terdiri dari :


Nama Type Data Ukuran Range Nilai Keterangan
byte 8 bit -128 sampai 127 Tipe data bilangan bulat
short 16 bit -32.768 sampai 32.767 Tipe data bilangan bulat
int 32 bit -2.147.483.648 sampai Tipe data bilangan bulat
2.147.483.647
long 64 bit -9.223.372.036.854.775.808 Tipe data bilangan bulat
sampai
9.223.372.036.854.775.807
float 32 bit IEEE 754 Tipe data bilangan real
double 64 bit IEEE 754 Tipe data bilangan real
char 16 bit 0…..65535 Tipe data sebuah karakter
boolean Tipe data yang memuat status
true atau false

Untuk mendeklarasikan variabel dalam java, sintaksnya adalah :

tipe-data nama_variabel;

2
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

contoh : int tahun;


byte usia;
char jenis_kelamin;
Berikut contoh penggunaan tipe data primitif pada Java seperti pada program 2.1 di
bawah ini.

contoh program 2.1


nama file : usevariabel.java

class usevariabel {
public static void main(String[] args) {
byte byteData = 100;
short shortData = 501;
int intData = 999;
char charData = 'A';
float floatData = 99.99;
double doubleData = 99.999;
boolean booleanData1 = true;
boolean booleanData2 = false;

System.out.println("Contoh tipe data byte = "+byteData);


System.out.println("Contoh tipe data short = "+shortData);
System.out.println("Contoh tipe data integer = "+intData);
System.out.println("Contoh tipe data char = \'"+charData+"\'");
System.out.println("Contoh tipe data float = "+floatData);
System.out.println("Contoh tipe data double = "+doubleData);
System.out.println("Contoh tipe data boolean = "+booleanData1);
System.out.println("Contoh tipe data boolean = "+booleanData2);
}
}

Sedangkan jenis tipe data reference pada bahasa Java adalah ; tipe class, array, dan
interface. Tipe data referensi digunakan untuk mengacu suatu objek. Di mana variabel
objek tersebut dapat digunakan untuk mengakses nilai variabel instant yang biasanya
berupa tipe data primitif. Program Java 2.2 menunjukkan contoh penggunaan tipe data
referensi.

// contoh program 2.2


nama file : tipedataReferensi.java

class tipedataReferensi {
int rescue; // pendeklarasian variabel dgn tipe data int

public static void main(String[] args) {


tipedataReferensi mengacu_ke; // pendeklarasian variabel dgn tipe data class
mengacu_ke = new tipedataReferensi(); // instansiasi tipe data class menjadi objek

mengacu_ke.rescue = 911; // mengakses objek -> tipedataReferensi


melalui variabel objek 'mengacu_ke'
System.out.println("Variabel objek \'mengacu_ke\' bernilai -> "+mengacu_ke.rescue);
}
}

3
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Tabel 2.3 Kode karakter khusus (karakter escape) pada Java


Kode Keterangan
\n New line (baris baru)
\t Tab
\b Backspace
\r Carriage Return
\f Form feed01
\\ Backslash
\’ Tanda kutip tunggal
\” Tanda kutip ganda
\ddd Bilangan Oktal
\xdd Bilangan Heksadesimal
\udddd Karakter Unicode

Contoh penggunaan kode karakter khusus seperti yang ditunjukkan pada listing program
2.3.

contoh program 2.3


nama file : charkhusus.java

class charkhusus {
public static void main(String[] args) {
System.out.println(“Java\nLanguage”);
System.out.println(“\n”);
System.out.println(“\’Programming\’”);
}
}

Praktikum :
1. Buatlah program yang mendeklarasikan berbagai jenis tipe data serta tampilkan nilai/data
dari variabel tersebut.
2. Buatlah contoh program yang menggunakan berbagai macam jenis karakter khusus.

Modul Praktikum III

Dasar-Dasar Pemrograman Bahasa Java

Tujuan : Memahami berbagai macam tipe operator, meliputi :


Operator Aritmatika
Operator Relasional
Operator Kondisional
Operator Assignment

Pendahuluan :
1. Operator Aritmatika, digunakan untuk memanipulasi nilai variabel yang bersifat numerik.
Macam-macam bentuk operator aritmatika dapat dilihat pada Tabel 3.1 dan Tabel 3.2 di
bawah ini :

4
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Tabel 3.1 Operator Aritmatika dalam Java


Operator Pemakaian Keterangan
+ Operan1 + Operan2 Menambahkan Operan1 dengan Operan2
- Operan1 - Operan2 Mengurangkan Operan1 dengan Operan2
* Operan1 * Operan2 Mengalikan Operan1 dengan Operan2
/ Operan1 / Operan2 Membagi Operan1 dengan Operan2
% Operan1 % Operan2 Memberikan sisa hasil bagi antara Operan1 dengan
Operan2

Berikut ini adalah contoh penggunaan operator aritmatika dalam program :

// contoh program 3.1


// nama file : operatoraritmatika.java

import java.io.*;

class operatoraritmatika {
public static void main(String[] args) {
int operan1, operan2, angka_pilihan = -1;
try {
while (true) {
System.out.println("\nPenggunaan Operator Aritmatika");
System.out.println("==============================");
System.out.println("0. K e l u a r");
System.out.println("1. Penambahan (+)");
System.out.println("2. Pengurangan (-)");
System.out.println("3. Perkalian (*)");
System.out.println("4. Pembagian (/)");
System.out.println("5. Hasil Bagi/Modulo (%)");
System.out.println("\n");
System.out.print("Silahkan pilih 1-5, 0 untuk keluar : ");
angka_pilihan = (new Integer((new BufferedReader(new InputStreamReader(System.in))).readLine())).intValue();
if (angka_pilihan==0) {
System.out.println("Bye..bye.....");
break;
} else if (angka_pilihan > 5 || angka_pilihan < 0) {
System.out.print("\n");
System.out.print("Angka yang bisa anda masukkan adalah 1-5 \n");
} else {
System.out.print("Masukkan operan 1 : ");
operan1 = (new Integer((new BufferedReader(new InputStreamReader(System.in))).readLine())).intValue();

System.out.print("Masukkan operan 2 : ");


operan2 = (new Integer((new BufferedReader(new InputStreamReader(System.in))).readLine())).intValue();

switch(angka_pilihan) {
case 1:
System.out.println(operan1 + " + " + operan2 + " = " +(operan1+operan2));
break;

case 2:
System.out.println(operan1 + " - " + operan2 + " = " +(operan1-operan2));
break;

case 3:
System.out.println(operan1 + " x " + operan2 + " = " +(operan1*operan2));
break;

case 4:
System.out.println(operan1 + " / " + operan2 + " = " +(operan1/operan2));
break;

case 5:
System.out.println(operan1 + " % " + operan2 + " = " +(operan1%operan2));
break;
}
System.out.println("\n");
}
}
}catch(IOException e) {
System.out.println("Error I/O");
System.exit(0);
}
}
}

5
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Selain operator di atas, operator-operator yang ditunjukkan pada Tabel 3.2 juga termasuk
dalam operator aritmatika.

Tabel 3.2 Operator Aritmatika


Operator Pemakaian Keterangan
++ Operan++ Menaikkan nilai operan sebanyak 1 setelah dilakukan
operasi terhadap operan tersebut.
++ ++Operan Menaikkan nilai operan sebanyak 1 sebelum dilakukan
operasi terhadap operan tersebut.
-- Operan-- Menurunkan nilai operan sebanyak 1 setelah dilakukan
operasi terhadap operan tersebut.
-- --Operan Menaikkan nilai operan sebanyak 1 sebelum dilakukan
operasi terhadap operan tersebut.
- -Operan Merubah nilai operan menjadi negasinya (jika operan
positif menjadi negatif, begitu juga sebaliknya).

2. Operator Relasional
Operator relasional berfungsi untuk membandingkan antara dua nilai variabel. Tabel 3.3
menunjukkan operator relasional.

Tabel 3.3 Operator Relasional


Operator Pemakaian Keterangan
> Operan1 > Operan2 Menghasilkan nilai true jika Operan1 lebih besar
dari Operan2
< Operan1 < Operan2 Menghasilkan nilai true jika Operan1 lebih kecil
dari Operan2
>= Operan1 >= Operan2 Menghasilkan nilai true jika Operan1 lebih besar
atau sama dengan Operan2
<= Operan1 <= Operan2 Menghasilkan nilai true jika Operan1 lebih kecil
atau sama dengan Operan2
== Operan1 == Operan2 Menghasilkan nilai true jika Operan1 sama
dengan Operan2
!= Operan1 != Operan2 Menghasilkan nilai true jika Operan1 tidak sama
dengan Operan2

3. Operator Kondisional

Tabel 3.4 Operator Kondisional


Operator Pemakaian Keterangan
&& Operan1 && Operan2 Menghasilkan true jika Operan1 dan Operan2,
keduanya bernilai boolean true.
|| Operan1 || Operan2 Menghasilkan true jika Operan1 atau Operan2,
keduanya bernilai boolean true.
! !Operan1 Menghasilkan true jika Operan1 bernilai boolean
false.
& Operan1 & Operan2 Menghasilkan true jika Operan1 dan Operan2
bernilai true (bitwise AND)
| Operan1 | Operan2 Menghasilkan true jika Operan1 atau Operan2
salah satunya bernilai true (bitwise OR).
^ Operan1 ^ Operan2 Menghasilkan true jika salah satu diantara Operan1
atau Operan2 bernilai true, tetapi tidak keduanya.

6
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

4. Operator Assignment, digunakan untuk memberikan nilai dari suatu hasil operasi ke sebuah
variabel, umumnya diberikan kepada variabel yang sama.

Tabel 3.5 Operator Assignment


Operator Pemakaian Ekivalen Dengan
+= Operan1 += Operan2 Operan1 = Operan1 + Operan2
-= Operan1 -= Operan2 Operan1 = Operan1 = Operan2
*= Operan1 *= Operan2 Operan1 = Operan1 * Operan2
/= Operan1 /= Operan2 Operan1 = Operan1 / Operan2
%= Operan1 %= Operan2 Operan1 = Operan1 % Operan2
&= Operan1 &= Operan2 Operan1 = Operan1 & Operan2
|= Operan1 |= Operan2 Operan1 = Operan1 | Operan2
^= Operan1 ^= Operan2 Operan1 = Operan1 ^ Operan2
>>= Operan1 >>= Operan2 Operan1 = Operan1 >> Operan2
<<= Operan1 <<= Operan2 Operan1 = Operan1 << Operan2
>>>= Operan1 >>>= Operan2 Operan1 = Operan1 >>> Operan2

Tugas Praktikum :
Buat kode program yang melakukan berbagai macam penggunaan operator relasional,
kondisional, assignment.

Modul Praktikum IV

Control Flow Pada Java

Tujuan :Memahami Control Flow dalam Java dan macamnya, meliputi :


if – else
switch – case
for loop
while loop, do – while loop

Pendahuluan :
Secara garis besar, pengendalian eksekusi dapat dibagi menjadi beberapa bagian, yaitu
seleksi kondisi (if dan switch – case), perulangan atau iterasi (for, while, dan do while).
Ada 2 kata kunci (keywords) yang digunakan untuk melakukan seleksi suatu kondisi, yaitu if
dan switch – case.

1. Statement if – else, akan membandingkan suatu operand yang apabila memenuhi suatu
kondisi tertentu, maka blok program di dalamnya akan dieksekusi. Sintaks statementnya
adalah sebagai berikut :

if (kondisi) { if (kondisi) {
……..statement……. ……..statement1…….
}
atau } else {
……..statement2…….
}

7
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

if (kondisi1) { if (kondisi1) {
……..statement1……. ……..statement1…….
atau
} else if (kondisi2) { } else if (kondisi2) {
……..statement2……. ……..statement2…….

} else if (kondisi3) { } else if (kondisi3) {


……..statement3……. ……..statement3…….

} else if (kondisin) { } else if (kondisin) {


……..statementn……. ……..statementn…….
}
} else {
……..default statement…….
}

2. Statement switch – case, digunakan untuk percabangan yang berjumlah lebih dari satu,
penggunaannya mirip dengan penggunaan if bertingkat. Sintaks penggunaannya sebagai
berikut :

switch (ekspresi) {
case (kondisi1):
…..statement1;
break;
case (kondisi2):
…..statement2;
break;
case (kondisi3):
…..statement3;
break;
case (kondisin):
…..statementn;
break;
default:
…..default statement;
break;
}

Dengan adanya penggunaan iterasi, dapat menghindai terjadinya penulisan statement secara
berulang-ulang.

3. Statement for, digunakan untuk mengeksekusi sebuah blok secara berulang-ulang selama
kondisinya memenuhi. Sintaks adalah sebagai berikut :

for (inisialisasi; terminasi; increment) {


…….statement;
}

4. Statement while, mempunyai bentuk sebagai berikut :

while (ekspresi) {
…….statement;
}

8
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

5. Statement do – while,

do {
…….statement;
} while (ekspresi) {

Program 4.1 menunjukkan bagaimana menyusun kendali dengan if. Program 4.2 merupakan
contoh bagaimana menggunakan statement switch. Sedangkan program 4.3 menunjukkan
bagaimana menggunakan struktur perulangan for.

// contoh program 4.1


// nama file : ifelse.java

public class ifelse {


public static void main(String[] args) {
double a=4;
double b=-13;
double c=-12;
double d=b*b - 4*a*c;
double x1,x2;

System.out.println("Persamaan Kuadrat a*x^2+b*x+c=0, dimana : ");


System.out.println("a = "+a);
System.out.println("b = "+b);
System.out.println("c = "+c);
System.out.println("Dengan menerapkan rumus ABC diketahui bahwa : ");

if (d<0) {
System.out.println("Akar-akar persamaan imaginer.");
} else if (d==0) {
System.out.println("Akar-akar persamaan nyata tetapi kembar.");
x1 = -b/(2*a);
System.out.println("x1 = x2 = "+x1);
} else {
System.out.println("Akar-akar persamaan nyata dan berbeda");
x1 = (-b+Math.sqrt(d))/(2*a);
x2 = (-b-Math.sqrt(d))/(2*a);
System.out.println("x1 = "+x1 + " x2 = "+x2);
}
}
}

// contoh program 4.2


// nama file : switchcase.java

public class switchcase {


public static void main(String[] args) {
char inisial='F';
String nama = null;
switch (inisial)
{
case 'J' : nama = "John";
break;
case 'F' : nama = "JFK";
break;
case 'K' : nama = "Kennedy";
break;
default : nama = "unknown object";
}
System.out.println("Nama inisial anda : "+nama);
}
}

9
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

// contoh program 4.3


// nama file : contohfor.java

public class contohfor {


public static void main(String args[]) {
int bil=7;
int sum=2;

for (int iterasi=2; iterasi<=bil; iterasi++) {


System.out.print(sum + " * " + iterasi + " = ");
sum *= iterasi;
System.out.println(sum);
}
System.out.println(bil + " ! = "+sum);
}
}

// contoh program 4.4


// nama file : contohwhile.java
public class contohwhile {
public static void main(String args[]) {
int bil=7;
int i=2;
int sum=2;
while (i<=bil) {
System.out.print(sum + " * " + i + " = ");
sum = sum * i;
System.out.println(sum);
i++;
}
System.out.println(bil + " ! = "+sum);
}
}

Tugas Praktikum :
1. Buat contoh program dengan menggunakan statement if, while, switch-case, dan for.
2. Buatlah kode program dengan menggunakan statement if, yang menampilkan nilai yang
dimasukkan dan memberikan keterangan terhadap nilai tersebut. dengan ketentuan
sebagai berikut :
nilai >80 mendapat nilai = A, keterangan : Lulus - Memuaskan
nilai > 70<=80 mendapat nilai = B. keterangan Lulus - Baik
nilai >60 <=70 mendapat nilai = C. keterangan Lulus - Cukup
nilai >50 <=60 mendapat nilai = D. keterangan Tidak Lulus – Tidak Memuaskan

10
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Modul Praktikum V

Array / Larik

Tujuan : Memahami Variabel Array

Pendahuluan :
Seperti yang telah kita ketahui bahwa kita harus mendeklarasikan suatu variabel sebelum kita
hendak menggunakannya. Variabel array atau larik merupakan variabel yang mampu
menyimpan sejumlah data dengan nama variabel yang sama. Misalkan kita memerlukan 100
buah variabel bertipe String untuk menyimpan sebanyak 100 nama mahasiswa. Tentu sangat
tidak efisien apabila kita mendeklarasikan pula sebanyak 100 variabel satu persatu (misalkan;
nama_mhs1, nama_mhs2, ……sampai 100). Kita cukup mendeklarasikannya satu kali
dengan mengunakan variabel bertipe array dengan range sebanyak 100). Di sinilah kegunaan
dari variabel bertipe array tersebut.

Untuk mendeklarasikan variabel bertipe array digunakan cara seperti berikut :

Cara I : tipe-data[] nama_variabel;


atau
Cara II : tipe-data nama_variabel[];

Contoh : int[] nim;


String[] nama_mahasiswa;
float IPK[];

Pendeklarasian array dengan menggunakan “Cara I” seperti di atas merupakan cara yang
paling sering digunakan. Contoh di atas merupakan bentuk pendeklarsian array berdimensi
satu. Adapun bentuk pendeklasian array multidimensi, seperti berikut :

Cara I : tipe-data[][] nama_variabel;


atau
Cara II : tipe-data nama_variabel[][];

Contoh : String[][] myheartCondition =


{
{“angry”,”happy”,”sad”,”bad”,”alone”,”relax”},
{“laugh”,”grumble”,”fresh”,”good”,”ok”,},
{“ready”,”ill”,”jealous”,”glum”,”busy”,”werrrr”}
};
Setelah mendeklarasikan array dengan cara di atas, langkah selanjutnya adalah melakukan
inisialisasi atau menciptakan objek dari variabel array tersebut. Ada 2 cara yang umum
digunakan, yaitu :

Cara Pertama : Dengan menggunakan kata kunci new, sintaksnya adalah sebagai berikut :

new tipe-data[range];

11
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Contoh : nim = new int[100]


nama_mahasiswa = new String[75]
IPK = new float[75]

Cara Kedua : Dengan langsung memberikan nilai awal :

nama_variabel = {nilai_data1, nilai_data2, …..nilai_data-n};

Contoh : nim = {1,9,25,55,75,95,101};


nama_mahasiswa = {Scott, Jane, Ann, Smith, Armstrong};

Variabel array dapat diketahui panjangnya dengan mengakses kata ; length, sintaknya :

nama_variabel_array.length;

Contoh : nama_mahasiswa.length;

Sedangkan untuk mengacu ke salah satu elemen array. Menggunakan sintaks :

nama_variabel_array[nomor_index];

Contoh : nim[9];

Contoh lengkap dari penggunaan array atau larik dapat dilihat pada program 5.1 dan 5.2 di
bawah ini :

// contoh program 5.1


// nama file : Array.java

class Array {
public static void main(String[] args) {
String[] lifestyle; // membuat array/larik
lifestyle = new String[7];

lifestyle[0] = "Sederhana"; // cara mengisi elemen array


lifestyle[1] = "Parlente";
lifestyle[2] = "Glamour";
lifestyle[3] = "Nebeng Glamour - Necis";
lifestyle[4] = "Kosmo";
lifestyle[5] = "Matre";
lifestyle[6] = "Electronic-Live Style";

System.out.println("Macam-macam gaya hidup : ");


System.out.println(lifestyle[0]);
System.out.println(lifestyle[1]);
System.out.println(lifestyle[2]);
System.out.println(lifestyle[3]);
System.out.println(lifestyle[4]);
System.out.println(lifestyle[5]);
System.out.println(lifestyle[6]); // menampilkan elemen array
}
}

12
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

// contoh program 5.2


// nama file : Larik.java

class Larik {
public static void main(String args[]) {
boolean ketemu = false;
int[] arrayInt = new int[7];
char[] arrayChar = {'X','Y','Z'};

for (int i=0; i<arrayInt.length; i++) {


arrayInt[i] = i+1;
System.out.println("Elemen ke "+(i-7)+"="+arrayInt[i]);
}

for (int i=0; i<arrayChar.length; i++) {


arrayInt[i] = i+1;
System.out.println("Elemen ke "+(i+8)+"="+arrayChar[i]);
}
}
}

Tugas Praktikum :
Buatlah kode program dengan menggunakan variabel array

Modul Praktikum VI

Konsep Pemrograman Berorientasi Objek

Tujuan :
Mengimplementasikan konsep pemrograman berorientasi objek dalam bahasa Java :
– Kelas
– Objek
– Encapsulation (Pembungkusan)
– Inheritance (Pewarisan)
– Polymorfism

Pendahuluan :
1. Dalam bahasa pemrograman java, pendefinisian kelas dilakukan dengan menggunakan
kata kunci (keyword) class. Sintax dari pembuatan kelas, secara lengkap adalah sebagai
berikut :

public
abstract
final
class nama_kelas
extends nama super_kelas
implements nama_interface {

statements………
statements………
}

13
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Namun, contoh sederhana atau berdasarkan keperluan kita dalam pendefinisian atau
penciptaan sebuah kelas adalah sebagai berikut :

class nama_kelas {
statements………….
}

Contoh :
class Mahasiswa {
int nim;
String nama;
}

Dari contoh di atas menunjukkan ; kelas tersebut bernama Mahasiswa dan mempunyai 2
buah variabel yaitu nim dan nama yang masing-masing bertipe integer dan string. Kedua
variabel ini sering disebut variabel instan atau field atau disebut juga atribut.

Contoh lengkap dari pendeklarasian ‘class mahasiswa’ di atas sebagai berikut :

// contoh program 6.1


// nama file : mahasiswa.java

class mahasiswa { // pembuatan kelas


int nim;
String nama;
double ipk;

public static void main(String[] args) { // pendeklrasian program utama


mahasiswa mhs1 = new mahasiswa(); // pendefinisian objek
mhs1.nim = 1725;
mhs1.nama = "Abraham Lincoln";
mhs1.ipk = 9.11;

System.out.println("nim : "+mhs1.nim); // namaVariabelObjek.namaVariabelInstant


System.out.println("nama : "+mhs1.nama);
System.out.println("ipk : "+mhs1.ipk);
}
}

2. Sebuah kelas pada Java biasanya terdiri dari beberapa variabel instant dan method untuk
menciptakan sebuah objek. Method terkadang disebut juga fungsi (function) atau
prosedur dimana biasanya fungsi tersebut dibuat berdasarkan sifat yang melekat dari
suatu objek. Pendeklarasian method diletakkan pada blok dari suatu kelas. Contoh
method dalam Java :

void dataMahasiswa (int Nim, String Nama) {


nim = Nim;
nama = Nama;
}

atau

void tampilDataMahasiswa() {
System.out.println(“No. Induk Mahasiswa : ”+nim);
System.out.println(“Nama Mahasiswa : ”+nama);
}

14
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Setelah method dideklarasikan, maka method dapat digunakan dengan cara memanggil
nama method tersebut. Sintaks untuk memanggil method tersebut adalah :

nama_variabelObjek.namaMethod()

3. Untuk menciptakan Objek yang merupakan bagian terpenting dalam konsep


pemrograman berorientasi objek dalam bahasa Java, adalah dengan 2 cara, yang masing-
masing menggunakan kata kunci new :

Cara Pertama :
nama_kelas namavariabelObjek = new nama_kelas();
contoh : Mahasiswa siswa1 = new Mahasiswa();

Cara Kedua :
nama_kelas namavariabelObjek = new nama_kelas(argumen1,argumen2,…argumen-n);
contoh : Mahasiswa siswa1 = new Mahasiswa (212, “Wiro Sableng”);

Contoh lengkap dari penjelasan poin 2 dan 3 adalah sebagai berikut :

// contoh program 6.2


// nama file : oldmahasiswa.java

class oldmahasiswa { // pembuatan kelas


int nim;
String nama;
double ipk;

void data_mahasiswa(int Nim, String Nama, double IPK) { // pendeklarasian method


nim = Nim;
nama = Nama;
ipk = IPK;
}

void show_data() { // pendeklarasian method


System.out.println("nim : "+nim);
System.out.println("nama : "+nama);
System.out.println("ipk : "+ipk);
}

public static void main(String[] args) {


oldmahasiswa mhs = new oldmahasiswa(); // pendefinisian objek
mhs.data_mahasiswa(1725,"Abraham Lincoln",9.11); // namaVariabelObjek.namaMethod( ,“…”, );
mhs.show_data(); // namaVariabelObjek.namaMethod();
}
}

Untuk menerapkan cara kedua dalam menciptakan objek, kita harus menggunakan suatu
methode yang disebut metode konstruktor yang selanjutnya cukup disebut konstruktor saja.
Untuk membuat metode konstruktor  konstruktor, gunakanlah sintaks sebagai berikut :

public nama_konstruktor(parameter1, parameter2, …….. parameter-n) {


statement………..
}

15
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

di mana suatu konstruktor mempunyai sifat ; nama konstruktor harus sama/sesuai dengan
nama kelas, tidak memiliki nilai balik (tidak boleh ada kata kunci void). Contoh program 5.3
menunjukkan penggunaan konstruktor.

// contoh program 6.3


// nama file : aHero.java

class aHero {
String name, nationality;

public aHero(String Name, String from) { // Konstruktor


name = Name;
nationality = from;
}

void show_data() { // pendeklarasian method


System.out.println("Name : "+name);
System.out.println("From : "+nationality);
}

public static void main(String[] args) {


aHero leader = new aHero("Cak Nur", "Indonesia"); // lihat perbedaannya dengan prog.5.2
leader.show_data();
}
}

Access Specifier (Penentu Akses)


Dalam konsep pemrograman berorientasi objek khususnya bahasa java, terdapat beberapa
penentu akses yang menentukan kelas, variabel atau method tersebut boleh diakses baik
di dalam kelas itu sendiri maupun dikelas yang berbeda atau pada paket yang berbeda.
Ada beberapa penentu akses dalam bahasa Java, tabel 5.1 menunjukkan perbedaan
masing-masing penentu akses tersebut.

Tabel 5.1 Penentu Akses pada Kelas


Penentu Akses Keterangan
public Ini berarti kelas tersebut dapat digunakan oleh kelas lain
tanpa memperdulikan apakah kelas lain yang
menggunakannya berasal dari paket yang sama atau
berbeda.
abstract Berarti kelas tersebut tidak dapat diinstansiasi menjadi
sebuah objek.
final Maka kelas tersebut tidak dapat diturunkan lagi menjadi
kelas turunan.
tanpa penentu akses Berarti kelas tersebut dapat diakses oleh kelas yang berbeda
yang berada dalam paket yang sama.

16
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Tabel 5.2 Penentu Akses pada Variabel Instan


Penentu Akses Keterangan
public Suatu variabel dapat diakses oleh kelas lain yang berbeda
yang menggunakan kelas tersebut atau kelas lain pada paket
yang berbeda. Ini berarti pengaksesan suatu variabel dapat
dilakukan dari luar kelas.
private Suatu variabel hanya dapat diakses di dalam kelas. Ini
berarti variabel tersebut tidak dapat diakses dari luar kelas.
protected Menjadikan variabel instan hanya bisa diakses oleh objek
itu sendiri atau objek lain yang menjadi subkelasnya
final Menjadikan variabel bersifat tetap (konstanta) – tidak dapat
diubah
tanpa penentu akses Variabel dapat diakses oleh kelas yang berbeda yang berada
dalam paket yang sama.

Tabel 5.3 Penentu Akses pada Method


Penentu Akses Keterangan
public Suatu method dapat diakses oleh kelas lain yang berbeda.
Dengan lain kata, fungsi/method tersebut dapat diakses dari
luar kelas.
private Suatu method hanya dapat diakses di dalam kelas itu
sendiri, tidak dapat diakses dari luar kelas.
protected Menjadikan function atau method hanya bisa diakses oleh
objek itu sendiri atau objek lain yang menjadi sub-kelasnya
package Menunjukkan bahwa function/method hanya bisa diakses
oleh objek itu sendiri atau kelas lain yang berada dalam
paket yang sama
static Method akan bernilai tetap seperti pendeklarasian kelas.
final Membuat suatu method pada kelas induk menjadi unik (baik
nama maupun parameter) tidak boleh sama (tidak dapat di-
override) oleh sub kelasnya.
tanpa penentu akses Method hanya dapat diakses oleh method dalam kelas yang
sama atau kelas lain yang berada dalam paket yang sama

Contoh penggunaan akses specifier pada variabel :

class Mahasiswa {
public int nim;
private String nama;
}

Contoh di atas menunjukkan bahwa variabel instan nim dapat diakes oleh kelas lain yang
berbeda sedangkan variabel instan nama hanya dapat diakes oleh kelas Mahasiswa.

Contoh penggunaan akses specifier pada method :

private void dataMahasiswa (int Nim, String Nama) {


nim = Nim;
nama = Nama;
}

17
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Contoh di atas menunjukkan bahwa method tersebut hanya dapat diakses oleh method-
method yang terdapat di dalam kelas itu sendiri yaitu misalnya class Mahasiswa. Program
5.4 menunjukkan contoh penggunaan akses spesifier.

// contoh program 6.4


// nama file : mhs.java

class mahasiswa_baru {
private int nim;
private String nama;
public int usia=18;

public void data(int Nim, String Nama) {


nim = Nim;
nama = Nama;
}

protected int nimparadigm() {


return this.nim;
}

public String namaparadigm() {


return this.nama;
}
}

public class mhs {


public static void main(String[] args) {
mahasiswa_baru maba = new mahasiswa_baru();
maba.data(331,"Siti Fadila");

System.out.println("Nim : "+maba.nimparadigm());
// System.out.println("Nama : "+maba.nama);
System.out.println("Nama : "+maba.namaparadigm());
System.out.println("Usia : "+maba.usia);
}
}

Pewarisan (Inheritance)
Salah satu konsep terpenting dari konsep pemrograman berorientasi objek adalah
pewarisan. Pewarisan memungkinkan untuk membuat suatu kelas (kelas turunan / sub
kelas / kelas anak) berdasarkan kelas yang sudah ada (kelas induk / super kelas), sehingga
dapat mewariskan atribut-atribut maupun method-methodnya. Sehingga dengan demikian
penulisan suatu bahasa pemrograman secara berulang-ulang dapat dihindari. Hal inilah
yang merupakan salah satu keunggulan dari konsep pemrograman berorientasi objek
Untuk mewariskan suatu kelas ke kelas yang menjadi turunannya adalah dengan
memberikan kata kunci extends di antara nama_kelas_turunan dan nama_kelas_induk.
Sintaksnya sebagai berikut :

class nama_kelas_turunan extends nama_kelas_induk {


………statement;
}

18
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Contoh :
class orang_tua {
String nama_ayah = “Paijo”;
String mother = “Lissa”;
}

class anak extends orang_tua {


………statement;
}

Berikut adalah contoh program Java implementasi dari konsep pewarisan.

// contoh program 6.5


// nama berkas : orang_tua.java;

class orang_tua {
String nama_ayah = "Paijo";
String mother = "Lissa";

public void data_orangtua() {


System.out.println("Nama Ayah : "+nama_ayah);
System.out.println("Nama Ibu : "+mother);
}
}

// contoh program 6.6


// nama berkas : anak.java

class anak extends orang_tua {


String nama_anak, ttl, usia;

public anak(String NamaAnak, String Ttl, String Usia) {


nama_anak=NamaAnak;
ttl=Ttl;
usia=Usia;
}

void data_anak() {
System.out.println("Nama Anak : "+nama_anak);
System.out.println("TTL : "+ttl);
System.out.println("Usia : "+usia);
}

public static void main (String[] args) {


anak anakPertama = new anak("Peter Man","Samarinda, 9 Sept 0000","2005th");
anakPertama.data_orangtua();
anakPertama.data_anak();
}
}

19
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Pada pemrograman di atas, ‘class anak’ merupakan kelas turunan dari kelas induk yaitu
‘class orang_tua’. Pada program tersebut ‘class orang_tua’ mewariskan methodnya yaitu;
data_orangtua, dimana method tersebut dipanggil dari class anak.

Pada tingkat pemrograman, untuk menggunakan method yang terdapat pada kelas induk
sebagai perwujudan dari konsep pewarisan, maka sintaks yang digunakan adalah
menggunakan kata kunci super yang diikuti nama method, yaitu :

super.nama_method();
digunakan untuk memanggil method biasa
atau
super(argumen1, argumen2, ……argumentn);
digunakan untuk memanggil method konstruktor

Berikut adalah contoh program Java yang menunjukkan dua cara dalam penggunaan kata
kunci super tersebut.

// contoh program 6.7


// nama berkas : anak.java

class orangtua {
private String nama_ayah, nama_ibu;

public orangtua(String Ayah, String Ibu) {


this.nama_ayah = Ayah;
this.nama_ibu = Ibu;
}

public void data_ortu() {


System.out.println("Nama Ayah : "+nama_ayah);
System.out.println("Nama Ibu : "+nama_ibu);
}
}

class anak extends orangtua {


String nama_anak;

public anak(String Anak, String Ayah, String Ibu) {


super(Ayah,Ibu); // pemanggilan method konstruktor milik superkelas
this.nama_anak = Anak;
}

void data_anak() {
super.data_ortu(); // pemanggilan method superkelas dgn mengg. kt.kunci super
System.out.println("Nama Anak : "+nama_anak);
}

public static void main(String[] args) {


anak anakPertama = new anak("Peter Man","Paijo","Lissa");
anakPertama.data_anak();
}
}

20
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Penjelasan :
Super(Ayah,Ibu); adalah cara penulisan yang berarti perintah tersebut memanggil
konstruktor yang berada di super kelas. Untuk memanggil konstruktor milik superkelas
harus memenuhi kriteria : hanya untuk memanggil method yang bertipe konstruktor dan
pemanggilan diletakkan sebagai pernyataan pertama dalam konstruktor subkelas.
Perhatikan kembali contoh program anak.java di atas.

Polymorphism
Dalam OOP, konsep ini memungkinkan digunakannya suatu interface yang sama untuk
memerintah suatu objek agar melakukan suatu aksi / tindakan yang mungkin secara prinsip
sama tetapi secara proses berbeda.
Polymorfisme seringkali disebut juga dalam istilah satu interface banyak aksi. Sebagai
contoh kita mengetahui jika kita menginjak pedal gas, maka mobil akan melaju lebih cepat.
Tetapi bagaimana proses ini terjadi, dapat berbeda-beda untuk setiap jenis mobil.
Implementasi dari konsep polymorfisme dapat dilihat pada program 7.4.

Tugas Praktikum :
1. Buat sebuah program yang menunjukkan sebuah kelas merupakan turunan (subkelas) dari
suatu kelas yang lain (superkelas). Sehingga, secara otomatis semua anggota variabel dan
method dari superkelas akan diturunkan ke subkelasnya. Untuk membuktikan suatu
turunan, buatlah beberapa variabel dan method pada superkelas, di mana variabel dan
method tersebut akan digunakan / dipanggil melalui subkelas-nya.
2. Dalam pewarisan, apa yang terjadi (pada saat kompilasi) jika suatu variabel atau method
dari superkelas dideklarasikan sebagai private? Buatkan contoh programmnya.

Modul Praktikum VII

Java Package & Import Interface

Tujuan :
Memahami Package dan Import.
Memahami Interface.
Mengimplemetasikan pembuatan package dan import serta interface dalam bahasa Java.

Pendahuluan :
 Package
Beberapa kelas (program-program yang telah dibuat) dapat dikelompokkan dalam suatu unit
yang disebut Package (yang selanjutnya kita sebut Paket). Paket berbentuk suatu direktori
atau sub direktori dimana di dalam direktori tersebut terdapat beberapa kelas yang umumnya
saling berhubungan (sinergi) di dalam suatu wadah yang disebut paket. Nama paket tersebut
biasanya disesuaikan dengan fungsi dan tujuan dari program atau pembuatan paket tersebut.
Dengan lain kata, Java Package digunakan untuk membungkus kelas-kelas java ke dalam
grup-grup tertentu ke dalam suatu direktori, sehingga terjadinya konflik penamaan, hak akses
bisa dicegah. Di samping itu, dengan menggunakan fasilitas paket dalam Java, akan semakin
mempermudah dalam mencari dan menggunakan kelas-kelas Java.
Pengkasesannya melalui suatu kelas (yang dideklarasikan sebagai public) dengan disertai
penyebutan nama paketnya. Sehingga dengan demikian kelas-kelas (program-program) yang
berada di dalam paket tersebut dapat digunakan.

21
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Pendeklarasian Package (Paket), yaitu dengan menggunakan kata kunci package :

package nama_paket;

Contoh : package hemat;


package jumbo;
package data_mahasiswa;

Contoh penggunaan paket adalah sebagai berikut :


Buatlah sebuah direktori yang bernama menu. Kemudian ketikkan dan simpanlah file di
bawah ini dengan nama pahe.java di dalam direktori tersebut.

// contoh program 7.1


// file location = f:\praktikum\menu\pahe.java

package menu;

public class pahe {


String makanan, minuman;
int harga;

public void pakethemat(String Makanan, String Minuman, int Harga) {


this.makanan=Makanan;
this.minuman=Minuman;
this.harga=Harga;
}

public void info() {


System.out.println("Pilihan Anda Paket Hemat");
System.out.println("--------------------------------");
System.out.println("Makanan : "+makanan);
System.out.println("Minuman : "+minuman);
System.out.println("Harga : "+harga);
}
}

Kemudian ketikkan pula seperti contoh file di bawah ini dan simpanlah file tersebut dengan
nama jumbo.java di dalam direktori menu yang telah dibuat sebelumnya, sehingga di dalam
direktori menu terdapat dua file, masing-masing ; pahe.java dan jumbo.java. Kemudian
kompilasilah kedua file tersebut.

22
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

// contoh program 7.2


// file location = f:\praktikum\menu\jumbo.java

package menu;

public class jumbo {


String makanan, minuman, bonus;
int harga;

public void paketjumbo(String Makanan, String Minuman, String Bonus, int Harga) {
this.makanan=Makanan;
this.minuman=Minuman;
this.bonus=Bonus;
this.harga=Harga;
}

public void info() {


System.out.println("Pilihan Anda Paket Jumbo");
System.out.println("--------------------------------");
System.out.println("Makanan : " +makanan);
System.out.println("Minuman : " +minuman);
System.out.println("Bonus : " +bonus);
System.out.println("Harga : " +harga);
}
}

Setelah selesai mengkompilasi kedua file tersebut, ketikkan source code program java seperti
di bawah ini dan simpanlah file tersebut dengan nama jenispaket.java pada direktori induk
(dimana direktori menu merupakan sub dari direktori utama), misalnya
f:\menu_paket_utama. Setelah itu, kompilasilah file tersebut, kemudian silahkan anda
eksekusi.
// contoh program 7.3 ; file location = f:\praktikum\jenispaket.class
import java.io.*;
import menu.pahe;
import menu.jumbo;

public class jenispaket {


public static void main(String[] args) {
int choice = -1;
try {
while(true) {
System.out.println("Pilih Paket Menu yang Anda inginkan :");
System.out.println("=================================== :");
System.out.println("1. Paket Hemat");
System.out.println("2. Paket Jumbo");
System.out.println("0. Keluar");
System.out.println("\n");
System.out.print("Pilihan Menu 1-2 Saja # 0 untuk keluar, yang manakah pilihan Anda? ");
BufferedReader answer = new BufferedReader(new InputStreamReader(System.in));
choice = (new Integer(answer.readLine())).intValue();

if (choice==0) {
System.out.println("Terima Kasih, Byeee....");
break;

} else if (choice > 2 || choice < 0) {


System.out.println("Pilihan Anda Salah!");
System.out.println("\n");

} else {
if (choice == 1) {
pahe pkthemat = new pahe();
pkthemat.pakethemat("Nasi + Paha Ayam","Coca Cola",5900);
pkthemat.info();

} else if (choice == 2) {
jumbo pktjumbo = new jumbo();
pktjumbo.paketjumbo("Nasi, Paha & Dada Ayam, Sambel Terasi+Lalapan","Pepsi Cola","Tusuk Gigi",11500);
pktjumbo.info();
}
System.out.println("\n");
}
}
}catch(IOException e) {
System.out.println("Error I/O");
System.exit(0);
}
}
}

23
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

 Interface
Pada Java, dikenal konsep interface, digunakan untuk komunikasi antar objek yang berbeda
yang tidak memiliki hubungan apa pun. Dengan interface, memungkinkan berbagi variabel
konstanta atau menentukan metode-methode (method-method) yang dapat digunakan oleh
beberapa kelas.
Pendeklrasian interface mirip dengan pendeklarasian kelas, yaitu dengan menggunakan kata
kunci interface sebagai ganti dari kata kunci class. Sintaksnya adalah sebagai berikut :

public interface nama_interface {


// ……pendekalrasian variabel konstanta……;
// ……pendeklarasian method………;
}

Penentu akses yang diperkenankan dalam pendeklarasian variabel pada interface adalah
public static final. Apabila penentu akses tersebut tidak dideklarasikan, maka Java akan
secara otomatis menetapkan variabel tersebut sebagai public static final. Contoh :

public interface orang_tua {


public static final String nama_ayah = “Nain”;
public static final String nama_ibu = “Zubaidah”;
}

dengan demikian dapat disingkat penulisannya menjadi :

public interface orang_tua {


String nama_ayah = “Nain”;
String nama_ibu = “Zubaidah”;
}

Begitu juga pada pendeklarasian method, penentu akses yang digunakan juga ; public
abstract yang menyatakan metode bertipe abstrak. Penulisan atau pendeklrasian dalam
program adalah sebagai berikut :

public interface anak {


public abstract void baca();
public abstract void tulis();
}

karena public abstract tidak harus dideklarasikan, maka dapat ditulis menjadi :

public interface anak {


void baca();
void tulis();
}

Seperti halnya class, suatu interface dapat juga mewarisi dari interface yang lain, contoh :

public interface anak extends orang_tua {


String nama_anak = “Alya”;
}

Sehingga interface anak tidak hanya memiliki konstanta nama_anak, tetapi juga memiliki
konstanta nama_ayah dan nama_ibu yang diwariskan oleh interface orang_tua.

24
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Namun berbeda dengan class, suatu interface dapat mewarisi lebih dari satu interface.
Sehingga pendeklarasiannya adalah sebagai berikut :

public interface nama_interface extends interface1, interface2 {


………statement…….;
}

Berikut adalah contoh program Java dengan menggunakan interface


contoh program 7.4 ; nama file : balapan.java
interface tambahkecepatan {
public static final int mesinhidup = 1;
public abstract void putargas();
}

class balapan implements tambahkecepatan {


private int kondisimesin = 0;

public void putargas() {


if (this.kondisimesin==0) {
this.kondisimesin=mesinhidup;
System.out.println("\nMesin siap balapan\n");

int a,b,c,d;
if (mesinhidup==1) {
System.out.println("Tekan tuas kopling, masukkan gigi 1");
System.out.print("Putar gas sampai kecepatan maksimum ");
for (a=0; a<=80; a++) {
if (a==80) System.out.print(a+"km/jam\n");
}
System.out.println("\n");
System.out.println("Gigi 1 sudah mencapai kecepatan maksimum "+a+"km/jam");
System.out.println("Tekan tuas kopling, masukkan gigi 2");
System.out.print("Putar gas sampai kecepatan maksimum ");

for (b=80; b<=150; b++) {


if (b==150) System.out.print(b+"km/jam\n");
}
System.out.println("\n");
System.out.println("Gigi 2 sudah mencapai kecepatan maksimum "+b+"km/jam");
System.out.println("Tekan tuas kopling, masukkan gigi 3");
System.out.print("Putar gas sampai kecepatan maksimum ");

for (c=150; c<=250; c++) {


if (c==250) System.out.print(c+"km/jam\n");
}
System.out.println("\n");
System.out.println("Gigi 3 sudah mencapai kecepatan maksimum "+c+"km/jam");
System.out.println("Tekan tuas kopling, masukkan gigi 4");
System.out.print("Putar gas sampai kecepatan maksimum ");

for (d=250; d<=350; d++) {


if (d==350) System.out.print(d+"km/jam\n");
}
System.out.println("\n");
System.out.println("Gigi 4 sudah mencapai kecepatan maksimum "+d+"km/jam");
System.out.println("Garis Finish 1 meter didepan, lakukan jumping ban belakang..!!!");
}

} else {
System.out.println("Payah....mesinnya mogok, perbaiki dulu..!");
}
}
}

public class balapmotor {


public static void main (String[] args) {
balapan balapanmotor = new balapan();
balapanmotor.putargas();
}
}

25
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Tugas Praktikum :
1. Buatlah contoh program java yang mengimplementasikan penggunaan package.
2. Buatlah contoh program java yang mengimplementasikan penggunaan Interface.

Modul Praktikum VIII

Exception Handling

Tujuan :
Memahami Exception dalam Java
Memahami kegunaan Blok Try, Catch dan Finally
Memahami kegunaan keyword Throw dan Throws

Pendahuluan :
Exception Handling adalah event yang terjadi ketika program menemui kesalahan saat
instruksi program dijalankan. Kesalahan yang mungkin terjadi bisa bermacam-macam,
misalnya pada saat pembacaan sebuah file, tetapi program tersebut gagal membuka sebuah
file yang diinginkan, crash pada hardisk sehingga program-program tidak bisa mengakses
file-file tertentu yang berada pada bad sector misalnya, melakukan pembagian sebuah
bilangan dengan angka 0, pengisian elemen array dengan di luar jumlah elemen array yang
ditentukan, dan lain sebagainya.
Untuk mengatasi kesalahan pada saat program sedang dieksekusi, Java menyediakan suatu
mekanisme penanganan kesalahan atau disebut juga exception handling. Ketika terjadi
kesalahan, secara otomatis akan dilemparkan sebuah objek yang disebut exception. Proses
pelemparan exception tersebut dikenal dengan istilah throwing exception, sedangkan proses
penerimaan exception disebut catch exception.
Agar kesalahan karena eksepsi dapat dikendalikan, eksepsi tersebut perlu “ditangkap”. Untuk
menangkap sebuah eksepsi, java menyediakan pernyataan try. Pernyataan ini memiliki 2
bentuk.

1.
try {
statemen-statement yang akan ditangkap jika terjadi eksepsi;
………………..;

} catch (parameter) {
statemen yang akan dijalankan jika terjadi eksepsi;
………………..;
}

Pada block catch ; merupakan statement-statement yang akan digunakan atau


dijalankan jika hanya terjadi kesalahan pada saat blok try dijalankan. Sedangkan
parameter pada blok catch; merupakan nama kelas yang berhubungan dengan
penanganan eksepsi yang mungkin terjadi dan diikuti dengan nama parameter
tersebut.
Pada contoh program 8.1, parameter yang digunakan adalah r yang berkelas
RuntimeException. Bagian ini akan dijalankan hanya jika statemen yang terletak
di dalam blok try mengalami eksespsi. Parameter tersebut dapat berupa :
– Throwable t
– Error e
– Exception e
– IOException e
– RuntimeException r.

26
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Java menyediakan berbagai kelas untuk menangani suatu eksepsi. Kelas tertinggi
yaitu Throwable. Dari kelas tersebut terdapat subkelas dengan nama Error dan
Exception. Subkelas Error umumnya digunakan untuk menangani kesalahan yang
terjadi pada penggunaan memori, seperti penggunaan memori di luar kapasitas yang
telah ditentukan (OutOfMemoryError). Sedangkan subkelas Exception mempunyai
subkelas IOException dan RuntimeException. IOException digunakan untuk
menangani kesalahan yang mungkin terjadi pada saat penggunaan alat-alat
input/output. Sedangkan subkelas RuntimeException digunakan untuk menangani
eksepsi seperti penggunaan index array yang melebihi kapasitas yang telah
ditentukan atau kesalahan yang mungkin terjadi pada operasi aritmatika.

Berikut adalah contoh penulisan program java untuk menangani eksepsi yang
terjadi dengan menggunakan bentuk try-catch.

contoh program 8.1


nama file : handlingeksepsi.java

class handlingeksepsi {
public static void main(String[] args) {
try {
for (int i=0; i<=9; i++) {
System.out.println("Nilai i = "+i);
if (i==5) { System.out.println(i/0); }
}
} catch (RuntimeException r) {
System.err.println("Terjadi kesalahan pembagian dengan nilai 0");
}
System.out.println("System.out.println(\"Dengan menggunakan try, kesalahan yang
mungkin \n terjadi tidak mengakibatkan deadlock (eksekusi tidak dihentikan), \n
buktinya statement ini dijalankan.........\");");
}
}

2.
try {
statemen-statement yang akan ditangkap jika terjadi eksepsi;
………………..;

} finally {
statemen yang akan dijalankan jika terjadi/tidak terjadi suatu eksepsi;
………………..;
}

Pada blok finally, statemen yang ada di dalam blok finally tetap akan dijalankan –
tidak tergantung apakah statemen yang terdapat pada blok try mengalami eksepsi
atau tidak. Contoh programnya dapat dilihat pada program 8.2.

27
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

contoh program 8.2


nama file : tryfinally.java

class tryfinally {
public static void main(String[] args) {

try {
for (int i=0; i<=9; i++) {
System.out.println("Nilai i = "+i);
if (i==5) System.out.println(i/0);
}
} finally {
System.out.println("Terjadi kesalahan pembagian dengan nilai 0, ");
}
System.out.println("Tetapi statemen di dalam blok finally tetap dijalankan....");
}
}

Bentuk lain dalam penulisan statemen try adalah :

try {
………………..;
} catch (Exception x) {
………………..;
} catch (Exception x) {
………………..;
} catch (Exception x) {
………………..;
finally {
………………..;
}

Tugas Praktikum :
1. Tulis program penanganan eksepsi dengan menggunakan try-catch bertingkat.
2. Buatlah kode sumber dengan menggunakan keyword throw & throws untuk menangani
exeception yang mungkin terjadi.

Modul Praktikum IX

Kelas java.lang.System dan Runtime

Tujuan :
Mengetahui standar input/output, property sistem pada bahasa Java

Pendahuluan
Kelas java.lang.system merupakan kelas yang sangat penting dalam Java. Pada modul-modul
sebelumnya, Anda sebenarnya telah menggunakan kelas ini, yakni untuk mencetak data ke
layar dengan pemanggilan System.out.println.

28
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Kelas System disediakan oleh Java, agar programmer Java bisa mengakses sumber daya
sistem, seperti properti sistem, standar input/output dengan lebih mudah.
Berbeda dengan kelas-kelas yang lain pada umumnya, untuk menggunakan kelas ini Anda
tidak perlu melakukan instansiasi variabel bertipe objek System dengan operator new. Anda
langsung mengacu ke fungsi atau member variabel dari kelas ini, seperti :

System.in
System.out
System.err

Salah satu member variabel dari kelas ini yang sudah sering Anda pakai adalah System.out, yaitu
member variabel ini memiliki fungsi untuk mencetak data ke layar, yaitu System.out.println()
atau System.out.print(), namun tidak langsung diakhiri dengan karakter Enter. Fungsi ini bisa
mengandung parameter dengan tipe data apapun yang ada dalam Java.
System.err merupakan variabel yang menjadi standar error, variabel ini digunakan untuk
mencetak pesan kesalahan ke layar. Fungsi umum yang digunakan sama persis dengan fungsi
pada System.out, yaitu System.err.println() dan System.err.print().

System.in merupakan variabel yang menjadi standar input, penggunaan input stream cenderung
lebih sukar dari pada untuk mencetak data ke layar. Penggunaan umumnya adalah sebagai
berikut :

import.java.io.*;

BufferedReader masukan = new BufferedReader(new InputStreamReader(System.in));

Tampak pada penggunaan di atas, Anda bisa menggunakan variabel input yang memiliki fungsi
readLine() untuk membaca sebaris masukan. Perlu diperhatikan bahwa, ketika melakukan
pembacaan dari standar input ini, Anda harus mengimpor paket java.io.* dan method
menggunakan pembacaan ini harus throws IOException.
Berikut adalah contoh program sederhana yang menggunaan kelas java.lang.System yang
berfungsi untuk membaca data yang dimasukkan oleh user melalui keyboard.

// contoh program 9.1


// nama file : input.java

import java.io.*;

class input {
public static void main(String[] args) throws IOException{
System.out.print("Masukkan sembarang karakter dari keyboard : ");

BufferedReader bacadata = new BufferedReader(new InputStreamReader(System.in));

String input = bacadata.readLine();


System.out.println("Data yang Anda masukkan adalah : "+input);
}
}

import java.io.*, digunakan untuk mengimpor paket java.io.* yang diperlukan untuk proses
pembacaan data yang dimasukkan melalui keyboard. Jadi penulisan import.java.io.* harus
dideklarasikan (harus ada), apabila program yang kita buat menangani proses pemasukan data.

Statemen throws IOException berfungsi untuk menangani kesalahan I/O yang mungkin terjadi
pada saat pemasukan data oleh user yang nantinya kesalahan tersebut akan dilemparkan ke
bagian exception.

29
Modul Praktikum Laboratorium Komputer Rekayasa Perangkat Lunak

Sedangkan statement String input = bacadata.readLine(), berfungsi membaca masukan dari


standar input, kemudian data tersebut disimpan dalam variabel input yang bertipe String.

Berikut contoh lain dari penggunaan kelas java.lang.system :

// contoh program 9.2


// nama file : demoIO.java

import java.io.*;

class demoIO {
public static void main(String[] args) throws IOException {
byte[] data = new byte[7];

System.out.println("Masukkan 7 buah karakter ");


System.in.read(data);

System.out.print("Karakter yang anda masukkan : ");


for (int i=0; i<data.length; i++) {
System.out.print((char)data[i]);
}
}
}

Contoh lain dari penggunaan kelas java.lang.System seperti pada contoh program 3.1 yang
sebenarnya telah ternah kita gunakan pada modul-modul sebelumnya.

Tugas Praktikum :
Buatlah contoh program yang lain yang menangani proses pemasukan data seperti : data
nama, alamat tempat tanggal lahir dan sebagainya.

30

Anda mungkin juga menyukai