• Tidak ada hasil yang ditemukan

Praktikum KPLBO Relasi Objek I

N/A
N/A
Protected

Academic year: 2021

Membagikan "Praktikum KPLBO Relasi Objek I"

Copied!
9
0
0

Teks penuh

(1)

Praktikum KPLBO

Relasi Objek I

Oleh :

Ade Sukendar [ade.sukendar@unpas.ac.id]

Laboratorium Jurusan Teknik Informatika

Universitas Pasundan

(2)

2

Latihan 1 :

Latihan praktikum ini bertujuan untuk memberikan contoh penggunaan relasi objek satu ke

satu dengan objek yang lain (

One to One

). Latihan ini melibatkan kelas Mahasiswa dan

Transkrip. Kedua kelas tersebut akan dipanggil di kelas OneToOneFromMahasiswa dan

OneToOneFromTranskrip.

Berikut kelas diagram dari penjelasan diatas seperti di bawah ini :

Buatlah kelas Transkrip seperti di bawah ini :

Mahasiswa.java

package p7.a; /**

*

* @author Ade Sukendar * @version 1.3

* @since 22/2/2014 *

*/

public class Mahasiswa {

private String nrp;

private String nama;

private Transkrip transkrip; /*

* Konstruktor */

public Mahasiswa() {}

public Mahasiswa(String nrp, String nama) {

this.nrp = nrp;

this.nama = nama; }

public Mahasiswa(String nrp, String nama, Transkrip transkrip) {

this(nrp, nama);

this.setTranskrip(transkrip); }

(3)

3

/*

* Method Setter & Getter disembunyikan * Implementasi method ini harus tetap dibuat *

*/ /**

* Method untuk menampilkan atribut Mahasiswa dan Transkrip * dalam perspektif kelas Mahasiswa

*

* @return String */

public String display() {

StringBuffer sb = new StringBuffer();

sb.append("== Perspektif Kelas Mahasiswa ==\n"); sb.append("NRP : "+ this.getNrp()+ "\n");

sb.append("Nama : "+ this.getNama()+ "\n");

sb.append("IPK : "+ getTranskrip().getIpk()+ "\n");

sb.append("Keterangan : "+ getTranskrip().getKeterangan()+ "\n");

return sb.toString(); }

}

Buatlah kelas MataKuliah seperti di bawah ini :

Transkrip.java

package p7.a; /**

*

* @author Ade Sukendar * @version 1.2

* @since 1/3/2014 *

*/

public class Transkrip {

private Float ipk;

private Mahasiswa mahasiswa; /* * Konstruktor */ public Transkrip() { this(0.0f, null); }

public Transkrip(Float ipk) {

this.ipk = ipk; }

public Transkrip(Float ipk, Mahasiswa mahasiswa) {

this(ipk);

this.mahasiswa = mahasiswa; }

/**

* Prekondisi : range ipk antara 0-4 * Postkondisi : keterangan dari nilai ipk *

* @return */

public String getKeterangan() {

if (ipk <= 4 && ipk > 3.5)

return "Cumlaude"; else if (ipk > 3.0) return "Excellent"; else if (ipk > 2.5) return "Good"; else if (ipk > 0)

(4)

4

return "Not Good";

return ""; }

/*

* Method Setter & Getter disembunyikan * Implementasi method ini harus tetap dibuat *

*/ /**

* Method untuk menampilkan atribut Mahasiswa dan Transkrip * dalam perspektif kelas Transkrip

*

* @return String */

public String display() {

StringBuffer sb = new StringBuffer();

sb.append("== Perspektif Kelas Transkrip ==\n"); sb.append("NRP : "+ mahasiswa.getNrp()+ "\n"); sb.append("Nama : "+ mahasiswa.getNama()+ "\n"); sb.append("IPK : "+ this.getIpk()+ "\n");

sb.append("Keterangan : "+ this.getKeterangan()+ "\n");

return sb.toString(); }

}

Buatlah kelas OneToOneFromMahasiswa seperti di bawah ini :

OneToOneFromMahasiswa.java

package p7.a;

