Anda di halaman 1dari 33

KONSTRUKTOR

Java merupakan bahasa pemrograman beorientasikan objek (OOP), OOP digunakan untuk


mempermudah pengembangan program dengan cara mengikuti model yang telah ada di
kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, dalam
pemroraman java kita perlu membuat sebuah objek untuk mengembangkan aplikasi.

Salah satu materi yang harus kalian pahami dan pelajari pada bahasa OOP adalah
Konstruktor, konstruktor adalah fungsi atau method yang pertama kali dijalankan pada saat
sebuah objek pertama kali diciptakan, penamaan method pada konstruktor harus sama
dengan nama classnya.

Konstruktor pada umumnya digunakan untuk menginisialisasi dan memberikan nilai secara
langsung atau melalui parameter kepada sebuah objek pada saat objek pertama kali
diciptakan.

Untuk contoh yang pertama, kita akan membuat program sederhana menggunakan
konstruktor tampa parameter, pada program ini kita akan membuat beberpa variabel,
dimana pada variable tersebut sudah kita set nilainya, didalam konstruktor akan kita ubah
semua nilai pada variable tersebut.

Buat sbuah project baru dengan cara klik file-new project, maka akan tampil kotak dialog
baru di bawah ini :L
Pada Categories pilih java dan pada Project pilih Java Aplication, dan klik tombol next,
maka akan tampil kotak dialog di bawah ini :

Pad aproject name ketikan nama projext dengan nama latihan4, pada project location,
pastikan tersimpan di folder masing-masing, di sini saya akan simpan di D:\NOFRIADI\
SI3D, jiksa sudah klik tombol finish, maka kita akan di bawa ke de dalam source code
program,
Di bawah package latihan4 buat deklaraaso variable

String kelas="si3d";

int jumlah_mahasiswa=35;

setelah deklarasi variable buat sebuah konstruktor dimana nama konstruktor sama dengan
nama kelas,

