1. Object dan Class
Class adalah tipe yang
berisi atribut (variabel) dan fungsi (fungsi pada class seringkali disebut
method).
Misalnya kita mempunyai
class Mahasiswa. Class ini memiliki atribut nama, alamat, tanggal lahir dan
method menghitung umur. Class ini dapat
diinstansiasi atau dicreate menjadi objek, misalnya objek mahasiswa Budi,
Ahmad, Elfan dan seterusnya. Dapat dianggap class adalah pola atau “pencetak” objek.
Satu class umumnya disimpan
dalam satu file. Nama file harus sama
dengan nama class (termasuk huruf besar dan kecilnya!). Satu project di Java umumnya terdiri atas
beberapa class.
Di Java, akses terhadap
method, menggunakan simbol titik. Misalnya budi.nama, budi.alamat,
budi.getUmur() dan seterusnya.
Sekarang kita akan membuat
class Mahasiswa. Pilih File - New - Class (atau melalui klik kanan di project explorer)
Beri nama class Mahasiswa.
Standard penamaan class di Java diawali dengan huruf besar, berbeda dengan
variabel atau method yang diawali huruf kecil.
Ketik code berikut, class ini memiliki tiga atribut: nim, nama,
tglLahir dan satu method: getUmur. Semua atribut ini diset public, artinya boleh
diakses secara langsung. Misalnya budi.nim, budi.nama.
Konvensi penamaan method
mengikuti penamaan variabel, diawali huruf kecil.
Cobalah contoh berikut,
perhatikan bagaimana class Mahasiswa didefinisikan, bagaimana objek dibuat dan
cara mengaakses atribut dan method.
public class
Mahasiswa {
String nama;
//atribut
public void salam() { //method
System.out.println("halo,
nama saya " + nama);
}
public static void
main(String[] args) {
//create objek dari class Mahasiswa
Mahasiswa mhsObjek = new Mahasiswa();
mhsObjek.nama = "Budi"; // isi atribut
mhsObjek.salam(); //
panggil atribut
}
}
Terlihat bahwa penggunaan Object mirip dengan
penggunaan variabel. Class sama dengan
type dan object sama dengan variabel.
Saat menjalankan sebuah
class, Java secara otomatis akan mencari method main(String args[]) untuk dijalankan pertama kali (coba
lihat-lihat contoh code sebelumnya, selalu ada method main).
Method main ini cocok untuk digunakan sebagai alat untuk memeriksa apakah class yang dibuat
telah sesuai dengan keinginan.
Perhatikan bahwa method getUmur
menghasilkan type int. Jika method tidak
menghasilkan keluaran, maka gunakan keyword void. Contoh method yang returnnya
void adalah method main.
Selanjutnya kita akan
membuat class MatakuliahKontrak. Class ini menyimpan matakuliah yang dikontrak
mahasiswa beserta nilainya (kode matakuliah, tahun, semester dan nilai). Class
ini memiliki method untuk menghitung mutu (4 untuk nilai A, 3 untuk nilai B dan
seterusnya).
Pilih File - New -Class, lakukan hal yang sama seperti saat membuat
file Mahasiswa.
Sehingga dalam project
sekarang terdapat dua class:
public class MatakuliahKontrak {
public String kodeMatakuliah;
public int sem;
public int tahun;
public String nilai;
public int sks;
public double getMutu() {
int mutu;
if (nilai.equals("A")) {
mutu = 4;
} else if (nilai.equals("B")) {
mutu = 3;
} else if (nilai.equals("C")) {
mutu = 2;
} else {
mutu = 1;
}
return mutu;
}
public static void main(String args[]) {
//testing class
MatakuliahKontrak mk = new MatakuliahKontrak();
mk.kodeMatakuliah="IL111";
mk.nilai="A";
mk.sem=1;
mk.tahun=2008;
System.out.println(mk.kodeMatakuliah
+ " mutunya "+ mk.getMutu());
}
Perhatikan bahwa method
getMutu menghasilkan type double.
Dapat kita lihat hubungan
antara Siswa dan MatakuliahKontrak. Satu siswa dapat memiliki lebih dari
MatakuliahKontrak.
Sekarang kita perlu merubah
class Mahasiswa untuk menyimpan matakuliah yang dikontrak mahasiswa tersebut.
Pada class Mahasiswa ditambahkan variabel array untuk
menyimpan matakuliah yang
dikontrak mahasiswa. Ditambahkan juga dua method. Pertama method untuk
menambahkan matakuliah dan kedua method untuk mencetak matakuliah yang telah
diambil siswa.
Bagian yang di-bold adalah
tambahan.
public class Mahasiswa {
public String nim;
public String nama;
private MatakuliahKontrak[] daftarMK = new MatakuliahKontrak[10];
private int pos=0; //posisi terakhir di array
public void
tambahMatakuliah (MatakuliahKontrak mk) {
//tambah matakuliah ke array
daftarMK[pos]=mk;
pos++;
}
public void printMatakuliah(){
//mencetak isi array daftar
matakuliah
System.out.println("KODE-MK;SEM;TAHUN;NILAI;MUTU");
MatakuliahKontrak mk;
for (int i=0;i
mk = daftarMK[i]; //bisa
juga langsung, misalnya daftarMK[i].sem
System.out.println( mk.kodeMatakuliah+";"+mk.sem+";"+mk.tahun+";"+mk.nilai+";"+mk.getMutu());
}
}
public static void
main(String[] args) {
//testing class ini
Mahasiswa budi = new Mahasiswa(); //create objek budi
budi.nama = "Budi
Martami"; //akses atribut
budi.nim =
"1111";
MatakuliahKontrak mk1 = new MatakuliahKontrak();
mk1.kodeMatakuliah="IK111";
mk1.nilai="A";
mk1.sem=1;
mk1.sks=3;
mk1.tahun=2008;
budi.tambahMatakuliah(mk1);
MatakuliahKontrak mk2 = new MatakuliahKontrak();
mk2.kodeMatakuliah="MA222";
mk2.nilai="C";
mk2.sem=1;
mk2.sks=3
mk2.tahun=2008;
budi.tambahMatakuliah(mk2);
budi.printMatakuliah();
}
}
Dapat dilihat bahwa class
Mahasiswa menggunakan class MatakuliahKontrak. Tidak diperlukan import karena
kedua class berada di satu package.
Konstruktur
Constructor adalah method
khusus yang dipanggil saat object di-create.
Contoh:
Mahasiswa mhs = new
Mahasiswa();
Pada code diatas, maka akan
dipanggil constructor Mahasiswa() yang
merupakan constructor default.
Karakteristik constructor:
- Nama method constructor harus sama dengan nama Class.
- Satu class dapat memiliki lebih dari satu constructor (dengan parameter yang berbeda-beda).
- Constructor tidak memiliki return
- Constructor dipanggil dengan new.
Apa kegunaan constructor?
Constructor dapat digunakan untuk menginisialisasi object.
Sebagai contoh code berikut
menambahkan constructor sehingga nim, nama langsung diisi pada saat object
dicreate.
public
class Mahasiswa {
public String nim;
public String nama;
private MatakuliahKontrak[] daftarMK = new
MatakuliahKontrak[10];
private int pos=0;
public Mahasiswa(String vNim, String
vNama) {
nim = vNim;
nama = vNama;
}
// … yang lain sama
}
Perhatikan penggunaan
variabel vNim, Vnama. Penamaan ini untuk membedakan nama variabel dengan
atribut method. Alternatif lain adalah dengan menggunakan keyword this. Contoh:
public
class Mahasiswa {
public String nim;
public String nama;
private MatakuliahKontrak[] daftarMK = new
MatakuliahKontrak[10];
private int pos=0;
public Mahasiswa(String nim, String nama)
{
this.nim = nim;
this.nama = nama;
}
// … yang lain sama
}
Sedangkan contoh
penggunaannya:
Mahasiswa budi = new
Mahasiswa("1111","Budi Martami");
Static Method
Static method adalah method
dapat dipanggil langsung melalui class-nya dan tidak memerlukan object. Contoh
method Math.pow tidak memerlukan create object bertipe Math terlebih dulu.
Contoh berikut akan
menghasilkan error, karena getUmur bukan static method yang dapat dijalankan
pada class Mahasiswa langsung.
Mahasiswa.getUmur();//<--error:getUmur tdk dapat dijalankan pada
class!
Contoh yang dapat dilakukan:
Mahasiswa budi = new
Mahasiswa();
…
budi.getUmur(); // ß bisa, getUmur dijalankan pada objek.
Contoh static method yang
selama ini kita gunakan adalah method main(String[] args). Perhatikan
deklarasinya:
public static void main(String[] args)
Mengapa method main static?
karena pada saat Java menjalankan class tersebut, belum ada object yang dicreate.
Static method tidak
diperbolehkan mengakses atribut atau method non static pada class tersebut
(mengapa?). Perhatikan walaupun method main berada di dalam class mahasiswa,
tapi di dalam method ini kita tidak dapat mengakses atribut.
Class Mahasiswa {
string nama;
public
static void main(String[] args) {
nama = "Budi"; //error! atribut tdk dpt dipanggil oleh // method static
}
}
Tidak ada komentar:
Posting Komentar