Bab Iv
Bab Iv
55
56
String ID,nama,divisi;
Double gaji;
}
Melalui kode di atas, berarti kita telah mendefinisikan sebuah tipe
data baru dengan nama Karyawan. Penting untuk diingat bahwa
pendefinisian kelas hanya akan membuat sebuah pola atau template, bukan
membuat objek. Objek aktual dari kelas tersebut harus dibuat sendiri
melalui kode berikut:
//membuat objek karyawan dengan nama Aurel
Karyawan Aurel = new Karyawan();
Di sini, Karyawan adalah kelas dan Aurel adalah objek atau instance
dari kelas Karyawan. Melalui objek Aurel, kita dapat mengakses dan
memanipulasi data- data yang terdapat pada kelas Karyawan, dengan cara
menggunakan operator titik (.), seperti yang tampak pada kode di bawah
ini.
Aurel.ID = "K001";
Aurel.nama = "Aurel Dian";
Aurel.divisi = "Marketing";
Aurel.gaji= "2500000";
Kode tersebut digunakan untuk mengisikan nilai ke dalam data ID,
nama, divisi dan gaji yang dimiliki oleh objek Aurel masing-masing
dengan nilai K001, Aurelia Dian, Marketing dan 2500000 Untuk lebih
jelasnya, coba perhatikan contoh kode program lengkap berikut ini yang
akan menunjukkan penggunaan kelas Karyawan di atas.
4.2.7 Method
Dalam Java, kelas berisi kumpulan data dan method, yang
selanjutnya akan saling bekerja sama dalam melakukan tugastugas spesifik
tertentu sesuai dengan perilaku objek yang dimodelkan.
Berikut ini bentuk umum dari pembuatan method di dalam kelas.
tipe namaMethod(daftar-parameter) {
//kode yang akan dituliskan
}
Pada bentuk umum di atas, tipe adalah tipe data yang akan
dikembalikan oleh method. Sebagai catatan, dalam Java method terbagi
menjadi dua: void dan non-void. Method void adalah method yang tidak
mengembalikan nilai, sedangkan method non-void adalah method yang
mengembalikan nilai. Jika method yang kita buat ditujukan untuk
mengembalikan suatu nilai tertentu, maka di dalam method tersebut harus
terdapat statemeny return, yang diikuti dengan nilai yang akan
dikembalikan, seperti berikut:
return nilaiKembalian;
nilaiKsembalian dapat berupa konstanta maupun variabel, yang
digunakan untuk menandakan nilai yang akan dikembalikan oleh method.
4.2.10 Constructor
Constructor adalah method khusus yang didefinisikan di dalam kelas
dan akan dipanggil secara otomatis tiap kali terjadi instansiasi objek.
Constructor itu sendiri berfungsi untuk melakukan inisialisasi nilai
terhadap data-data yang terdapat pada kelas yang bersangkutan. Jika kita
tidak mendefinisikan constructor pada kelas yang kita buat, maka secara
otomatis Java akan membuatkannya untuk kita. Constructor semacam ini
dinamakan dengan default constructor. Default constructor akan
menginisialisasi semua data yang ada dengan nilai nol. Sama halnya
seperti method, constructor juga dapat memiliki parameter dan juga dapat
di-overload.
this.divisi = Div;
this.gaji = Gaji;
}
Untuk kasus di atas, kehadiran kata kunci this memang justru akan
sedikit merepotkan dan bias dikatakan tidak perlu. Meskipun demikian,
dalam konteks lain, penggunaan kata kunci this ini justru diharuskan.
Seperti yang telah kita ketahui bersama, Java tidak mengizinkan kita
untuk mendeklarasikan variabel dengan nama sama di dalam satu blok
tertentu. Di sisi lain, Java memperbolehkan kita untuk mendeklarasikan
nama parameter yang sama dengan nama data yang terdapat di dalam kelas
dengan resiko variabel yang digunakan sebagai parameter akan menimpa
nama data yang terdapat di dalam kelas bersangkutan. Untuk menghindari
proses penimpaan variabel ini, maka kita harus menggunakan kata kunci
this, seperti yang tampak pada kode berikut:
//constructor kelas Karyawan
Karyawan(String ID, String nama, String divisi, double
this.divisi = divisi;
this.gaji = gaji;
}
Di sini, this.ID, this.nama, this.divisi, dan this.gaji
menunjuk ke data ID, nama, divisi, dan gaji yang terdapat dalam
kelas Karyawan; bukan parameter yang terdapat pada constructor.
anggota kelas semacam ini, kita harus menjadikan data atau method
tersebut dengan sifat statis, yaitu dengan membubuhkan kata kunci static
pada awal deklarasi. Berikut ini contoh pendeklarasian sebuah data dan
method statis dalam suatu kelas.
….
//mendeklarasikan method statis
Static methodStatis1() {….}
….
}
Melalui cara ini, variabel dataStatis1 dan methodStatis1()
dapat dipanggil secara langsung tanpa harus membuat objek atau instance
dari kelas ContohDeklarasiStatik terlebih dahulu.
4.2.18 Abstraksi
Abstraksi adalah pengabstrakan atau penyembunyian kerumitan
suatu proses. Hal ini bertujuan untuk membuat kelas abstrak dimana kelas
lain dapat memanfaatkannya (extends) dengan cara menjadi subclass dari
kelas abstrak tersebut. Abstrak class digunakan untuk mendeklarasikan
karakteristik umum dari subclass. Abstract class tidak bisa diinstansiasi
sama halnya dengan kelas interface. Abstract class hanya bisa digunakan
sebagai superclass, tapi juga bisa diturunkan dari class abstract lainnya.
(Andy, 2014)
Aurel.divisi);
System.out.println("Gaji : " + Aurel.gaji);
}
}
b. Output
2. Latihan 2
a. Code Program
package karyawan;
}
b. Output
70
3. Latihan 3
a. Code Program
package karyawan;
public class Karyawan {
String ID, nama, divisi;
double gaji;
public static void main(String[] args) {
/*Instansiasi 2 objek referensi yang mengacu pada 1
objek karyawan */
Karyawan Karyawan001 = new Karyawan();
Karyawan Karyawan002 = Karyawan001;
//mengisi data Objek Karyawan melalui objek referensi
1
Karyawan001.nama = "Mischella";
Karyawan001.divisi = "HRD";
//mencetak data object karyawan yang di acu 2 objek
referensi
System.out.println("Data Karyawan001");
System.out.println("Nama : " + Karyawan001.nama);
System.out.println("Divisi : " + Karyawan001.divisi);
System.out.println(" ");
System.out.println("Data Karyawan002");
System.out.println("Nama : " + Karyawan002.nama);
System.out.println("Divisi : " + Karyawan002.divisi);
}
}
72
b. Output
4. Latihan 4
a. Code Program
package karyawan;
referensi
System.out.println(" ");
System.out.println("Setelah Perubahan
Referensi");
System.out.println(" ");
System.out.println("Data Karyawan001");
System.out.println("Nama : " +
Karyawan001.nama);
System.out.println("Divisi : " +
Karyawan001.divisi);
System.out.println(" ");
System.out.println("Data Karyawan002");
System.out.println("Nama : " +
Karyawan002.nama);
System.out.println("Divisi : " +
Karyawan002.divisi);
}
}
b. Output
c. Penjelasan
Program latihan 4 merupakan program pengaruh referensi
object. Pada program tersebut terdapat class Karyawan yang berisi
variabel ID, nama, divisi yang bertipe data string dan variabel
gaji yang bertipe data double. Lalu program akan instansiasi 2
object referensi yang mengacu pada 1 object Karyawan. Setelah itu
program akan mengisi data object Karyawan melalui object
referensi. Setelah itu program akan memindahkan memindakah
object referensi ke 2 untuk mengacu pada object baru. Kemudian
program akan mencetak data object setelah di referensi seperti pada
gambar 4.4.
5. Latihan 5
a. Code Program
package karyawan;
void cetakData() {
System.out.println("Data Karyawan ");
System.out.println("ID : " + ID);
System.out.println("Nama : " + nama);
System.out.println("Divisi : " + divisi);
System.out.println("Gaji : " + gaji);
}
}
package karyawan;
b. Output
6. Latihan 6
a. Code Program
package karyawan;
b. Output
7. Latihan 7
a. Code Program
package karyawan;
public class Karyawan {
String ID, nama, divisi;
80
double gaji;
void isiData(String kode, String Nama, String Div,
double Gaji) {
ID = kode;
nama = Nama;
divisi = Div;
gaji = Gaji;
}
void cetakData() {
System.out.println("Data Karyawan : ");
System.out.println("ID : " + ID);
System.out.println("Nama : " + nama);
System.out.println("Divisi : " + divisi);
System.out.println("Gaji : " + gaji);
}
double hitungSumbanganZakat() {
double zakat = gaji * 0.025;
return zakat;
}
}
package karyawan;
b. Output
8. Latihan 8
a. Code Program
package karyawan;
package karyawan;
b. Output
9. Latihan 9
a. Code Program
package karyawan;
package karyawan;
}
85
b. Output
10. Latihan 10
a. Code Program
package pembagiann;
package pembagian;
11. Latihan 11
a. Code Program
package karyawan;
package karyawan;
12. Latihan 12
a. Code program
package mahasiswa;
int nim;
public String nama;
private double ipk;
public void setIPK(double nilai) {
ipk = nilai;
}
public double getIPK() {
return ipk;
}
}
90
package mahasiswa;
13. Latihan 13
a. Code Program
package contohstatic;
public class ContohStatic {
static int dataA = 10;
static int dataB = 7;
int dataC = 4;//data non-statik
static void test() {
int dataC = dataA + dataB;
System.out.println("dataA + dataB = " + dataC);
//System.out.println("dataC = "+dataC);
//SALAH, karena dataC non-statik
}
public static void main(String[] args) {
// TODO code application logic here
test();
}
}
b. Output
c. Penjelasan
Program latihan 13 merupakan program kata kunci static.
Pada program tersebut terdapat data static berupa variabel dataA
dan dataB. Variabel dataA berisi nilai 10, dan variabel dataB
berisi nilai 7. Terdapat pula variabel non static yaitu variabel dataC
yang berisi nilai 4. Setelah itu program akan menjalankan method
static void test() yang berisi dataC = dataA + dataB. Setelah
itu, program akan menampilkan tampilan seperti pada gambar 4.11
14. Latihan 14
a. Code Program
package robotstatic;
package robotstatic;
b. Output
15. Latihan 15
a. Code Program
package pegawai;
String nama;
final double bonusLembur = 50000;
double hitungBonusLembur(double jumlahLembur) {
return bonusLembur * jumlahLembur;
}
}
94
package pegawai;
16. Latihan 16
a. Code Program
package notebook;
public class Notebook {
private String merk = "Lenovo";
class SistemOperasi {
private String namaOS = "Windows 7";
public void cetakData() {
System.out.println("Merk notebook : " +merk);
System.out.println("Sistem operasi : " +namaOS);
}
}
public void cetakdata() {
SistemOperasi OS = new SistemOperasi();
OS.cetakData();
}
package notebook;
public class ImplementasiInnerClass {
public static void main(String[] args) {
Notebook myNotebook = new Notebook();
myNotebook.cetakdata(); }}
b. Output
96
c. Penjelasan
Pada program latihan 16 merupakan program implementasi
inner class. Pada program tersebut terdapat 2 class utama yaitu
class Notebook dan class utama ImplementasiInnerClass. Pada
class Notebook berisi private string merk, terdapat pula class
SistemOperasi didalam class Notebook. Terdapat pula method
public void cetakData() yang digunakan untuk menampilkan
merk notebook dan sistem operasinya. Pada class Notebook,
program akan membuat object baru bernama OS. Setelah object OS
dibuat, program akan menjalankan perintah method cetakData().
Sedangkan pada class ImplementasiInnerClass, program akan
membuat object baru bernama myNotebook. Setelah object
myNotebook dibuat, lalu program menjalankan perintah method
cetakData(). Apabila program dijalankan, maka akan muncul
tampilan seperti pada gambar 4.16.
4.4 Tugas
1. Tugas 1
a. Code Program
package nilaiipk;
import .util.Scanner;
public class NilaiIPK {
public static void daftar(double[]nilai,
char[]huruf, int[] sks){
97
System.out.println("===================================
===============");
System.out.println("MatKuliah Nilai
Huruf Sks");
System.out.println("===================================
===============");
System.out.println("PAI
"+nilai[0]+" "+huruf[0]+"
"+sks[0]);
System.out.println("Pancasila
"+nilai[1]+" "+huruf[1]+"
"+sks[1]);
System.out.println("Bahasa Inggris
"+nilai[2]+" "+huruf[2]+"
"+sks[2]);
System.out.println("Sistem Operasi
"+nilai[3]+" "+huruf[3]+"
"+sks[3]);
System.out.println("Basis Data
"+nilai[4]+" "+huruf[4]+"
"+sks[4]);
}//Sub Program daftar yang akan diprint. berisi
parameter nilai, huruf dan sks.
double
totalsks=sks[0]+sks[1]+sks[2]+sks[3]+sks[4];
98
double ip=Total1/totalsks;
System.out.println("");
System.out.println("IPK = "+ip);
System.out.println("\n");
}//Menghitung hasil ip yang akan diprint. dengan
cara membagi total nilai dengan total jumlah sks.
: ");
sks[2]=input1.nextInt();
System.out.println("");
//Memberi inputan pada varibel nilai dan sks.
huruf[i]='B';
}
else if(nilai[i] >= 85 && nilai[i] <= 100){
angka[i]=4;
huruf[i]='A';
}
}//Menentukan batasan nilai angka dan nilai
huruf menggunakan For dan If.
}
}
b. Output
4.5 Kesimpulan
Kesimpulan yang dapat di ambil dari praktikum bab 4 ini adalah
Objek adalah entitas dasar saat runtime. Pada saat Code program dieksekusi,
objek berinteraksi satu sama lain tanpa harus mengetahui detil data atau
kodenya. Interaksi antara objek ini dilakukan menggunakan suatu
message.Pada pemrograman berbasis objek, objek dijadikan sebagai
102