membuat class yang baik dan benar menggunakan NetBeans IDE


hahaha, judulnya seperti perkataan orang narsizz, yach seperti gua ini, baik hati dan tidak sombong, dan tak lupa rajin menabung dan juga murah hati dan juga murah berbagi ilmu seperti sekarang ini, hahahahah NARSIZZZZZZZ!!!!.

Sekarang kita akan membuat class yang baik dan benar menurut para programmer java. “apa itu class yang baik dan benar ?”

class yang bisa disebut baik dan benar adalah class yang memiliki metode yang dinamakan getter dan setter dan juga harus memiliki metode equals dan juga hashcode. akan saya bahas satu persatu :

  • getter, metode ini dinamakan metode pengambilan informasi. misalnya saya ingin mendapatkan informasi nama sebuah class, maka class tersebut harus memiliki sebuah metode yang bernama getNama(), sehingga dengan kata lain getter adalah metode getXxxx (Xxxx = nama atribut/field).
  • setter, metode ini kebalikan dari getter yaitu untuk mengubah informasi, misal saya ingin mengubah informasi nama maka dalam class tersebut harus ada metode setNama(tipeData parameter). jadi kesimpulannya setter adalah metode setXxx(tipeAtribut parameter) (Xxx = nama atribut).
  • equals, metode ini digunakan untuk membandingkan class tersebut dengan class yang lain, apakah sama atau tidak. ini bermanfaat ketika kita menggunakan operasi perbandingan “==”. dan metode ini mengembalikan nilai true jika objek yang dibandingkan sama dan false jika tidak
  • hashcode, merupakan metode untuk mendapatkan unik integer dari sebuah class, hal ini sangat berguna ketika kita membuat sebuah kumpulan data yang tidak boleh sama atau duplikasi.

selain dalam metode, class yang baik dan benar juga harus memiliki kontruktor baik itu kontruktor javabeans (tak memiliki parameter) ataupun bukan javabeans (memiliki parameter). OK!!! lebih baik kita langsung coding ajach. sekarang coba buat sebuah class dengan nama Mahasiswa :

/**
*
* @author usu
*/
public class Mahasiswa {

}

lalu beri atribut sesuai dengan yang anda inginkan misal :

import java.util.Date;

/**
*
* @author usu
*/
public class Mahasiswa {

    private String nim;
    private String nama;
    private String jenisKelamin;
    private Date tanggalLahir;
    private String alamat;
}

sekarang kita buat metode getter dan setternya. masuk ke menu :

image

maka akan keluar tooltip seperti dibawah ini :

image

pilihlah “Getter and Setter“, maka akan muncul dialog seperti dibawah ini :

image

seleksi semuanya, lalu klik GENERATE. sekarang class yang tadi kita buat akan berubah seperti ini :

import java.util.Date;

/**
*
* @author usu
*/
public class Mahasiswa {

    private String nim;
    private String nama;
    private String jenisKelamin;
    private Date tanggalLahir;
    private String alamat;

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public String getJenisKelamin() {
        return jenisKelamin;
    }

    public void setJenisKelamin(String jenisKelamin) {
        this.jenisKelamin = jenisKelamin;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }

    public Date getTanggalLahir() {
        return tanggalLahir;
    }

    public void setTanggalLahir(Date tanggalLahir) {
        this.tanggalLahir = tanggalLahir;
    }
}

sekarang kita buat metode equals dan hashcode, sama seperti tadi tampilkan tooltip seperti pada getter and setter :

image

pilihlah equals() and hashCode() sehinnga muncul dialog seperti dibawah ini :

image

seleksi seluruhnya lalu klik GENERATE, sekarang class yang tadi kita buat akan seperti ini :

import java.util.Date;

/**
*
* @author usu
*/
public class Mahasiswa {

    private String nim;
    private String nama;
    private String jenisKelamin;
    private Date tanggalLahir;
    private String alamat;

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public String getJenisKelamin() {
        return jenisKelamin;
    }

    public void setJenisKelamin(String jenisKelamin) {
        this.jenisKelamin = jenisKelamin;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }

    public Date getTanggalLahir() {
        return tanggalLahir;
    }

    public void setTanggalLahir(Date tanggalLahir) {
        this.tanggalLahir = tanggalLahir;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Mahasiswa other = (Mahasiswa) obj;
        if (this.nim != other.nim && (this.nim == null || !this.nim.equals(other.nim))) {
            return false;
        }
        if (this.nama != other.nama && (this.nama == null || !this.nama.equals(other.nama))) {
            return false;
        }
        if (this.jenisKelamin != other.jenisKelamin && (this.jenisKelamin == null || !this.jenisKelamin.equals(other.jenisKelamin))) {
            return false;
        }
        if (this.tanggalLahir != other.tanggalLahir && (this.tanggalLahir == null || !this.tanggalLahir.equals(other.tanggalLahir))) {
            return false;
        }
        if (this.alamat != other.alamat && (this.alamat == null || !this.alamat.equals(other.alamat))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 71 * hash + (this.nim != null ? this.nim.hashCode() : 0);
        hash = 71 * hash + (this.nama != null ? this.nama.hashCode() : 0);
        hash = 71 * hash + (this.jenisKelamin != null ? this.jenisKelamin.hashCode() : 0);
        hash = 71 * hash + (this.tanggalLahir != null ? this.tanggalLahir.hashCode() : 0);
        hash = 71 * hash + (this.alamat != null ? this.alamat.hashCode() : 0);
        return hash;
    }
}

ok sekarang kita akan buat kontruktor, seperti tadi tampilkan tooltipnya :

image

lalu pilih Constructor, maka akan muncul dialog seperti ini :

image

seleksi atribut yang akan diinisialisasikan dalam parameter , misalnya saya mengseleksi semuanya, lalu klik GENERATE, maka class yang kita buat akan menjadi seperti ini :

import java.util.Date;

/**
*
* @author usu
*/
public class Mahasiswa {

