lap 1.5 sd 1.9

62
PRAKTIKUM 1.5 JAVA Array 1. Tujuan a. Dapat mendeklarasikan dan membuat array b. Dapat mengakses elemen-elemen didalam array c. Dapat menentukan jumlah element didalam sebuah array d. Dapat mendeklarasikan dan membuat array multidimensi 2. Latar Belakang Pada bagian ini, kita akan mempraktekkan mengenai array dalam Java. Pertama, kita akan mendefinisikan apa yang dimaksud dengan array, kemudian kita juga akan mendefinisikan bagaimana mendeklarasikannya dan menggunakannya dalam Java. Dibagian sebelumnya, kita telah mempraktekkan bagaimana cara pendeklarasian berbagai macam variabel dengan menggunakan tipe data primitif. Dalam pendeklarasian variabel, kita sering menggunakan sebuah tipe data beserta nama variabel atau identifier yang unik, dimana untuk menggunakan variabel tersebut, kita akan memanggil dengan nama identifier-nya. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel. int number1; int number2; int number3; number1 = 1; number2 = 2; number3 = 3; Seperti yang dapat kita perhatikan pada contoh diatas, hanya untuk menginisialisasi dan menggunakan variabel terutama pada saat variabel-variabel tersebut memiliki tujuan yang sama, dirasa sangat membingungkan. Di Java maupun di bahasa pemrograman yang lain, mereka memiliki kemampuan untuk menggunakan satu variabel yang dapat menyimpan sebuah data list dan kemudian memanipulasinya

Upload: munzir

Post on 10-Apr-2015

122 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: lap 1.5 sd 1.9

PRAKTIKUM 1.5 JAVA Array

1. Tujuana. Dapat mendeklarasikan dan membuat array b. Dapat mengakses elemen-elemen didalam array c. Dapat menentukan jumlah element didalam sebuah array d. Dapat mendeklarasikan dan membuat array multidimensi

2. Latar BelakangPada bagian ini, kita akan mempraktekkan mengenai array dalam Java. Pertama, kita akan mendefinisikan apa yang dimaksud dengan array, kemudian kita juga akan mendefinisikan bagaimana mendeklarasikannya dan menggunakannya dalam Java. Dibagian sebelumnya, kita telah mempraktekkan bagaimana cara pendeklarasian berbagai macam variabel dengan menggunakan tipe data primitif. Dalam pendeklarasian variabel, kita sering menggunakan sebuah tipe data beserta nama variabel atau identifier yang unik, dimana untuk menggunakan variabel tersebut, kita akan memanggil dengan nama identifier-nya. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

int number1; int number2; int number3; number1 = 1; number2 = 2; number3 = 3;

Seperti yang dapat kita perhatikan pada contoh diatas, hanya untuk menginisialisasi dan menggunakan variabel terutama pada saat variabel-variabel tersebut memiliki tujuan yang sama, dirasa sangat membingungkan. Di Java maupun di bahasa pemrograman yang lain, mereka memiliki kemampuan untuk menggunakan satu variabel yang dapat menyimpan sebuah data list dan kemudian memanipulasinya dengan lebih efektif. Tipe variabel inilah yang disebut sebagai array.

Sebuah array akan menyimpan beberapa item data yang memiliki tipe data sama didalam sebuah blok memori yang berdekatan yang kemudian dibagai menjadi beberapa slot. Bayangkanlah array adalah sebuah variabel – sebuah lokasi memori tertentu yang memiliki satu nama sebagai identifier, akan tetapi ia dapat menyimpan lebih dari sebuah value.

Page 2: lap 1.5 sd 1.9

3. PraktikumPraktikum 1 Pengaksesan element array:

Hasil Praktikum:

Praktikum 2 Panjang Array:

public class ArraySample {public static void main( String[] args ){ int[] ages = new int[100]; for( int i=0; i<100; i++ ) { System.out.print( ages[i] ); } }}

Page 3: lap 1.5 sd 1.9

Hasil Percobaan

Praktikum 3 Array Multidimensi:

public class ArraySample2 {public static void main( String[] args ){ int[] ages = new int[100]; for( int i=0; i<ages.length; i++ ){ System.out.print( ages[i] ); } }}

