Laporan Constructor
Laporan Constructor
A. DEFINISI MASALAH
1. Soal 1
Susun program dengan menggunakan overloading function dengan ketentuan :
Terdapat method bernama overloadingMeth berparameter String dan integer,
dimana method tersebut mempunyai fungsi untuk merubah input teks menjadi
bilangan dan input bilanganmenjadi teks
Misal :
Input : overloadingMeth(71)
Output : tujuh puluh satu
Input : overloadingMeth(tiga puluh lima)
Output : 35
Range untuk input parameter adalah 0-100
2. Soal 2
Buatlah program dengan memanfaatkan overoading constructor dan
overloading method untuk membuat Sistem Informasi Penjualan Apotek.User
diharuskan untuk menginputkan nama,alamat dan pilihan daftar obat dan
harga yang dimiliki oleh sistem dan pengguna di haruskanuntuk memilih obat
yang diinginkan.Di akhir program terdapat output berupa total harga
yangharus dibayar oleh pengguna.
B. SOURCE CODE
Soal1
No1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package lap3;
import java.util.Scanner;
public class no1 {
static String terbilang[] = {"", "satu", "dua", "tiga",
"empat", "lima", "enam", "tujuh", "delapan",
"sembilan", "sepuluh", "sebelas"};
static String angka[] = {"", "1", "2", "3", "4", "5", "6",
"7", "8", "9", "10", "11"};
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
System.out.println("masukkan bilangan");
System.out.println(new
no1().overloadingMeth(in.nextInt()));
System.out.println("masukkan huruf");
System.out.println(new
no1().overloadingMeth(in.next()));
}
public static String overloadingMeth(int a) {
if (a == 0) {
return "nol";
}
if (a < 12) {
return terbilang[a];
} else if (a >= 12 && a <= 19) {
return terbilang[a % 10] + " belas";
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
Soal2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
TugasPrak_No2.java
package lap3;
import java.util.Scanner;
public class TugasPrak_No2 {
Scanner in = new Scanner(System.in);
public String nama, alamat;
int jumlahJenis;
int totalHarga;
int kodeObat[] = new int[5];
String obat[] = new String[5];
int harga[] = new int[10];
public TugasPrak_No2() {
nama = null;
alamat = null;
}
public TugasPrak_No2(String nama, String alamat) {
this.nama = nama;
this.alamat = alamat;
}
public void daftarObat() {
for (int i = 0; i < kodeObat.length; i++) {
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
kodeObat[i] = i;
}
obat[0] = "Paramex";
obat[1] = "Konidin";
obat[2] = "Kalpanax";
obat[3] = "Adem Sari";
obat[4] = "Calusol";
harga[0] = 15000;
harga[1] = 12000;
harga[2] = 20000;
harga[3] = 10500;
harga[4] = 18000;
System.out.printf("%.47s\n",
"===============================");
System.out.println("DAFTAR OBAT");
System.out.printf("%.47s\n",
"===============================");
System.out.printf("|%s| %-15s | %s |\n", "Kode", "Nama
Obat", "Harga");
for (int i = 0; i < kodeObat.length; i++) {
System.out.printf("| %-2d | %-15s | %d|\n",
kodeObat[i], obat[i], harga[i]);
}
System.out.printf("%.47s\n",
"================================");
}
public void inputDanOutput() {
System.out.println("Ingin memilih berapa jenis obat?:
");
jumlahJenis = in.nextInt();
int pilihan[] = new int[jumlahJenis];
int jumlah[] = new int[jumlahJenis];
int tagihan[] = new int[jumlahJenis];
for (int j = 0; j < jumlahJenis; j++) {
System.out.printf("Pilihan ke-%d: ", j + 1);
pilihan[j] = in.nextInt();
System.out.print("Jumlah: ");
jumlah[j] = in.nextInt();
tagihan[j] = harga[pilihan[j]] * jumlah[j];
}
System.out.println("");
System.out.println("STRUK PEMBAYARAN");
System.out.println("Nama: " + nama);
System.out.println("Alamat: " + alamat);
System.out.println("DAFTAR OBAT YANG DIBELI");
System.out.printf("%.47s\n",
"===================================");
System.out.printf("| %-15s | %s | %s |\n", "Nama Obat",
"Harga", "Total");
System.out.printf("%.47s\n",
"===================================");
for (int i = 0; i < jumlahJenis; i++) {
System.out.printf("| %-15s | %d | %d |\n",
obat[kodeObat[pilihan[i]]], harga[pilihan[i]], tagihan[i]);
totalHarga += tagihan[i];
}
System.out.printf("%.47s\n",
"===================================");
System.out.println("Total harga yang dibayar: " +
totalHarga);
}
}
68
69
70
TugasPrakMain_No2.java
package lap3;
import java.util.Scanner;
public class TugasPrakMain_No2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String nama, alamat, pesanLagi;
System.out.println("SISTEM INFORMASI APOTEK ABC");
System.out.print("Nama: ");
nama = in.nextLine();
System.out.print("Alamat: ");
alamat = in.nextLine();
TugasPrak_No2 a = new TugasPrak_No2(nama, alamat);
a.daftarObat();
a.inputDanOutput();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C. PEMBAHASAN
Soal 1
no1.java
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
Soal 2
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
TugasPrak_No2.java
Deklarasi package bernama lap3
Mengimport scanner pada library java
Deklarasi class bernama TugasPrak_No2
Instansiasi fungsi Scanner
Deklarasi variabel String nama,alamat
Deklarasi variabel int jumlahJenis
Deklarasi variabel int totalHarga;
Deklarasi array int kodeObat dengan panjang 5
Deklarasi array String obat dengan panjang 5
Deklarasi array int harga dengan panjang 10
Deklarasi konstruktor TugasPrak_No2 tanpa parameter
Menginisialisasi variabel nama=null
Menginisialisasi variabel alamat=null
Penutup konstruktor TugasPrak_No2
Deklarasi konstruktor TugasPrak_No2 berparameter String nama, String alamat
Memasukkan nilai variabel nama menuju variable kelas nama
Memasukkan nilai variabel alamat menuju variable kelas alamat
Penutup konstruktor TugasPrak_No2
Deklarasi method void bernama daftarObat()
Mengakses perulangan for dengan nilai awal int i = 0, i < panjang array kodeObat, i
increment +1
Menginisialisasi kodeObat [i]=i
Penutup method daftarObat
Menginisialisasi obat[0]="Paramex"
Menginisialisasi obat[1]="Konidin"
Menginisialisasi obat[2]="Kalpanax"
Menginisialisasi obat[3]="Adem Sari"
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
1
2
3
4
5
6
7
Menginisialisasi obat[4]="Calusol"
Menginisialisasi harga[0]=15000
Menginisialisasi harga[1]=12000
Menginisialisasi harga[2]=20000
Menginisialisasi harga[3]=10500
Menginisialisasi harga[4]=18000
Mencetak tanda ==================================
Mencetak "DAFTAR OBAT"
Mencetak tanda ================================
Mencetak tabel Kode","Nama Obat","Harga"
Mengakses perulangan for int i=0, i<panjang kodeObat, increment i++
Mencetak tabel kodeObat[i],obat[i],harga[i]
Akhir dari for
Mencetak tanda ===============================
Penutup method daftarObat
Deklarasi method inputDanOutput()
Mencetak "Ingin memilih berapa jenis obat?: "
Menjadikan variable jumlahJenis sebagai inputan scanner
Deklarasi array int pilihan dengan panjang jumlahJenis
Deklarasi array int jumlah dengan panjang jumlahJenis
Deklarasi array int tagihan[] dengan panjang jumlahJenis
Mengakses perulangan int j = 0, j < panjang jumlahJenis, increment j++
Mencetak "Pilihan ke-
Menginputkan scanner pada array pilihan[j]
Mencetak "Jumlah: "
Menginputkan scanner pada array jumlah[j]
Memasukkan hasil dari harga[pilihan[j]]*jumlah[j] menuju array tagihan[j]
Penutup method inputDanOutput
Membuat spasi satu baris
Mencetak "STRUK PEMBAYARAN"
Mencetak "Nama: "+nama
Mencetak "Alamat: "+alamat
Mencetak "DAFTAR OBAT YANG DIBELI"
Mencetak tanda =============================
Mencetak tabel Nama Obat","Harga","Total"
Mencetak tanda =============================
Mengakses perulangan for int i=0, i< panjang jumlahJenis, increment i++
Mencetak table obat[kodeObat[pilihan[i]]],harga[pilihan[i]],tagihan[i]
Menambah nilai totalHarga=totalHarga+tagihan[i ]
Akhir dari for
Mencetak tanda ===============================
Mencetak "Total harga yang dibayar :
Penutup method inputDanOutput
Akhir dari kelas
TugasPrakMain_No2.java
Deklarasi package bernama TugasPrakMain_No2
Mengimport scanner pada library java
Deklarasi class bernama TugasPrakMain_No2
Deklarasi main method
Instansiasi fungsi Scanner
Deklarasi variabel String nama,alamat,pesanLagi
Mencetak "SISTEM INFORMASI APOTEK ABC"
8
9
10
11
12
13
14
15
16
D. SCREENSHOT PROGRAM
1. Screenshot soal nomor 1
E. PRAKTIKUM
A.Overloading Method
1. Lakukan percobaan diatas dan benahi jika menemukan kesalahan!
Tidak terdapat kesalahan pada program
2. Jika pada baris 7, pada parameter double value dan double value2 di hapus dan di
gantimenjadi int a dan int b apa yang terjadi? Jelaskan!
Syntax akan menjadi error karena tipe data parameter pada baris ke-7 dengan baris
ke-3 akan menjadi sama persis. Hal ini tidak diperbolehkan karena antara method
overloading satu dengan lainnya tidak boleh mengandung tipe dari parameter yang
sama.
3. Rubah method pada baris ketujuh menjadi method bertipe void, dan lakukan juga
perubahan main method.
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
package Bab3_Overloading;
import java.util.Scanner;
public class Method_No1 {
public static void HitungLuas(int a,int b){
int nilai = a*b;
System.out.println("maka hasil luas : "+nilai);
}
public static void HitungLuas(double value,
value2){
double nilai = value* value2;
System.out.println("maka hasil luas : "+nilai);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("masukkan nilai integer 1 : ");
int integer1 = in.nextInt();
System.out.print("masukkan nilai integer 2 : ");
int integer2 = in.nextInt();
HitungLuas(integer1, integer2);
System.out.print("masukkan nilai double 1 : ");
double double1 = in.nextDouble();
System.out.print("masukkan nilai double 2 : ");
double double2 = in.nextDouble();
HitungLuas(double1,double2);
}
}
double
2
4
2
5
2
6
B. Overloading Constructor
1. Lakukan percobaan diatas dan benahi jika menemukan kesalahan!
Tidak terdapat kesalahan pada program
2. Pada class lingkaran Tambahkan constructor dengan parameter int tinggi, apa
yang terjadidan jelaskan!
Akan terjadi error karena constructor tersebut mempunyai tipe parameter yang
sama dengan constructor overloading lain. Sehingga program tidak bisa membaca
constructor manakah yang akan dieksekusi.
3. Pada class lingkaran tambahkan constrctor dengan tipe data String alas dan String
tinggi,kemudian tambahkan method untuk melakukan parsing atau perubahan
tipe data dariString menjadi integer. Setelah itu pada method main lakukan
instansiasi objek dengannama objek Lstring dengan memanggil constructor
bertipe data String. Jelaskan!
ConstructorMain_No3.java
1
2
3
4
5
6
7
8
package Bab3_Overloading;
public class ConstructorMain_No3{
public static void main(String[] args){
Constructor_No3 Lstring = new Constructor_No3("3","4");
Lstring.parsing();
Lstring.displayMessage();
}
}
Constructor_No3.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package Bab3_Overloading;
public class Constructor_No3{
String alas, tinggi;
int a,b;
public Constructor_No3(String alas,String tinggi){
this.alas = alas;
this.tinggi=tinggi;
}
public void parsing(){
a = Integer.parseInt(alas);
b = Integer.parseInt(tinggi);
}
public double hitungLuas(){
double hasil = a*b/2;
F. KESIMPULAN
Method overloading adalah mendefinisikan dua atau lebih method dengan nama yang
sama pada suatu kelas. Namun tipe data atau jumlah parameternya harus berbeda.
Yang diperbolehkan dalam method overloading: