Class vs Object, Method | Anatomi Class Java

   Nah kita masih melanjutkan postingan sebelumnya yang membahas bagian Anatomi Class Java tentang bagaimana kita mendeklarasikan class dan medeklarasikan interface, kali ini kita akan membahas tentang apa itu Object dan Method.



Class vs Object

   Object yaitu Instansi dari sebuah Class. Kalau kita analogikan, class itu sebuah cetakan sedangkan object itu adalah hasil cetakan. Class juga bisa dikatakan sebagai kategori, sedangkan object adalah sesuatu yang memenuhi syarat - syarat yang harus dipenuhi agar masuk dalam kategori tersebut. Jadi bisa dibilang satu class bisa mempunyai banyak object, setiap object mempunyai sifat yang sama persis seperti yang didefinisikan dalam class tersebut.

   Kita ambil contoh adalah class Person, kemudian kita buat sebuah instance dari class Person yaitu bandenk. Kalimat diatas kalau diwujudkan dalam kode menjadi seperti di bawah ini :

Person bandenk = new Person();

   Dua kata paling kiri adalah proses deklarasi sebuah object dengan tipe Person, kemudian sebelah kanan tanda sama dengan (=) terjadi proses instansi object dari class Person menggunakan keyword new. Setiap kali kita bertemu keyword new artinya hanya satu, yaitu instansi object dari sebuah class. Keyword new secara detail dalam level yang paling bawah, menyebabkan JVM akan membuat object dalam suatu memori.

Method

   Method adalah sekumpulan kode yang diberi nama, untuk merujuk ke sekumpulan kode tersebut digunakan sebuah nama yang disebut dengan nama method. Method mempunyai parameter sebagai input dan nilai kembalian sebagai output. Kita bisa juga membayangkan method itu adalah sebuah mesin, ada input yang dibutuhkan dan output yang dihasilkan.

   Deklarasi method terdiri dari beberapa bagian, bagian pertama yaitu access modifier dari method, apakah public, private, protected atau default. Bagian berikutnya adalah tipe kembalian dari method, kalau method tidak mengembalikan apa - apa maka keyword void yang digunakan. Bagian ketiga adalah adalah nama method, sesuai dengan aturan java code convension, nama method diawali dengan huruf kecil dan setiap kata setelahnya diawali dengan huruf besar (camel case).

   Setelah nama Method ada parameter. Sebuah method bisa juga tidak punya parameter, punya satu, dua dan seterusnya. Setelah java 5 ada feature yang disebut dengan varargs, feature ini memungkinkan method untuk mempunyai jumlah parameter yang bervariasi. Varargs akan kita bahas di bagian tentang Java 5 Language enhchancement, jadi tidak akan dibahas di bagian ini.

   Bagian terakhir dari method adalah deklarasi throws exception, dimana kita bisa mendeklarasikan tipe exception yang akan di throws oleh method. Bagian tentang exception akan membahas lebih lanjut tentang throws exception.

   Nama method dan parameter adalah pembeda antara satu method dengan method lainnya. Kalu dua method namanya beda ya pasti dianggap dua buah method berbeda. Kalau dua method namanya sama dianggap sebagai method yang berbeda kalau parameternya berbeda, method dengan nama sama dan parameter berbeda ini disebut dengan overloading dalam konsep OOP.

   Kalau method mempunyai nama yang sama dan parameter yang sama tetapi tipe return atau trows exceptionnya berbeda maka akan menyebabkan error pada waktu kompilasi. Jadi kalau mendefinisikan method baru, pastikan bahwa namanya tidak sama dengan method lain atau setidaknya parameternya berbeda baik dari sisi jumlahnya, tipe parameter atau posisi parameternya.

Dari penjelasan diatas, struktur method seperti di bawah ini adalah benar :

public void main (String[] args){}
public String methodReturnString(){ return "ini string"; }
private void methodBerparameter(String parameter1, Integer parameter2) {}
public void methodTrowsException() trows IOException {}
protected String protectedMethod(String paranneter1, Integer parameter2)
     trows IOException { return "ini string"; }
public void methodBerbeda(){}
public void methodBerbeda(String parameter1) {}
public void methodBerbeda(String parameter1, Integer paameter2) {}
public void methodBerbeda(Integer parameter1, String parameter2) {}
public void methodBerbeda(Double parameter1, Double parameter2) {}

 
   Ada beberapa keyword yang bisa ditambahkan dalam deklarasi method. Keyword yang paling sering digunakan adalah static. Bagian kode Java yang dideklarasikan dengan menggunakan static akan menjadi anggota dari class, bukan anggota dari object, silahkan kembali ke bagian sebelumnya kalau masih belum bisa membedakan mana class dan mana object.

   Karena method yang ditandai dengan static adalah bagian dari class, maka bisa diakses langsung dari nama class itu sendiri, tidak perlu membuat object. Method static hanya bisa memanggil method lain dalam satu class yang juga ditandai static. Method main yang biasa kita gunakan untuk menjalankan aplikasi java juga ditandai dengan static, misalnya kita akan memanggil method lain dari method static, maka method lainnya ini juga harus ditandai dengan static. Kita lihat contoh dibawah :

public class StaticTest{
   public static void main(String[] args) {
      //static method memanggil static method lain dalam class yang 
      //sama.
     contohMethodStatic();
      //method static juga bisa dipanggil dari nama classnya.
     StaticTest.contohMethodStatic();   
   }
   public staic void contohMethodStatic(){
     System.out.println("method static dipanggil");
   }
}

Kalau kode diatas di compile, kemudian dijalankan maka hasilnya seperti dibawah ini :

$ javac StaticTest.java
$ java StaticTest
method static dipanggil
method static dipanggil
$


terlihat bahwa method contohMethodStatic dipanggil dua kali, baik menggunakan nama class maupun tidak.

   Keyword lain yang bisa digunakan oleh method adalah final, synchronize dan native. Keyword final akan menyebabkan method tidak bisa di overidde, kita bahas topik ini dibagian OOP. Keyword synchronize akan menyebabkan hanya satu thread yang bisa mengeksekusi method ini dalam satu waktu, kalau ada thread yang lain maka harus mengantri sampai thread sebelumnya selesai menjalankan method tersebut. Keyword native menandai implementasi method akan diletakkan dalam kode native, misalnya ditulis menggunakan C/C++, kemudian menggunakan Java Native Interface (JNI) untuk mengakses implementasi method tersebut. Topik mengenai JNI dan native tidak kita bahas di bagian ini atau mungkin anda bisa baca atau mempelajari topik advace ini dari sumber lain yak.

   Untuk pembahasan tentang apa itu object dan method kami cukupkan dan postingan berikutnya kita akan melanjutkan pembahasan tentang Anatomi Class Java bagian Constructor, Property dan Konstanta.

   Sekian dari kami semoga bisa bermanfaat bagi kita semua dan terimakasih sudah mampir di postingan kami.. :)

To Be Continued.. :)

Perancangan Program Untuk Masalah Bisnis

Perancangan Program

  Perancangan program merupakan pengembangangan solusi terhadap identifikasi masalah dan menghasilkan serangkaian instruksi yang membangaun sebuah program komputer untuk menghasilkan output.

Permasalahan di bagi kedalam tiga komponen :
- Input / Masukan
- Proses
- Output / Keluaran

Teknik Perancanagan Program Masalah Bisnis

- Berikut ini akan di jelaskan beberapa teknik perancangan program di dalam sebuah pemrograman terstruktur untuk mendukung proses pembangunan / pengembangan sistem.
- Teknik Perancangan File / Database dalam bentuk spesifikasi file.
- Teknik Perancangan Program dalam bentuk spsesifikasi program.

Teknik Perancanagan File / Database

Langkah-langkah didalam peracanagan file sebagai berikut :
1. menentukan banyaknya jumlah kebutuhan file yang nanti akan digunakan didalam program. Banyaknya file yang dibutuhkan oleh sistem diperoleh dari hasil perancangan database menggunakan Normalisasi. Dari hasil Normalisasi terbentuk tabel-tabel atau file-file yang akan dijelaskan didalam spesifikasi file.

2. Menentukan parameter dari file yang akan dibuat. Parameter yang dimaksud adalah elemen- elemen yang menjelaskan spesifikasi singkat file.


Sekilas Analisa Program Penggajian

  Program Penggajian adalah sebuah aplikasi yang melakukan proses penghitungan gaji pegawai, dengan dasar input absen dan proses yang dilakukan secara batch atau tunda (satu kali dalam sebulan).

Input   : Data absen harian.
Proses : Penghitungan gaji, parameternya :
           => Tunjangan pegawai (dari status pegawai)
           => Gaji pokok (dari golongan pegawai).
           => Lembur (dari kehadiran pegawai).
           => Potongan (jika pegawai mempunyai potongan yang dibebankan pada gaji).
Output : Laporan Gaji Bulan dan Slip Gaji Pegawai.


Parameter File
A. Nama File
- Nama yang dibuat untuk memnunjukan nama file yang digunakan. Dituliskan didalam source program.
- Contoh : File_Pegawai, Lembur, dll.

B. Akronim File
- Nama yang dibuat untuk menunjukan file disimpan dalam tabel / database. Dituliskan dengan extensionnya.
- Contoh : Pegawai.mdb, Lembur.dbf, Absensi.myd.

C. Kode File
- Nama yang dibuat pada saat file digambarkan dalam bentuk diagram (Normalisasi).
- Contoh : Tabel Pegawai, Tabel Lembur, Tabel Absen.

D. Type File
- Tipe dari tabel yang digunakan dalam program.
- Contoh : File Master, File Transaksi, File Laporan, File Histori, File Backup, File Kerja dan File Library.

E. Panjang Record (record-size).
- Jumlah karakter yang digunakan dalam satu record.
- Contoh : 180 characters.

F. Organisasi File
- Organisasi yang digunakan pada saat menyimpan data kedalam tabel.
- Contoh : Index Sequential.

G. Access File
- Cara mengakses data yang disimpan pada tabel.
- Contoh : Random.

H. Media File
- Media yang digunakan untuk menyimpan file (tabel).
- Contoh : Harddisk.

I. Field Key
- Kunci field yang dipakai dalam program pada saat program mengakses database.
- Contoh : Nomor Induk Pegawai (NIP).

J. Software
- Software yang digunakan untuk membuat tabel.
- Contoh : Microsoft Acces 2007, MySQL.


Teknik Perancangan Program Masalah Bisnis

1. Menentukan banyaknya jumlah kebutuhan program yang akan dibuat. Jumlah program yang dibutuhkan oleh sisstem dibuat dalan bentuk modul yang nantinya akan digambarkan dalam diagram HIPO. Dalam HIPO dapat diketahui dengan jelas hirarki program. Program mana yang memanggil program lainnya, dan kemana program akan kembali setelah selesai melakukan eksekusi.

2. Menentukan Parameter dari program yang akan dibuat. Parameter yang dimaksud adalah elemen-elemen yang menjelaskan spesifikasi singkat mengenai program.

Parameter Program meliputi hal-hal sebagai berikut :
* Nama Program
   - Nama yang dibuat untuk menunjukan identitas program.
   - Contoh : ProgramHitungGaji.

* Akronim Program
   - Nama yang dibuat untuk menyimpan source program.
   - Contoh : HitGaji.vbp

* Kode Program
   - Nama yang dibuat pada saat file digambarkan dalam bentuk diagram (HIPO).
   - Contoh : Gj01

* Fungsi Program 
   - Menjelaskan fungsi atau kegunaan dari program yang dibuat.
   - Contoh : Untuk program gaji, maka fungsi program dituliskan : Program untuk penghitungan gaji karyawan.

* Bahasa Pemrograman
  - Menentukan bahasa pemrograman yang digunakan pada saat pembuatan source program. biasannya Berhubungan dengan point (b) untuk menyatakan extension file.
   - Visual Basic 6.0

 * Program Flowchart
   - Menggambarkan logika atau proses program dalam bentuk flowchart.

* Proses Program
   - Menjelaskan secara rinci mengenai isi dan proses program, termasuk penjelasan dari command button apabila dijalankan.













Rancangan Program

   HIPO (Hirachi Plus Input Process Output) yaitu alat bantu untuk membuat spesifikasi program yang merupakan struktur yang berisi diagram dimana di dalam program ini berisi input yang diproses dan menghasilkan output. Spesifikasi program menjelaskan mengenai cara penggunaan aplikasi program yang diusulkan. Visual Table Of Content (VTOC) adalah diagram yang menggambarkan hubngan dan fungsi pada sistem secara berjenjang.





 Adapun spesifikasi program yang diusulkan tersebut yaitu :
1. Nama program : Login
- Fungsi program : Untuk masuk kedalam menu utama.
- Bahasa pemrograman : Basic.
- Proses program :
  a. Jalankan program.
  b. Menampilkan halaman login, lalu input username dan password.
  c. Klik login untuk menyatakan bahwa username dan password sudah benar dan jika benar maka akan nasuk kedalam menu utama.
  d. Jika salah masukkan username dan password maka akan muncul pesan "Incorrect username or password".

2. Nama program : Menu Utama
- Fungsi program : Untuk menampilkan menu pilihan yang terdapat didalam apikasi menu utama.
- Bahasa pemrograman : Basic.
- Proses program : Jalankan program menu utama, lalu pilih salah satu fitur yang terdapat pada menu utama, yaitu terdiri dari : menu master transaksi, laporan dan help.

3. Nama program : Produk
- Fungsi program : Untuk menampilkan informasi data produk.
- Bahasa pemrograman : Basic
- Proses Program :
  a. Pada "Menu Master", kemudian pilih "menu produk", selanjutnya "input produk" untuk menambah data produk.
  b. Pada "Menu Master", kemudian pilih "menu produk", selanjutnya "data produk" untuk melihat data produk.
  c. Pada "Menu Master", kemudian pilih "menu produk", selanjutnya "input jenis brg" untuk menambah data jenis produk.
  d. Pada "Menu Master", kemudian pilih "menu produk", selanjutnya "data jenis brg" untuk melihat data jenis produk.
  e. Pada "Menu Master", kemudian pilih "menu produk", selanjutnya "input satuan brg" untuk menambah data satuan produk.
  f. Pada "Menu Master", kemudian pilih "menu produk", selanjutnya "data satuan brg" untuk melihat data satuan produk.

4. Nama program : Supplier
- Fungsi program : Untuk menampilkan informasi data supplier.
- Bahasa pemrograman : Basic.
- Proses program :
  a. Pada "Menu Master", kenudian pilih "menu supplier", selanjutnya "input supplier" untuk menambah data supplier.
  b. Pada "Menu Master", kenudian pilih "menu supplier", selanjutnya "data supplier" untuk melihat  data supplier.

5. Nama program : Transaksi
- Fungsi program : Untuk menampilkan menu pilihan transaksi yang terdapat di dalam aplikasi.
- Bahasa pemrograman : Basic.
- Proses program : Jalankan program menu utama, lalu pilih menu transaksi untuk mengelola pembelian produk, pengeluaran produk dan lain - lain.

6. Nama program : Surat jalan nomor pembelian
- Fungsi program : Untuk menampilkan informasi mengenai surat jalan nomor pembelian.
- Bahasa pemrograman : Basic'
- Proses program : Pada "Menu Persediaan", kemudian pilih "menu surat jalan nomor pembelian" untuk mengelola data SJNP.

7. Nama program : Laporan
- Fungsi program : Untuk menampilkan informasi tentang data laporan.
- Bahasa pemrograman : Basic.
- Proses program : Pada "Menu Utama", kemudian pilih "menu laporan", selanjutnya "pilih laporan yang diinginkan" untuk melihat data laporan.

8. Nama program : Logout
- Fungsi program : Untuk keluar dari aplikasi.
- Bahasa pemrograman : Basic
- Proses program : Pada "Menu Master", kemudian pilih "logout", maka akan tampil halaman login yang menandakan bahwa marketing (dmin) atau manager (user) telah keluar dari aplikasi.


Flowchart Menu Utama



Contoh Mockup Aplikasi


Sekian dari saya semoga bisa bermanfaat bagi saya dan anda semua yang membaca.. Terimakasih.. :)

Anatomi Class Java | Belajar Pemrograman Java



Anatomi Class Java

Bab ini akan menjelaskan tentang anatomi class java. Pertama kita akan belajar tentang bagaimana mendeklarasikan class dan interface, kemidian kita akan belajar tentang class member, Method, constructor dan variabel adalah tiga buah class member dan ketiganya juga akan kita bahas dalam bagian terpisah. Memahami bagaimana mendeklarasikan class dan class membernya adalah pengetahuan paling dasar dalam membuat aplikasi java.

Perhatikan baik-baik aturan apa saja yang di perbolehkan dan dilarang dalam membuat class java. Aturan ini cukup dan mengikat, awalnya akan sedikit terasa merepotkan dan membutuhkan waktu untuk menghafal aturan-aturan tersebut. Setelah bebrapa lama, aturan itu menjadi mudah dipahami dan dihafal. Tidak ada yang lebih baik dibanding belajar dari praktek, oleh karena itu kita akan paktek menulis kode. jangan lewatkan sesi menulis kode, usahakan tulis semua kode yang ada di bab ini, compile dan jalankan kodenya. Dengan begitu anda akan lebih cepat mengahafal aturan dalam bahasa java. Tanpa latihan berulang-ulang maka akan membutuhkan waktu lebih lama lagi menguasai bahasa java.

Deklarasi Class

Class di dalam java dideklarasikan menggunakan keyword class diikuti dengan nama class. Setelah nama class ada kurung kurawal buka ( { ) menandai awal dari class dan kurung kurawal tutup ( } ) yan menandai akhir dari class.

Object adalah instansiasi dari class. Kita bisa membayangkan bahwa class adalah sebuah cetakan dan object adalah materi hasil dari cetakan dari class. Setiap object akan mempunyai state (instance variabel/properties) yang membedakan satu object dengan object yang lain, kemudian object juga mempunyai behavior (method) dimana logic dari class disimpan.

Class adalah jantungnya Java, class adalah bagian terkecil dari kode di java yang bisa berdiri sendiri. Setiap kali kita akan membuat sebuah kode java, yang pertama harus dideklarasikan adalah class. Java mengijinkan class didefinisikan dalam beberapa cara berbeda. Cara pertama adalah mendefinisikan sebuah public class di dalam file java. contohnya bisa kita lihat di bawah ini :

public class person {}


simpan di dalam file Person.java, kemudian compile file java di atas menggunakan java compiler (javac).

$ javac Person.java


Setelah proses kompilasi, lihat isi folder dengan menggunakan perintah dir (windows) atau ls (*nix). Terlihat bahwa class Person dibuatkan satu buah file .class, dan nama dari file .class-nya sama perssis dengan nama class-nya.

Kode diatas adalah deklarasi minimal dari sebuah class .java, ada keyword class diikuti oleh nama class-nya kemudian diikuti oleh kurung kurawal buka dan tutup.

Cara kedua adalah beberapa class dideklarasikan satu buah public class yang namanya sama dengan nama file .java. Contohnya sebagai berikut :

public class Person{}
class Person2{}
class Person3{}
class Person4{}


Simpan di dalam file Person.java kemudian kompile file .java diatas menggunakan java compiler (javac).

$ javac Person.java


Setelah proses kompilasi berhasil, lihat isi folder dengan menggunakan perintah dir (windows) atau ls (*nix). Terlihat bahwa setiap class dibuatkan satu buah file .class, dan nama dari file .class-nya sama persis dengan nama class-nya.

Person.class
Person2.class
Person3.class
Person4.class


Cara ketiga adalah mendeklarasikan class sebagai inner class. Bisa kita lihat bahwa cara kedua diatas, dideklarasi class kedua dan seterusnya berada diluar dari class pertama, kemudian file .class yang dihasilkan berbeda-beda, dan penamaan classnya tidak menyertakan nama class public-nya, semuanya adalah class berbeda tetapi diletakkan dalam file yang sama.

Konsep inner class berbeda, karena sekarang class yang dideklarasikan di dalam class lain (inner class). Inner class sangat terikat dengan class dimana inner class itu berbeda. Misalnya dari sisi penamaan, nama inner class harus diawali dengan nama class dimana inner class berada kemudian diikuti dengan nama inner class itu sendiri. Misalnya contoh di bawah ini :

public class Person{
  private class Person2{}
  private static class erson3{}
  class Person4{}
}


Compile file .java di atas menggunakan java compler (javac).

$ javac Person.java


Setelah proses kompilasi berhasil, lihat isi folder dengan menggunakan perintah dir (windows) atau ls (*nix). Terlihat bahwa setiap class dibuatkan satu buah file .class, nama file .class untuk inner class diawali dengan nama class dimana inner class berada kemudian ada tanda $ dan di akhiri dengan nama inner class-nya.

Person.class
Person$Person2.class
Person$Person3.class
Person$Person4.class


Cara deklarasi terakhir adalah anonymous inner class, yaitu inner class yang tidak mempunyai nama, loh kok bisa..? feature ini sering digunakan kalau kita ingin mengimplementasikan interface di satu tempat dan implementasi itu tidak pernah digunakan di tempat lain. Contohnya sebagai berikut ini :

public class Person{
  private Runnable thread = new Runnable (){
     public void run(){
       System.out.println("HelloWorld from Thread");
    }
  };
}


Perhatikan kode diatas, ada sebuah variabel dengan nama thread, variabel tersebut adalah object dari class Runnable adalah intrface, Karena Runnable adalah interface, maka kita perlu membuat class yang implement interface, tetapi implementasinya tidak perlu membuat class baru dengan nama tertentu, cukup langsung new Runnable dan implementasikan method run langsung di situ.

Simpan ke file Person.java dan coba compile menggunakan javac, setelah kompilasi berhasil lihat isi dari direktori, akan ada dua buah file class yaitu Person.class dan Person$1.class, nah class yangbterakhir inilah anonymous inner class. kalau ada dua inner class atau lebih, penamaannya menjadi Person$2.class, Person$3.class dan seterusnya.

Setelah kita membahas cara deklarasi java, sekarang kita bahas aturan-aturan yang harus dipatuhi pada waktu pendeklarasian class di java. Aturan-aturan tersebut antara lain :
- Hanya boleh ada satu class public dalam satu file java, non public class boleh lebih dari satu di dalam satu file .java.
- Nama class public harus sama dengan nama file .java.
- Komentar bisa dletakkan dimana saja.
- Import berada antara deklarasi package dan deklarasi class.
- Deklarasi import dan package berlaku untuk semua class dalam file .java, tidak mungkin mendefinisikan dua buah class yang mempunyai package berbeda di dalam satu file .java.

Dalam aturan diatas, ada point yang menyebutkan tentang package. Package adalah featue yang sangat penting dalam java, pada dasarnya package adalah sebuah folder yang memisah-misahkan class. Class dengan fungsi yang mirip akan dikelompokkan dalam satu package yang sama, hal ini dimaksudkan untuk memudahkan pengelolaan class agar mudah dipahami.

Kita bisa meletakkan beberapa keyword pada waktu pendeklarasian class. Jenis keyword pertama yang bisa digunakan adalah acces modifier, keyword acces modifier terdiri dari empat level : public, default, protected dan private. Hanya tiga dari empat level tersebut yang benar-benar merupakan keyword, acces modifier default bukan merupakan keyword karena kalau tidak ada satupun dari ketiga acces modifier digunakan di dalam deklarasi class maka kita menyebutnya default. Kita akan bahas satu persatu efek dari penggunaan acces modifier pada deklarasi sebuah class.

Jika sebuah class dideklarasian sebagai public, maka semua class yang lain dapat melihat class tersebut. Melihat didsini dalam arti bisa mengimport, menginstansiasi, dan memanggil method yang ada dalam class. Jika sebuah class dideklarasikan sebagai default atau tidak ada acces modifier sama sekali, maka hanya class dari package yang sama atau class turunannya yang dapat melihat class tersebut. Class tidak bisa dideklarasikan sebagai protected. Private hanya bisa digunakan oleh inner class saja, sedangkan class lain tidak bisa ditandai sebagai private.

Selain acces modifier, class bisa dideklarasikan menggunakan keyword final. Jika class dideklarasikan dengan keyword finl maka class ini tidak bisa diextends oleh class lain, salah satu alasan kenapa class ditandai final agar tidak ada implementasi lain selain class ini. Semua class wrapper seperti String ditandai sebagai final agar tidak ada yang mengextends class String ini. Keyword abstract bisa digunakan untu mendeklarasikan class, hal ini akan menyebabkan abstract class tidak dapat diinstansiasikan atau di buat objectnya.

Deklarasi Interface

Interface pada dasarnya adalah sebuah class, hanya saja method-method di dalamnya hanya berupa deklarasi saja, tidak ada implementasi dari method-method tersebut. Secara teknis bisa dikatakan bahwa interface adalah class yang bersifat abstract, semua methodnya adalah public dan abstract, serta semua variabel yang ada dalam interface adalah static final atau biasa disebut dengan konstanta. Deklarasi interface menggunakan keyword interface bisa kita lihat dalam kode dibawah ini :

interface PersonDao{}


aturan penamaan interface sama dengan penamaan class, kemudian aturan pendeklarasian interface juga sama dengan pendeklarasian interface. Hanya saja tidak ada istilah inner interface layaknya inner class.

Sebagai contoh kita akan membuat class PersonDaoImpl yang mengimplementasikan interface PersonDao, di dalam interface PersonDao ada tiga buah method  : save, delete dan getById sehingga class PersonDaoImpl harus mengimplementasikan ketiga method ini.

public class Person{
  private Long id;
  private String nama;
  public String getNama(){
    return nama;
  }
  public void setNama(String nm){
    nama = nm;
  }
  public Long getId(){
    return id;
  }
  public void setId(Long i){
   id = i;
  }
}


Interface dideklarasikan dengan menggunakan keyword interface. Di dalamnya ada method-method yang dideklarasikan tetapi belum ada implementasinya, ditandain dengan adanya titik koma (;) setelah deklarasi method. Kalau method sudah diimplementasikan maka setelah deklarasi method harus ada pasangan kurung kurawal buka tutup ( {} ) yang menandai blok kode yang akan dieksekusi kalau method tersebut dipanggil.

public interface PersonDao{
  void save(Person p);
  void delete(Person p);
  Person getById(Long id);
}


Class mengimplementasikan interface dengan menggunakan keyword implements. Semua method dalam interface bersifat public sehingga walaupun dalam deklarasi interface tidak ada public tetapi di class yang mengimplementasikan interface harus meletakkan acces modifiers public pada deklarasi methodnya.

public class PersonDaoImpl implements PersonDao{
  public void save(Person p){
    System.out.println("menyimpan Person");
  }
  public void delete(Person p){
    System.out.println("Menghapus Person");
  }
  public Person getById(Long id){
    Person p = new Person();
    p.setId(id);
    p.setNama("abc");
    return p;
  }
}


Sebuah class bisa mengimplementasikan lebih dari satu interace, antar satu interface dengan interface yang lain dipisahkan dengan tanda koma, seperti contoh sederhana di bawah ini :

public interface PersonDaoImpl implements PersonDao, Serialiazable{}


Interface biasanya digunakan sebagai "kontrak" agar sebuah class yang mengimplementasikan interface mempunyai semua method yang ada dalam interface itu, tetapi kita tidak ingin mengekspose implementasinya. Salah satu contoh penggunaan interface adalah JDBC API. di dalam JDBC API terdapat banyak interface seperti Cnnection, ResultSet, Statetement, PreparedStatement dan seterusnya. Setiap database yang ingin bisa diakses dari java akan mengimplementasikan JDBC API ini dengan cara membuat class yang mengimplementasikan semua interface dalam JDBC API. Sehingga kalu kita ingin melakukan koneksi ke MySQL ataupun ke Pracle, interfacenya sama, yang berbeda hanya implementasinya saja. Implementasi dari JDBC API ini sering dikenal sebagai JDBC Driver. Mengenai JDBC akan kita bahas lebih lanjut di bagian akses data ke database, sekarang kita fokuskan ke interface.

