Anda di halaman 1dari 13

LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA
BAB
NAMA
NIM
TANGGAL
ASISTEN

: OVERLOAD DAN OVERLOADING METHOD


: MOHAMAD LUTFI
: 155150207111028
: 18/03/2016
: - ULYA NUZULIR ROHMAH
-ARDIANSYAH SETIAJATI

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

} else if (a > 19 && a < 100) {


return terbilang[a / 10] + " puluh "
+ terbilang[a % 10];
} else if (a == 100) {
return "seratus";
}
return "";
}
public static int overloadingMeth(String b) {
if (b.equals("nol")) {
System.out.println("0");
}
if (b.equals("seratus")) {
System.out.println("100");
}
for (int i = 0; i < terbilang.length; i++) {
if (b.equals(terbilang[i])) {
System.out.println(angka[1]);
}
if (b.equals(terbilang[i] + " belas")) {
System.out.println("1" + angka[i]);
}
if (b.equals(terbilang[i] + " puluh")) {
System.out.println(angka[i] + "0");
}
for (int j = 0; j < terbilang.length; j++) {
if (b.equals(terbilang[i] + " puluh " +
terbilang[j])) {
System.out.println(angka[i] + angka[j]);
}
}
}
return 100;
}
}

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

Deklarasi package dengan lap3


Mengimport scanner pada library java
Deklarasi class bernama no1
Deklarasi
array
String
bernama
terbilang
[]
berisikan
nilai
{"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh",
"sebelas"}
Deklarasi
array
String
bernama
angka
[]
berisikan
nilai
{"","1","2","3","4","5","6","7","8","9","10","11"}
Deklarasi main method
Instansiasi fungsi Scanner
Mencetak masukkan bilangan
Mencetak nilai dari method overloading overloadingMeth
Mencetkan masukkan teks
Mencetak nilai teks dari method overloading overloadingMeth
Akhir main method
Deklarasi method String bernama overloadingMeth berparameter int a
Menyeleksi jika a==0
Mengembalikan nilai "nol"
Akhir if
Menyeleksi jika (a <12)
mengembalikan nilai array terbilang[a]
Menyeleksi jika a>=12 && a<=19
mengembalikan nilai terbilang[a%10]+" belas"
Menyeleksi jika a>19&&a<100

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

mengembalikan nilai terbilang[a/10]+" puluh "+ terbilang[a%10]


Menyeleksi jika a==100
mengembalikan nilai "seratus"
akhir else if
Selain itu maka mengembalikan nilai kosong
Akhir method overloadingMeth int
Deklarasi method void bernama overloadingMeth berparameter String b
Menyeleksi jika b adalah ("nol")
Mencetak "0"
Akhir if
Menyeleksi jika b adalah "seratus"
Mencetak "100"
Akhir if .
Mengeksekusi perulangan for dengan nilai awal int i = 0, i < panjang terbilang,
increment i++
Menyeleksi jika b adalah terbilang[i] maka
Mencetak angka[1]
Akhir for
Menyeleksi jika b adalah terbilang[i]+" belas"
mencetak "1"+angka[i]
akhir if
Menyeleksi jika b adalah terbilang[i]+" puluh"
mencetak angka[i]+"0"
Akhir if
Mengeksekusi perulangan for dengan nilai awal int j = 0, j < panjang terbilang;
increment j++
Menyeleksi jika b adalah terbilang[i]+" puluh "+terbilang[j]
mencetak angka[i]+angka [j]
Akhir if
Akhir for
Akhir for
Mengembalikan nilai 100
Akhir mothod overloadingMeth
Akhir class

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

Mencetak "Nama: "


Menjadikan variabel nama sebagai inputan scanner
Mencetak "Alamat: "
Menjadikan variabel alamat sebagai inputan scanner
Menginstansiasi objek a dari kelas TugasPrak_No2 berparameter (nama,alamat)
Memanggil objek method a.daftarObat()
Memanggil objek method a.inputDanOutput()
Penutp method main
Penutup class

D. SCREENSHOT PROGRAM
1. Screenshot soal nomor 1

2. Screenshot soal nomor 2

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:

1. Method overloading boleh memiliki return type yang berbeda.


2. Boleh mempunyai modifier yang berbeda.
Aturan pada method overloading:
1. Overloading method bisa diletakkan pada kelas yang sama atau pada sub-class.
2. Untuk memanggil method overloading pada Java, harus memakai type data atau
jumlah dari parameter yang berbeda untuk membedakan method overloading manakah
yang dipanggil.
3. Method overloading bisa diletakkan pada sub-class, dengan nama sama namun dengan
parameter yang berbeda.
4. Parameter-parameter tersebut bisa dibedakan pada tipe dan jumlah type atau keduanya.
5. Boleh memiliki return type yang sama atau berbeda.
Cara mendeklarasikan overloading method adalah:
modifier returnType namaMethod(Parameter) {
Contoh:
public void draw (int i) {
...
}
public void draw(double f) {
...
}
public void draw(int i, double f) {
...
}

Anda mungkin juga menyukai