public class OneToOneFromMahasiswa {

public static void main(String[] args) { Transkrip transkrip = new Transkrip(); transkrip.setIpk(3.4f);

// @ konstruktor 1

Mahasiswa mhs = new Mahasiswa(); mhs.setNrp("113040100");

mhs.setNama("Iwan");

mhs.setTranskrip(transkrip); System.out.println(mhs.display()); // @ konstruktor 2

// Mahasiswa mhs = new Mahasiswa("113040100", "Iwan"); // mhs.setTranskrip(transkrip);

//

// System.out.println(mhs.display()); // @ konstruktor 3

// Mahasiswa mhs = new Mahasiswa("113040100", "Iwan", transkrip); //

// System.out.println(mhs.display()); }

}

(5)

5

Latihan 2 :

Latihan ke dua adalah melanjutkan dari latihan yang pertama dengan menambahkan kode

program untuk kelas OneToOneFromMahasiswa. Kelas tersebut ditambahkan kode program

sesuai dengan spesifikasi tersebut :

-

Tambahkan inputan dari

keyboard

untuk identitas mahasiswa dan nilai IPK

-

Ouput program seperti di bawah ini :

NRP : 123040100

Nama : Asep Supriatna

IPK : 3.7

Keterangan : Cumlaude

Latihan 3 :

Latihan ke tiga sama seperti latihan ke dua yaitu melanjutkan dari latihan yang pertama.

Buatlah kelas OneToOneFromTranskrip untuk menampilkan keterangan yang sama terkait

identitas mahasiswa dan transkrip di kelas OneToOneFromMahasiswa. Namun dalam kasus

ini yang digunakan adalah dalam perspektif kelas Transkrip.

Latihan 4 :

Latihan ke emapt melanjutkan dari latihan yang pertama dengan tujuan untuk menunjukkan

contoh relasi satu ke banyak atau

one to many

. Latihan ini akan menambahkan kelas

MataKuliah yang akan mempunyai relasi dengan kelas Transkrip. Satu transkrip akan

mempunyai beberapa matakuliah yang telah di ambil mahasiswa. Berikut diagram kelas dari

contoh one to many.

(6)

6

Ubahlah kelas Transkrip seperti di bawah ini :

Transkrip.java

package p7.b; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /** *

* @author Ade Sukendar * @version 1.2

* @since 1/3/2014 *

*/

public class Transkrip {

private Float ipk;

private Mahasiswa mahasiswa;

private Collection<MataKuliah> listMataKuliah = new ArrayList<>(); /* * Konstruktor */ public Transkrip() { this(0.0f, null); }

public Transkrip(Float ipk) {

this.ipk = ipk; }

public Transkrip(Float ipk, Mahasiswa mahasiswa) {

this(ipk);

this.mahasiswa = mahasiswa; }

/**

* Method ini digunakan untuk menampilkan keterangan ipk * berdasarkan nilai ipk

*

* Prekondisi : range ipk antara 0-4 * Postkondisi : keterangan dari nilai ipk *

* @return keterangan ipk */

public String getKeterangan() {

if (ipk <= 4 && ipk > 3.5)

return "Cumlaude"; else if (ipk > 3.0) return "Excellent"; else if (ipk > 2.5) return "Good"; else if (ipk > 0)

return "Not Good";

return ""; }

/**

* Method ini digunakan untuk menghitung ipk * berdasarkan jumlah matakuliah

*

* @return nilai ipk */

public void hitungIPK() {

ipk = (float) hitungTotalIndeksAndSKS()/hitungTotalSKS(); }

/**

* Method ini digunakan untuk menghitung total jumlah indeks dan sks * berdasarkan jumlah matakuliah

(7)

7

* @return nilai ipk */

private int hitungTotalIndeksAndSKS() {

int total = 0;

Iterator<MataKuliah> iterator = listMataKuliah.iterator();

while (iterator.hasNext()) {

MataKuliah mk = (MataKuliah) iterator.next(); total = total + (mk.getSks()* mk.getNilaiIndeks()); }

return total; }

/**

* Method ini digunakan untuk menghitung total sks * berdasarkan jumlah matakuliah

*

* @return nilai ipk */

private int hitungTotalSKS() {

int total = 0;

Iterator<MataKuliah> iterator = listMataKuliah.iterator();

while (iterator.hasNext()) {

MataKuliah mk = (MataKuliah) iterator.next(); total = total + mk.getSks();

}

return total; }

public void addMataKuliah(MataKuliah matakuliah) {

listMataKuliah.add(matakuliah); }

/*

* Method Setter & Getter disembunyikan * Implementasi method ini harus tetap dibuat *

*/

/**

* Method untuk menampilkan atribut Mahasiswa dan Transkrip * dalam perspektif kelas Transkrip

*

* @return String */

public String display() {

StringBuffer sb = new StringBuffer();

sb.append("== Perspektif Kelas Transkrip ==\n"); sb.append("NRP : "+ mahasiswa.getNrp()+ "\n"); sb.append("Nama : "+ mahasiswa.getNama()+ "\n"); sb.append("IPK : "+ this.getIpk()+ "\n");

sb.append("Keterangan : "+ this.getKeterangan()+ "\n");

return sb.toString(); }

}

Buatlah kelas MataKuliah seperti di bawah ini :

MataKuliah.java

package p7.b; /**

*

* @author Ade Sukendar * @version 1.2

* @since 22/2/2014 *

*/

public class MataKuliah {

(8)

8

private String nama;

private int sks;

private char indeksNilai; /*

* Konstruktor */

public MataKuliah() {}

public MataKuliah(String kode, String nama, int sks, char indeksNilaiNilai) { setKode(kode); setNama(nama); setSks(sks); setIndeksNilai(indeksNilaiNilai); } /**

* Method ini berfungsi untuk mendapatkan nilai indeks * dari indeks nilai matakuliah

*

* @return nilai indeks */

public int getNilaiIndeks() {

if (indeksNilai == 'A') { return 4; } else if (indeksNilai == 'B') { return 3; } else if (indeksNilai == 'C') { return 2; } else if (indeksNilai == 'D') { return 1; }

else if (indeksNilai == 'E') {

return 0; }

return -1; }

/*

* Method Setter & Getter disembunyikan * Implementasi method ini harus tetap dibuat *

*/ }

Buatlah kelas OneToManyFromTranskrip seperti di bawah ini :

OneToManyFromTranskrip.java

package p7.b;

public class OneToManyFromTranskrip {

public static void main(String[] args) { // Mahasiswa

Mahasiswa mhs = new Mahasiswa("113040100", "Iwan"); // Transkrip

Transkrip transkrip = new Transkrip(); transkrip.setMahasiswa(mhs);

// MataKuliah

MataKuliah mk1 = new MataKuliah("1", "KPLBO", 3, 'A'); MataKuliah mk2 = new MataKuliah("2", "Alpro", 3, 'A'); MataKuliah mk3 = new MataKuliah("3", "Vispro", 3, 'B'); transkrip.addMataKuliah(mk1);

(9)

9

transkrip.addMataKuliah(mk2); transkrip.addMataKuliah(mk3); //hitung ipk

transkrip.hitungIPK();

System.out.println(transkrip.display()); }

}

Running, kemudian amati yang terjadi !!!

Tunjukkan kode mana yang menyatakan bahwa relasinya antara Transkrip dan Matakuliah

adalah

one to many

!

Tambahkan daftar matakuliah sesuai tabel dibawah ini :

4

RKPPL

3

B

5

PSBK

3

C

Referensi

Dokumen terkait

Sunarto, MM., selaku Kepala Program Studi Pendidikan Ekonomi, Fakultas Keguruan dan Ilmu Pendidikan, Universitas Sebelas Maret Surakarta yang telah memberikan ijin

Menurut madzhab Hanafi, zakat Fitrah yang dibayarkan berbentuk makanan pokok yang disebut dalam riwayat hadis (mansush), misalnya: gandum, kurma, kismis, keju, anggur,

Mathematics Education (RME) lebih dari hasil belajar matematika peserta didik menggunakan pendekatan saintifik di Kelas VII SMP Negeri 14 Kota Bengkulu tahun

Berdasarkan hasil penelitian menunjukkan bahwa dari empat aspek metakognitif yaitu: aspek kesadaran, aspek strategi kognitif, aspek perencanaan dan aspek pengecekkan

Hasil tabel variables entered / removed menunjukkan bahwa dari ketiga variabel independen yang digunakan, variabel yang mempengaruhi keputusan pembelian hanyalah

Jika nilai reflectance ratio antara dua region berada di atas 0.049852, maka kedua region dianggap occluded object atau region-region tersebut bukan bagian dari objek yang sama.

Perwakilan Badan Kependudukan dan Keluarga Berencana Nasional..

Pola tersebut dipilih dengan posisi yang berbeda pada papan tulis yaitu sudut kiri atas, sudut kiri bawah, tengah, sudut kanan atas dan sudut kanan bawah yang akan