Interface juga digunakan dalam best practice yang sering disebut dengan "code to interface", best practice ini menganjurkan developer untuk menggunakan interface antar layar dalam aplikasi. Misalnya contoh diatas kita membuat sebuah interface dengan nama PersonDao untuk melakukan operasi penyimpanan object person, dengan membuat interface seperti ini kita bisa mempunyai implementasi berbeda-beda untuk proses penyimpanan object person. Di contoh diatas implementasi PersonDao sangat sederhana hanya menulis string ke stdout, kita juga bisa membuat misalnya PersonDaojdbc untuk menyimpan object person ke database dengan menggunakan JDBC, atau bisa juga dibuat PersonDaoHibernate untuk menyimpan object person ke database menggunakan Hibernate.

Kalau anda masih sulit memahami dua paragraf terakhir tentang interface, tidak masalah, tujuan utama bab ini adalah menjelaskan tentang bagaimana membuat interface, seiring dengan bab-bab selanjutnya kita akan belajar lebih jauh mengenai beberapa teknologi yang sempat disinggung di atas.

sekian dulu untuk bagian ini semoga bisa bermanfaat bagi kita semua..

To Be Continued.. :)

Keyword, Indentifiers dan Akses Kontrol | Belajar Pemrograman Java



Pada dasarnya aplikasi java adalah sekumpulan class-class yang saling berbicara satu dengan yang lain dengan cara mengekseskusi method class lain dan mengirimkan pesan dengan memasukkan parameter kedalam method. Dalam bagian ini kita akan belajar mengenai anatomi class dalam java, keyword, kemudian identifiers dalam java dan konsep akses kontrol.

Keyword Bahasa Pemrograman Java

Pada bab pengenalan java ini kita akan membahas mengenai dasar-dasar bahasa java. kalau kita belajar bahasa Indonesia pasti yang pertama kita bahas adalah kosa-kata dan pembentukan kalimat seperti SPOK. Bahasa pemrograman java tidak serumit bahasa Indonesia yang mempunyai jutaan kosa kata, java hanya mempunyai 44 buah kosa kata (Keyword). Semua keywords ini adalah kepunyaanya bahasa java, kita harus menggunakannya dengan benar dan tidak boleh digunakan untuk tujuan lain, misalnya sebagai nama variabel atau nama class.

Berikut ini adalah daftar 44 buah Keyword java :

-abstract -Boolean -break -byte - case -eatch -char -class const -continue -default -do -double -else -extends -final -finally -float -for -goto - if -implements -import -instanceof -int -interface -long -nativ -new -package -privat -protected -public -return -short -static -strictfp -super -switch -syncronized -this -throw -throws -transient -try -void -volatile -while -assert -enum


Kita akan membahas keyword di atas seiring dengan bab-bab dalam tulisan ini. Beberapa keyword sudah cukup familiar disemua bahasa pemrograman, sehingga tidak perlu lagi diterangkan secara mendetail.

Identifiers
Identifiers adalah nama-nama yang bisa dideklarasikan dalam java tetapi bukan bagian keywrds java, yang termasuk dalam indentifiers antara lain : class, intrface, variabel/property dan method.
Tata cara penamaan identifiers di java diatur oleh beberapa aturan :
- Aturan dari compiler untuk menentukan apakah nama identifiers diperbolehkan atau tidak.
- Konvensi penamaan identifiers dari sun yang biasa di sebut sebagai "Java Code Convention".
- Standard penamaan JavaBean.

Kita akan bahas satu persatu aturan diatas.

Aturan dari compiler tentang penamaan indentifiers sangat jelas, karena akan ada error pada waktu kompilasi kalau aturan ini dilanggar. Berikut ini aturan penamaan identifiers yang digunakan oleh compiler.
- Aturan pertama sudah kita bahas sebelumnya adalah semua keyword java tidak boleh digunakan sebagai identifiers.
- Identifiers harus diawali olehhuruf, simbol mata uang dolar($) atau karakter penghubung underscore(_). Angka tidak boleh digunakan sebagai karakter pertama identifiers.
- Setelah karakter pertama, berikutnya boleh di ikuti oleh huruf, simbol mata uang dolar, karakter penghubung dan angka.
- Tidak ada pembatasan panjang identifiers.
- Identifiers di java bersifat case sensitif, foo dengan Foo adalah dua buah identifiers berbeda.
- Nama public class harus sama persis dengan nama file java.

Berikut ini adalah contoh identifiers yang diijinkan :
int _x;
int $y;
int _____17_r;
int _$;
int ini_adalah_nama_identifiers_yang_panjang_sekali_bertele_tele_dan_alay;


Berikut ini adalah contoh identifiers yang tidak diijinkan oleh compiler java :

int 123test_test;
int x#;
int x:;
int .titik;