    private String nim;
    private String nama;
    private String jenisKelamin;
    private Date tanggalLahir;
    private String alamat;

    public Mahasiswa(String nim, String nama, String jenisKelamin, Date tanggalLahir, String alamat) {
        this.nim = nim;
        this.nama = nama;
        this.jenisKelamin = jenisKelamin;
        this.tanggalLahir = tanggalLahir;
        this.alamat = alamat;
    }

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public String getJenisKelamin() {
        return jenisKelamin;
    }

    public void setJenisKelamin(String jenisKelamin) {
        this.jenisKelamin = jenisKelamin;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }

    public Date getTanggalLahir() {
        return tanggalLahir;
    }

    public void setTanggalLahir(Date tanggalLahir) {
        this.tanggalLahir = tanggalLahir;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Mahasiswa other = (Mahasiswa) obj;
        if (this.nim != other.nim && (this.nim == null || !this.nim.equals(other.nim))) {
            return false;
        }
        if (this.nama != other.nama && (this.nama == null || !this.nama.equals(other.nama))) {
            return false;
        }
        if (this.jenisKelamin != other.jenisKelamin && (this.jenisKelamin == null || !this.jenisKelamin.equals(other.jenisKelamin))) {
            return false;
        }
        if (this.tanggalLahir != other.tanggalLahir && (this.tanggalLahir == null || !this.tanggalLahir.equals(other.tanggalLahir))) {
            return false;
        }
        if (this.alamat != other.alamat && (this.alamat == null || !this.alamat.equals(other.alamat))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 71 * hash + (this.nim != null ? this.nim.hashCode() : 0);
        hash = 71 * hash + (this.nama != null ? this.nama.hashCode() : 0);
        hash = 71 * hash + (this.jenisKelamin != null ? this.jenisKelamin.hashCode() : 0);
        hash = 71 * hash + (this.tanggalLahir != null ? this.tanggalLahir.hashCode() : 0);
        hash = 71 * hash + (this.alamat != null ? this.alamat.hashCode() : 0);
        return hash;
    }
}

jadi seperti itulah class yang baik dan benar. tapi sebenarnya ada satu metode yang tak kalah pentingnya, yaitu toString(). metode ini sangat penting untuk pencetakan sebuah class. tapi kalo dalam pembuatan aplikasi gui, hal ini tak terlalu penting…… 🙂

ok see you at next trixx

Rock with Java!!!!

Iklan

17 pemikiran pada “membuat class yang baik dan benar menggunakan NetBeans IDE

  1. equals itu digunakan untuk membandingkan apakah dua buat objek sama, jadi sebenarnya

    a == b

    adalah salah, harusnya

    a.equals(b)

    baru bener 😀

    dan kalo hasCode itu buat mendapatkan uniqe key dari sebuah object, dan biasanya setiap object memiliki uniqe key yang berbeda kalau sama berarti object tersebut sama 😀

  2. oh gitu ya ….
    tapi kenapa kita harus overide metod hash sama equals
    tu di kelas mahasiswa mas…..
    kenapa kita gak panggl dari kelas Objek aja ya mas?

    jd bnyak tanya ni…..
    saya newbie bnget nih mas, mohon pencerahan!

  3. Mas anda memang seorang yang berguna bagi orang lain makasih ya….
    Saya sendiri programmer VB yang pengin mendalami NETBEANS tapi kesulitan dapatin ebook atau resource belajar yang lain…. Minta pencerahannya ya ?

  4. Ping balik: Belajar JaVa « WAHYU FIGHTER

  5. Ping balik: Tutorial Java dari Eko Kurniawan Khannedy « nge-WP@net

  6. makasih ya mas eko, jadi kapan kita mempergunakan metod hasCode dalam sebuah pemrograman n apakah metod hasCode berguna jika kita membangun sebuah aplikasi database…mohon pencerahannya mas…

  7. Setelah baca2 blog ini… Gatel rasanya pengen pindah aliran programmer… udah cita2 lama nih.. blum kesampean gara project ga ketulungan…. semangaaattttt

  8. wah, ini artikel bagus banget ney buat seorang pemula kayak saya, perlu banyak tau tentang norma/aturan yang seharusnya dilakukan programmer dalam menciptakan codingannya.

    Tapi masih bingung soal hascode(), apa artinya setiap pembentukan objek baru dari class tersebut, nilai hashcode() dari tiap bentukan objeknya selalu berbeda? gitu maksudnya?

    Minta ilmu nya lagi donk soal menggunakan netbeans dalam membuat copyright dan dokumentasi dari tiap2 methodnya, biar terdokumentasi dengan sangat rapi.

    Thx for share..

  9. maaf, kalo tanya lagi, kok saya pake netbeans 6.7.1 ga ada pilihan generate equals dan hashcode ya? mereka malah masuknya ke override method dan hasilnya kayak gini :

    @Override
    public boolean equals(Object obj) {
    return super.equals(obj);
    }

    @Override
    public int hashCode() {
    return super.hashCode();
    }

    cuman ngembaliin dari kelas supernya, padahal aku ga meng-extends class manapun..

  10. Ping balik: Membuat Class Java yang baik dan Benar dengan Netbeans - Timposu[dot]com

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s