LABORATORIUM PEMBELAJARAN ILMU KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA
BAB NAMA NIM TANGGAL ASISTEN
: CONSTRUCTOR DAN INSTANCE METHOD : REINATA DEVI NINDYA NINDYA TIRZASARI : 175150700111008 175150700111008 : 27/02/2018 : ALLYSA APSARINI SHAFHAH
A. DEFINISI MASALAH
Dari jawaban bab 1, implementasikan hal-hal berikut di dalam class : Tambahkan attribute ‘sinopsis’ (minimal 10 kata), 1. Tambahkan 2. Constructor pada semua attribute attribute yang ada, ada, 3. Method hitung jumlah jumlah kata pada atribut synopsis, 4. Method cek tingkat kesamaan, kesamaan, dengan dengan parameter parameter object lain dan nilai kembalian 0-100% sesuai kesamaan attribute kedua object, 5. Method copy yang mengembalikan mengembalikan object object yang nilainya sama sama B. SOURCE CODE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
20 21
22 23 24
mainPerpustakaan.java
public class mainPerpustakaan { public static void main(String[] args) { Perpustakaan perpus1 = new Perpustakaan("Teknologi"); Perpustakaan perpus2 = new Perpustakaan("Filsafat"); Perpustakaan perpus3 = new Perpustakaan("Sejarah"); Perpustakaan perpus4 = new Perpustakaan("Agama"); Perpustakaan perpus5 = new Perpustakaan("Psikolog"); Perpustakaan perpus6 = new Perpustakaan("Politik"); Perpustakaan perpus7 = new Perpustakaan("Fiksi"); System.out.println("Kategori\t:"); perpus1.getKategori(); perpus2.getKategori(); perpus3.getKategori(); perpus4.getKategori(); perpus5.getKategori(); perpus6.getKategori(); perpus7.getKategori(); System.out.println(); perpus1.getPropertis("Pengantar Teknologi Informasi","Tata Sutabri","Sebuah buku yang menjelaskan tentang konsep teknologi informasi, infrastruktur teknologi informasi, dan perkembangan teknologi informasi"); perpus1.displayMessage(); perpus1.getPropertis("Ber-Internet dengan Facebook dan Twitter untuk Pemula","Madcoms","Seri buku komputer BerInternet dengan Facebook dan Twitter untuk pemula ini sangat cocok digunakan oleh para pelajar dan pemula yang ingin mengenal dan mengelola Facebook dan Twitter."); perpus1.displayMessage(); System.out.println(); perpus2.getPropertis("Le Petit Prince","Antonie de Saint-Exupery","Buku ini ditulis untuk menampar orang-orang dewasa yang lupa bahwa terkadang hidup tidak harus dihadapi dengan serius, tetapi cukup\n" + "dengan kepolosan layaknya anak kecil.");
25 26 27
28 29 30
31 32
33 34 35
36 37 38
39 40 41
42 43 44
45 46 47
48 49 50
51 52 53
54 55
perpus2.displayMessage(); System.out.println(); perpus2.getPropertis("Dunia Shopie","Jostein Gaarder","Novel karya Jostein Gaarder ini adalah sebuah novel berkaitan sejarah filsafat sejak awal perkembangan dari era Socrates di Yunani hingga Freud di abad kedua puluh ini."); perpus2.displayMessage(); System.out.println(); perpus3.getPropertis("Di Bawah Bendera Revolusi","Soekarno","Buku yang menghimpun tulisan tulisan Bung Karno dalam masa revolusi menuju Indonesia merdeka"); perpus3.displayMessage(); System.out.println(); perpus3.getPropertis("Catatan Pinggir","Goenawan Mohamad","Sebuah buku yang mencangkup berbagai topik seperti birokratis, sosial, Ilmu dan Kemasyarakatan, Keadilan, dan lain-lain"); perpus3.displayMessage(); System.out.println(); perpus4.getPropertis("Generation M","Shelina Jonmohamed","Buku ini memberikan pandangan mengenai generation muslim modern yang keimanan nya mempengaruhi gaya hidup"); perpus4.displayMessage(); System.out.println(); perpus4.getPropertis("No god but God","Reza Aslan","Buku ini berisi tentang islam merupakan agama yang sungguh damai, memanusiakan manusia, menjunjung tinggi derajat perempuan dan melindungi orang yang miskin dan yatim piatu"); perpus4.displayMessage(); System.out.println(); perpus5.getPropertis("Psikologi Kepribadian","Alwisol","Buku yang diterbitkan dengan harapan pembacanya dapat memahami bagaimana tingkah laku diorganisir, dideskripsikan dan diramalkan"); perpus5.displayMessage(); System.out.println(); perpus5.getPropertis("Psikologi Perilaku","Richard Gross","Buku yang didalamnya memuat informasi tentang teori dalam komunikasi yang dilatarbelakangi konsep-konsep psikologi tentang manusia"); perpus5.displayMessage(); System.out.println(); perpus6.getPropertis("Dasar-Dasar Ilmu Politik","Miriam Budiardjo","Sebuah buku yang menjelaskan tentang dasar-dasar ilmu politik yang sangat membantu dalam proses pembelajaran"); perpus6.displayMessage(); System.out.println(); perpus6.getPropertis("Sistem Politik Indonesia","Tere Liye","Buku ini menjelaskan dengan sangat rinci mengenai halhal yang berkaitan dengan sistem politik yang ada di Indonesia"); perpus6.displayMessage(); System.out.println(); perpus7.getPropertis("Bumi","Tere Liye","Berkisah tentang kehidupan seorang remaja perempuan bernama Raib yang memiliki kemampuan unik"); perpus7.displayMessage(); System.out.println();
56
57 58 59 60 61 62 63 64 65 66 67 68
perpus7.getPropertis("Harry Potter","JK Rowling","Buku ini menggambarkan seorang Harry yang mengetahui bahwa dirinya adalah seorang penyihir"); perpus7.displayMessage(); System.out.println(); System.out.println("---------TINGKAT KESAMAAN BUKU-----------"); System.out.println("Tingkat kesamaan buku di Perpus 6 dan 7 adalah "+hitungTingkatKesamaan(perpus6,perpus7)+" %"); System.out.println(); System.out.println("---------METHOD COPY----------"); System.out.println("Mengcopy perpus 1 ke perpus 2: "); perpus1.copy(perpus2); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Perpustakaan.java
public class Perpustakaan { private String Kategori; private String Judul; private String Penerbit; private String Sinopsis; private int tingkatKesamaan; public void setJudul(String j){ this.Judul = j; } public void setPenerbit(String p){ this.Penerbit = p; } public void setSinopsis(String s){ this.Sinopsis = s; } public String getKategori(){ return this.Kategori; } public String getJudul(){ return this.Judul; } public String getPenerbit(){ return this.Judul; } public String getSinopsis(){ return this.Sinopsis; } public Perpustakaan (String k){ this.Kategori = k; } public Perpustakaan (String j, String p, String s){ this.Judul = j; this.Penerbit = p; this.Sinopsis = s; } public int hitungKata(String Sinopsis){ String[] hitung_kata = Sinopsis.split("\\w+"); return hitung_kata.length;
39 40 41 42
} public double hitungTingkatKesamaan(Perpustakaan perpus6, Perpustakaan perpus7){ tingkatKesamaan = 0; if(perpus6.getKategori().equalsIgnoreCase(perpus7.getKa tegori())) tingkatKesamaan++;
43
if(perpus6.getJudul().equalsIgnoreCase(perpus7.getJudul ())) tingkatKesamaan++;
44
if(perpus6.getPenerbit().equalsIgnoreCase(perpus7.getPe nerbit())) tingkatKesamaan++;
45
if(perpus6.getSinopsis().equalsIgnoreCase(perpus7.getSi nopsis())) tingkatKesamaan++; return (double)tingkatKesamaan*25;
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
} public void copy(Perpustakaan a){ Kategori = a.Kategori; Judul = a.Judul; Penerbit = a.Penerbit; Sinopsis = a.Sinopsis; displayMessage(); } public void getPropertis(String j, String p, String s){ setJudul(j); setPenerbit(p); setSinopsis(s); switch (Kategori) { case "Teknologi": System.out.println("Buku break; case "Filsafat": System.out.println("Buku break; case "Sejarah": System.out.println("Buku break; case "Agama": System.out.println("Buku break; case "Psikolog": System.out.println("Buku break; case "Politik": System.out.println("Buku break; case "Fiksi": System.out.println("Buku break; default: break; }
Kategori Teknologi:");
Kategori Filsafat:");
Kategori Sejarah:");
Kategori Agama:");
Kategori Psikolog:");
Kategori Politik:");
Kategori Fiksi:");
} public void displayMessage(){ System.out.println("Judul\t\t\t: "+this.Judul); System.out.println("Penerbit\t\t: "+this.Penerbit); System.out.println("Sinopsis\t\t: "+this.Sinopsis);
89
System.out.println("Total Kata Sinopsis\t: "+hitungKata(this.Sinopsis)); } }
C. PEMBAHASAN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
mainPerpustakaan.java Deklarasi class dengan nama Perpustakaan Deklarasi method main Instansi perpus1 dengan isi Teknologi Instansi perpus2 dengan isi Filsafat Instansi perpus3 dengan isi Sejarah Instansi perpus4 dengan isi Agama Instansi perpus5 dengan isi Psikologi Instansi perpus6 dengan isi Politik Instansi perpus7 dengan isi Fiksi Proses mencetak “Kategori :” Memanggil method getKategori untuk memunculkan Kategori Teknologi Memanggil method getKategori untuk memunculkan Kategori Filsafat Memanggil method getKategori untuk memunculkan Kategori Sejarah Memanggil method getKategori untuk memunculkan Kategori Agama Memanggil method getKategori untuk memunculkan Kategori Psikologi Memanggil method getKategori untuk memunculkan Kategori Politik Memanggil method getKategori untuk memunculkan Kategori Fiksi Mencetak line baru Mengisikan getPropertis dengan judul dan penulis buku di Perpus1 Mencetak judul,penulis,dan synopsis Mencetak line baru Mengisikan getPropertis dengan judul dan penulis buku di Perpus1 Mencetak judul,penulis,dan sinopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus2 Mencetak judul,penulis,dan synopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus2 Mencetak judul,penulis,dan sinopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus3 Mencetak judul,penulis,dan synopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus3 Mencetak judul,penulis,dan sinopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus4 Mencetak judul,penulis,dan synopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus4 Mencetak judul,penulis,dan sinopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus5 Mencetak judul,penulis,dan synopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus5
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
Mencetak judul,penulis,dan sinopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus6 Mencetak judul,penulis,dan sinopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus6 Mencetak judul,penulis,dan sinopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus7 Mencetak judul,penulis,dan synopsis Mencetak line baru Mengisikan getPropertis dengan judul, penulis, dan sinopsis buku di Perpus7 Mencetak judul,penulis,dan sinopsis Mencetak line baru Mencetak tulisan tingkat kesamaan buku Mencetak tingkat kesamaan antara buku di perpus6 dan perpus7 beserta hasilnya Mencetak line baru Mencetak tulisan method copy Mencetak copy perpus1 ke perpus2 Menampilkan hasil dari copy perpus1 ke perpus2 Penutup method main Penutup class
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Perpustakaan.java Deklarasi class dengan nama Perpustakaan Deklarasi atribut Kategori dengan tipe data string modifier private Deklarasi atribut Judul dengan tipe data string modifier private Deklarasi atribut Penerbit dengan tipe data string modifier private Deklarasi atribut Sinopsis dengan tipe data string modifier private Deklarasi atribut tingkatKesamaan deng tipe data int modifier private Deklarasi method setJudul dengan parameter Judul bertipe data String Insialisasi this.Judul sama dengan j Penutup Konstruktor Deklarasi method setPenulis dengan parameter Penulis bertipe data String Insialisasi this.Penulis sama dengan p Penutup Konstruktor Deklarasi method setSinopsis dengan parameter Sinopsis bertipe data String inisialisasi this.Sinopsis sama dengan s Penutup konstruktor Konstruktor dengan parameter kategori bertipe data String Pengembalian dan penyimpanan nilai kategori. Penutup Konstruktor Deklarasi method getJudul dengan parameter Mengembalikan nilai Judul ke Judul Penutup Konstruktor Deklarasi method getPenerbit dengan parameter Mengembalikan nilai Penerbit ke Penerbit Penutup Konstruktor Deklarasi method getSinopsis dengan parameter Mengembalikan nilai synopsis ke synopsis Penutup konstruktor
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
Pembuatan konstruktor di kelas perpustakaan yang bertipe String berparameter k Mengembalikan serta menyimpan nilai kategori ke k Penutup konstruktor Deklarasi method getPropertis dengan parameter Judul, Penulis, Sinopsis dengan tipe data String Pemanggilan method setJudul Pemanggilan method setPenulis Pemanggilan method setSinopsis Penutup konstruktor Membuat method untuk hitungKata dari sinopsis dengan tipe data int Pendeklarasian array bernama hitung_kata yang isinya menampung perhitungan kata dalam kalimat di synopsis Pengembalian nilai dan menyimpanan dalam method hitung_kata Penutup Konstruktor Mebuat method bertipe double untuk menghitung tingkat kesamaan antar perpus6 dan perpus7 Inisialisasi nilai awal dari tingkat kesamaan adalah 0 Fungsi if apabila menemukan kesamaan kategori pada perpus6 dan perpus 7 maka akan dilakukan penambahan nilai awal tingkat kesamaan yang awalnya 0 menjadi 1 Fungsi if apabila menemukan kesamaan judul pada perpus6 dan perpus7 maka akan dilakukan penambahan nilai awal tingkat kesamaan yang awalnya 1 menjadi 2 Fungsi if apabila menemukan kesamaan penerbit pada perpus6 dan perpus7 maka akan dilakukan penambahan nilai awal tingkat kesamaan yang awalnya 2 menjadi 3 Fungsi if apabila menemukan kesamaan sinopsis pada perpus6 dan perpus7 maka akan dilakukan penambahan nilai awal tingkat kesamaan yang awalnya 3 menjadi 4 Mengembalikan nilai dan menyimpannya kemudian diolah dengan rumus total tingkat kesamaan dikali 25 Penutup method hitungTingkatKesamaan Deklarasi method copy dengan parameter baru a Penyimpanan propertis kategori kepada parameter baru di method copy Penyimpanan propertis judul kepada parameter baru di method copy Penyimpanan propertis penerbit kepada parameter baru di method copy Penyimpanan propertis sinopsis kepada parameter baru di method copy Menampilkan hasil dari penyimpanan method copy tersebut Penutup Konstruktor Deklarasi method getPropertis dengan parameter string j, string p, string synopsis Deklarasi variable judul kedalam variable j Deklarasi variable Penerbit kedalam variable p Deklarasi variable synopsis kedalam variable s Penggunaan switch case, apabila memilih kategori buku Deklarasi case “teknologi” Mencetak buku kategori teknologi Perintah untuk mengakhri program Deklarasi case “filsafat Mencetak buku kategori filsafat Perintah untuk mengakhiri program Deklarasi case sejarah Mencetak buku kategori sejarah Perintah utnuk mengakhiri program Deklarasi case agama Mencetak buku kategori agama Perintah untuk mengakhiri program Deklarasi case psikolog
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
Mencetak buku kategori psikolog Perintah untuk mengakhiri program Deklarasi case politik Mencetak buku kategori politik Perintah untuk mengakhiri program Deklarasi case fiksi Mencetak buku kategori fiksi Perintah utnuk mengakhiri program Pilihan apabila tidak ada case Perintah untuk mengakhiri program Penutup switch case Penutup konstruktor Pembuatan method display message Mencetak judul Mencetak penerbit Mencetak synopsis Mencetak total kata Penutup metod Penutup class
D. SCREENSHOT PROGRAM
E. PRAKTIKUM
a) Constructor 1. Lakukan percobaan constructor diatas dan benahi jika menemukan kesalahan! Jawab : Terdapat kesalahan pada class Student baris ke-10 dan pada main class Student baris ke-23. Kedua baris ini terdapat kesalahan yang sama yaitu akibat dari nama konstruktor yang berbeda dengan nama class. Untuk menghilangkan error tersebut, nama constructor pada kelas Student harus diubah menjadi Student (sama dengan nama kelas). Kemudian pada gambar 8, objek bawah harus diubah menjadi Student, agar dapat menginsialisasi nilai.
2. Tambahkan constructor pada class Student dengan parameter yang mempunyai parameter masing masing nilai dari mata pelajaran yang ada! Kemudian buat contoh objeknya pada main Class! Jawab :
Contoh objek pada main class :
3. Tambahkan method dengan nilai balikan berupa boolean pada class student bernama statusAkhir untuk menentukan apakah siswa tersebut remidi atau tidak. Ketentuannya adalah jika nilai lebih dari atau sama dengan 61 adalah lolos sedangkan nilai kurang dari atau sama dengan 60 adakah remidi. Nilai yang di cari adalah nilai rata rata untuk semua mapel. Kemudian nilai pada method statusAkhir tampilkan pada method displayMessage! Jawab :
4. Bagaimana cara memasukkan jumlah siswa sesuai dengan keinginan user? Tuliskan kodenya dengan inputan user yang interaktif! (key : menggunakan array) Jawab :
5. Bagaimana cara menghitung banyaknya objek yang kita buat dari sebuah menginstance objek dari main class? Tuliskan kodenya kemudian tampilkan informasinya dengan memanggil method jumlahObjek() bertipe void! Jawab : Dengan membuat atribut/variable baru bertipe integer, di sini digunakan jumlah. Kemudian tambahkan syntax jumlah++ pada setiap konstruktor. Kemudian buat method di bawah ini.
b) Instance Method 1. Lakukan percobaan Instance Method diatas dan benahi jika menemukan kesalahan! Jawab : Tidak ada kesalahan yang membuat program tidak bisa run, hanya saja pada baris ke-7 yang seharusnya mencetak rasional R2 menjadi mencetak rasional R1.
2. Tambahkan method untuk operator <, <=, >= ! Jawab :
3. Ubah method sederhana pada baris 25 – 30 yang awalnya adalah menggunakan while menjadi for! Jawab :
4. Tambahkan method untuk operasi -, * , / ! Jawab :
F. KESIMPULAN
Constructor adalah sebuah method yang dipanggil ketika kita melakukan instansiasi suatu objek. Constructor biasanya berfungsi untuk memberikan nilai awal pada attribut ketika objek tersebut dibuat. Berbeda dengan method biasanya, constructor harus mempunyai nama yang sama dengan nama kelas, constructor juga tidak mempunyai return value. Untuk memanggil sebuah constructor diperlukan keyword new, sangat berbeda dengan method. Untuk membuat method, diperlukan nama yang sama dengan kelas, kemudian diikuti parameter. Terdapat beberapa jenis constructor, di antaranya default constructor (tanpa parameter), overload constructor (constructor yang lebih dari satu). Untuk mendeklarasikan sebuah constructor dapat kita tuliskan dengan sintaks berikut : (parameter){ }
Contoh : misalnya dibuat constructor pada class ATM : public ATM(int saldo){ this.saldo = saldo;
} Instance Method adalah fungsi yg beroperasi pada objek untuk memanipulasi state objek lewat pesan yg diterima dari obek lain, maksudnya method yang hanya bisa dibaca setelah class tersebut diturunkan ke object. Untuk dapat memanggil method dari suatu penginstanan class dapat menggunakan nama object sebelum nama method. Contohnya, sebelumnya sudah dibuat
satu = new ; untuk memanggilnya dengan membuat sintax berikut: satu.; Contoh instance method pada class MainATM yang menggunakan method yang ada pada class ATM: //instansiasi class dengan nama objek “satu”.
ATM satu = new ATM(saldo); //instance method setPin pada objek “satu”. satu.setPin(atur); //instance method login pada objek “satu”. satu.login(login);