Praktikum KPLBO Kelas dan Objek II
Oleh : Ade Sukendar [
[email protected]]
Laboratorium Jurusan Teknik Informatika Universitas Pasundan 2014
Latihan 1 :
Latihan pertama ini akan melanjutkan dari latihan 5 di modul Kelas dan Objek I. Latihan ini akan memperlihatkan contoh copy reference yang akan dipegang oleh suatu variabel. Buatlah kelas Matakuliah seperti dibawah ini : Matakuliah.java package p4.a; /** * @author Ade Sukendar * @version 1.1 * @since 22/2/2014 * */ public class Matakuliah { private String kode; private String nama; private int sks; /* * Konstruktor */ public Matakuliah() {} public Matakuliah(String kode, String nama, int sks) { setKode(kode); setNama(nama); setSks(sks); } /* * Method Setter & Getter */ public String getKode() { return kode; } public void setKode(String kode) { this.kode = kode; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public int getSks() { return sks; } public void setSks(int sks) { this.sks = sks; } /* * Method I/O */ @Override public String toString() { return kode+ ", "+ nama+ ", "+ sks; } }
Hal 2
Buatlah kelas MatakuliahMain seperti dibawah ini : MatakuliahMain.java package p4.a; /** * @author Ade Sukendar * @version 2.1 * @since 22/2/2014 */ public class MatakuliahMain { public static void main(String[] args) { // Instansiasi objek matkul1 Matakuliah matkul1 = new Matakuliah(); // Isi atribut objek matkul1 matkul1.setKode("IT405"); matkul1.setNama("KPLBO"); matkul1.setSks(3); // Instansiasi objek matkul2 Matakuliah matkul2 = new Matakuliah("IT502", "Vispro", 3); // Tampilkan nilai atribut varabel matkul System.out.println("@Sebelum di copy reference"); viewAttribute(matkul1, matkul2); // Copy reference matkul1 objek Matakuliah ke variabel matkul2 matkul2 = matkul1; // Tampilkan nilai atribut varabel matkul System.out.println("@Setelah di copy reference"); viewAttribute(matkul1, matkul2); } private static void viewAttribute(Matakuliah matkul1, Matakuliah matkul2) { // Tampilkan nilai atribut varabel matkul1 System.out.println("@matkul1"); System.out.println(matkul1); // Tampilkan nilai atribut varabel matkul2 System.out.println("@matkul2"); System.out.println(matkul2); } }
Running, kemudian amati yang terjadi !!!
Latihan 2 :
Latihan kedua diminta untuk mengubah kode program diatas sesuai dengan hasil eksekusi dibawah ini. Kode program harus menggunakan copy reference. @matkul1 IT405, KPLBO, 3 @matkul2 IT102, Alpro1, 4 @matkul3 IT405, KPLBO, 3
Running, kemudian amati yang terjadi !!!
Hal 3
Latihan 3 :
Latihan ketiga sama seperti latihan pertama. Kelas yang akan dibuat diberi nama kelas Mahasiswa dan kelas utama di beri nama MahasiswaMain. Perhatikan diagram kelas dibawah ini :
Kelas Matakuliah menggunakan kelas yang telah dibuat di pertemuan sebelumnya. Berdasarkan diagram kelas diatas buatlah kelas Mahasiswa seperti dibawah ini : Mahasiswa.java package p4.b; /** * @author Ade Sukendar * @version 1.1 * @since 22/2/2014 * */ public class Mahasiswa { private String nomorMahasiswa; private String nama; private String jurusan; /* * Konstruktor */ public Mahasiswa() {} public Mahasiswa(String nomorMahasiswa, String nama, String jurusan) { setNomorMahasiswa(nomorMahasiswa); setNama(nama); setJurusan(jurusan);
Hal 4
} /* * Method Setter & Getter */ public String getNomorMahasiswa() { return nomorMahasiswa; } public void setNomorMahasiswa(String nomorMahasiswa) { this.nomorMahasiswa = nomorMahasiswa; } public String getJurusan() { return jurusan; } public void setJurusan(String jurusan) { this.jurusan = jurusan; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } /* * Method I/O */ @Override public String toString() { return nomorMahasiswa+ ", "+ nama+ ", "+ jurusan; } }
Berdasarkan diagram kelas diatas buatlah kelas Nilai seperti dibawah ini : Nilai.java package p4.b; import p4.a.Matakuliah; /** * @author Ade Sukendar * @version 1 * @since 22/2/2014 */ public class Nilai { private Mahasiswa mahasiswa; private Matakuliah matakuliah; private double nilaiUTS; private double nilaiUAS; /* * Konstruktor */ public Nilai() {} public Nilai(Mahasiswa mahasiswa, Matakuliah matakuliah) { setMahasiswa(mahasiswa); setMatakuliah(matakuliah); } public Nilai(Mahasiswa mahasiswa, Matakuliah matakuliah, double nilaiUTS, double nilaiUAS) { // Memanggil konstruktor Nilai yang berparameter dua
Hal 5
this(mahasiswa, matakuliah); setNilaiUTS(nilaiUTS); setNilaiUAS(nilaiUAS); } /* * Method Setter & Getter */ public Mahasiswa getMahasiswa() { return mahasiswa; } public void setMahasiswa(Mahasiswa mahasiswa) { this.mahasiswa = mahasiswa; } public Matakuliah getMatakuliah() { return matakuliah; } public void setMatakuliah(Matakuliah matakuliah) { this.matakuliah = matakuliah; } public double getNilaiUTS() { return nilaiUTS; } public void setNilaiUTS(double nilaiUTS) { this.nilaiUTS = nilaiUTS; } public double getNilaiUAS() { return nilaiUAS; } public void setNilaiUAS(double nilaiUAS) { this.nilaiUAS = nilaiUAS; } /* * Method I/O */ @Override public String toString() { return mahasiswa.getNomorMahasiswa()+ ", "+ matakuliah.getNama()+ ", "+ nilaiUTS+ ", "+ nilaiUAS; } }
Berdasarkan diagram kelas diatas buatlah kelas NilaiMain seperti dibawah ini : NilaiMain.java package p4.b; import p4.a.Matakuliah; /** * @author Ade Sukendar * @version 1 * @since 22/2/2014 */ public class NilaiMain { public static void main(String[] args) { // Instansiasi objek mahasiswa di mhs dan matakuliah di matkul Mahasiswa mhs = new Mahasiswa("123040100", "Jayakarta", "Teknik Informatika");
Hal 6
Matakuliah matkul = new Matakuliah("IT502", "Vispro", 3); // Instansiasi objek nilai Nilai nilai = new Nilai(mhs, matkul); // Tampilkan nilai atribut variabel nilai System.out.println(nilai); } }
Running, kemudian amati yang terjadi !!!
Latihan 4 :
Latihan ke empat melengkapi kode program di kelas NilaiMain. Isilah nilai atribut UTS dengan nilai 75.5 dan UAS dengan nilai 90. Kemudian running lagi dan amati lagi yang terjadi !
Latihan 5 : Latihan ke enam ini akan diperlihatkan lebih detil mengenai copy reference dari sebuah objek. Variabel referensi akan coba mengubah nilai objek dan kemudian akan diakses oleh variabel referensi yang lain. Ketikkan kode program dibawah ini ! XY.java package p4.e; public class XY { private int x; private double y; public XY(int x, double y) { this.x = x; this.y = y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } @Override public String toString() { return "x: "+ x+ ", y: "+ y; } }
Hal 7
Buatlak kelas XYMain.java package p4.e; public class XYMain { /** * @param args */ public static void main(String[] args) { XY xy1 = new XY(2, 3); XY xy2 = xy1; //copy reference System.out.println("@CopyReference"); System.out.println(xy1); System.out.println(xy2); // xy2 mengubah nilai x dengan 5 xy2.setX(5); System.out.println("@Pengubahan 1"); System.out.println(xy1); System.out.println(xy2); // ** Kenapa nilai atribut x untuk xy1 ikut berubah ? // xy1 mengubah nilai x dengan 7, dan y = 6 xy1.setX(7); xy1.setY(6); System.out.println("@Pengubahan 2"); System.out.println(xy1); System.out.println(xy2); // ** Kenapa nilai atribut x dan y untuk xy2 ikut berubah ? } }
Running kode program dan amati yang terjadi !
Hal 8