public class ArraySample3 {public static void main( String[] args ){ // Elemen 512 x 128 dari integer array int[][] twoD = new int[512][128]; // karakter array 8 x 16 x 24 char[][][] threeD = new char[8][16][24]; // String array 4 baris x 2 kolom String[][] dogs = {{ "terry", "brown" }, { "Kristin", "white" }, { "toby", "gray"}, { "fido", "black"} }; System.out.print( dogs[0][0] ); }}

Page 4: lap 1.5 sd 1.9

Hasil Percobaan

Praktikum 4 Menggunakan Array args pada Method main:

public class ArgsTest {public static void main(String[] args) { System.out.println("args[0] =" + args[0]); System.out.println("args[1] =" + args[1]); }}

Page 5: lap 1.5 sd 1.9

Hasil Percobaan

PRAKTIKUM 1.6 ARGUMENT DARI COMMAND-LINE

1. Tujuan

Page 6: lap 1.5 sd 1.9

a. Mengetahui dan menjelaskan mengenai argumen command-line b. Mendapatkan input dari user dengan menggunakan argumen command-line c. Mempelajari bagaimana memberikan argumen kedalam program pada NetBeans

2. Latar BelakangPada bagian praktikum ini, kita akan mempelajari bagaimana untuk memproses sebuah input dari command-line dengan menggunakan argumen yang diberikan kepada program Java. Sebuah aplikasi Java dapat menerima berbagai argumen dari command-line. Argumen dari command line memberikan kesempatan bagi user untuk mempengaruhi operasi dari sebuah aplikasi dalam sekali invokasi. User memasukkan argumen command line pada saat meng-invoke aplikasi dan memberikan spesifikasi kepada aplikasi tersebut setelah nama kelas untuk dijalankan.

Page 7: lap 1.5 sd 1.9

3. PraktikumPraktikum 1 Program CommandLineExample pada Netbeans:

Hasil Praktikum:

public class CommandLineExample {public static void main( String[] args ){ System.out.println("Number of arguments=" + args.length); System.out.println("First Argument="+ args[0]); System.out.println("First Argument="+ args[1]);}}

Page 8: lap 1.5 sd 1.9

Praktikum 2 Program CommandLine:

Hasil Praktikum:

public class CommandLine {public static void main(String[] args) { System.out.println("args[0] = " + args[0]); System.out.println("args[1] = " + args[1]); }}

Page 9: lap 1.5 sd 1.9

Praktikum 3 Program CommandHelloExample:

Hasil Praktikum:

public class CommandHelloExample { public static void main( String[] args ){ System.out.println("Hello Java :" + args.length); System.out.println(""+ args[0]); System.out.println(""+ args[1]); System.out.println(""+ args[2]); System.out.println(""+ args[3]); System.out.println(""+ args[4]);}}

Page 10: lap 1.5 sd 1.9

PRAKTIKUM 1.7 Bekerja Dengan JAVA Class Library

1. Tujuana. Menjelaskan OOP dan beberapa konsepnya b. Perbedaan antara class dan object c. Pebedaan antara instance variables/method dan class (static) variable/method d. Menjelaskan method apa dan bagaimana memanggil method parameter e. Mengidentifikasi beberapa jangkauan dari sebuah variable f. Memilih tipe data primitive dan object g. Membandingkan objects dan menjabarkan class dari objects.

2. Latar BelakangPada sesi ini, kita akan mengantarkan beberapa konsep dasar dari Object-Oriented objcts, dan Programming (OOP). Selanjutnya kita akan membahas konsep dari classes dan bagaimana menggunakan class dan anggotanya. Perubahan dan pemilihan object juga akan dibahas. Sekarang, kita akan focus dalam menggunakan class yang telah dijabarkan dalam Java Class library, kita akan membahas nanti tentang bagaimana membikin class anda sendiri. OOP berputar pada konsep dari object sebagai dasar element dari program anda. Ketika kita membandingkan dengan dunia nyata, kita dapat menemukan beberapa objek disekitar kita, seperti mobil, singa, manusia dan seterusnya. Object ini dikarakterisasi oleh sifat / attributnya dan tingkah lakunya.

Page 11: lap 1.5 sd 1.9

3. PraktikumPraktikum 1 Pass By Value:

Hasil Praktikum:

public class TestPastByValue {public static void main(String[] args) { int i = 10; System.out.println(i); test(i); System.out.println(i); } public static void test(int j){ j = 33; }}

Page 12: lap 1.5 sd 1.9

Praktikum 2 Pass by reference: :

Hasil Praktikum:

public class TestPassByReference {public static void main(String[] args) { int []ages = {10,11,12}; for(int i=0;i<ages.length;i++){ System.out.println(ages[i]); } test(ages); for(int i=0;i<ages.length;i++) { System.out.println(ages[i]); } }

public static void test(int []arr){ for(int i=0;i<arr.length;i++){ arr[i]=i+50; } }}

Page 13: lap 1.5 sd 1.9

Praktikum 3 Perbandingan Object:

Hasil Praktikum:

public class EqualsTest {public static void main(String[] arguments) { String str1, str2; str1 = "Bebas Batas secara Berkala."; str2 = str1; System.out.println("String1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); str2 = new String(str1); System.out.println("String1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); System.out.println("Same value? " + str1.equals(str2)); }}

Page 14: lap 1.5 sd 1.9

Praktikum 4 Pemanggilan method menggunakan parameter:

public class Elevator {public boolean doorOpen=false; public int currentFloor = 1; public final int TOP_FLOOR = 5; public final int BOTTOM_FLOOR = 1; public void openDoor() { System.out.println("Opening door."); doorOpen = true; System.out.println("Door is open."); } public void closeDoor() { System.out.println("Closing door."); doorOpen = false; System.out.println("Door is closed.");} public void goUp() { System.out.println("Going up one floor."); currentFloor++; System.out.println("Floor: " + currentFloor); } public void goDown() { System.out.println("Going down one floor."); currentFloor--; System.out.println("Floor: " + currentFloor); } public void setFloor(int desiredFloor) { while (currentFloor != desiredFloor){ if(currentFloor < desiredFloor) { goUp(); } else { goDown(); } }} public int getFloor(){ return currentFloor;}public boolean checkDoorStatus(){ return doorOpen; }}

Page 15: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 5 Method dengan Return Value :

public class ElevatorTest {public static void main(String[] args) { Elevator myElevator = new Elevator(); myElevator.openDoor(); myElevator.closeDoor(); myElevator.goUp(); myElevator.goUp(); myElevator.goUp(); myElevator.openDoor(); myElevator.closeDoor(); myElevator.goDown(); myElevator.openDoor(); myElevator.closeDoor(); myElevator.goDown(); myElevator.setFloor(myElevator.TOP_FLOOR); myElevator.openDoor();}}

public class ElevatorTestTwo {public static void main(String[] args) { Elevator myElevator = new Elevator(); myElevator.openDoor(); myElevator.closeDoor(); myElevator.goUp(); myElevator.goUp(); myElevator.goUp(); myElevator.openDoor(); myElevator.closeDoor(); myElevator.goDown(); myElevator.openDoor(); myElevator.closeDoor(); myElevator.goDown(); int curFloor = myElevator.getFloor(); System.out.println("Current Floor: " + curFloor); myElevator.setFloor(curFloor+1); myElevator.openDoor(); }}

Page 16: lap 1.5 sd 1.9

Hasil Praktikum:

Page 17: lap 1.5 sd 1.9

PRAKTIKUM 1.8 Membuat Class Sendiri

Page 18: lap 1.5 sd 1.9

1. Tujuana. Membuat kelas mereka sendiri b. Mendeklarasikan atribut dan method pada class c. Menggunakan referensi this untuk mengakses instance data d. Membuat dan memanggil overloaded method e. Mengimport dan membuat package f. Menggunakan access modifiers untuk mengendalikan akses terhadap class

member

2. Latar BelakangSetelah kita mempelajari penggunaan class dari Java Class Library, kita akan mempelajari bagaimana menuliskan sebuah class sendiri. Pada bagian ini, untuk mempermudah pemahaman pembuatan class, kita akan membuat contoh class dimana akan ditambahkan beberapa data dan fungsi – fungsi lain. Kita akan membuat class yang mengandung informasi dari Siswa dan operasi – operasi yang dibutuhkan pada record siswa. Beberapa hal yang perlu diperhatikan pada syntax yang digunakan pada bab ini dan bagian lainnya :

* - Menandakan bahwa terjadi lebih dari satu kejadian dimana elemen tersebutdiimplementasikan

<description> - Menandakan bahwa Anda harus memberikan nilai pasti pada bagian ini

[] - Indikasi bagian optional

Page 19: lap 1.5 sd 1.9

3. PraktikumPraktikum 1 Membuat Class Student Record:

public class StudentRecord {private String name; private String address; private int age; private double mathGrade; private double englishGrade; private double scienceGrade; private double average; private static int studentCount;

StudentRecord() { throw new UnsupportedOperationException("Not yet implemented"); } StudentRecord(String string) { throw new UnsupportedOperationException("Not yet implemented"); }/** * Menghasilkan nama dari Siswa */ public String getName(){ return name; } /** * Mengubah nama siswa */ public void setName( String temp ){ name = temp; }// area penulisan kode lain /** * Menghitung rata – rata nilai Matematik, Bahasa Inggris, * * Ilmu Pasti */ public double getAverage(){ double result = 0; result = ( mathGrade+englishGrade+scienceGrade )/3; return result;} /** * Menghasilkan jumlah instance StudentRecord */ public static int getStudentCount(){ return studentCount; }}

Page 20: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 2 Membuat Class Student Record Example:

Page 21: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 3 Membuat Class Student Record yang telah dimodifikasi:

public class StudentRecordExample {public static void main( String[] args ){ //membuat 3 object StudentRecord StudentRecord annaRecord = new StudentRecord(); StudentRecord beahRecord = new StudentRecord(); StudentRecord crisRecord = new StudentRecord(); //Memberi nama siswa annaRecord.setName("Anna"); beahRecord.setName("Beah"); crisRecord.setName("Cris"); //Menampilkan nama siswa “Anna” System.out.println( annaRecord.getName() ); //Menampilkan jumlah siswa System.out.println("Count="+StudentRecord.getStudentCount() );}}

public class StudentRecord {private String name; private String address; private int age; private double mathGrade; private double englishGrade; private double scienceGrade; private double average; private static int studentCount;public StudentRecord(){ //constructor default studentCount++; } public StudentRecord(String temp){ this.name = temp; studentCount++; } public StudentRecord(String name, String Address){ this.name = name; this.address = Address; studentCount++; } public StudentRecord(double mGrade,double eGrade,double sGrade){ mathGrade = mGrade; englishGrade = eGrade; scienceGrade = sGrade; studentCount++; }/** * Menghasilkan nama dari siswa */public String getName(){ return name;}/** * mengubah nama siswa */ public void setName(String temp){ name = temp; } public String getAddress(){ return address; } public void setAddress(String temp){ address = temp;} public int getAge(){ return age;} public void setAge(int temp){ age = temp; } //area penulisan kode lain

Page 22: lap 1.5 sd 1.9

//area penulisan kode lain /** * Menghitung rata-rata nilai matematika, bahasa inggris, ilmu pengetahuan */public double getAverage(){ double result =0; result = (mathGrade+englishGrade+scienceGrade)/3; return result; } public static int getStudentRecord(){ return studentCount; } public void print(String temp){ System.out.println("Name : "+name ); System.out.println("Address : "+address); System.out.println("Age : "+age);}public void print(double eGrade, double mGrade, double sGrade){ System.out.println("Name : "+name); System.out.println("Math Grade : "+mGrade); System.out.println("English Grade : "+eGrade); System.out.println("Science Grade : "+sGrade); } public double getEnglishGrade() { return englishGrade; } public void setEnglishGrade(double englishGrade) { this.englishGrade = englishGrade; } public double getMathGrade() { return mathGrade; } public void setMathGrade(double mathGrade) { this.mathGrade = mathGrade; } public double getScienceGrade() { return scienceGrade; } public void setScienceGrade(double scienceGrade) { this.scienceGrade = scienceGrade; }}

Page 23: lap 1.5 sd 1.9

Hasil Praktikum:

Page 24: lap 1.5 sd 1.9

Praktikum 4 Membuat Class Student Record Example yang telah dimodifikasi :

public class StudentRecordExample {public static void main(String[] args) { //membuat 3 object StudentRecord StudentRecord annaRecord = new StudentRecord(); StudentRecord beahRecord = new StudentRecord(); StudentRecord crisRecord = new StudentRecord(); //versi baru StudentRecord recordAnna = new StudentRecord("Candra"); StudentRecord recordBeah = new StudentRecord("Bagus", "Malang"); StudentRecord recordCris = new StudentRecord(80,90,100); //memberi nama siswa annaRecord.setName("Anna"); beahRecord.setName("Beah"); crisRecord.setName("Cris"); //menampilkan nama siswa "Anna" System.out.println(annaRecord.getName()); //menampilkan jumlah siswa System.out.println("Count="+StudentRecord.getStudentRecord()); StudentRecord anna2Record = new StudentRecord(); anna2Record.setName("Anna"); anna2Record.setAddress("Philipina"); anna2Record.setAge(15); anna2Record.setMathGrade(80); anna2Record.setEnglishGrade(95.5); anna2Record.setScienceGrade(100); //overload method anna2Record.print(anna2Record.getName()); anna2Record.print(anna2Record.getEnglishGrade(), anna2Record.getMathGrade(), anna2Record.getScienceGrade()); recordAnna.print(recordAnna.getName());}}

Page 25: lap 1.5 sd 1.9

Hasil Praktikum:

Page 26: lap 1.5 sd 1.9

Praktikum 5 Package :

package schoolClasses;public class StudentRecord {private String name; private String address; private int age;}

Page 27: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 6 Modifier Public :

public class PublicElevator {public boolean bukaPintu = false; public int lantaiSkrg = 1; public int berat = 0; public final int KAPASITAS = 1000; public final int LANTAI_ATAS = 5; public final int LANTAI_BAWAH = 1;}

Page 28: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 7 Modifier Private :

public class PublicElevatorTest {public static void main(String args[]){ PublicElevator pubElevator = new PublicElevator(); pubElevator.bukaPintu = true; //penumpang masuk pubElevator.bukaPintu = false; //pintu ditutup //pergi ke lantai 0 dibawah gedung pubElevator.lantaiSkrg--; pubElevator.lantaiSkrg++; //lompat ke lantai 7 (hanya ada 5 lantai dalam gedung) pubElevator.lantaiSkrg = 7; pubElevator.bukaPintu = true; //penumpang masuk/keluar pubElevator.bukaPintu = false; pubElevator.lantaiSkrg = 1; //menuju lantai pertama pubElevator.bukaPintu = true; //penumpang masuk/keluar pubElevator.lantaiSkrg++; //elevator bergerak tanpa menutup pintu pubElevator.bukaPintu = false; pubElevator.lantaiSkrg--; pubElevator.lantaiSkrg--; }}

public class PrivateElevator1 {boolean bukaPintu = false; int lantaiSkrg = 1; int berat = 0; final int KAPASITAS = 1000; final int LANTAI_ATAS = 5; final int LANTAI_BAWAH = 1;}

Page 29: lap 1.5 sd 1.9

Hasil Praktikum:Praktikum ini tidak bisa di compile

Praktikum 8 Method Accessor dan Method Mutator:

public class PrivateElevator1Test {public static void main(String args[]){ PrivateElevator1 privElevator = new PrivateElevator1(); /************************************************* * Baris kode dibawah ini tidak akan di-compile * * karena berusaha untuk mengakses variabel * * private * * ***************************************/ privElevator.bukaPintu = true; privElevator.bukaPintu = false; privElevator.lantaiSkrg --; privElevator.lantaiSkrg ++; //lompat ke lantai 7 (hanya ada 5 lantai dalam gedung) privElevator.lantaiSkrg = 7; privElevator.bukaPintu = true; //penumpang masuk/keluar privElevator.bukaPintu = false; privElevator.lantaiSkrg = 1; //menuju lantai pertama privElevator.bukaPintu = true; //penumpang masuk/keluar privElevator.lantaiSkrg++; //elevator bergerak tanpa menutup pintu privElevator.bukaPintu = false; privElevator.lantaiSkrg--; privElevator.lantaiSkrg--; }}

public class PrivateShirt1 {private int idBaju = 0; //ID default untuk baju private String keterangan = "-Keterangan Diperlukan-"; //default //Kode warna R=Merah, G=Hijau, B=Biru, U=Tidak Ditentukan private char kodeWarna = 'U';private double harga = 0.0; //Harga default untuk semua barang private int jmlStok = 0; //Default untuk jumlah barang public char getKodeWarna() { return kodeWarna; } public void setKodeWarna(char kode) { kodeWarna = kode; } // Method get dan set untuk idBaju, keterangan // harga, dan jmlStok akan mengikuti } //akhir kelas

Page 30: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 9 Method Accessor dan Method Mutator:

public class PrivateShirt1Test {public static void main(String[] args) { PrivateShirt1 privShirt = new PrivateShirt1(); char kodeWarna; // Mengisi kode warna yang valid privShirt.setKodeWarna('R'); kodeWarna = privShirt.getKodeWarna(); // Kelas PrivateShirt1Test bisa mengisi sebuah kodeWarna yang valid System.out.println("Kode Warna: " + kodeWarna); // Mengisi kode warna yang salah privShirt.setKodeWarna('Z'); kodeWarna = privShirt.getKodeWarna(); // Kelas PrivateShirt1Test bisa mengisi sebuah kodeWarna yang salah System.out.println("Kode Warna: " + kodeWarna); }}

public class PrivateShirt2 { private int idBaju = 0; //ID default untuk baju private String keterangan = "-Keterangan Diperlukan-"; //default //Kode warna R=Merah, G=Hijau, B=Biru, U=Tidak Ditentukan private char kodeWarna = 'U'; private double harga = 0.0; //Harga default untuk semua barang private int jmlStok = 0; //Default untuk jumlah barang public char getKodeWarna() { return kodeWarna; } public void setKodeWarna(char kode) { switch (kode) { case 'R': case 'G': case 'B': kodeWarna = kode; break; default: System.out.println("kodeWarna salah, gunakan R, G, atau B"); } } // Method get dan set untuk idBaju, keterangan // harga, dan jmlStok akan mengikuti } //akhir kelas

Page 31: lap 1.5 sd 1.9

Hasil Praktikum:

public class PrivateShirt2Test {public static void main(String[] args) { PrivateShirt2 privShirt = new PrivateShirt2(); char kodeWarna; // Mengisi kode warna yang valid privShirt.setKodeWarna('R'); kodeWarna = privShirt.getKodeWarna(); // Kelas PrivateShirt2Test bisa mengisi sebuah kodeWarna yang valid System.out.println("Kode Warna: " + kodeWarna); // Mengisi kode warna yang salah privShirt.setKodeWarna('Z'); kodeWarna = privShirt.getKodeWarna(); // Kelas PrivateShirt2Test bisa mengisi sebuah kodeWarna yang salah // Kode warna masih R System.out.println("Kode Warna: " + kodeWarna); }}

Page 32: lap 1.5 sd 1.9

Praktikum 10 Constructor:

public class ConstructorShirt1 {private int idBaju = 0; //ID default untuk baju private String keterangan = "-Keterangan Diperlukan-"; //default //Kode warna R=Merah, G=Hijau, B=Biru, U=Tidak Ditentukan private char kodeWarna = 'U'; private double harga = 0.0; //Harga default untuk semua barang private int jmlStok = 0; //Default untuk jumlah barang public ConstructorShirt1(char kodeAwal){ switch (kodeAwal) { case 'R': case 'G': case 'B': kodeWarna = kodeAwal; break; default: System.out.println("kodeWarna salah, gunakan R, G, atau B"); } } public char getKodeWarna() { return kodeWarna;}}

Page 33: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 11 Constructor Default:

public class ConstructorShirt1Test {public static void main(String[] args) { ConstructorShirt1 constShirt = new ConstructorShirt1('R'); char kodeWarna; kodeWarna = constShirt.getKodeWarna(); System.out.println("Kode Warna: " + kodeWarna); }}

public class DefaultShirt {private int idBaju = 0; //ID default untuk baju private String keterangan = "-Keterangan Diperlukan-"; //default //Kode warna R=Merah, G=Hijau, B=Biru, U=Tidak Ditentukan private char kodeWarna = 'U'; private double harga = 0.0; //Harga default untuk semua barang private int jmlStok = 0; //Default untuk jumlah barang

public DefaultShirt(){ kodeWarna = 'R'; }public char getKodeWarna() {return kodeWarna;}}

Page 34: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 12 Constructor Overloading:

public class DefaultShirtTest {public static void main(String[] args) { DefaultShirt defShirt = new DefaultShirt(); char kodeWarna; kodeWarna = defShirt.getKodeWarna(); System.out.println("Kode Warna: " + kodeWarna); }}

public class ConstructorShirt2 {private int idBaju = 0; //ID default untuk baju private String keterangan = "-Keterangan Diperlukan-"; //default //Kode warna R=Merah, G=Hijau, B=Biru, U=Tidak Ditentukan private char kodeWarna = 'U'; private double harga = 0.0; //Harga default untuk semua barang private int jmlStok = 0; //Default untuk jumlah barang

public ConstructorShirt2(){ kodeWarna = 'R'; }public ConstructorShirt2(char kodeAwal){ switch (kodeAwal) { case 'R': case 'G': case 'B': kodeWarna = kodeAwal; break; default: System.out.println("kodeWarna salah, gunakan R, G, atau B"); } }public ConstructorShirt2(char kodeAwal, int jmlAwal){ switch (kodeAwal) { case 'R': case 'G': case 'B': kodeWarna = kodeAwal; break; default: System.out.println("kodeWarna salah, gunakan R, G, atau B"); } if (jmlAwal > 0 && jmlAwal < 2000) { jmlStok = jmlAwal; } else { System.out.println("Jumlah salah. harus diantara 0 - 2000"); } } public char getKodeWarna() { return kodeWarna; } public int getJmlStok() { return jmlStok; } //akhir kelas}

Page 35: lap 1.5 sd 1.9

public class ConstructorShirt2Test {public static void main(String[] args) { ConstructorShirt2 constShirtSatu = new ConstructorShirt2('R'); ConstructorShirt2 constShirtDua = new ConstructorShirt2('G'); ConstructorShirt2 constShirtTiga = new ConstructorShirt2('B', 1000); char kodeWarna; int jumlah; kodeWarna = constShirtSatu.getKodeWarna(); System.out.println("Kode Warna Object 1: " + kodeWarna); kodeWarna = constShirtDua.getKodeWarna(); System.out.println("Kode Warna Object 2: " + kodeWarna); kodeWarna = constShirtTiga.getKodeWarna(); jumlah = constShirtTiga.getJmlStok(); System.out.println("Kode Warna Object 3: " + kodeWarna); System.out.println("Jumlah Stok Object 3: " + jumlah); }}

Page 36: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 13 Method Overloading:

public class Calculator {public int sum(int numberOne, int numberTwo){ System.out.println("Method One"); return numberOne + numberTwo;} public float sum(float numberOne, float numberTwo) { System.out.println("Method Two"); return numberOne + numberTwo; }public float sum(int numberOne, float numberTwo) { System.out.println("Method Three"); return numberOne + numberTwo; }}

Page 37: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 14 Method Overloading:

public class CalculatorTest {public static void main(String[] args) { Calculator myCalculator = new Calculator(); int totalOne = myCalculator.sum(2,3); System.out.println(totalOne); float totalTwo = myCalculator.sum(15.99F, 12.85F); System.out.println(totalTwo); float totalThree = myCalculator.sum(2, 12.85F); System.out.println(totalThree);}}

public class ShirtTwo {public int shirtID = 0; //Default ID for the shirt public String description = "-description required-"; //default //The color codes are R=Red, B=Blue, U=Unset public char colorCode = 'U'; public double price = 0.0; //Default price for all shirts public int quantityInStock = 0; //Default quantity for all shirts

public void setShirtInfo(int ID, String desc, double cost) { shirtID = ID; description = desc; price = cost; }public void setShirtInfo(int ID, String desc, double cost, char color) { shirtID = ID; description = desc; price = cost; colorCode = color; }public void setShirtInfo(int ID, String desc, double cost, char color, int quantity) { shirtID = ID; description = desc; price = cost; colorCode = color; quantityInStock = quantity;} //This method displays the values for an itempublic void display() { System.out.println("Item ID: " + shirtID); System.out.println("Item description: " + description); System.out.println("Color Code: " + colorCode); System.out.println("Item price: " + price); System.out.println("Quantity in stock: " + quantityInStock); } //end of display method } //end of class

Page 38: lap 1.5 sd 1.9

Hasil Praktikum:

public class ShirtTwoTest {public static void main(String args[]) { ShirtTwo shirtOne = new ShirtTwo(); ShirtTwo shirtTwo = new ShirtTwo(); ShirtTwo shirtThree = new ShirtTwo(); shirtOne.setShirtInfo(100, "Button Down", 12.99); shirtTwo.setShirtInfo(101, "Long Sleeve Oxford", 27.99, 'G'); shirtThree.setShirtInfo(102, "Shirt Sleeve T-Shirt", 9.99, 'B', 50); shirtOne.display(); shirtTwo.display(); shirtThree.display();}}

Page 39: lap 1.5 sd 1.9

PRAKTIKUM 1.9 Pewarisan, Polymorphism Dan Interface

1. Tujuana. Mendefinisikan superclasses dan subclasses b. Override method dari superclasses c. Membuat method final dan class final

2. Latar BelakangDalam bagian ini, kita akan membicarakan bagaimana suatu class dapat mewariskan sifat dari class yang sudah ada. Class ini dinamakan subclass dan induk class dinamakan superclass. Kita juga akan membicarakan sifat khusus dari Java dimana kita dapat secara otomatis memakai method yand tepat untuk setiap object tanpa memperhatikan asal dari subclass

Page 40: lap 1.5 sd 1.9

object. Sifat ini dinamakan polimorfisme. Pada akhirnya, kita akan mendiskusikan tentang interface yang membantu mengurangi penulisan program. Dalam Java, semua class, termasuk class yang membangun Java API, adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini. Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut.

Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass. Subclass hanya butuh mengimplementasikan perbedaannya sendiri dan induknya. Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant ). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface. Sekarang, class induk Person dan subclass Student dari contoh sebelumnya, kita tambahkan subclass lain dari Person yaitu Employee. Di bawah ini adalah hierarkinya,

Dalam Java, kita dapat membuat referensi yang merupakan tipe dari superclass ke sebuah object dari subclass tersebut. Kemampuan dari referensi untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya.Contoh lain yang menunjukkan properti polimorfisme adalah ketika kita mencoba melalui referensi ke method. Misalkan kita punya method statis printInformation yang mengakibatkan object Person sebagai referensi, kita dapat me-referensi dari tipe Employee dan tipe Student ke method ini selama itu masih subclass dari class Person.

Page 41: lap 1.5 sd 1.9

3. PraktikumPraktikum 1 Mendefinisikan Subclass dan Superclass :

Hasil Praktikum:

public class Person {protected String name; protected String address;

public Person(){ System.out.println("Inside Person:Constructor"); name = ""; address = ""; } public Person( String name, String address) { this.name = name; this.address = address;}public String getName() { return name; } public String getAddress() { return address; } public void setName(String name) { this.name = name; } public void setAddress(String add) { this.address = add; }}

public class student extends Person {public student() { //super( "SomeName", "SomeAddress"); //super(); //super.name = "name"; System.out.println("Inside Student:Constructor"); } public static void main( String[] args) { student anna = new student(); }}

Page 42: lap 1.5 sd 1.9

Praktikum 2 Superclass dan Subclass : public class Pakaian {private int ID = 0; // Default ID untuk semua Pakaian private String keterangan = "-keterangan diperlukan-"; // default private double harga = 0.0; // Harga default untuk semua Pakaian private int jmlStok = 0; // jumlah default untuk semua private static int UNIQUE_ID=0; //Static member ditambahkan dalam //constructor //untuk menghasilkan ID yang unik

public Pakaian() { ID=UNIQUE_ID++; }public int getID() { return ID; }public void setKeterangan (String d){ keterangan=d; }public String getKeterangan(){ return keterangan;}public void setHarga(double p) { harga = p; } public double getHarga() { return harga; } public void setJmlStok (int q){ jmlStok=q; } public int getJmlStok(){ return jmlStok; }}

Page 43: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 3 Polimorphisme :

public class Baju extends Pakaian {//Kode Warna R=Merah, B=Biru, G=Hijau, U=Belum Ditentukan public char kodeWarna = 'U'; public Baju(){ super.setHarga(1500.0); super.setJmlStok(5); super.setKeterangan("biru"); } //Method ini menampilkan nilai untuk suatu item public void tampilInformasiBaju(){ System.out.println("ID Baju: " + getID()); System.out.println("Keterangan: " + getKeterangan()); System.out.println("Kode Warna: " + kodeWarna); System.out.println("Harga baju: " + getHarga()); System.out.println("Jumlah stok: " + getJmlStok()); }//akhir method display public static void main(String args[]){ Baju b=new Baju(); b.tampilInformasiBaju(); }}//akhir kelas

Page 44: lap 1.5 sd 1.9

public class Person {protected String name; protected String address; /** * Default constructor */public Person(){ System.out.println("Inside Person:Constructor"); name = ""; address = ""; } /** * Constructor dengan dua parameter */ public Person( String name, String address) { this.name = name; this.address = address; } /** * Method accessor */ public String getName() { System.out.println("Person Name : " +name); return name; } public String getAddress() { return address; } public void setName(String name) { this.name = name; } public void setAddress(String add) { this.address = add; }}

public class Student extends Person{ public Student() { //super( "SomeName", "SomeAddress"); //super(); //super.name = "name"; System.out.println("Inside Student:Constructor"); } @Override public String getName() { System.out.println("Student Name : " +name); return name; } public static void main( String[] args) { Student anna = new Student(); } }

public class Employee extends Person{ @Override public String getName() { System.out.println("Employee Name:" +name); return name; } public static void main(String[] args) { Person ref; Student studentObject = new Student(); Employee employeeObject = new Employee(); ref = studentObject; //Person menunjuk kepada object Student String temp = ref.getName(); //getName dari Student class dipanggil System.out.println(temp); ref = employeeObject; //Person menunjuk kepada object Employee temp = ref.getName(); //getName dari Employee class dipanggil System.out.println(temp); } }

Page 45: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 4 Enkapsulasi:

public class PrivateElevator2 {private boolean bukaPintu = false; private int lantaiSkrg = 1; private int berat = 0; private final int KAPASITAS = 1000; private final int LANTAI_ATAS = 5; private final int LANTAI_BAWAH = 1;

public void buka() { bukaPintu = true; } public void tutup() { hitungKapasitas(); if (berat <= KAPASITAS) { bukaPintu = false; } else { System.out.println("Elevator kelebihan beban"); System.out.println("Pintu akan tetap terbuka sampai seseorang keluar"); } } //pada dunia nyata, elevator menggunakan sensor berat untuk memeriksa //beban, tetapi agar lebih sederhana, kami menggunakan bilangan acak untuk berat

private void hitungKapasitas() { berat = (int)(Math.random()*1500); System.out.println("Berat: " + berat);} public void naik() { if (!bukaPintu) { if (lantaiSkrg < LANTAI_ATAS) { lantaiSkrg++; System.out.println(lantaiSkrg); } else { System.out.println("Sudah mencapai lantai atas"); } } else { System.out.println("Pintu masih terbuka"); } } public void turun() { if (!bukaPintu) { if (lantaiSkrg > LANTAI_BAWAH) { lantaiSkrg--; System.out.println(lantaiSkrg); } else { System.out.println("Sudah mencapai lantai bawah"); } } else { System.out.println("Pintu masih terbuka"); }}

Page 46: lap 1.5 sd 1.9

public void turun() { if (!bukaPintu) { if (lantaiSkrg > LANTAI_BAWAH) { lantaiSkrg--; System.out.println(lantaiSkrg); } else { System.out.println("Sudah mencapai lantai bawah"); } } else { System.out.println("Pintu masih terbuka"); }}public void setLantai(int tujuan) { if ((tujuan >= LANTAI_BAWAH)&&(tujuan <= LANTAI_ATAS)) { while (lantaiSkrg != tujuan){ if (lantaiSkrg < tujuan) { naik(); } else { turun(); } } } else { System.out.println("Lantai Salah"); } } public int getLantai() { return lantaiSkrg; } public boolean getStatusPintu() { return bukaPintu;}}

Page 47: lap 1.5 sd 1.9

Hasil Praktikum:

public class PrivateElevator2Test {public static void main(String args[]){ PrivateElevator2 privElevator = new PrivateElevator2(); privElevator.buka(); privElevator.tutup(); privElevator.turun(); privElevator.naik(); privElevator.naik(); privElevator.buka(); privElevator.tutup(); privElevator.turun(); privElevator.buka(); privElevator.turun(); privElevator.tutup(); privElevator.turun(); privElevator.turun(); int lantai = privElevator.getLantai(); if (lantai != 5 && !privElevator.getStatusPintu()) { privElevator.setLantai(5); } privElevator.setLantai(10); privElevator.buka();}}

Page 48: lap 1.5 sd 1.9

Praktikum 5 Menampilkan Abstract Class:

public abstract class LivingThing {public void breath(){ System.out.println("Living Thing breathing..."); } public void eat(){ System.out.println("Living Thing eating..."); } /** * abstract method walk * Kita ingin method ini di-overridden oleh subclasses */ public abstract void walk(); }

Page 49: lap 1.5 sd 1.9

Hasil Praktikum:

Praktikum 6 Interface:

public class Human extends LivingThing{ public void walk(){ System.out.println("Human walks..."); }}

public class Line {private double x1;private double x2;private double y1;private double y2;public Line(double x1, double x2, double y1, double y2){this.x1 = x1;this.x2 = x2;this.y1 = y1;this.y2 = y2;}public double getLength(){double length = Math.sqrt((x2-x1)*(x2-x1) +(y2-y1)* (y2-y1));return length;}public boolean isGreater( Object a, Object b){double aLen = ((Line)a).getLength();double bLen = ((Line)b).getLength();return (aLen > bLen);}public boolean isLess( Object a, Object b){double aLen = ((Line)a).getLength();double bLen = ((Line)b).getLength();return (aLen < bLen);}public boolean isEqual( Object a, Object b){double aLen = ((Line)a).getLength();double bLen = ((Line)b).getLength();return (aLen == bLen);}}

Page 50: lap 1.5 sd 1.9

Hasil Praktikum:

public interface Relation {public boolean isGreater( Object a, Object b);public boolean isLess( Object a, Object b);public boolean isEqual( Object a, Object b);}