Java Code Convention adalah sekumpulan aturan "tidak resmi" yang dibuat oleh sun. salah satu bagian dari code convention itu membahas bagaimana menamakan identifiers yang seragam. Latar belakang dibuatnya Java Code Convention ini berasal dari penelitian yang menyebutkan bahwa usaha untuk menulis kode (development) hanya berkisar 20% saja, sedangkan 80% usaha dikerahkan untuk memelihara kode dan menambah feature baru kedalam aplikasi. Hal ini mendorong sun untuk menyusun Java Code Convention agar usah untuk membaca kode lebih mudah dan pada akhirnya kode menjadi lebih mudah untuk di pelihara dan dipahami.

Berikut ini beberapa konvensi yang digunakan dalam Java Code Convention 
- Class dan Interface selalu diawal dengan huruf besar. Setiap kata selalu diawali dengan huruf besar untuk memudahkan pembacaan. Gaya ini biasa disebut dengan "Camel Case".
Contohnya : Runnable, `HashMap, ArrayList dan seterusnya. Selain itu, class haruslah merupakan kata benda, bukan kata sifat atau kata kerja.
- Method selalu diawali dengan huruf kecil. stiap kata setelah huruf pertama diawali dengan huruf besar, Method haruslah kata kerja untuk menandakan bahwa method ini melakukan suatu kegiatan / aksi. Contohnya : getIndex, setIndex, paint dan seterusnya.
- Variabel menggunakan Camel Case yang diawali dengan huruf kecil, seperti method. Variabel sebaiknya pendek, jelas, terdengar enak dan kata benda. Contohnya : index, panjang, lebar, indexPertama dan seterusnya.
- Konstanta di java dibuat dengan mendeklarasikan sebuah variabel sebagai statif dan final. semua hurufnya adalah huruf besar yang anatar kata dipisahkan oleh simbol underscore (_). Contohnya : FRAME_WIDTH, ERROR_MESSAGE dan seterusnya.

Konsep JavaBean dibuat oleh sun sebagai dasar dari komponen dalam aplikasi java, salah satu kegunaan praktisnya adalah penggunaan JavaBean oleh IDE seperti NetBeans agar komponen-komponen Swing bisa dimanipulasi secara visual.

Framework modern seperti Spring dan EJB juga sudah mengadopsi konsep JavaBean, sehingga istilah JavaBean sangat sering muncul di dokumentasi framework ini, Spring menggukan istilah bean saja bukan JavaBean, tetapi secara teknis keduanya sama persis.

Untuk memahami konsep JavaBean, ada satu istilah yang disebut dengan Properties. Pada dasarnya properties adalah sebuah instance variabel, yaitu variabel yang berada tepat di bawah class, yang acces modifier-nya private. Karena bersifat private maka harus dibuat method untuk mengakses properties dari luar class tersebut. Method untuk mengakses properties biasa disebut sebagai getter dan method untuk mengubah nilai properties disebut sebagai setter.

Berikut ini aturan penamaan method yang digunakan untuk mengakses properties (getter setter) dari JavaBean :
- Kalau tipe data properties bukan boolean maka method untuk mengakses properties diawali dengan get, misalnya getWidth, getSize, getIndex dan seterusnya.
- Kalau tipe data properties adalah boolean maka method untuk mengakses properties diawali dengan is. Misalnya isEmpty, isRunning dan seterusnya.
- Semua method setter harus diawali dengan set. Misalnya setSize, setIndex, setWidth dan seterusnya.
- Nama method diturunkan dari nama variabel yang diberi awalan get, set atau is. Aturan penulisan camel case berlaku untuk method getter dan setter.
- Method setter harus public, return void denga satu parameter yang tipe datanya sama persis dengan tipe data variabel.
- Method setter harus public, return tipe data yang sama dengan tipe data variabel, dan tanpa parameter.
- JavaBean harus mempunyai default constructor, yaitu constructor yang tidak mempunyai parameter sama sekali.

Acces Modifier

Public, protected, default dan private adalah empat buah level acces modifier, fungsi dari acces modifier adalah mengatur bagaimana bagian-bagian kode java diakses dari bagian yang lain. Ada bagian yang boleh diakses oleh siapapun karena kode di dalamnya sudah dirancang untuk itu. ada juga bagian yang hanya boleh diakses olec class yang sama karena memang kodenya tergantung dengan bagian lain dari class tersebut dan tidak bisa digunakan oleh bagian lain.

Acces modifier public menandakan bisa diakses oleh siapapun tanpa batasan. Acces modifier protected bisa diakses oleh class turunannya dan class-class lain yang berada dalam package yang sama. Acces mpdifier default tidak memerlukan keyword, kalau tidak ada salah satu dari tiga acces modifier lain maka yang digunakan adalah acces modifier default. Kalau acces modifier default digunakan, maka hanya class dari package yang sama saja yang bisa mengakses, termasuk class itu sendiri. Yang terakhir adalah acces mpdifier private yang hanya mengijinkan diakses oleh class yang sama.


sekaian dulu...Semoga Bermanfaat yak..
 to be continued.. :)


Diberdayakan oleh Blogger.