Konsep OOP : Encapsulation

•November 4, 2008 • 3 Comments

Walaupun banyak perdebatan tentang konsep-konsep penting dalam OOP (Object Oriented Programming), namun tidak dapat disangkal bahwa ada 3 konsep yang paling fundamental, yaitu: Encapsulation, Inheritance dan Polymorphism.

Dari pengalaman pribadi dan teman-teman yang baru berangkat dari latar belakang procedural programming menuju OOP dalam hal ini Java, ketiga konsep di atas adalah yang paling membingungkan.

Ada apa dengan encapsulation, inheritance dan polymorphism?

Pertama, mari kita lihat konsep encapsulation.

Perhatikan contoh berikut: Sebuah aplikasi yang di dalam suatu inputnya tidak boleh negatif. Misalkan aplikasi kasir, kasir tidak boleh memberikan input pembayaran berupa negatif sehingga kembalian = harga barang – (- pembayaran). Toko bisa ngutang T_T”. Kita sebagai programmer tentu sudah tahu tentang ini dan membuat sebuah pengendali, katakan if statement untuk mengatasinya.

public class Kasir {

public int pembayaran, kembalian, harga = 0;

// kode-kode untuk Kasir

void cekTransaksi() {

if (pembayaran < 0) {

System.out.println(”Tidak bisa ngutang”);

}

}

}

Apa yang terjadi jika variable pembayaran pada class Kasir digunakan untuk lima class, kita harus menulis lima statement if yang sama. Apa yang terjadi kalau kita berada dalam satu tim untuk mengembangkan sistem tersebut dan programmer lain perlu mengakses variable pembayaran tapi tidak mengerti tentang tanda negatif tadi. Apa yang terjadi kalau dalam salah satu kelas tersebut kita lupa menaruh statement if? Aplikasi tidak berjalan dengan semestinya, toko kita bangkrut dan kita menjadi pengangguran. Anak istri kita kelaparan. Istri kita terpaksa…(halah apaan sih, berlebihan)…

Untuk mengatasi masalah itu, kita perlu membungkus seluruh member dari class tersebut sehingga nilainya tidak bisa diubah menjadi yang tidak kita inginkan atau menyelipkan sebuah proses bisnis di dalamnya. Inilah fungsi encapsulation.

Encapsulation biasa dilambangkan dengan penggunaan accessor dan mutator, atau method get dan set. Penamaan method menggunakan konvensi JavaBeans. Dinamakan accessor (get) karena ia hanya mengambil tanpa mengubah state dari member tersebut dan dinamakan mutator (set) karena ia mengubah state dari member tersebut. Method-method ini dideklarasi sebagai public sedangkan variable dideklarasi sebagai private.

Contoh class Kasir yang diperbaharui:

public class Kasir {

private int pembayaran = 0;

public int getPembayaran {

return pembayaran;

}

public void setPembayaran (int inputBayar) {

if (inputBayar <0) {

System.out.println(”Tidak bisa ngutang”);

}

else {

pembayaran = inputBayar;

}

}

}

Dengan ini, aplikasi kita akan lebih aman dan toko kita bebas dari utang -_-”

Regards,

Orang Iseng Banget Karena DotA Udah Didelete, SKom, SCJP

Common Problems in Java (and Their Solutions)

•November 4, 2008 • 2 Comments

Ok setelah belajar membuat aplikasi hello word dan setting environment-nya, kita akan masuk ke contoh-contoh aplikasi-nya pada real project dan beberapa exercise, tapi sebelumnya kita perlu mengetahui beberapa tipe error yang terdapat pada Java.

Syntax Errors

Jika anda melakukan kesalahan penulisan syntax (contoh kurang semicolon, tanda koma, dll) maka kompiler java (selanjutnya akan kita sebut javac) akan menghasilkan syntax error. Pesan yang dihasilkan oleh kompiler biasanya berupa tipe error yang terjadi berikut di baris mana error tersebut berada. Berikut ini adalah contoh error yang terjadi ketika kita lupa menambahkan semicolon (;) di akhir statement:

testing.java:14: `;' expected.

System.out.println("Input has " + count + " chars.")

 ^ 1 error

Semantic Errors

Apa yang terjadi jika kita memakai sebuah variable yang belum dideklarasikan sebelumnya?

testing.java:13: Variable count may not have been initialized.

count++
^

testing.java:14: Variable count may not have been initialized.

System.out.println("Input has " + count + " chars.");
                                             ^
2 errors

Runtime problems

Runtime problem dapat didefinisikan sebagai error yang terjadi setelah .class file dijalankan oleh JVM (Java Virtual Machine) contohnya adalah sebagai berikut:

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp

Jika anda mendapatkan pesan kesalahan ini, maka java interperter (java) tidak dapat menemukan file .class yang sudah digenerate oleh java kompiler (javac). Solusinya adalah anda harus berada dalam direktori dimana .class file tersebut berada, misalnya file .class anda terdapat pada direktori C:\java, maka anda harus masuk ke direktori tersebut dengan perintah: cd c:\java (jika anda menggunakan command prompt setelah mengeksekusi perintah ini maka prompt nya akan berubah menjadi sperti ini -> C:\java>).

Kalau masih tidak bisa juga, kemungkinan anda telah merubah CLASSPATH variable pada komputer anda. Jika ini terjadi maka anda harus mengetikan line di bawah ini dalam command prompt anda pada direktori dimana anda meletakan program java anda.

Apa yg terjadi ketika anda lupa membuat main method (public static void main()) di sebuah kelas dan anda mencoba menjalankannya? Anda akan mendapatkan error dibawah ini…

Exception in thread "main" java.lang.NoSuchMethodError: main

Solusinya adalah cek apakah tiap kelas yang ingin anda jalankan sudah memiliki main method atau belum.

Regards
pertamaxx

Setting Komputer Untuk Memulai Belajar Java

•November 4, 2008 • 2 Comments

Untuk belajar Java, ada baiknya kita tidak langsung menggunakan IDE seperti Eclipse maupun Netbeans melainkan melalui wordpad atau notepad. Mengapa? Karena dalam penggunaan IDE ada beberapa langkah yang tidak akan kita hadapi namun penting untuk mengerti java. Contohnya proses kompilasi dan setting classpath.

Nah, untuk belajar Java menggunakan notepad, maka ada beberapa langkah yang harus kita perhatikan agar proses kompilasi dan running file java kita berhasil. Berikut langkah-langkahnya.

1. Install jdk versi terbaru, bisa diambil dari http://java.sun.com/javase/downloads/index.jsp

2. Buat file HelloWorld.java yg bisa dilihat di blog ini, simpan file tersebut di direktori berikut:

C:\Program Files\Java\jdk1.6.0_06\bin\.

3. Buka command prompt, masuk ke direktori jdk anda.

C:\Program Files\Java\jdk1.6.0_06\bin

4. Kemudian ketikkan –>C:\Program Files\Java\jdk1.6.0_06\bin> javac HelloWorld.java

5. Jika berhasil, maka tidak ada pesan yang muncul, namun jika error maka akan muncul pesan error.

6. Jalankan program dengan mengetikkan –>C:\Program Files\Java\jdk1.6.0_06\bin> java HelloWorld

7. Jika di console (command prompt) anda tertulis “Hello World” maka selamat datang di dunia Java.

Setelah mengikuti langkah-langkah di atas, maka pertanyaan yang muncul adalah:

1. Apakah file .java saya harus diletakkan di lokasi itu? Bagaimana jika saya ingin meletakkannya di tempat lain?

2. Apakah saya harus memanggil command “javac” dari direktori tersebut? Bagaimana jika saya ingin memanggil command “javac” dari working directory manapun sehingga saya tidak perlu capek-capek mengetik “cd” untuk mengarah ke direktori tempat command “javac” berada.

Saya akan mencoba untuk menjawab kedua pertanyaan tersebut.

1. Untuk menjawab pertanyaan ini, kita perlu berkenalan dengan “classpath”. Apa sih classpath tersebut?

Anda dapat merujuk ke situs http://java.sun.com/j2se/1.3/docs/tooldocs/win32/classpath.html#env%20var untuk lebih jelasnya. Tapi, singkat cerita, classpath adalah “path” atau letak (dalam konteks direktori) dari semua file yang dibutuhkan dalam kompilasi dan running program anda. Jadi, jika anda menggunakan library-library maupun file .jar selain default dari jdk anda, maka anda harus memberitahu compiler (javac) letak file-file tersebut.

Dalam konteks latihan ini, maka katakan saja file HelloWorld.java kita terletak di lokasi ini “C:\java” maka jika kita ingin kompilasi dan running file tersebut maka ketikkan:

C:\Program FIles\Java\jdk1.6.0_01\bin>javac C:\java\HelloWorld.java

dan untuk running file tersebut:

C:\Program FIles\Java\jdk1.6.0_01\bin>java -classpath C:\java HelloWorld

2. Jika ingin memanggil command “javac” dari working directory manapun maka anda harus setting environment variables dari operating system anda. Untuk lingkungan windows berikut akan saya bimbing untuk pengaturannya, sedangkan untuk linux…….sori.

- Klik button start

- Arahkan ke “My Computer” lalu klik kanan di icon tersebut

- Pilih properties. Lalu buka tab “Advanced”

- Klik di button “Environment Variables”

- Pada system variables, di variable path, tambahkan path berikut:

;C:\Program Files\Java\jdk1.6.0_03\bin

- Setelah ini maka anda dapat memanggil javac atau java dari working directory manapun.

- Selebihnya, jika anda ingin lebih membuat proses belajar lebih simple,

- Tambahkan variable baru di environment variables anda

- Beri nama : belajarjava ——-> value : C:\java (atau tempat manapun anda ingin meletakkan file-file latihan anda)

- Selanjutnya jika ingin melakukan compiling dan running file-file latihan anda, anda hanya tinggal mengetikkan:

C:\(direktori manapun>javac %belajarjava%\HelloWorld.java

C:\(direktori manapun>javac -classpath %belajarjava% HelloWorld

- Oh ya, jangan lupa restart dulu komputer anda agar environment variables dapat di load ulang oleh operating system anda

Demikian, selamat mencoba!

Regards,

Orang Iseng Banget, SKom, SCJP

Hello world!

•November 3, 2008 • 8 Comments

yah,, seperti biasanya klo kita memulai belajar bahasa pemrograman yang baru kita kenal, pasti diawali dengan bagaimana caranya nampilin “Hello world!” :mrgreen: begitu juga klo ngeblog.. postingan awalnya wajib judulnya “Hello world!”.. :lol:
jadi gini nih,, blog ini dibuat oleh sembilan orang aneh yang sedang dipaksa mendalami bahasa pemrograman Java.. :( hueheuheue..
nah,, klo pengin tau gimana caranya nulis “Hello world!” di Java, baca baris di bawah ini.. :oops:

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("Hello World!");
	}
}

nantikan posting² laennya dari kami.. ;)

 
Follow

Get every new post delivered to your Inbox.