public Latihgan4(){

kelas="belajar";

jumlah_mahasiswa=35;

Setelah itu di dalam main utama buat sebuah objek dari nama kelas, seperti dio bawah ini

Latihgan4 lat=new Latihgan4();

System.out.println(lat.kelas);

System.out.println(lat.jumlah_mahasiswa);
Untuk program lengkapnya perhatikan kode di bawh ini :

Disana terdapat 2 buah variable yang sudah kita set nilainya masing-masing, tapi didalam
kunstruktor kita ubah nilai pada variable, saat kita panggil kedua variable tersebut pada method
main, nilai yang akan keluar adalah nilai variable yang berada didalam konstruktor, bukan yang di
atasnya.

Parameter pada Konstruktor

Parameter merupakan nilai yang bisa kita oper pada fungsi, seperti konstruktor atau method,
parameter tersebut bisa kita gunakan jika nilai didalam fungsi tersebut ingin kita rubah, kita dapat
menembahkan beberapa parameter dalam satu fungsi. Perhatikan kode program di bawh ini :
package latihgan4;

public class Latihgan4 {

//Variable diluar Konstruktor

String kelas="si3d";

int jumlah_mahasiswa=35;

//Konstruktor dengan dua variabel

public Latihgan4(String kelas_si, int banyak_mahasiswa){

kelas=kelas_si;

jumlah_mahasiswa=banyak_mahasiswa;

public static void main(String[] args) {

// membuat objek 1

Latihgan4 lat=new Latihgan4("si3d",30);

// membuat objek 2

Latihgan4 lat2 = new Latihgan4("3d si",33);

//menampilkan nilai dari objek 1

System.out.println("===NILAI DARI OBJEK 1");

System.out.println(lat.kelas);

System.out.println(lat.jumlah_mahasiswa);

//menampilkan nilai dari objek 2

System.out.println("===NILAI DARI OBJEK 2");

System.out.println(lat2.kelas);

System.out.println(lat2.jumlah_mahasiswa);
}

INHERITANCE

Untuk mempelajari konsep pewarisan/inheritance pada java, kita akan bermain dengan
menggunakan 3 buah class sekaligus,  di ketiga class tersebut tertdapat 1 buah superclass (class
induk) dan 2 buah subclass (kelas anak). Inheritance merupakan sifat atau konsep pewarisan pada
java, dimana kita dapat mengakses sifat ataupun method dari class lain.

Untuk mengakses sifat atau objek dari class lain, kita harus menggunakan kata kunci extends pada
class anak/subclass, dengan menggunakan kata kuni extends, kita dapat mewarisi sifat-sifat dari
superclass yang dituju

Cara Menggunakan Konsep Inheritance pada Java

Pertama buatlah package (opsional) dan  3 buah class baru, berinama masing-masing class
tersebut, misalnya class kendaraan, mobil dan class motor, class kendaraan akan kita gunakan
sebagai superclass (class induk), class motor dan class mobil akan digunakan sebagai subclass
(class anak) dimana class motor dan mobil akan mewarisi sifat-sifat dari class kendaraan.
Buat sebuah project baru dengan cara klik menu file dan pilih new project, maka akan tampil
kotak dialog baru, pada Project Name isikan INHERITANCE, pada project location,, simpan pada
folder yang di inginkan, setelah itu klik tombol finish perhatikan gambar di bawah ini :
Buat sebuah package baru dengan cara klik kanan project yang sudah di buat pilih new-Java
Package, maka akan tampil kotak dialog baru, pada Package Name ketikan inheritance dan klik
tombol finish

pada gambar di atas yang ada dalam kotak merah adalah package yang sudah di buat, setelah itu
buat sebuah class baru dengan cara klik kanan package pilih new-Java Class, maka akan tampil
kotak dialog baru, perhatikan gambar di bawah ini :

Pada Class Name ketikan nama kelas dengan kendaraan, dan klik tombol finish
Setelah itu kita akan dibawa

Jika kita jalankan, program pada class tersebut tidak akan berjalan karena tidak ada method main,
pada tutorial ini kita tidak akan menambahkan method main pada class tersebut, method main
akan kita gunakan pada subclass class kita yaitu mobil dan motor, karena semua sifat pada class
kendaraan akan diakses dan dijalankan pada class mobil dan motor.

Selanjutnya buka class motor.java, untuk menggunakan konsep Inheritance, kita perlu
menggunakan kata kunci extends pada subclass tersebut dan untuk mengakses atribut-atributnya,
kita perlu membuat objek dari class motor terlebih dahulu. Seperti berikut ini:

Jiika sudah di jalankan coba jalankan, jika tidak ada masalah maka akan hasil seperti gambar di
bawah ini :
Kalian juga dapat menggunakn atribut yang sama pada class mobil.java, yang diwariskan dari class
kendaraan, pada class mobil kalian tinggal mengganti nilai-nilainya seperti berikut ini:

Contoh program pewarisan menghitung luas persegi dan balok

Buat sebuah project baru dengan cara klik file-new project, maka akan tampil kotak dialog
baru di bawah ini :
Pada Categories pilih java dan pada Project pilih Java Aplication, dan klik tombol next,
maka akan tampil kotak dialog baru, pada Project Name ketikan SistemPewarisan setelah
itu klik tombol finish, perhatikan gambar

di bawah ini :

Gambar di bawah ini adalah tampilan project yang sudah siap di buat

Baut sebuah class baru pada project dengan cara klik kanan package pada project, pilih new, dan
pilih java class, perhatikan gambar di bawah ini
Pada Class Name ketikan Persegi, setelah itu klik tombol finish

Setelah itu kita akan di bawa ke dalam source code program seperti gambar di bawah ini :

Langkah pertama yang harus di lakukan adalah mendeklarasikan variable yang di butuhkan dalam
menghitung luas persegi, seperti di bawah ini :
Sekarang kita akan mengenerate kode program dengan konsep getter and setter, dengna cara klik
kanan layar kerja pilih getter and setter, seperti gambar di bawah ini :

Setelah kita pilih getter and setter, maka akan tampil kotak dialog baru, centang variable panjang
dan lebar, setelah itu klik tombol generate, perhatikan gambar di bawah ini

Gambar di bawah ini merupakan tampilan layar kerja setelah generate variable panjang dan lebar
Parameter yang ada dalam method boleh di rubah seperti gambar dibawah ini, hal ini bertujuan
untuk membedakan parameter yang di gunakan

Buat sebuah method baru untuk menghitung luas persegi, dan ketikan kode program di bawah
ini :

Buat satu buah class lagi dengan nama balok, perhatikan gambar di bawah ini :
Di dalam class balok ini kita akan menghitung volume dari sebuah balok,dimana rumus volume
balok adalah v=panjang x lebar x tinggi. Namun untuk panjang dan lebar nilainya akan kita ambik
dari class persegi. Supaya variable panjang yang ada di dalam class persegi bias di gunakan di
dalam class balok, maka kita harus membuat class balok turunan/ pewarisan dari class persegi.
Untuk membuat system pewarisan dalam sebuah class adalah dengan menggunakan kata kunci
extend. Adapun cara penulisan nya adalah sebagai berikut :

Class_awal extend class turunan

gambar di bawah ini merupakan class balok yang sudah di warisi dari class persegi

Karen class balok sudah di warisi dari class peresegi, maka di dalam class balok cukup membuat 1
buah variable aja yaitu variable tinggi, setelah itu generate kode programnya dengan cara
menggunakan getter and setter seperti pada class persegi, perhatikan gambar di bawah ini
GetPanjang() dan getLebar() merupakan sebuah method yang ada di class persegi dimana
masing-masingnya berisi variable panjang dan lebar

Selanjutnya pada file SistemPewarisan kita buat objek dari class persegi dan balok sehingga bisa
membarikan nila kepada masing-masing variable yang berada di masing-masing class. Perhatikan
gamabr di bawah ini :
Jika sudah siap, silahkan di jalankan, jika tidak ada masalah, maka hasilnya akan seperti di bawah
ini :
Untuk merubah nilai variable menjadi dinamis , maka bisa menggunakan salah satu alat baca
input, disini kita mencoba menggunakan showInputDialog,

ENKAPTULATION
package pertemuan6;

import java.util.Scanner;

public class Manusia {

void identitas(String NIK, String Nama, String JenisKelamin, int Umur){

System.out.println("Nama : " +Nama );

System.out.println("NIK :" +NIK);

System.out.println("Jenis Kelamin " +JenisKelamin);

System.out.println("Umur : " +Umur);

package pertemuan6;

public class Mahasiswa extends Manusia{

private double hasil;


void dataMahasiswa(String NIM, String Fakultas, String Jurusan){

System.out.println("NIM :" +NIM);

System.out.println("Fakultas :"+Fakultas);

System.out.println("Jurusan :" +Jurusan);

void nilaiMahasiswa(double Tugas1, double Tugas2, double Tugas3, double UTS, double
UAS){

hasil = ((Tugas1+Tugas2+Tugas3)/3) * 0.4 + UTS *0.3 + UAS * 0.3 ;

System.out.println("Nilai Akhir :" +hasil);

package pertemuan6;
import java.util.Scanner;

public class Aksi {

public static void main(String[] args) {

String NIK,Nama,JenisKelamin;

int Umur;

String NIM,Fakultas,Jurusan;

double Tugas1,Tugas2,Tugas3;

double UTS, UAS;

double hasil;

Mahasiswa MHS = new Mahasiswa();

Scanner SC = new Scanner(System.in);

System.out.println("Masukkan NIK :");

NIK = SC.nextLine();

System.out.print("Masukkan Nama Anda :");

Nama = SC.nextLine();

System.out.println("Masukkan Jenis Kelamin : ");


JenisKelamin = SC.nextLine();

System.out.println("Masukkan Umur :");

Umur = SC.nextInt();

SC.nextLine();

System.out.println("Masukkan NIM :");

NIM = SC.nextLine();

System.out.println("Masukkan Fakultas :");

Fakultas = SC.nextLine();

System.out.println("Masukkan Jurusan :");

Jurusan = SC.nextLine();

System.out.println("Masukkan TGS1");

Tugas1 = SC.nextDouble();

System.out.println("Masukkan TGS2");

Tugas2 = SC.nextDouble();

System.out.println("Masukkan TGS3");

Tugas3 = SC.nextDouble();

System.out.println("Masukkan UTS :");

UTS = SC.nextDouble();

System.out.println("Masukkan UAS :");


UAS = SC.nextDouble();

MHS.identitas(NIK, Nama, JenisKelamin, Umur);

MHS.dataMahasiswa(NIM, Fakultas, Jurusan);

MHS.nilaiMahasiswa(Tugas1, Tugas2, Tugas3, UTS, UAS);

Polimorfisme

Poly artinya banyak, morfisme artinya bentuk. Polimorfisme (bahasa inggris olymorphism)
adalah sebuah prinsip dalam biologi di mana oraganisme atau spesias dapat memiliki
banyak bentuk atau tahapan (stages). Prinsip ini juga diadopsi pada pemrograman
berorientasikan objek. Sehingga kita dapat definisikan sebagai berikut:

Polimorfisme dalam OOP adalah sebuah prinsip di mana class dapat memiliki banyak
“bentuk” method yang berbeda-beda meskipun namanya sama. “Bentuk” di sini dapat kita
artikan: isinya berbeda, parameternya berbeda, dan tipe datanya berbeda

Polimorfisme pada Java ada dua macam:

1. Static Polymorphism (Polimorfisme statis);


2. Dynamic Polymorphism (Polimorfisme dinamis).

Beda dari keduanya terletak pada cara membuat polimorfismenya. Polimorfisme statis
menggunakan method overloading sedangkan polimorfisme dinamis menggunakan
method overriding. Karena kamu baru mendengar kedua hal ini, mari kita bahas
perbedaanya lebih detail:

Perbedaan Method Overloading dengan Method Overriding

Method overloading terjadi pada sebuah class yang memiliki nama method yang sama
tapi memiliki parameter dan tipe data yang berbeda.

Kata kunci yang perlu kamu ingat:


“Dalam satu class”

“Nama method sama”

“Tipe data dan parameter beda”

Itulah method Overloading.

Contohnya giaman?

Contohnya misalkan kita memiliki class Lingkaran.java. Pada class ini terdapat method
luas(). Nah, si method luas() ini bisa saja memiliki parameter yang berbeda.

Misalnya kita ingin menghitung luas berdasarkan jari-jari (radius) atau diameter.

Maka kita dapat membuat class-nya seperti ini:

class Lingkaran {

// method menghitung luas dengan jari-jari


float luas(float r){
return (float) (Math.PI * r * r);
}

// method menghitung luas dengan diameter


double luas(double d){
return (double) (1/4 * Math.PI * d);
}

Coba perhatikan , Class Lingkaran memiliki dua method yang namanya sama, yakni
luas(). Tapi parameter dan tipe datanya berbeda.. dan juga isi atau rumus di dalamnya
berbeda. Inilah yang disebut polimorfisme satatis.

Lalu Polimorfisme yang dinamis giamana?


Plimorfisme dinamis biasanya terjadi saat kita menggunakan pewarisan (inheritance) dan
implementasi interface. Seperti yang sudah kita ketahui:

Pada pewarisan, kita bisa mewariskan atribut dan method dari class induk ke class anak.

Class anak akan memiliki nama method yang sama dengan class induk dan anak yang
lainnya.

Nah! Di sinilah akan terjadi polimorfisme.

Class anak akan memiliki nama method yang sama, tapi nanti isi dan parameternya bisa
berbeda dari class induk.

Karena si class anak melakukan method overriding (mendindih method) yang


diwariskannya.

Polimofirme dinamis juga bisa terjadi saat menggunakan interface


Oh iya, buat kamu yang belum tahu interface..

Interface adalah class kosong yang berisi nama-nama method yang nanti harus
diimplementasikan pada class lain. Dalam pengimplementasiannya bisa saja tiap-tiap class
akan mengimplementasikan secara berbeda dengan nama method yang sama.

Nah! kelihatan kan bedanya?

Jadi polimorfisme statis hanya terjadi dalam satu class saja.

Sedangkan polimorfisme dinamis terjadi pada saat ada hubungan dengan class lain seperti
inheritance.

Contoh Program Polimorfisme Dinamis

Contoh program polimorfisme dinamis sebenarnya sudah pernah kita buat pada
pembahasan inheritance.

Kita coba bahas lagi ya…


Perhatikan diagram ini:

Pada diagram tersebut, terdapat class BanungDatar yang memiliki tiga subclass, yaitu:
Persegi, Lingkaran, dan Segitiga.

Setiap class memiliki method yang sama yaitu luas() dan keliling(). Akan tetapi
method-method ini memiliki isi rumus yang berbeda.

Mari kita coba buat dalam progarm Java…

Buatlah proyek baru di Netbeans

1. Klik File –New project, maka akan tampil kotak dialog baru
2. pada Categories pastika di pilih java dan pada Projects, pilih Java Aplication dan
klik tombol Next maka akan tampil kotak dialog baru, pada Project Name ketikan
nama projectnya dengan nama Poliporisme, pada Project Location, tenteukan
tempat penyimpanan project yang di buat. Dan hilangkan tanda centang pada Creat
Main Class, setelah itu klik tombol finish

3. Jika sudah selesai, maka akan tercipta sebuah project seperti gambar di bawah ini :

4. Buat sebuah package baru dengan cara klik kanan project yang sudah ada pilih new
dan pilih Java Package
5. Pada Package Name ketikan nama packagenya dengan nama bangun_datar dan klik
tombol finish

6. Buat class baru di dalam package bangundatar. Caranya, klik kanan lalu pilih
New Java Class, pad Class Name ketikan BangunDatar, dan klik tombol finish

7. Ketikan kode program di bawah ini :


8. Buat class baru dengan dengan nama persegi, dan ketika kode program di bawah
ini :

9. Buat class baru dengan nama segitiga, dan ketikan kode program di bawha ini:
10. Buat class baru dengan nama lingkaran dan ketikan kode program di bawah ini

11. Terakhir, buat class Main dengan isi sebagai berikut:

Anda mungkin juga menyukai