Page 1
LABORATORIUM KOMPUTER DASAR
PROGRAM STUDI TEKNOLOGIK INFORMASI / ILMU KOMPUTER
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
PRAKTIKUM PEMROGRAMAN LANJUT
MODUL 2
Judul Bab : Class Contruktor dan Method Instan
Disusun Oleh : Irma Pujadayanti
NIM : 135150201111243
Dilaksanakan Tanggal : 26 Maret 2014
Asisten 1 : Aristiawan Asisten 2 : Iqbal Dhea Furqon Tauhid Dosen Pengampu : Ir.Sutrisno,M.T
Pengesahan
Tanggal:
Asisten
SEMESTER :GENAP TAHUN : 2013/2014
Page 2
A.Definisi Masalah
1.Tambahkan operator – operator lain untuk melengkapi kelas melengkapi kelas
bilangan rasional diatas,seperti : (minimal 5 operator)
Operator unary -=,unary /=,unary *=,unary ++,unary—
Operator <,<=,>=
Operator pembanding ==,pembanding !=
Operator +,=,*,/
B.Sourcode 1 package rasional12;
2
3 import javax.swing.JOptionPane;
4
5 public class Rasional13 {
6 private int pembilang ,penyebut;
7 public Rasional13(){
8 pembilang = 0;
9 penyebut =0;
10 }
11
12 public Rasional13(int pbl , int pyb){//construktor
13 pembilang = pbl;
14 penyebut = pyb;
15 }
16 public void judul(String A){
17 System.out.println("----------------------------------
"); 18 System.out.println(A);
19 System.out.println("----------------------------------
"); 20 }
21 //mengecek suatu bilangan adalah rasional atau bukan
22 public boolean isRasional(){
23 return(penyebut !=0);
24 }
25 //menyederhanakan bilangan rasional
26 public void sederhana(){
27 int temp ,A,B;
28 if (penyebut==0){
29 return;
30 }
Page 3
31 A=(pembilang<penyebut)?penyebut: penyebut;
32 B=(pembilang<penyebut)?pembilang:penyebut;
33 while(B!=0){
34 temp = A%B;
35 A=B;
36 B=temp;
37 }
38 pembilang/=A;
39 penyebut/=A;
40 }
41 public double Cast(){
42
return(penyebut==0.0)?0.0:(double)pembilang/(double)penyebu
t;
43
44 }
45 //operator >
46 public boolean moreThan(Rasional13 A){
47 return(pembilang*A.penyebut>penyebut*A.pembilang);
48 }
49 //operator Unary - ----> A = - A
50 public void negasi(){
51 pembilang = - pembilang;
52 }
53 //operator +=
54 public void unaryplus(Rasional13 A){
55 pembilang =pembilang*A.penyebut + penyebut*A.pembilang;
56 penyebut*=A.penyebut;
57 }
58 //operator *=
59 public void unaryperkalian(Rasional13 A){
60 pembilang*=A.pembilang;
61 penyebut*=A.penyebut;
62 }
63 //operator *
64 public void perkalian(Rasional13 A){
65 pembilang=pembilang*A.pembilang;
66 penyebut=A.penyebut*penyebut;
67 }
Page 4
68 //operator pembagian (/) akan tetapi pembagian pecahan
itu harus dirubah keperkalian dengan 69 //dengan cara mengubah posisi pembilang jadi penyebut dan
posisi penyebut jadi pembilang 70 public void pembagian(Rasional13 A){
71 penyebut=penyebut*A.pembilang;
72 pembilang=pembilang * A.penyebut;
73 }
74 //operator -=
75 public void unaryminus(Rasional13 A){
76 pembilang =pembilang*A.penyebut - penyebut*A.pembilang;
77 penyebut*=A.penyebut;
78 }
79 //operator <
80 public boolean kurang(Rasional13 A){
81 double hasil =(double)pembilang/(double)penyebut;
82 double
hasil1=(double)A.pembilang/(double)A.penyebut; 83 return hasil<hasil1;
84 }
85 public void cetak(){
86
JOptionPane.showMessageDialog(null,pembilang+"/"+penyebut); 87 System.out.println(pembilang+"/"+ penyebut);
88 }
89
90 public int getPembilang() {
91 return pembilang;
92 }
93
94 public int getPenyebut() {
95 return penyebut;
96 }
97
98 public void setPembilang(int pembilang) {
99 this.pembilang = pembilang;
100 }
101
102 public void setPenyebut(int penyebut) {
103 this.penyebut = penyebut;
104 }
Page 5
105
106
107 }
C.Pembahasan
1
3
5
6
7-9
12-14
16-19
21-24
25-40
41-44
45-48
49-52
Nama package rasional12
Melakukan import dari javax swing
Deklarasi kelas dengan nama Rasional13
Deklarasi variabel global atau atribut dengan nama pembilang dan
penyebut
Deklarasi untuk penginisialisasi variabel global
Deklarasi construktor
Deklarasi method dengan nama judul dengan tipe void dimana
berparameter String,deklarasi Proses didalam method judul ini adalah
untuk mencetak header judul program
Deklarasi method dengan nama isRasional dengan tipe boolean
berguna untuk mengetahui bilangan rasional atau tidak dengan
pemgembalian nilai penyebut tidak sama dengan 0 berarti suatu
pecahan yang penyebutnya tidak sama dengan nol adalah rasional
Deklarasi method dengan nama sederhana untuk penyederhanaan
bilangan rasional dengan tipe void, Deklarasi variabel dengan nama
temp,A,B, Deklarasi kondisi jika penyebut = 0 maka ingat dimethod
sebelumnya bahwa bilangan rasional penyebut tidak boleh =0, Proses
A = ini kondisi apakah pembilang kurang dari penyebut jikan iya maka
A = penyebut
Proses B = sama dengan proses A akan tetapi jika iya maka B sebagai
pembilang
Kemudian masuk kedalam perulangan while dimana B tidak sama
dengan 0 dimana jika iya maka temp menyimpan sisa hasil bagi dari A
dan B misal 6%3 adalah 0,setelah itu nilai A = B berarti A = 3
kemudian B= temp berarti B=0 perulangan selesai kemudian masuk
kedalam operasi pembilang/=A berarti 3/3=A kemudian penyebut /=A
maka 6/3=A ,jadi nilai dari pembilang sekarang sama dengan 1 lalu
penyebut 2
Deklarasi method dengan nama Cast dengan tipe double, Deklarasi
proses dengan return nilai dari kondisi apakah penyebut sama dengan
0.0 kalau tidak ubah pecahan tersebut kedalam double
Deklarasi method dengan nama moreThan untuk operator(>),Dengan
tipe boolean dimana akan mereturn nilai true /false operasi dari
(pembilang*A.penyebut>penyebut*A.pembilang);
Deklarasi method dengan nama negasi dengan tipe void, Deklarasi
Page 6
53-57
58-62
63-67
70-73
74-78
79-84
85-88
90-92
94-96
98-
100
102-
104
prosses negasi dari pembilang.
Deklarasi method dengan nama unaryplus dengan tipe void
berparameter Rasional13 untuk menangkap nilai dari R2, kemudian
Deklarasi proses dari operasi operator += .
Deklarasi method dengan nama unaryperkalian bertipe void dengan
parameter Rasional13 A dimana parameter ini digunakan untuk
menangkap nilai dari R2,kemudian deklarasi proses operator *=.
Deklarasi method dengan nama perkalian bertipe void dengan
parameter Rasional13 A dimana parameter ini digunakan untuk
menangkap nilai dari R2,kemudian deklarasi proses operator *.
Deklarasi method dengan nama pembagian bertipe void dengan
parameter Rasional13 A dimana parameter ini digunakan untuk
menangkap nilai dari R2,kemudian deklarasi proses operator *.
Deklarasi method dengan nama unaryminus bertipe void dengan
parameter Rasional13 A dimana parameter ini digunakan untuk
menangkap nilai dari R2,kemudian deklarasi proses operator -=.
Deklarasi method dengan nama kurang bertipe int dengan parameter
Rasional13 A dimana parameter ini digunakan untuk menangkap nilai
dari R2,kemudian deklarasi proses operator <.
Deklarasi method dengan nama cetak bertipe void dimana terdapat
sintak untuk menampilkan kotak dialog dan gunanya method ini untuk
menampilkan pecahan.
Method dengan nama getPembilang bertipe int dimana mengembalikan
nilai pembilang
Method dengan nama getPenyebut bertipe int dimana mengembalikan
nilai penyebut.
Method bertipe void berparameter int pembilang dengan nama
setPembilang untuk merubah nilai pembilang
Method bertipe void berparameter int pembilang dengan nama
setPembilang untuk merubah nilai pembilang
Lanjutan Sourcode untuk method main
1 package rasional12;
2
3 import java.util.Scanner;
4 import javax.swing.JOptionPane;
5
Page 7
6 public class Rasional13Tes {
7
8 public static void main(String[] args) {
9 Rasional13 R1 = new Rasional13(1,2);
10 Rasional13 R2 = new Rasional13(1, 3);
11 int pilihan;
12 JOptionPane.showMessageDialog(null,"Selamat Datang
di Operasi Pecahan ^_^"); 13 JOptionPane.showConfirmDialog(null,"Lanjutkan ^_^");
14 do {
15 R1.judul("Selamat Datang di Operasi pecahan");
16 System.out.println("1.Menampilkan Bilangan
rasional"); 17 System.out.println("2.Menampilkan bilangan
pecahan "); 18 System.out.println("3.Operator (>)");
19 System.out.println("4.cast");
20 System.out.println("5.Negasi");
21 System.out.println("6.Operator (+=)");
22 System.out.println("7.Operator (<)");
23 System.out.println("8.Operator (*)");
24 System.out.println("9.Operator (/)");
25 System.out.println("10.Operator (-=)");
26 System.out.println("11.Operator (*=)");
27 pilihan
=Integer.parseInt(JOptionPane.showInputDialog("Masukan
pilihan menu anda :")); 28 switch (pilihan) {
29 case 1:
30 JOptionPane.showMessageDialog(null,
"R1.isRasional : " + R1.isRasional()); 31 JOptionPane.showMessageDialog(null,
"R2.isRasional : " + R2.isRasional()); 32 System.out.println("R1.isRasional : " +
R1.isRasional()); 33 System.out.println("R1.isRasional : " +
R2.isRasional()); 34 break;
35 case 2:
36 JOptionPane.showMessageDialog(null,
"Bilangan Pecahan peratama"); 37 System.out.println("R1 : ");
38 R1.cetak();
39 JOptionPane.showMessageDialog(null,
"Bilangan Pecahan kedua"); 40 System.out.println("R2 : ");
41 R2.cetak();
Page 8
42 R1.sederhana();
43 R2.sederhana();
44 break;
45 case 3:
46 JOptionPane.showMessageDialog(null,
"R1>R2" + R1.moreThan(R2)); 47 System.out.println("R1> R2" +
R1.moreThan(R2)); 48 System.out.println();
49 break;
50 case 4:
51
JOptionPane.showMessageDialog(null,"\nsetelah dilakukan Cast
double menjadi : \n "+R1.Cast()+"\n"+R2.Cast());
52 System.out.println("setelah dilakukan
Cast double menjadi : "); 53 System.out.println("R1 : " + R1.Cast());
54 System.out.println("R1 : " + R2.Cast());
55 System.out.println();
56 break;
57 case 5:
58 R1.negasi();
59 System.out.println(" (-R1)");
60 R1.cetak();
61 System.out.println();
62 break;
63 case 6:
64 R1.unaryplus(R2);
65
JOptionPane.showMessageDialog(null,"Hasil dari R1 += R2"); 66 System.out.println("Nilai dari 'R1 +=R2'
: "); 67 R1.cetak();
68 System.out.println();
69 break;
70 case 7:
71 R1.setPembilang(1);
72 R1.negasi();
73 R1.setPenyebut(2);
74 JOptionPane.showMessageDialog(null,
"R1<R2" + R1.kurang(R2)); 75 System.out.println("R1 < R2" +
R1.kurang(R2)); 76 System.out.println();
77 break;
78 case 8:
Page 9
79 R1.setPembilang(1);
80 R1.negasi();
81 R1.setPenyebut(2);
82
JOptionPane.showMessageDialog(null,"Nilai dari R2 * R2"); 83 System.out.println("Nilai dari R2 *
R1"); 84 R1.perkalian(R2);
85 R1.cetak();
86 System.out.println();
87 break;
88 case 9:
89 R1.setPenyebut(2);
90 R1.setPembilang(1);
91 R1.negasi();
92
JOptionPane.showMessageDialog(null,"Nilai dari R1/R2"); 93 System.out.println("Nilai dari R1/R2");
94 R1.pembagian(R2);
95 R1.cetak();
96 System.out.println();
97 break;
98 case 10:
99 R1.setPembilang(1);
100 R1.negasi();
101 R1.setPenyebut(2);
102 R1.unaryminus(R2);
103
JOptionPane.showMessageDialog(null,"Nilai dari 'R1-=R2 '"); 104 System.out.println("Nilai dari 'R1 -=R2'
: "); 105 R1.cetak();
106 System.out.println();
107 break;
108 case 11:
109 R1.setPembilang(1);
110 R1.negasi();
111 R1.setPenyebut(2);
112 R1.unaryperkalian(R2);
113
JOptionPane.showMessageDialog(null,"Nilai dari R1*=R2"); 114 System.out.println("Nilai dari 'R1 *=R2'
: "); 115 R1.cetak();
Page 10
116 System.out.println();
117 break;
118 default:
119
JOptionPane.showMessageDialog(null,"Operasi Pecahan sudah
selesai ^_^ ");
120 System.out.println("Selesai");
121 }
122 } while (pilihan < 12);
123 }
124
125 }
Lanjutan pembahasan untuk yang dimethod main
1
6
8
9
10
11
Kelas lanjutan dari package rasional12
Dengan nama kelas Rasional13Tes
Deklarasi method main untuk eksekusi kelas Rasional13
Deklarasi penciptaan objek R1 sebagi pecahan 1 dengan nilai(1,2)
Deklarasi penciptaan objek R2 sebagai pecahan 2 dengan nilai(1,3)
Deklarasi valiabel pilihan
ini adalah pembukaan program atau
kata sambutan dalam yang dijumpai pada saat pertama kali run file pada
baris 12
Kemudian muncul kotak pesan untuk
konfirmasi lanjutan dan ini klik yes pada
baris 13
kemudian akan muncul pesan masukkan menu yang ingin tampilkan
,cacatan dimana nomor dari menu harus sesuai dengan urutan agar inputan
sesuai,pada baris 27
Page 11
ini adalah outputnya pilihan menu 1 dan
case pertama sintak pada baris 29 - 34
ini juga output pilihan menu 1 dan case
pertama ,sintak pada baris 29-34
ini hasil output case 2 pilihan menu 2
,dengan sintak pada baris 35-44
nilai pecahan pertama
Page 12
tampilan pecahan kedua hasil dari baris
35-44
nilai dari pecahan kedua
case ketiga menampilkan operator (>)
hasil output pada baris 45 - 49
case keempat menampilkan cast hasil
dari baris 50 - 56
case kelima menampilkan negasi
dengan hasil dari baris 57 - 62
case keenam menampilkan operasi
unaryplus pada baris 63 -69
Page 13
Hasil dari case keenam
Case ketujuh menampilkan hasil dari
operator( < )pada baris 70 -77
Case delapan menampilkan hasil dari
operator (*) 78 -87
case kesembilan untuk menampilkan
operator (/) hasil dari baris 88-97
case kesepuluh menampilkan operator
unaryminus hasil dari baris 98-107
Page 14
case kesebelas menampilkan hasil dari
operator (=*) hasil dari baris 108-117
pesan ini akan muncul pada saat nomor
pemilihan tidak sesuai pada perulangan
switch case 118-120
D.Screen Shoot
Page 20
Kesimpulan
1. Pengertian Contruktor adalah Constructor merupakan suatu method yang
akan memberikan nilai awal pada saat suatu objek dibuat. Pada saat
program dijalankan, constructor akan langsung memberikan nilai awal
pada saat perintah new, membuat suatu objek
2. Perbedaan contruktor dan method,kalau contruktor namanya harus sama
dengan nama kelas dimana tidak memiliki tipe data yang meyebabkan dia
memili nilai pengembalian maupun tipe void yang tidak mempunyai nilai
pengembalian,kalau method namanya tidak sama dengan kelasnya
mempunyai 2 tipe yaitu return ataupun void.
3. Method instan adalah suatu method yang kelasnya memiliki method
yang terkait dengan instan tertentu, saat method instan tersebut di
panggil maka dia akan mengakses data yang terdapat pada instan yang di
kaitkannya.
4. Dengan menggunakan keyword this . keyword ini digunakan untuk
mengakses klass instan / objek, keyword this diperlukan untuk
membedakan pengaksesan varuabel kelas dan method variabel yang
mempunyai nama yang sama.
Saran
Sebaiknya praktikum minggu depan kakak – kakak asistennya lebih banyak
memotivasi kita,biar kita semangat.