DEFINISI MASALAH
Dari soal bab 1, dalam class-class yang terlibat di studi kasus tersebut, implementasikan penggunaan constructor dan tambahkan beberapa method untuk melakukan operasi dibawah:
pencarian buku berdasarkan kategori, penulis, maupun judul buku dan tampilkan hasil pencariannya (tangani jika data tidak ditemukan);
input detail buku kedalam kategori tertentu, dan tidak boleh ada judul buku yang sama dalam satu kategori;
menambahkan kategori buku di sistem perpustakaan, dan tidak ada kategori yang sama;
tampilkan semua kategori buku beserta buku-buku yang ada dalam kategori tersebut.
SOURCE CODE
Tugas2.java
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
package tugas2;
public class Tugas2 {
public String[] judul1={"how to convert yout car to run on water membuat","perangkat mobile",
"biogas potensi dari limbah cair","perpustakaan digital" ,"aplikasi mobile dengan qt",
"sejarah tuhan","the case for good","buku saku filsafat islam","peran paradigma revolusi",
"sains","filsafat hukum","perintah soekarno","sejarah kemerdekaan minangkabau",
"semua untuk cirebon","memoar hario kecik II","perang eropa","aliran dalam islam",
"memahami hakikat penciptaan","dzikir dan doa setelah sholat","pengantar ilmu nahwu dan shorof",
"agama","psikologi remaja","the science of mind and behaviour ","the secret","the female brain",
"handbook of psycologi","Candi, Cakrabirawa, dan Cinta Segitiga","perahu kertas ",
"hafalan shalat delisa","matilda", "filosofi kopi","dasar ilmu politik",
"testament of adolft hitler","teori tentang keadilan","memahami ilmu politik",
"inteligensia muslim dan kuasa"};
public String[]penulis1={"anonymous","admin buku1000","muhammad rifai","mahmud hasan","mohammad iqbal",
"karen armstrong","karen armstrong","haidar bagir","thomas ","theo huijber","himawan soetanto","ahmad husein",
"marhayono","soehario","p.k.ojon","M.yusuf amin nugroho","arid zainal effendi","ummu abdillah al-buthoniyyah",
"bois", "farid zainal effendi","KH As'ad Humam","sarlito wirawan sarwono","richard gross",
"rhonda byrn","louan brize","gary groth","ayu tami","dewi dee lestari","tere liye","ronald dahl",
"dewi lestari","miriam budiarjo","adolft hitler","john rawls","ramlan","yudi latief"};
public String[]kategori1={"Teknologi","Teknologi","Teknologi","Teknologi",
"Teknologi",
"Filsafat","Filsafat","Filsafat","Filsafat","Filsafat",
"Sejarah","Sejarah","Sejarah","Sejarah","Sejarah","agama",
"agama","agama","agama","agama","psikologi","psikologi","psikologi",
"psikologi","psikologi","fiksi","fiksi","fiksi","fiksi",
"fiksi","politik","politik","politik","politik","politik"};
public String []kategori2=new String[100];
public String []judul2=new String[100];
public String []penulis2=new String[100];
public void Isi(){
System.arraycopy(judul1, 0, judul2, 0, 35);
System.arraycopy(penulis1, 0, penulis2, 0, 35);
System.arraycopy(kategori1, 0, kategori2, 0, 35);}
String judul,penulis,kategoribuku;
static int jumlah = 35;
public void buatBuku(String judul, String penulis,
String kategoribuku) {
this.judul2[jumlah] = judul;
this.penulis2[jumlah] = penulis;
this.kategori2[jumlah]=kategoribuku;
this.jumlah++; }
public Tugas2(String judul, String penulis,String kategoribuku) {
this.judul = judul;
this.penulis = penulis;
this.kategoribuku=kategoribuku;}
public Tugas2(){
}
public void Melihat(){
System.out.println("========================================
================================================================");
System.out.printf("|%-50s|%-20s|%-30s|\n", "Judul",
"Kategori", "Penulis");
System.out.println("====================================
=====================================================================");
for (int i = 0; i < jumlah; i++) {
System.out.printf("|%-50s|%-20s|%-30s|\n", judul2[i], kategori2[i], penulis2[i]);
System.out.println("--------------------------------------------------------------------------------------------------------");
}
}
}
KategoriTugas.java
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
35
37
38
package tugas2;
public class KategoriTugas {
String Kategori;
String[][]Lanjut=new String[100][3];
int jumlah =0;
public KategoriTugas(String Kategori) {
this.Kategori = Kategori;
}
public void tambahbuku(Tugas2 Buku){
boolean buku=false;
int i=0;
while (i < jumlah){
if (this.Lanjut[i][0].equalsIgnoreCase(Buku.judul)){
buku=true;
System.out.println("buku yang anda cari sudah ada");
}i++;
}
if (!buku) {
this.Lanjut[jumlah][0]=Buku.judul;
this.Lanjut[jumlah][1]=Buku.penulis;
this.Lanjut[jumlah][2]=Buku.kategoribuku;
jumlah++;
}
}
public void setKategori(String ab) {
this.Kategori = ab;
}
public void DisplayBuku(){
int i=0;
while (i<jumlah){
System.out.print("Judul : " + Lanjut[i][0]);
System.out.print("||Penulis : " + Lanjut[i][1]);
System.out.println("||Kategori : " + Lanjut[i][2]);
i++;
}
}
}
MainTugas.Java
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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package tugas2;
import java.util.Scanner;
public class MainTugas {
public static void main(String[] args) {
Tugas2 p1=new Tugas2();
p1.Isi();
Scanner man= new Scanner(System.in);
int JumlahBuku = 0;
KategoriTugas[] daftar = new KategoriTugas[100];
daftar[0] = new KategoriTugas("Teknologi");
daftar[1] = new KategoriTugas("Filsafat");
daftar[2] = new KategoriTugas("Sejarah");
daftar[3] = new KategoriTugas("Agama");
daftar[4] = new KategoriTugas("Psikologi");
daftar[5] = new KategoriTugas("Politik");
daftar[6] = new KategoriTugas("Fiksi");
int jumlah = 7;
int pilih = 0;
String sementara, judul, penulis,kategoribuku;
do {
System.out.println("SELAMAT DATANG DI PERPUSTAKAAN");
System.out.println("Silahkan pilih layanan : ");
System.out.println("1. Pencarian buku");
System.out.println("2. Input detail buku");
System.out.println("3. Tambah kategori buku");
System.out.println("4. Tampilkan katalog");
System.out.println("5. Tampilkan Buku Ada Diperpustakaan");
System.out.println("6. Keluar");
System.out.print("Pilihan anda :");
pilih = man.nextInt();
man.nextLine();
switch (pilih) {
case 1:
System.out.println("1. Kategori");
System.out.println("2. Judul");
System.out.println("3. Penulis");
System.out.print("Cari berdasarkan : ");
pilih = man.nextInt();
man.nextLine();
System.out.print("Input kata kunci :");
sementara = man.nextLine();
switch (pilih) {
case 1:
int i=0;
while (i < jumlah) {
if (daftar[i].Kategori.equalsIgnoreCase(sementara)) {
daftar[i].DisplayBuku();
}i++;
}break;
case 2:
int d = 0;
while ( d < JumlahBuku) { if (p1.judul2[d].equalsIgnoreCase(sementara)) {
System.out.print("Judul : " + p1.judul2[d]);
System.out.println("|| Penulis : " + p1.penulis2[d]);
}d++;
};break;
case 3:
int c=0;
while ( c < JumlahBuku) {
if (p1.penulis2[c].equalsIgnoreCase(sementara)) { System.out.print("Judul : " + p1.penulis2[c]); System.out.println("|| Penulis : " + p1.penulis2[c]);
}c++;
};break;}break;
case 2:
System.out.println("Tambah Buku");
System.out.print("Judul : ");
judul = man.nextLine();
System.out.print("Penulis : ");
penulis = man.nextLine();
System.out.print("Kategori :");
kategoribuku=man.nextLine();
p1.buatBuku(judul, penulis,kategoribuku); Tugas2 temp = new Tugas2(judul, penulis,kategoribuku);
System.out.print("Masukkan Kategori : ");
sementara = man.nextLine();
int i=0;
while ( i < jumlah) { if (daftar[i].Kategori.equalsIgnoreCase(sementara)) { daftar[i].tambahbuku(temp);
}i++;
}JumlahBuku++;break;
case 3:
System.out.println("Input kategori yang ingin ditambah : ");
daftar[jumlah] = new KategoriTugas(man.nextLine());
jumlah++;break;
case 4:
int b =0;
while ( b < jumlah ) { System.out.println(daftar[b].Kategori);
daftar[b].DisplayBuku();b++;
}break;
case 5:
p1.Melihat();
System.out.println("");
break;
case 6:
System.out.println("Keluar dari program");
break;
default:
System.out.println("Input salah");
}
}while (pilih != 6);
}
}
PEMBAHASAN
Tugas2.java
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
Deklarasi package
Deklarasi Class Tugas2
Deklarasi array judul1 dan inisialisai nilai array judul1
Deklarasi array penulis1 dan inisialisai nilai array penulis1
Deklarasi array kategori1 dan inisialisai nilai array kategori1
Instansiasi array kategori2
Instansiasi array judul2
Instansiasi array penulis2
Deklarasi method void isi
Method arraycopy judul
Method arraycopy penulis
Method arraycopy kategori
Deklarasi variable judul,penulis,kategoribuku dan tipe datanya
Deklarasi method static variable jumlah dan tipe data nya int
Deklarasi method void dan parameternya
Menyimpan nilai array judul dan indeksnya
Menyimpan array judul dan indeksnya
Variable untuk menambah nilai
Deklarasi konstruktor tugas2 dan parameternya
Menyimpan nilai judul
Menyimpan nilai penulis
Menyimpan nilai kategori
Deklarasi konstruktor dan pembuka bloknya
Penutup bloknya
Deklarasi method melihat
Mencetak “============”
Mencetak “judul”,”Kategori”,’Penulis”. Dengan system format
Mencetak “=============”
Deklarasi perulangan for
Mencetak judul2”,”Kategori2”,’Penulis2”. Dengan system format
Mencetak “------------------------------------------“
Penutup blok method
Penutup classmethod
Penutup blok class
Kategoritugas.java
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
Deklarasi package
Deklarasi class kategoritugas
Deklarasi variable dan tipe datanya
Instansi array dan nilainya
Deklarasi variable jumlah dan tipe datanya
Deklarasi method kategori tugas dan pembuka blok
Menyimpan nilai kategori
Penutup blok
Deklarasi method void tambahbuku dan parameternya
Deklarasi variable buku dan tipe data Boolean serta nilainya
Deklarasi variable I dan tipe datanya
Perulangan while
Seleksi kondisi dan deklarasi syaratnya
Instansi nilai buku
Mencetak “Buku Yang anda cari sudah ada “
Deklarasi Increment
Penutup blok perulangan
Seleksi kondisi dan syaratnya
Menyimpan nilai lanjut dan indeksnya sama dengan judul
Menyimpan nilai lanjut dan indeksnya sama dengan penulis
Menyimpan nilai lanjut dan indeksnya sama dengan kategoribuku
Deklarasi increment jumlah
Penutuk blok seleksi kondisi
Penutup perulangan while
Penutup method
Deklarasi method void setter kategori dan parameternya
Menyimpan nilan kategori sama dengan nilai parameternya
Penutup method
Deklarasi method void Displaybuku dan pembuka bloknya
Deklarasi variable i dan tipe datanya
Perulangan while
Mencetak “judul” dan memanggil nilai lanjut dan indeks ke 0
Mencetak “penulis” dan memanggil nilai lanjut dan indeks ke 1
Mencetak “kategori” dan memanggil nilai lanjut dan indeks ke 2
Deklarasi increment variable i
Penutup blok perulangan
Penutup blok method
Penutup blok class
Maintugas.java
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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Deklarasi package
Deklarasi class Scanner
Deklarasi class maintugas
Deklarasi mthod main
Instansiasi objek
Pemanggilan method isi dari objek p1
Deklarasi scanner input
Deklarasi variable jumlah
Instansiasi array objek kategori tugas
Instansiasi objek indeks ke 0 kategori tugas dengan nilai arraynya teknologi
Instansiasi objek indeks ke 1 kategori tugas dengan nilai arraynya filsafat
Instansiasi objek indeks ke 2 kategori tugas dengan nilai arraynya sejarah
Instansiasi objek indeks ke 3 kategori tugas dengan nilai arraynya agama
Instansiasi objek indeks ke 4 kategori tugas dengan nilai arraynya psikologi
Instansiasi objek indeks ke 5 kategori tugas dengan nilai arraynya fiksi
Instansiasi objek indeks ke 6 kategori tugas dengan nilai arraynya politik
Deklarasi variable jumlah dan tipe datanya
Deklarasi variable pilih dan tipe datanya
Deklarasi variable sementara,judul,penulis,kategoribuku dan tipe datanya
Perulangan do
Mencetak “SELAMAT DATANG DI PERPUSTAKAAN”
Mencetak “Silahkan pilih layanan”
Mencetak“Pencarian buku"
Mencetak“Input detail buku"
Mencteak”Tambah kategori buku"
Mencetak”Tampilkan katalog”
Mencetak”Tampilkan Buku Ada Diperpustakaan"
Mencetak”Keluar"
Mencetak”Pilihan anda :
Input pilih
Input spasi buat newline
Seleksi kondisi switch
Case 1
Mencetak “1.kategori”
Mencetak “2.judul”
Mencetak “3.penulis”
Mencetak “cari berdasarkan ”
Input pilih
Input spasi untuk newline
Mencetak “input kata kunci”
Input sementara
Seleksi kondisi pilih
Case 1
Deklarasi variable I dan tipe datanya
Perulangan while
Seleksi kondisi if
Pemanggilan method displaybuku melalui objek daftar dengan indek i
Increment variable I penutup blok
Break untuk keluar dari case 1
Case 2
Deklarasi variable d dan tipe datanya
Perulangan while
Seleksi kondisi if
Mencetak “judul” dan pemanggilan judul2 dengan indeks d melalui objek p1
Mencetak “judul” dan pemanggilan penulis2 dengan indeks d melalui objek p1
Increment variable d penutup blok
Break untuk keluar dari case 2
Case 3
Deklarasi variable c dan tipe datanya
Perulangan while
Seleksi kondisi if
Mencetak “judul” dan pemanggilan judul2 dengan indeks c melalui objek p1
Mencetak “judul” dan pemanggilan penulis2 dengan indeks c melalui objek p1
Increment variable c penutup blok
Break untuk keluar dari case 3 dan memberhentikan switch case bercabang
Case 2
Mencetak “Tambah Buku”
Mencetak “Judul”
Input judul
Mencetak “penulis”
Input penulis
Mencetak “kategori ”
Input kategori
Pemanggilan method buku melalui p1
Instansiasi objek dan parameternya
Mencetak “Masukkan kategori”
Input sementara
Deklarasi variable I dan tipe datanya
Perulangan while
Seleksi kondisi if
Pemanggilan method tambahbuku parameternya temp melalu pemanggilan objek
Increment i
Increment jumlah buku dan keluar dari case2
Case 3
Mencetak “input kategori yang ingin ditambah”
Instansi objek daftar dan indeksnya jumlah
Increment jumlah dan statement keluar case 3
Case 4
Deklarasi variable b
Perulangan while
Mencetak dan memanggil method kategori melalui objek
Memanggil method diskplayBuku melalui objek dan increment
statement keluar case4
Case 5
Memanggil method melihat melalui objel
Mencetak “”
breakUntuk keluar dari case 6
case 6
mencetak “keluar dari program”
break untuk keluar dari case 6
default
mencetak “input salah”
penutup blok switch case
perulangan while
penutup perulangan do
penutup class
SCREENSHOT PROGRAM
Gambar1.MainTugas.Java
PRAKTIKUM
Constructor
Lakukan percobaan constructor diatas dan benahi jika menemukan kesalahan!
Jawaban: Terdapat kesalahan pada sourcode tersebut karena penulisan nama methodnya hari
huruf kepital diawalnya
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!
Jawaban :
Student.java
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
public class Student {
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
public Student(double mathGrade, double englishGrade, double scienceGrade) {
this.mathGrade = mathGrade;
this.englishGrade = englishGrade;
this.scienceGrade = scienceGrade;
}
public Student(){
name = "";
address = "";
age = 0;
}
public Student(String n, String a, int ag){
name = n;
address = a;
age = ag;
}
public void setName(String n){
name = n;
}
public void setAddress(String a){
address = a;
}
public void setAge(int ag){
age = ag;
}
public void setMath(int math){
mathGrade = math;
}
public void setEnglish(int english){
englishGrade = english;
}
public void setScience(int science){
scienceGrade = science;
}
private double getAverage(){
double result = 0;
result = (mathGrade+scienceGrade+englishGrade)/3;
return result;
}
public void displayMessage(){
System.out.println("Siswa dengan nama "+name);
System.out.println("beramalat di "+address);
System.out.println("berumur "+age);
System.out.println("mempunyai nilairata "+getAverage());
}
}
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!
Jawaban :
Student.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
26
27
28
29
30
31
32
33
34
35
36
37
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public class Student {
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private double statusakhir;
public Student(double mathGrade, double englishGrade, double scienceGrade) {
this.mathGrade = mathGrade;
this.englishGrade = englishGrade;
this.scienceGrade = scienceGrade;
}
public Student(){
name = "";
address = "";
age = 0;
}
public Student(String n, String a, int ag){
name = n;
address = a;
age = ag;
}
public void setName(String n){
name = n;
}
public void setAddress(String a){
address = a;
}
public void setAge(int ag){
age = ag;
}
public void setMath(int math){
mathGrade = math;
}
public void setEnglish(int english){
englishGrade = english;
}
public void setScience(int science){
scienceGrade = science;
}
private double getAverage(){
double result = 0;
result = (mathGrade+scienceGrade+englishGrade)/3;
return result;
}
public boolean Statusakhir(){
if (getAverage()<= 60) {
return false;
}else {
return true;
}
}
public void displayMessage(){
System.out.println("Siswa dengan nama "+name);
System.out.println("beramalat di "+address);
System.out.println("berumur "+age);
System.out.println("mempunyai nilairata "+getAverage());
if (Statusakhir()==true) {
System.out.println("Siswa dinyatakan lolos");
}
else {
System.out.println("Siswa tidak dinyatakan lolos");
}
}
}
MainStudent.java
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
public class MainStudent {
public static void main(String[] args) {
Student anna = new Student();
anna.setName("Anna");
anna.setAddress("Malang");
anna.setAge(20);
anna.setMath(100);
anna.setScience(89);
anna.setEnglish(80);
anna.displayMessage();
//menggunakan constructor lain
System.out.println("===================");
Student chris = new Student("Chris", "Kediri", 21);
chris.setMath(70);
chris.setScience(60);
chris.setEnglish(90);
chris.displayMessage();
//siswa dengan nama anna dirubah informasi alamat dan umurnya melalui constructor
System.out.println("===================");
anna = new Student("anna", "Batu", 18);
anna.displayMessage();
//siswa denagan nama chris dirubah informasi alamat dan umurnya melalui method
System.out.println("===================");
chris.setAddress("Surabaya");
chris.setAge(22);
chris.displayMessage();
System.out.println("==============");
Student rahman = new Student();
rahman.setName("Rahman");
rahman.setAddress("Malang");
rahman.setAge(19);
rahman.setMath(100);
rahman.setScience(95);
rahman.setEnglish(90);
rahman.displayMessage();
}
}
Bagaimana cara memasukkan jumlah siswa sesuai dengan keinginan user? Tuliskan kodenya dengan inputan user yang interaktif! (key : menggunakan array)
Jawaban:
MainStudent.java
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
import java.util.Scanner;
public class MainStudent {
public static void main(String[] args) {
Scanner rahman =new Scanner (System.in);
int jumlah;
System.out.print("Masukkan jumlah mahasiswa :");
jumlah=rahman.nextInt();
Student[] Std= new Student[jumlah];
for (int r = 0; r < jumlah; r++) {
System.out.print("Masukkan Nama :");
String nama=rahman.next();
System.out.print("Masukkan Alamat :");
String alamat=rahman.next();
System.out.print("Masukkan Umur :");
int umur=rahman.nextInt();
Std[r] =new Student (nama,alamat,umur);
System.out.print("Masukkan nilai Math :");
int math=rahman.nextInt();
Std[r].setMath(math);
System.out.print("Masukkan nilai English :");
int english=rahman.nextInt();
Std[r].setEnglish(english);
System.out.print("Masukkan nilai Science :");
int science=rahman.nextInt();
Std[r].setScience(science); System.out.println("=======================");
Std[r].displayMessage(); System.out.println("=======================");
}
}
}
Bagaimana cara menghitung banyaknya objek yang kita buat dari sebuah menginstance objek dari mein class? Tuliskan kodenya kemudian tampilkan informasinya dengan memanggil method jumlahObjek() bertipe void!
Jawaban :
Student.java
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
47
48
49
50
51
52
53
54
55
package student;
public class Student {
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private double statusakhir;
static int jumobjek;
public Student(double mathGrade, double englishGrade, double scienceGrade) {
this.mathGrade = mathGrade;
this.englishGrade = englishGrade;
this.scienceGrade = scienceGrade;
this.jumobjek++;
}
public Student(){
jumobjek++;
}
static void getjumlahobjek(){
System.out.println("Jumlah Objeknya adalah :"+Student.jumobjek);
}
public Student(String n, String a, int ag){
name = n;
address = a;
age = ag;
this.jumobjek++;
}
public void setName(String n){
name = n;
}
public void setAddress(String a){
address = a;
}
public void setAge(int ag){
age = ag;
}
public void setMath(int math){
mathGrade = math;
}
public void setEnglish(int english){
englishGrade = english;
}
public void setScience(int science){
scienceGrade = science;
}
private double getAverage(){
double result = 0;
result = (mathGrade+scienceGrade+englishGrade)/3;
return result;
}
public boolean Statusakhir(){
if (getAverage()<= 60) {
return false;
}else {
return true;
}
}
public void displayMessage(){
System.out.println("Siswa dengan nama "+name);
System.out.println("beramalat di "+address);
System.out.println("berumur "+age);
System.out.println("mempunyai nilairata "+getAverage());
if (Statusakhir()==true) {
System.out.println("Siswa dinyatakan lolos");
}
else {
System.out.println("Siswa tidak dinyatakan lolos");
}
}
}
MainStudent.Java
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
import java.util.Scanner;
public class MainStudent {
public static void main(String[] args) {
Scanner rahman =new Scanner (System.in);
int jumlah;
System.out.print("Masukkan jumlah mahasiswa :");
jumlah=rahman.nextInt();
Student[] Std= new Student[jumlah];
for (int r = 0; r < jumlah; r++) {
System.out.print("Masukkan Nama :");
String nama=rahman.next();
System.out.print("Masukkan Alamat :");
String alamat=rahman.next();
System.out.print("Masukkan Umur :");
int umur=rahman.nextInt();
Std[r] =new Student (nama,alamat,umur);
System.out.print("Masukkan nilai Math :");
int math=rahman.nextInt();
Std[r].setMath(math);
System.out.print("Masukkan nilai English :");
int english=rahman.nextInt();
Std[r].setEnglish(english);
System.out.print("Masukkan nilai Science :");
int science=rahman.nextInt();
Std[r].setScience(science);
System.out.println("=======================");
Std[r].displayMessage();
System.out.println("=======================");
}
Student.getjumlahobjek();
}
Instance Method
Lakukan percobaan Instance Method diatas dan benahi jika menemukan kesalahan!
Jawaban: tidak ada kesalahan pada sourcode tersebut.
Tambahkan method untuk operator <, <=, >= !
Jawaban:
Rasional.java
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
public class Rasional {
private int pembilang, penyebut;
public Rasional(){
pembilang=0;
penyebut=0;
}
public Rasional(int pbl, int pyb){
pembilang=pbl;
penyebut=pyb;
}
//mengecek suatu bilangan adalah rasional atau bukan
public boolean isRasional(){
return (penyebut!= 0);
}
//menyederhanakan bilangan rasional
public void Sederhana(){
int temp, A, B;
if (penyebut ==0){
return;
}
A = (pembilang<penyebut) ? penyebut:pembilang;
B = (pembilang<penyebut) ? pembilang:penyebut;
while (B != 0){
temp= A % B;
A = B;
B = temp;
}
pembilang /=A;
penyebut /=A;
}
public double Cast(){
return (penyebut==0.0) ? 0.0 : (double)pembilang /
(double)penyebut;
}
//oprator >
public boolean moreThan (Rasional A){
return (pembilang * A.penyebut > penyebut * A.pembilang);
}
public boolean operator1 (Rasional A){
return (pembilang * A.penyebut < penyebut * A.pembilang);
}
public boolean operator2 (Rasional A){
return (pembilang * A.penyebut <= penyebut * A.pembilang);
}
public boolean operator3 (Rasional A){
return (pembilang * A.penyebut >= penyebut * A.pembilang);
}
public boolean operator4 (Rasional A){
return (pembilang * A.penyebut != penyebut * A.pembilang);
}
//operator Unary- ---> A = -A
public void negasi(){
pembilang = - pembilang;
}
//operator unary += \
public void unaryPlus(Rasional A){
pembilang = pembilang * A.penyebut + penyebut *A.pembilang;penyebut *=A.penyebut;
}
public void cetak(){
System.out.println(pembilang + "/" + penyebut);
}
}
Ubah method sederhana pada baris 25 – 30 yang awalnya adalah menggunakan while menjadi for!
Jawaban :
Rasional.java
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
40
41
public class Rasional {
private int pembilang, penyebut;
public Rasional(){
pembilang=0;
penyebut=0;
}
public Rasional(int pbl, int pyb){
pembilang=pbl;
penyebut=pyb;
}
//mengecek suatu bilangan adalah rasional atau bukan
public boolean isRasional(){
return (penyebut!= 0);
}
//menyederhanakan bilangan rasional
public void Sederhana(){
int temp, A, B;
if (penyebut ==0){
return;
}
A = (pembilang<penyebut) ? penyebut:pembilang;
B = (pembilang<penyebut) ? pembilang:penyebut;
for (;B != 0;){
temp= A % B;
A = B;
B = temp;
}
pembilang /=A;
penyebut /=A;
}
public double Cast(){
return (penyebut==0.0) ? 0.0 : (double)pembilang /
(double)penyebut;
}
//oprator >
public boolean moreThan (Rasional A){
return (pembilang * A.penyebut > penyebut * A.pembilang);
}
//operator Unary- ---> A = -A
public void negasi(){
pembilang = - pembilang;
}
//operator unary += \
public void unaryPlus(Rasional A){
pembilang = pembilang * A.penyebut + penyebut *A.pembilang;penyebut *=A.penyebut;
}
public void cetak(){
System.out.println(pembilang + "/" + penyebut);
}
}
Tambahkan method untuk operasi -, * , / !
Jawaban:
Rasional.java
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
47
48
49
50
51
public class Rasional {
private int pembilang, penyebut;
public Rasional(){
pembilang=0;
penyebut=0;
}
public Rasional(int pbl, int pyb){
pembilang=pbl;
penyebut=pyb;
}
//mengecek suatu bilangan adalah rasional atau bukan
public boolean isRasional(){
return (penyebut!= 0);
}
//menyederhanakan bilangan rasional
public void Sederhana(){
int temp, A, B;
if (penyebut ==0){
return;
}
A = (pembilang<penyebut) ? penyebut:pembilang;
B = (pembilang<penyebut) ? pembilang:penyebut;
while (B != 0){
temp= A % B;
A = B;
B = temp;
}
pembilang /=A;
penyebut /=A;
}
public double Cast(){
return (penyebut==0.0) ? 0.0 : (double)pembilang /
(double)penyebut;
}
//oprator >
public boolean moreThan (Rasional A){
return (pembilang * A.penyebut > penyebut * A.pembilang);
}
public boolean operator1 (Rasional A){
return (pembilang * A.penyebut < penyebut * A.pembilang);
}
public boolean operator2 (Rasional A){
return (pembilang * A.penyebut <= penyebut * A.pembilang);
}
public boolean operator3 (Rasional A){
return (pembilang * A.penyebut >= penyebut * A.pembilang);
}
public boolean operator4 (Rasional A){
return (pembilang * A.penyebut != penyebut * A.pembilang);
}
//operator Unary- ---> A = -A
public void negasi(){
pembilang = - pembilang;
}
//operator unary += \
public void unaryPlus(Rasional A){
pembilang = pembilang * A.penyebut + penyebut *A.pembilang;penyebut *=A.penyebut;
}
public void unarykurang(Rasional A){
pembilang = pembilang * A.penyebut + penyebut -A.pembilang;penyebut *=A.penyebut;
}
public void unarykali(Rasional A){
pembilang = pembilang * A.penyebut + penyebut *A.pembilang;penyebut *=A.penyebut;
}
public void unarybagi(Rasional A){
pembilang = pembilang * A.penyebut + penyebut /A.pembilang;penyebut *=A.penyebut;
}
public void cetak(){
System.out.println(pembilang + "/" + penyebut);
}
}
KESIMPULAN
Konstruktor adalah layaknya sebuah method yang secara otomatis akan dijalankan ketika object dibuat (diinstansiasi) dengan menggunakan perintah new. Atau dengan kata lain konstruktor adalah method yang pertama kali dijalankan pada saat sebuah objek pertama kali diciptakan. Jika didalam java tidak terdapat konstruktor maka java akan membuat konstruktor secara otomatis yaitu default.
Konstruktor adalah sebuah method yang secara otomatis akan dijalankan ketika objek dibuat (diinstansiasi) dengan menggunakan perintah new. Sedangkan method adalah sekumpulan statement program yang disatukan menjadi sebuah subprogram atau fungsi atau Method merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Perbedaanya adalah konstruktor tidak memiliki nilai (void, String, int, dll) dan juga namanya sama persis dengan nama kelas sedangkan method itu memiliki nilai (void, String,int dll) dan juga namanya bebas tidak harus sama dengan nama kelas
Untuk mendeklarasikan sebuah constructor dapat kita tuliskan dengan sintaks berikut :
<modifier> <classname>(parameter){
<statement>
}
Contoh : misalnya dibuat constructor pada class mahasiswa
: public mahasiswa(){
//statement
}
}
Instance method adalah adalah fungsi yang beroperasi pada objek untuk memanipulasi state objek lewat pesan objek yang diterima dari objek lain.Untuk memanggil sebuah instance metho itu yanitu dengan cara kita menuliskan :
namaObjek.nama method();
LABORATORIUM PEMBELAJARAN ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : CONSTRUCTOR DAN INSTANCE METHOD
NAMA : RAHMAN RULLI ARJIANSA
NIM : 165150201111168
TANGGAL : 16/03/2016
ASISTEN : AHMAD KAMIL ALMASYHUR