MODUL PRAKTIKUM No. Dokumen : IK-GKM-ILK-FMIPA-003-RPL Edisi : 01 Revisi : 01 Berlaku Efektif : 5 Maret 2012 Halaman : 0 dari ii KATA PENGANTAR............................................... i DAFTAR ISI.................................................. ii PERTEMUAN I Dasar pemrograman java i 1 PERTEMUAN II DASAR PEMROGRAMAN JAVA II.......................8 PERTEMUAN III ARRAY DAN STRING LANJUTAN.....................16 PERTEMUAN IV PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK......20 PERTEMUAN V PEMROGRAMAN BERORIENTASI OBJEK LANJUTAN.........26 PERTEMUAN VI TIGA PILAR PBO.................................30 PERTEMUAN VII KELAS-KELAS DI DALAM PBO DAN EXCEPTION HANDLING .................................................. 34 PERTEMUAN VIII THREADS......................................40 LAMPIRAN.................................................... 47 Laboratorium Rekayasa Perangkat Lunak - Modul Praktikum Rekayasa Perangkat Lunak MODUL PRAKTIKUM No. Dokumen : IK-GKM-ILK-FMIPA-003-PBO Edisi : 01 Revisi : 01 Berlaku Efektif : 5 Maret 2012 Halaman : ii dari ii
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MODUL PRAKTIKUM
No. Dokumen : IK-GKM-ILK-FMIPA-003-RPLEdisi : 01Revisi : 01Berlaku Efektif : 5 Maret 2012Halaman : 0 dari ii
KATA PENGANTAR............................................................................................................... i
DAFTAR ISI............................................................................................................................ ii
PERTEMUAN I Dasar pemrograman java i 1
PERTEMUAN II DASAR PEMROGRAMAN JAVA II......................................................8
PERTEMUAN III ARRAY DAN STRING LANJUTAN...................................................16
PERTEMUAN IV PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK......20
PERTEMUAN V PEMROGRAMAN BERORIENTASI OBJEK LANJUTAN..............26
PERTEMUAN VI TIGA PILAR PBO.................................................................................30
PERTEMUAN VII KELAS-KELAS DI DALAM PBO DAN EXCEPTION HANDLING ........................................................................................................................34
PERTEMUAN VIII THREADS............................................................................................40
Laboratorium Rekayasa Perangkat Lunak - Modul Praktikum Rekayasa Perangkat Lunak
MODUL PRAKTIKUM
No. Dokumen : IK-GKM-ILK-FMIPA-003-PBOEdisi : 01Revisi : 01Berlaku Efektif : 5 Maret 2012Halaman : ii dari ii
DAFTAR ISI
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
BAB IDasar Pemrograman Java I
TUJUAN PEMBELAJARAN:1. Mengetahui struktur dasar bahasa Java2. Mengetahui penggunaan variabel 3. Mengetahui penggunaan tipedata dan operator
Bahasa Java berawal pada tahun 1991 ketika perusahaan Sun Microsystem memulai Green Project, yakni projek penelitian untuk membuat bahasa yang akan digunakan pada chip-chip embedded untuk device intelligent consumer electronic. Bahasa tersebut haruslah bersifat multiplatform, tidak tergantung kepada vendor yang memanufaktur chip tersebut.
1. Struktur dasar bahasa JavaPada saat kompilasi, compiler akan mencari bagian program yang disebut dengan method utama(method main). Bentuk umum dari method utama ini adalah:
public static void main(string [] args){statement body method main
}
Keterangan:public:Karena method ini merupakan bagian yang pertama kali dicari oleh compiler, maka main method harus dapat dilihat atau visible oleh kelas manapun.
static:Semua objek yang diinstans dari satu kelas yang mengandung main method akan memiliki parameter-parameter yang sama. Bila suatu kelas mengandung main method dan di dalam main method tersebut terdapat statement untuk menginstasiasi objek dari kelas tersebut, maka main method akan bersifat eksklusif, tidak diikut sertakan pada objek tersebut.
void:Menunjukkan bahwa main method tidak mengembalikan sebuah nilai.
main(String [] args):Main method dapat mengambil suatu parameter input yang merupakan array dari string yang diberi nama arguments disingkat dengan args.
Contoh:Import java.util.Scanner;
public class contoh{public static void main(String [] args){
system.Out.Println(“Welcome to Java”);}
}
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 1 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
2. Variabel dan tipe data2.1 Variabel
adalah bagian dari program yang digunakan untuk menyimpan data. Sebagai tempat menyimpan data, variabel harus dideklarasikan yaitu diberi tipe data, nama variabel, dan dapat juga diberi nilai awal(inisial).
Aturan penulisan variabel:a. Karakter pertama dimulai dari [a..z] atau [A..Z] atau [ _ , $ ]. Tidak boleh diawali bilangan
[0,1,2,3..]. Setelah karakter pertama, dapat diikuti kombinasi abjad, underscore, dollar dan bilangan.
b. Tidak boleh menggunakan reserved keyword dalam java.c. Tidak boleh menggunakan operator (+,-,=)d. Bersifat case sensitive.
Bentuk umum pendeklarasian variabel:Tipedata namavariabel
2.2 Tipe dataBerdasarkan tempat penyimpanan data dalam memory tipe data dapat dibagi menjadi:a. Tipe data primitive
Variabel yang dideklarasikan dan ditugaskan dengan tipe data primitive berisi informasi tentang data sesungguhnya. 1. Tipe data logika Boolean
Bernilai true dan false.Contoh:
boolean result = true;2. Tipe data teksualchar
Tipe data character(char), diwakili oleh karakter single Unicode.Nilai dari tipe data char diapit dengan single quotes(‘ ‘).
String adalah tipe data yang terdiri atas beberapa karakter.Contoh:
String pesan =”Hello World”
3. Integral- byte, short, int & longMerupakan tipe data bilangan bulat.Name or Type Integer Length Range8 bits byte −27 ¿27−116 bits short −215 ¿215−132 bits int −231¿231−164 bits long −263 ¿263−1
4. Floating point – float dan doubleFloating point berguna untuk menyimpan bilangan desimal.Nama atau tipe Panjang Float Rangefloat 32 bits −231¿231−1double 64 bits −263 ¿263−1
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 2 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
b. Tipe data referensiVariabel bertipe data referensi tidak berisi nilai data sesungguhnya. Variabel ini mengandung informasi referensi tentang alamat memory lainnya yang akan digunakan untuk menyimpan nilai data sesungguhnya. Contoh dari varial bertipe data referensi adalah variabel yang menyimpan data tentang objek dari suatu kelas.
3. Operator3.1 Operator aritmatika
Berikut ini adalah dasar operator aritmatika yang dapat digunakan untuk membuat suatu program Java,Operator Kegunaan+ Menambahkan dua buah bilangan* Mengalikan dua buah bilangan/ Membagikan dua buah bilangan% Modulo dari dua buah bilangan- Mengurangkan dua buah bilangan
3.2 Operator increment dan decrementOperator Penggunaan Keterangan++ op++ Menambahkan nilai 1 pada op; mengevaluasi nilai
op sebelum diincrementasi++ ++op Menambahkan nilai 1 pada op; mengevaluasi nilai
op setelah diincrementasi-- op-- Mengurangkan nilai 1 pada op; mengevaluasi nilai
op sebelum didecrementasi-- --op Mengurangkan nilai 1 pada op; mengevaluasi nilai
op setelah didecrementasi
3.3 Operator relasiBerfungsi membandingkan dua nilai dan menentukan keterhubungan diantara nilai-nilai tersebut. Hasil keluarannya berupa nilai Boolean yaitu true dan false.Operator Penggunaan keterangan> op1 > op2 op1 lebih besar dari op2>= op1>=op2 op1 lebih besar dari atau sama dengan op2< op1<op2 op1 kurang dari op2<= op1<=op2 op1 kurang dari atau sama dengan op2== op1== op2 op1 sama dengan op2!= op1!=op2 op1 tidak sama dengan op2
3.4 Operator logikaTerdapat enam operator logika yaitu:a. Logika AND (&&)b. Boolean logika AND (&)c. Logika OR(||)d. Boolean logika inclusive OR(|)e. Boolean logika exclusive OR (^)f. Logika NOT (!)
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 3 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
3.5 Operator kondisi(?:) atau operator ternary.Operator ini membawa tiga argument yang membentuk ekspresi bersyarat. Struktur pernyataan yang menggunakan operator kondisi adalah,
Exp1? Exp2: exp3Dimana nilai exp1 adalah suatu pernyataan Boolean yang memiliki hasil yang salah satunya harus berupa nilai true atau false.Jika exp1 bernilai true, exp2 merupakan hasil operasi, jika false, exp3 yang akan dieksekusi.
LATIHAN1. Mendeklarasikan variabel, menginisialisasi variabel dan menampilkan data variabel:
2. Penggunaan operator Aritmatika
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 4 dari 47
public class contohvariabel{public static void main(String [] args){
int nilai =10;char x;x = ‘A’;System.out.println(nilai);System.out.println(“Nilai dari x = “+x);
}}
public class aritmatikademo{public static void main(String[] args){
//sedikit angka int i = 37; int j = 42; double x = 27.475; double y = 7.22; System.out.println("Variable values..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" x = " + x); System.out.println(" y = " + y); //penjumlahan angka System.out.println("Adding..."); System.out.println(" i + j = " + (i + j)); System.out.println(" x + y = " + (x + y)); //pengurangan angka System.out.println("Subtracting..."); System.out.println(" i - j = " + (i - j)); System.out.println(" x - y = " + (x - y));//perkalian angka System.out.println("Multiplying..."); System.out.println(" i * j = " + (i * j)); System.out.println(" x * y = " + (x * y));
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
3. Penggunaan operator relasi
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 5 dari 47
//pembagian angka System.out.println("Dividing..."); System.out.println(" i / j = " + (i / j)); System.out.println(" x / y = " + (x / y)); //menghitung hasil modulus dari pembagian System.out.println("Computing the remainder...");System.out.println(“ i % j = “ + (i % j));System.out.println(“ x % y = “ + (x % y));
//tipe penggabunganSystem.out.println(“Mixing tipes… “);System.out.println(“ j + y = “ + (j + y));System.out.println(“ i + x = “ + (I + x));
}}
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
4. Penggunaan Operator logika dan Boolean AND
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 6 dari 47
public class RelasiDemo { public static void main(String[] args) { //beberapa nilai int i = 37; int j = 42; int k = 42; System.out.println("Nilai variabel..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" k = " + k); //lebih besar dari System.out.println("Lebih besar dari..."); System.out.println(" i > j = " + (i > j)); //false System.out.println(" j > i = " + (j > i)); //true System.out.println(" k > j = " + (k > j)); //false //lebih besar atau sama dengan System.out.println("Lebih besar dari atau sama dengan..."); System.out.println(" i >= j = " + (i >= j)); //false System.out.println(" j >= i = " + (j >= i)); //true System.out.println(" k >= j = " + (k >= j)); //true //lebih kecil dari System.out.println("Lebih kecil dari..."); System.out.println(" i < j = " + (i < j)); //true System.out.println(" j < i = " + (j < i)); //false System.out.println(" k < j = " + (k < j)); //false //lebih kecil atau sama dengan System.out.println("Lebih kecil dari atau sama dengan..."); System.out.println(" i <= j = " + (i <= j)); //true System.out.println(" j <= i = " + (j <= i)); //false System.out.println(" k <= j = " + (k <= j)); //true//sama dengan System.out.println("Sama dengan..."); System.out.println(" i == j = " + (i == j)); //false System.out.println(" k == j = " + (k == j)); //true//tidak sama dengan System.out.println("Tidak sama dengan..."); System.out.println(" i != j = " + (i != j)); //true System.out.println(" k != j = " + (k != j)); //false }
}
public class TestAND { public static void main( String[] args ){
int i = 0; int j = 10; boolean test= false; //demonstrasi && test = (i > 10) && (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); //demonstrasi & test = (i > 10) & (j++ > 9); System.out.println(i);System.out.println(j);System.out.println(test);
}}
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
5. Penggunaan operator logika dan Boolean OR
6. Penggunaan operator booleanLogika eksklusive OR
7. Penggunaan operator logika NOT
8. Penggunaan operator kondisi (?:)
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 7 dari 47
public class TestOR { public static void main( String[] args ){
int i = 0; int j = 10; boolean test= false; //demonstrasi || test = (i > 10) || (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); //demonstrasi | test = (i > 10) | (j++ > 9); System.out.println(i);System.out.println(j);System.out.println(test);
}}
public class TestXOR { public static void main( String[] args ){
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
BAB IIDasar Pemrograman Java II
TUJUAN PEMBELAJARAN:1. Mengetahui cara mendapatkan input dari keyboard2. Mengetahui struktur kontrol pemilihan di Java.3. Mengetahui struktur kontrol perulangan di Java4. Mengetahui Pernyataan Percabangan
1. Mendapatkan Input dari keyboardPada contoh-contoh sebelumnya semua nilai yang dibutuhkan di tentukan secara langsung dalam source code. Pada bab ini, kita akan mempelajari cara memberikan input dengan menggunakan class BufferedReader dan class Scanner.
Untuk menggunakan class BufferedReader ikutilah langkah berikut ini:a. Pada bagian atas code, ketikkan :
BufferedReader dataIn= new BufferedReader(new InputStreamReader(System.in));
c. Deklarasikan variabel String temporary untuk mendapatkan input, dan gunakan fungsi readLine() untuk mendapatkan input dari keyboard di dalam blok try-catch.try{
Scanner Baca= new Scanner(System.in);c. Misalkan ada sebuah variabel String ABCD, untuk menginputkan nilai ke variabel tersebut:
ABCD=Baca.readLine();
Nantinya kita lebih sering menggunakan kelas Scanner di dalam input data karena lebih efektif di dalam penggunaannya.
2. Struktur kontrol pemilihan Adalah pernyataan dari Java yang mengizinkan user untuk memilih dan mengeksekusi blok kode spesifik dan mengabaikan blok kode yang lain. Struktur kontrol pemilihan di Java : statement if dan switch.
a. Statement ifPernyataan if akan menentukan sebuah pernyataan yang akan dieksekusi jika dan hanya jika persyaratan bernilai benar(true).Bentuk umum dari Statement if
if (Boolean_expression)statement;
atauif(Boolean_expression){
statement1;statement2;…
}b. Statement if else
Pernyataan if-else digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi true dan pernyataan yang lain dengan kondisi false.
Bentuk umum dari statement if-elseif(Boolean_expression)
statement;else
statement;
atauif(Boolean_expression){
statement1;statementn;…
}else{
Statement1;Statementn;
}
c. Statement if-else-ifPernyataan pada bagian kondisi else dari blok if else dapat menjadi struktur if-else yang lain. Kondisi struktur seperti ini mengizinkan kita untuk membuat seleksi persyaratan yang lebih kompleks.
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 9 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
Bentuk umum statement if-else-ifif(Boolean_expression)
statement1;else if(Boolean_expression2)
statement2;else
statement3;
d. Statement switchCara lain untuk membuat cabang adalah dengan menggunakan kata kunci switch. Switch mengkonstruksikan cabang untuk beberapa kondisi dari nilai.]
Bentuk umum statement switch,switch(switch_expression){
case case_selector1:statement1;statement2;…break;
case case_selector2:statement1;statement2;…break;
….default:
statement1;statement2;…
break;}
3. Struktur kontrol perulanganStruktur kontrol pengulangan adalah berupa pernyataan dari Java yang mengizinkan kita untuk mengeksekusi blok code berulang-ulang sesuai dengan jumlah tertentu yang diinginkan. Ada tiga macam jenis dari struktur kontrol perulangan yaitu while, do-while dan for-loops.a. While loop
Adalah pernyataan atau blok pernyataan yang diulang-ulang sampai mencapai kondisi yang cocok.
Bentuk umum:while (Boolean_expression){
Statement1;Statement2;…
}
b. Do whileHampir sama dengan while-loop, hanya saja do while langsung melaksanakan blok statement tanpa memeriksa terlebih dahulu kondisi yang disyaratkan. Jadi di dalam eksekusi sedikitnya ada satu kali loop.
Bentuk umum:do{
statement1;statement2;
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 10 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
…} while(boolean_expression);
c. For loopsPernyataan for loop memiliki kondisi hamper mirip dengan struktur pengulangan sebelumnya. Hanya saja for-loop mengeksekusi loop sebanyak jumlah yang telah ditentukan(pasti).
Bentuk umum:for(initialisasiexpression; loopCondition; stepExpression){
Statement1;Statement2;…
}
4. Pernyataan PercabanganDengan pernyataan percabangan, kita diizinkan untuk mengatur alur eksekusi program. Ada 3 bentuk pernyataan percabangan di dalam java: break, continue dan return.
a. BreakAda dua bentuk: tidak berlabel(unlabeled) dan berlabel(labeled)Pernyataan break tidak berlabeldigunakan untuk menghentikan jalannya pernyataan switch. Selain itu pernyataan break unlabeled juga bias digunakan untuk menghentikan pernyataan-pernyataan for, while atau do-while loop.
Pernyataan break berlabelmenghentikan pernyataan diluarnya, dimanan sebelumnya harus diberikan label yang sudah dispesifikasikan pada pernyataan break.
b. Pernyataan ContinueMemiliki dua bentuk: berlabel dan tidak berlabel. Pernyataan continue tidak berlabelakan melewati bagian pernyataan setelah pernyataan ini dituliskan dan memeriksa ekspresi logika yang mengontrol pengulangan. Jika masih bernilai true, maka pengulangan tetap dilanjutkan.
Pernyataan continue berlabelmelanjutkan pengulangan yang sedang terjadi dan dilanjuti ke pengulangan berikutnya dari pengulangan yang diberi label.
c. Pernyataan returnDigunakan untuk keluar dari sebuah method. Pernyataan return memiliki dua bentuk: memberikan sebuah nilai dan tidak memberikan nilai.
LATIHAN1. Menerima input dengan kelas bufferedReader dan Scanner;
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 11 dari 47
public class Contohkelas {public static void main(String [] args){
System.out.println("Bagian ini menggunakan BufferedReader: ");
System.out.println("Bagian ini menggunakan kelas Scanner: ");Scanner baca= new Scanner(System.in);System.out.print("Kamu siapa ya? ");String nama= baca.nextLine();
System.out.print("berapa jumlah matamu? ");int mata= baca.nextInt();
System.out.println("Halo "+ nama+", kamu punya "+mata+" mata");
}
}
public class Grade { public static void main( String[] args ){
Scanner Read= new Scanner(System.in);System.out.print(“Nilai anda: “);
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
BAB IIIArray dan String Lanjutan
TUJUAN PEMBELAJARAN:1. Mengetahui penggunaan Array2. Mengetahui penggunaan method di dalam String
1. Array Array adalah variabel yang dapat menyimpan beberapa data dan memanipulasinya dengan lebih efektif. Dengan array, kita tidak perlu mendeklarasikan beberapa variabel untuk satu tujuan.
Array juga bias didefenisikan sebagai sebuah variabel/sebuah lokasi tertentu yang memiliki satu nama sebagai identifier, namun identifier ini dapat menyimpan lebih dari sebuah nilai.
a. Pendeklarasian array
Tipedata []namaaaray;Atau Tipedata namaarray[];
Contoh: String [] cuaca;
Setelah pendeklarasian array, kita harus menentukan berapa panjangnya array dengan sebuah konstruktor. Proses ini di Java disebut sebagai instatiation.Contoh di atas diinstasiasi menjadi:
cuaca= new String[5];
b. Pengaksesan sebuah elemen arrayUntuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array, kamu harus menggunakan sebuah angka atau yang disebut sebagai indeks atau subscript
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 16 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau subscript telah diberikan kepada tiap anggota array, sehingga program dan programmer dapat mengakses setiap nilai pada array apabila dibutuhkan. Nilai indeks selalu dalam tipe integer dan dimulai dari angka nol sampai dengan ukuranarray-1.
Sebagai contoh://memberikan nilai “Cerah” kepada elemen pertama arraycuaca[0]=”Cerah”;
//mencetak elemen array yang terakhirSystem.out.print(cuaca[4]);
c. Panjang ArrayUntuk mengetahui berapa banyak elemen di dalam sebuah array, kamu dapat menggunakan atribut length dari array. Atribut ini akan mengembalikan ukuran dari array itu sendiri. Sebagai contoh:
Namaarray.length;
d. Array multidimensiDiimplementasikan sebagai array yang terletak di dalam array. Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai contoh://elemen 10 X 20 dari integer arrayint [][] duaD= new int[10][30];
//elemen 4 x 5 x 8 dari integerint [][][] tigaD= new int[4][5][8];
//elemen 4 baris x 2 kolom dari stringString [][] bunga= {{ “Mawar”, “Merah”},
{“Melati”,”Putih”}, {“Anggrek”,”Ungu”},
{“Kamboja”,”Pink”} };
2. String
Adalah sebuah kelas yang merupakan memiliki nilai berupa gabungan/kumpulan dari beberapa karakter(char)
a. Mendeklarasikan StringSama seperti mendeklarasikan tipe data yang lainnya, pendeklarasian String di awali dengan nama kelasnya dan diikuti nama variabelnya,String namatipedata= “”;
b. Panjang StringMethod ini digunakan untuk mendapatkan informasi panjang/jumlah karakter dari sebuah variabel String.
public class penggunaanString {public static void main(String [] args){
String kalimat="Saya sedang belajar bahasa Java";System.out.println("Kalimat: "+kalimat);System.out.println("Panjang kalimat: " +kalimat.length());System.out.println("Huruf besar: "+ kalimat.toUpperCase());System.out.println("Huruf kecil : "+ kalimat.toLowerCase());for (int i=0;i<kalimat.length();i++){
System.out.print("Karakter ke "+(i+1)+" : "+ kalimat.charAt(i)+"\t");if ((i+1) % 2 ==0)
System.out.println();}
}
}
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
BAB IVPengenalan Pemrograman Berorientasi Objek
TUJUAN PEMBELAJARAN:1. Mengetahui apa itu PBO.2. Mengetahui perbedaan kelas dan objek3. Mengetahui Modifier akses di dalam PBO4. Mengetahui komponen-komponen kelas5. Mengetahui apa itu Method secara garis besar6. Menggunakan kelas Math
1. Pemrograman Berorientasi ObjekPemrograman berorientasi objek(PBO) merupakan paradigma pemrograman yang berorientasikan kepada objek. Pemrograman Beriorientasi Objek atau dalam bahasa “kerennya” Object Oriented Programming(OOP) berputar pada konsep dari objek yang merupakan elemen dasar Anda. Jika kita membandingkan dengan dunia nyata, kita dapat menemukan beberapa objek disekitar kita seperti mobil, singa, manusia dan seterusnya. Objek-objek ini dikarakterisasi oleh attribute dan tingkah lakunya.
Sebagai contoh, objek sebuah mobil mempunyai atribut tipe transmisi, warna dan manufaktur. Mempunyai tingkah laku berbelok, mengerem dan berakselerasi. Contoh yang lainnya, objek seekor burung mempunyai atribut warna, paruh, cakar, dan sayap dengan tingkah laku terbang, hinggap, mematuk dan lain sebagainya.
2. Class dan objectKelas adalah stuktur dasar dari PBO. Kelas terdiri dari dua tipe dari anggota dimana disebut dengan attribute(field/properti) dan behavior(method). Attribute merupakan tipe data yang didefinisikan oleh class, sementara behavior merupakan operasi. Sebuah objek adalah sebuah instance(keturunan) dari class.
Cara mendeklarasikan kelas(paling sederhana):class namaKelas{
classBody
}
Secara umum, kelas memiliki struktur anatomi sbb:(modifier1) class namaKelas (modifier2){
classBody}
Modifier1(Optional) Keterangan
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 20 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
publicmenyatakan bahwa kelas tersebut dapat juga diakses oleh kelas yang lain, baik yang masih berada dalam package yang sama maupun berbeda.
privatemenyatakan bahwa kelas tersebut tidak dapat diakses sama sekali oleh kelas lain, tanpa memandang apakah ia berasal dari paket yang sama atau bukan
protectedmembatasi akses kelas yang dilakukan oleh subkelas turunannya (dari proses pewarisan/inheritance) dan kelas lain yang terletak dalam paket yang sama
abstract
menyatakan bahwa kelas tersebut tidak dapat diinstasiasi langsung menjadi objek. Modifier ini hanya dipakai bila kelas tersebut terletak pada hirarki kelas tertinggi, sehingga hanya mungkin diturunkan sebagai subkelas, bukan diinstasiasimenjadi objek
final menyatakan bahwa kelas tersebut tidak dapat diturunkan menjadi subkelas(pewarisan)
Modifier2(Optional) Keterangan
extends SuperClass
digunakan dalam prinsip inheritance, yaitu bila kelas tersebut merupakan subkelas dari suatu kelas super(SuperClass).
implements interfaces
digunakan bila kelas tersebut mengimplementasikan satu atau lebih interface. Bila terdapat lebih dari satu interface digunakan koma diantara interface-interface tersebut
Object adalah sebuah komponen perangkat lunak yang strukturnya mirip dengan obyek pada dunia nyata. Setiap obyek dibangun dari sekumpulan data(atribut) yang disebut variabel untuk menjabarkan karakteristik khusus dari obyek, dan juga terdiri dari sekumpulan method yang menjabarkan tingkah laku dari obyek. Bisa dikatakan bahwa objek adalah sebuah perangkat lunak yang berisi sekumpulan variabel dan method yang saling berhubungan. Jadi variabel dan method dalam objek java juga disebut variavel instance dan method instance.
Untuk membuat sebuah objek atau sebuah instance pada sebuah class. Kita menggunakan operator new. Bentuk umum instasiasi objek:
NamaKelas namaObject= new NamaKelas; //untuk kelas tanpa konstruktor
Atau
NamaKelas namaObject= new NamaKelas(argumen1,argumen2,. . .);//untuk kelas yang memiliki konstruktor
3. MethodApakah method itu? Jika anda bingung method itu sama dengan fungsi pada bahasa C++. Hanya saja di dalam PBO fungsi dinamakan dengan method. Kita dapat mendefinisikan banyak method. Method dibuat untuk mengefisienkan suatu blok statement yang dipanggil berkali-kali sehingga dapat dipergunakan kembali tanpa harus mengetikkan kembali blok statement tersebut.
Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau dari method lainnya untuk menjalankan fungsi yang spesifik.
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 21 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
Berikut adalah karakteristik dari method:a. Dapat mengembalikan satu nilai atau tidak sama sekalib. Dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali.
Parameter bisa juga disebut sebagai argument dari fungsi.c. Setelah method telah selesai dieksekusi, dia akan kembali pada method yang memanggilnya.
Memanggil Method StaticMethod static adalah method yang dapat dipakai tanpa harus menginisialisasi suatu class(maksudnya tanpa menggunakan variabel terlebih dahulu). Contoh method static:
//println di sini merupakan method static yang dapat digunakan langsung tanpa membuat objek dari Kelas OutSystem.out.println(“Halo semuanya”);
//parseInt merupakan method staticint i= Integer.parseInt(“10”);
Kelas MathKelas Math merupakan salah satu kelas yang telah disediakan di dalam java sdk. Kelas math memiliki method static yang siap untuk digunakan.Method-method tersebut adalah:
public class Matematika {public static void main(String [] args){
double a=4.23;double b=-9.23;
System.out.println("Ceil dari "+a+" = "+Math.ceil(a));System.out.println("Floor dari "+a+" = "+Math.floor(a));System.out.println("Ceil dari "+b+" = "+Math.ceil(b));System.out.println("Floor dari "+b+" = "+Math.floor(b));
a=36;System.out.println("Akar dari "+a+ " = "+Math.sqrt(a));
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 25 dari 47
System.out.println("Mana yang lebih besar? "+a+" atau "+b+" ? Jawab: "+Math.max(a, b));
System.out.println("Yang lebih kecil? "+Math.min(a, b));
}
}
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
BAB VPemrograman Berorientasi Objek Lanjutan
TUJUAN PEMBELAJARAN:1. Mengetahui 2 jenis method berdasarkan nilai yang dibalikkan.2. Memahami operator this.3. Mengetahui dan memahami overloading methods4. Memahami penggunaan constructor
1. Jenis Method berdasarkan nilai balikanBerdasarkan nilai yang dibalikkan ada dua jenis Method yaitu method void(tidak membalikkan nilai) dan method nonvoid(membalikkan nilai).
Perhatikan contoh di atas, method nonvoid di atas memiliki nilai balikan berupa integer. Artinya adalah method main atau method lain yang memanggil method nonvoid tersebut akan menerima nilaibalikan dari method nonvoid tersebut. Ciri khas method nonvoid adalah adanya statement return yang memerintahkan method untuk mengembalikan nilai ke method yang memanggilnya.
b. Memanggil method:Untuk memanggil method dapat dilakukan dengan memanggil kelasnya terlebih dahulu baru lalu diikuti tanda dot(.) dan diakhiri dengan nama methodnya.
Kelas.namaMethod()
Argumen bisa ada bisa juga kosong. Apabila method tidak memiliki argument maka di dalam pemanggilannya cukup dengan Kelas.namaMethod(). Apabila memiliki argument, maka pemanggilannya harus melengkapi argument-argumennya.
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 26 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
2. Keyword thisApabila ditinjau dari kepemilikannya, variabel dapat dibagi menjadi dua yaitu
a. variabel kelas dan b. variabel instans.
Variabel kelas adalah variabel yang melekat pada kelas dan tidak terpengaruh oleh proses instasiasi, sehingga tidak dapat dimiliki dan diakses oleh object yang diinstans dari kelas tersebut. Sedangkan variabel instans adlah variabel yang dimiliki oleh objek dari proses instansiasi suatu proses.Agar kompiler tahu variabel mana yang dimiliki oleh kelas atau yang dimiliki oleh instans maka digunakanlah keyword this untuk mengakses variabel instans dari masing-masing objek.Perhatikan contoh ini:
public void setAge( int age ){age = age; //SALAH!!!
}
kompiler akan bingung, variabel age yang akan diinisialisai milik siapa?
Agar menghilangkan keraguan ini maka digunakan keyword this menjadi:public void setAge( int age ){
this.age = age;}
3. Overloading MethodsJava memperbolehkan dua buah atau lebih method dengan nama yang sama di dalam satu kelas, tetapi jumlah dan tipedata argumennya haruslah berbeda satu dengan yang lainnya.
4. Method constructorAdalah method yang dipanggil pada saat pembentukan objek dan berfungsi untuk memberi nilai inisial pada variabel objek. Hal-hal yang perlu diingat tentang constructor:
a. Harus memiliki nama yang sama dengan nama kelas.b. Tidak mengembalikan suatu nilai, namun bukan merupakan method void.c. Satu kelas bisa memiliki lebih dari satu constructor dengan syarat jumlah dan tipe data
argumennya berbeda. Hal ini biasa disebut dengan overloading Method constructord. Dapat dibubuhi modifier akses: public, private,protected.e. Bisa dipanggil oleh constructor lain dalam satu kelas.
LATIHAN1. Menggunakan method void dan method nonvoid
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 27 dari 47
class informasi{String nama="", alamat="";int umur=0;
void inputbiodata(String nama, String alamat, int umur){this.nama=nama;this.alamat=alamat;this.umur=umur;
}
void cetakbiodata(){System.out.println("Hai, nama saya "+nama);System.out.println("Saya tinggal di "+alamat);System.out.println("Umur saya "+umur+" tahun");
}}public class biodataku {
public static void main(String [] args){informasi aku= new informasi();aku.inputbiodata("Isman", "Jln. Pijar Podi 3", 19);aku.cetakbiodata();
}
}
public class overloadMethod {public static void main(String [] args){
overloadMethod contoh= new overloadMethod();System.out.println(contoh.jumlahbilangan(4, 5));System.out.println(contoh.jumlahbilangan(4.3, 2.5));
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
1. InheritanceInheritance adalah proses pewarisan data dan method dari suatu kelas kepada kelas yang lain. Pewarisan ini bersifat menyeluruh, sehingga semua data dan method yang dimiliki oleh kelas asalnya akan diturunkan kepada kelas baru. Kelas yang mewariskan disebut Kelas Super(Super Class), sedangkan kelas yang diwariskan disebut SubKelas( Sub Class)
- Overriding Data dan MethodAdalah kemampuan suatu subkelas untuk memodifikasi data dan method dari kelas induknya. Overriding disebut juga redefinisi data dan method. Proses ini akan mengubah data dan method dari keduanya,kelas anak dan induknya.
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 29 dari 47
public class overloadMethod {public static void main(String [] args){
overloadMethod contoh= new overloadMethod();System.out.println(contoh.jumlahbilangan(4, 5));System.out.println(contoh.jumlahbilangan(4.3, 2.5));
public class methodKonstruktor {double jari=0.0;double luas=0.0;public static void main(String [] args){
methodKonstruktor lingkaran1= new methodKonstruktor(7);lingkaran1.htngLnK();
methodKonstruktor lingkaran2= new methodKonstruktor();
}
public methodKonstruktor(){System.out.println("konstruktor ini dipanggil ketika argumen konstruktor kosong");
}
public methodKonstruktor(double jari){this.jari=jari;
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
- Keyword extendsDi dalam bab sebelumnya ada dijelaskan tentang bentuk umum pendeklarasian class. Maka di dalam inheritance, modifiers2 diganti dengan keyword extends yang menyatakan bahwa kelas tersebut merupakan perluasan dari kelas induknya.
- Keyword SuperKeyword ini digunakan oleh kelas anak untuk mengakses konstruktor atau method dari kelas induk. a. Keyword super untuk memanggil konstruktor kelas super
Bentuk umum:super()atausuper(parameter)
Java tidak mengizinkan kelas anak memanggil nama konstruktor dari kelas induk secara langsung. Ibaratkan seorang anak tidak boleh memanggil orangtuanya dengan menggunakan namanya. Maka keyword superlah yang digunakan untuk memanggil konstruktor dari Kelas Super.
b. Keyword super untuk memanggil method kelas superBentuk umum:
super.method(parameter)
2. EncapsulationAdalah cara bagaimana anda membungkus data dan method yang menyusun kelas sehingga kelas dapat dipandang sebagai suatu modul dan menyembunyikannya dari dunia luar.
Prinsip enkapsulasi:a. Bersifat independen
Suatu modul (Super Class) tidak akan terikat pada bagian tertentu dari program yang menggunakan method dari kelas tersebut.
b. Bersifat transparanJika kita memodifikasi suatu modul, maka akan berdampak pada bagian program yang menggunakan modul tersebut.
c. Menghindari efek yang di luar perencanaanDengan enkapsulasi, modul dasar tidak akan terganggu oleh perubahan/modifikasi dari program yang menggunakannya.
Sebenarnya enkapsulasi telah kita implementasikan sebelumnya. Pembuatan kelas merupakan salah satu contoh enkapsulasi.
3. PolymorphismeAdalah modul yang memiliki nama sama, tapi memiliki behavior(tingkah laku) yang berbeda sehingga listing code implementasinya berbeda.
LATIHAN1. Penerapan Inheritance
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 30 dari 47class KelasInduk{
public KelasInduk(){System.out.println("Ini adalah konstruktor dari kelas
induk");}
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
2. Penerapan enkapsulasi
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 31 dari 47
class KelasInduk{public KelasInduk(){
System.out.println("Ini adalah konstruktor dari kelas induk");
}
public class contohInheritance {public static void main(String [] args){
KelasAnak Satu= new KelasAnak();Satu.methodAnak();Satu.inimaudimodif();
public static void main(String [] args){DecimalFormat digit= new DecimalFormat("0.00");HitungGaji Budi= new HitungGaji();Budi.setGaji(3000000);Budi.hitungGaji();
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
3. Penerapan polymorfisme
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 32 dari 47
class rautMuka{public String Respons(){
return ("Lihat reaksi wajah saya \n");}
}
class Gembira extends rautMuka{public String Respons(){
return("ha ha... hi.. hi.. saya sedang gembiara \n");
}}
class Sedih extends rautMuka{public String Respons(){
return("Hik.. hik.. teganya dia berbuat itu.. \n");}
}
class Marah extends rautMuka{public String Respons(){
return("Hei!! Jangan dekati saya!\n");}
}
public class contohpolimorfis {public static void main(String [] args){
System.out.println("Contoh Polimorfisme");rautMuka objRaut= new rautMuka();Gembira objGembira= new Gembira();Sedih objSedih= new Sedih();Marah objMarah= new Marah();
rautMuka []ekspresi= new rautMuka[4];ekspresi[0]=objRaut;ekspresi[1]=objGembira;ekspresi[2]=objSedih;ekspresi[3]=objMarah;
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
BAB VIIKELAS-KELAS DI DALAM PBO dan EXCEPTION HANDLING
TUJUAN PEMBELAJARAN:1. Mengetahui penggunaan kelas Inner2. Mengetahui penggunaan Kelas Abstrak3. Mengetahui penggunaan kelas Interface4. Mengetahui jenis-jenis Eksepsi5. Mengetahui cara menangani eksepsi
1. Kelas InnerInner class adalah kelas yang disisipkan di dalam kelas yang lain. Fungsi dari kelas sisipan ini adalah mendukung suatu proses yang akan dijalankan oleh kelas utamanya.Bentuk umum pembentukan objek kelas inner:
KelasSuper objekKelasSuper= new KelasSuper();KelasSuper.KelasInner objekKelasInner = objekKelasSuper.new KelasInner();
2. Kelas abstrak
Kelas abstrak merupakan hirearki tertinggi dari suatu kelas. Kelas ini berisi variabel-variabel umum dan deskripsi method tanpa disertai implementasi. Kelas ini merupakan basis dari penurunan kelas-kelas lainnya, sehingga tidak dapat diinstans secara langsung menjadi objek. Kelas-kelas turunan itulah uang mendefinisikan method secara detail.
Bentuk umum:(modifier) abstract class NamaKelasAbstract{
Deklarasi variabel secara umumDeklarasi method secara umum tanpa implementasi
}
3. Kelas interface, Kelas Interface adalah deklarasi yang mirip dengan kelas, namun hanya memuat konstanta dan struktur method tanpa detail implementasinya. Sebuah antarmuka(interface) tidak dapat diinstan menjadi objek, antarmuka hanya bisa diimplementasikan oleh sebuah kelas atau diperluas oleh antarmuka lain.
Bentuk umum:(modifier) interface namaInterface{
Deklarasi konstantaDeklarasi method
}Untuk kelas yang menggunakan interface maka harus membubuhi keyword implements pada modifier2-nya.
Sekilas jika dilihat dari bentuk umumnya, abstrak dan interface memang sama tetapi keduanya sangatlah berbeda. Perhatikan table berikut:
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 33 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
Sisi perbedaan Antarmuka Kelas AbstrakDeklarasi variabel hanya berupa konstanta
semua jenis variabel
Deklarasi Method
Berupa method abstrak/signature method
dapat berupa signature method dan implementasi method
Definisi Kumpulan konstanta dan method yang diterapkan pada aplikasi tertentu
kelas abstrak merupakan pemodelan dari objek
Kandungan Informasi mendefinisikan signature
dari method
mendefinisikan variabel dan method secar detail dan konkret
Instasiasi tidak dapat diinstan menjadi objek
bisa diinstan menjadi objek
4. EksepsiException adalah suatu peristiwa pengecualian yang terjadi sepanjang program dieksekusi. Peristiwa itu menggangu jalannya program secara normal.
Secara umum, kesalahan pada program dapat dibagi menjadi tiga kategori, yaitu:- Error kompilasi
Error ini terjadi saat anda melakukan kompilasi program untuk mendapatkan file bytecode (*.class). kesalahan yang terjadi pada tingkat ini adalah kesalahan penulisan perintah.
- Error runtimeProgram akan dapat dieksekusi setelah program tersebut bebas dari kesalahan sintaks yang ditandai dengan tidak adanya kesalahan pada saat kompilasi. Setelah program dijalankan oleh interpreter kadang dijumpai kesalahan yang ditampilkan pada konsol. Kesalahan ini disebut exception runtime.
- Error logikaError logika tidak mengganggu berjalannya program, akan tetapi mengganggu kebenaran sebuah data. Misalnya sebuah data real disimpan dalam sebuah variabel integer.
Kelas exceptionDalam penanganan error pada program Java terdapat 2 kelas untuk menangkap kesalahan yaitu kelas error dan kelas exception
- Kelas ErrorDigunakan untuk menangkap kesalahan internal yang terjadi pada sistem Java. Error yang ditangkap biasanya bersifat fatal dan jarang terjadi serta tidak dapat diperbaiki.Contoh kesalahan:
o virtual machine erroro LinkageErroro AWTError
- Kelas ExceptionNo. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 34 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
Kelas ini digunakan untuk menangkap kesalahan yang terjadi pada program pada saat dijalankan. Daftar kelasnya dapat dilihat pada lembar lampiran.
Mengantisipasi ExceptionUntuk menangani exception yang pertama adalah mendeklarasikan exception, melemparkan exception, menangkap exception dan menampilkan pesan exception tersebut.
a. Mendeklarasikan exceptionPendeklarasian exception dilakukan pada method, ini dikarenakan blok methodlah yang mengandung statement perintah yang mungkin terjadi kesalahanBentuk umum:
b. Melemparkan exceptionLangkah kedua adalah membuat objek exception dan melemparkan kondisi exception tersebut ke method yang didefinisikan untuk mendefinisikan kondisi yang terjadi bila menerima exception tersebut.
Bentuk:tipeException exception= new tipeException();
atauthrow exception tipeException();
c. Menangkap exceptionLangkah yang terakhir adalah menangkap exception dan memprosesnya. Untuk menangkap blok exception, anda membutuhkan blok try-catch-finally. Keyword finally digunakan untuk menangkap exception yang tidak didefinisikan pada blok catch, sehingga fungsinya sama dengan blok default pada switch-case.
Bentuk:try{
//statement yang berpotensi menjadi kesalahan}catch(Exception1){
//blok memproses ioEx1
}Catch(Exception2){
//blok memproses ioEx2}finally{
//blok default yang dieksekusi}
Untuk menampilkan pesan exception ditampilkan dengan menggunakan method-method dari kelas Throwable. Seperti getMessage(), toString(), getLocalizedMessage(), printStackTrace()
LATIHAN1. Kelas Innner
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 35 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
2. Kelas abstract dan Kelas Interface
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 36 dari 47
abstract class fakul{public String nama_fakul;public int jlh_prodi;public fakul(String nama_fakul, int jlh_prodi){
public class abstractInterface{public static void main(String[] args){
USU Medan=new USU("FASILKOMTI",3);Medan.tahun(2010);System.out.println("Fakultas "+Medan.nama_fakul);System.out.println("Berdiri tahun "+Medan.thn);Medan.jenisprodi();System.out.println("Keahlian dari mahasiswa fakultas "+Medan.nama_fakul);Medan.skill();
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
3. Exception
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 37 dari 47
abstract class fakul{public String nama_fakul;public int jlh_prodi;public fakul(String nama_fakul, int jlh_prodi){
public class abstractInterface{public static void main(String[] args){
USU Medan=new USU("FASILKOMTI",3);Medan.tahun(2010);System.out.println("Fakultas "+Medan.nama_fakul);System.out.println("Berdiri tahun "+Medan.thn);Medan.jenisprodi();System.out.println("Keahlian dari mahasiswa fakultas "+Medan.nama_fakul);Medan.skill();
public class Eksepsi {public static void main(String [] args){
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
BAB VIIITHREADS
TUJUAN PEMBELAJARAN:1. Mengetahui apa itu threads.2. Mengerti perbedaan state dalam threads.3. Bisa membuat sendiri Sebuah thread4. Mengetahui method di dalam class Thread
1. Definisi Thread
Sebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi di dalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat anda mengetik sebuah dokumen di komputer anda dengan menggunakan text editor, dalam waktu yang bersamaan anda juga dapat mendengarkan musik dan surfing lewat internet di Komputer anda.
2. State dari thread
Sebuah thread memungkinkan untuk memiliki beberapa state:a. Running
Sebuah thread yang pada saat ini sedang dieksekusi dan di dalam control dari CPU.b. Ready to run
Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk melakukannya.
c. ResumedSetelah sebelumnya di block atau diberhentikan sementara, state ini kemudian siap untuk dijalankan.
d. SuspendedSebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU untuk menjalankan thread lain bekerja.
e. BlockedSebuah thread yang di-block merupakan sebuah thread yang tidak mampu berjalan, karena ia akan menunggu sebuah resource tersedia atau sebuah event terjadi.
3. Class Thread
Thread memiliki beberapa constructora. Thread()
Membuat sebuah object Thread yang barub. Thread(String name)
Membuat sebuah object thread dengan memberikan penamaan yang spesifik.c. Thread(Runnable target)
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 38 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
Membuat sebuah object Thread yang baru berdasar pada object Runnable. Target menyatakan sebuah object dimana method Run dipanggil.
d. Thread(Runnable target, String name)Membuat sebuah object Thread yang baru dengan nama yang spesifik dan berdasarkan pada object Runnable.
Beberapa Method di dalam Thread:a. public static Thread currentThread()
nengembalikan sebuah reference kepada thread yang sedang berjalanb. public final String getName()
Mengembalikan nama dari threadc. public final void setName(String name)
mengulang pemberian nama threadd. public final int getPriority()
Mengembalikan nilai prioritas yang telah diberikan kepada Thread tersebut.e. public final Boolean isAlive()
menunjukkan bahwa thread tersebut sedang berjalan atau tidak.f. public final void join([long millis, [int nanos]])
sebuah overloading method. Sebuah thread yang sedang berjalan, harus menunggu sampai thread tersebut selesai atau waktu yang telah ditentukan telah habis.
g. public static void sleep(long millis)menunda thread dalam jangka waktu milis. Hal ini dapat menyebabkan interrupted Exception
h. public void run()eksekusi thread dimulai dari method ini.
i. public void start()menyebabkan eksekusi dari thread berlangsung dengan cara memanggil method run
Membuat ThreadsSebuah thread dapat diciptakan dengan:
a. Menurunkan (extend) class Thread atau b. Mengimplementasikan interface Runnable.
SinkronisasiDi dalam situasi-situasi tertentu, bagaimanapun sebuah thread yang berjalan bersama-sama kadang-kadang membutuhkan resource atau method dari luar. Oleh karena itu, mereka butuh untuk berkomunikasi satu dengan yang lain sehingga dapat mengetahui status dan aktifitas mereka. Contohnya adalah pada permasalahan produsen-konsumen. Kasus ini membutuhkan dua object utama yaitu produsen dan konsumen. Kewajiban yang dimiliki oleh produsen adalah untuk membangkitkan nilai atau stream data yang diinginkan oleh konsumen.
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 39 dari 47
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
LATIHAN1. Membuat Threads dengan menurunkan class Thread
2. Membuat threads dengan mengimplementasikan interface runnable
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 40 dari 47
class PrintNameThread extends Thread{PrintNameThread(String name){
super(name);start();
}public void run(){
String name= getName();for(int i=0;i<100;i++){
System.out.print(name);}
}}public class cobaThread {
public static void main(String [] args){PrintNameThread pnt1= new PrintNameThread("A");PrintNameThread pnt2= new PrintNameThread("B");PrintNameThread pnt3= new PrintNameThread("C");PrintNameThread pnt4= new PrintNameThread("D"); PrintNameThread pnt5= new PrintNameThread("E");
}}
class PrintNameThread2 implements Runnable {Thread thread;PrintNameThread2(String name) {
thread = new Thread(this, name);thread.start();
}
public void run() {String name = thread.getName();for (int i = 0; i < 100; i++) {
System.out.print(name);}
}}public class cobaThread2 {
public static void main(String args[]) {new PrintNameThread("A");new PrintNameThread("B");new PrintNameThread("C");new PrintNameThread("D");}
}
Modul Pemrograman Berorientasi ObjekLaboratorium Rekayasa Perangkat Lunak
3. Penggunaan Method Join
4. Menampilkan String tanpa sinkronisasi
No. Dokumen: IK-GKM-ILK-FMIPA-003-RPL Berlaku Efektif: 5 Maret 2012 Revisi: 01 Halaman 41 dari 47
class PrintNameThread implements Runnable {Thread thread;PrintNameThread(String name) {
thread = new Thread(this, name);thread.start();
}public void run() {
String name = thread.getName();for (int i = 0; i < 100; i++) {
System.out.print(name);}
}}
public class kll {public static void main(String args[]) {PrintNameThread pnt1 = new PrintNameThread("A");PrintNameThread pnt2 = new PrintNameThread("B");PrintNameThread pnt3 = new PrintNameThread("C");PrintNameThread pnt4 = new PrintNameThread("D");System.out.println("Running threads...");try {