Fakultas : TEKNOLOGI INDUSTRI Pertemuan Ke : 8 Jurusan/Prodi : TEKNIK INFORMATIKA/TEKNIK INFORMATIKA Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : PEMROGRAMAN BERORIENTASI OBJEK Mulai Berlaku : 2017-2
KONSTRUKTOR DAN OVERLOADING
Dosen:
Erma Susanti, S.Kom, M.Cs
Versi : 1 Revisi : Halaman : 1 Dari : 12
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Mendefinisikan konstruktor
• Menerapkan konsep overloading
2
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12
3
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1) Pengertian constructor
2) Cara mengoverloading constructor
3) Melakukan inheritance, mendefinisikan subclass
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12
1. Konstruktor
• Konstruktor Method atau biasa disebut konstruktor adalah method yang dapat digunakan untuk memberikan nilai awal saat objek diciptakan
• Method ini akan dipanggil secara otomatis oleh Java ketika new dipakai untuk menciptakan instan kelas
• Konstruktor mempunyai sifat: • Namanya sama dengan nama kelas
• Tidak memiliki nilai balik (termasuk tidak boleh ada kata-kunci void)
4
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12
Contoh Konstruktor
5
class Mobil {
//variabel
private String warna;
private int tahunProduksi;
//konstruktor
public Mobil(String warna, int tahunProduksi) {
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
//method
public void info() {
System.out.println(“Warna : “ + this.warna);
System.out.println(“Tahun: “ + this.tahunProduksi);
}
}
public class Konstruktor {
public static void main(String [] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
}
}
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12
2. Overloading terhadap Konstruktor
• Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu
• Pembeda antara satu konstruktor dengan konstruktor yang lain berupa jumlah parameter atau tipe parameter
6
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12
Contoh Overloading Konstruktor
7
class Mobil {
//variabel
private String warna;
private int tahunProduksi;
//konstruktor pertama
public Mobil(String warna, int tahunProduksi) {
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
//konstruktor kedua
public Mobil() {
}
//method
public void info() {
System.out.println(“Warna : “ + this.warna);
System.out.println(“Tahun: “ + this.tahunProduksi);
}
}
public class Konstruktor {
public static void main(String [] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
Mobil mobilmu = new Mobil();
mobilmu.info();
}
}
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12
3. Overloading terhadap Method • Overloading juga dapat dikenali pada method non-konstruktor
class Matematika {
static public double kuadrat (double nilai) {
return nilai * nilai;
}
static public int kuadrat (int nilai) {
return nilai * nilai;
}
static public double kuadrat (String nilai) {
double bilangan;
bilangan = Double.valueOf(nilai).doubleValue();
return bilangan * bilangan;
}
}
public class OverloadingMethod {
public static void main(String [] args) {
System.out.println(Matematika.kuadrat(25.0));
System.out.println(Matematika.kuadrat(25));
System.out.println(Matematika.kuadrat(“25”));
}
}
625.0 625 625.0
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : 8 Dari : 12
Variabel Kelas • Variabel class adalah variabel yang berlaku tidak terbatas hanya pada objek tetapi
pada seluruh objek
• Variabel ini didefinisikan dengan menggunakan kata kunci static class Bilangan{
static int pencacah = 0;
private int nilai;
public Bilangan(int nilai) {
this.nilai = nilai;
this.pencacah++;
}
public void info() {
System.out.println(“Nilai : “ + this.nilai);
System.out.println(“Pencacah : “ + this.pencacah);
System.out.println(“ “);
}
}
public class VariabelKelas {
public static void main (String [] args) {
Bilangan b1 = new Bilangan(55);
b1.info();
Bilangan b2 = new Bilangan(75);
b2.info();
}
}
Nilai : 55 Pencacah : 1 Nilai : 75 Pencacah : 2
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : 9 Dari : 12
10
Rangkuman
• Constructor adalah metod khusus dengan nama sama dengan nama class dan bertugas membuat objek
• Constructor dapat di overloading dengan mendefinisikan beberapa nama constructor
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12
11
Latihan
1. Buatlah definisi class Motor, yang memiliki data : nama (String) default “NoName”, dan status (boolean) default= false
memiliki metod : tampilkan() : mencetak keterangan nama keadaan motor (status mati /hidup)
memiliki metod : nyalakan() :berfungsi men-set status dari mati (false) menjadi hidup (true). Jika status sudah hidup dan dipanggil metod nyalakan(), maka akan ada komentar “Mesin sudah hidup”, jika mesin belum hidup dan meetod nyalakan() dipanggil maka status diubah menjadi true.
Definisikan Constructor dengan tiga macam
Motor()
Motor (boolean status) untujk mendifinisikan status
Motor (String nama) untuk mendefinisikan nama motor
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12
12
Latihan
2. Buatlah definisi class TesMotor , untuk membuat objek motor :
objek :motorku , nama motor HONDA kondisi mati, panggil metod tampilkan(), nama motor dedinisikan lewat constructor
objek motormu, nama motor YAMAHA , panggil metod nyalakan() dan tampilkan() , motor saat objek dibuat kondisi hidup (true) melalui construktor
objek motornya, nama motor SUZUKU , panggil metod nyalakan() dan tampilkan() , gunakan construktor default
Fakultas : Teknologi Industri Pertemuan Ke : 8 Jurusan/Prodi : Teknik Informatika / Teknik Informatika Handout Ke : 1 Kode Matakuliah : MIP1202 Jumlah Halaman : 12 Nama Matakuliah : Pemrograman Berorientasi Objek Mulai Berlaku : 2017-2
Versi : 1 Revisi : 0 Halaman : Dari : 12