Rabu, 16 Februari 2011

Belajar Coding Java

1. Intro

Java adalah salah satu bahasa pemrograman yang paling diminati oleh banyak orang sekarang. Tingkat kompatibelitas yang tinggi, dan banyaknya fitur fitur baru yang tidak dimiliki oleh bahasa pemrograman lainnya membuat java semakin melejit. Selain itu mudah dan simplenya syntax dari java juga membuat bahasa pemrograman yang satu ini banyak diminati. Keunggulan dari Java yang lainnya adalah, terdapatnya J2ME (Java 2 Platform Micro Edition), J2SE (Java 2 Platform Standart Edition) dan J2EE (Java 2 Platform Entreprise Edition). Dimana J2ME adalah versi Java yang digunakan untuk platform platform kecil, seperti Mobile Phone, PDA , dll. Sedangkan J2EE adalah versi java yang digunakan untuk platform besar, atau untuk aplikasi aplikasi bersekala besar. Nah yang akan kita pelajari saat ini adalah J2SE, yaitu versi java yang digunakan untuk personal computer maupun notebook. Untuk memulai membuat aplikasi dengan menggunakan Java kita harus mendownload compiler untuk java terlebih dahulu, yaitu JDK. Sebenarnya cukup dengan memiliki compiler java, kita sudah bisa mulai membuat aplikasi dengan menggunakan java, akan tetapi jika kita mengalami kesulitan ketika meng-compile ataupun men-debug program kita maka saya sarankan untuk menginstal IDE untuk java sekalian, yaitu Netbeans, Eclipse maupun JCreator. Mungkin saya sedikit merekomendasikan penggunaan Netbeans sebagai editor, karena fiturnya lengkap dan memudahkan kita saat membuat program.
Setelah menginstall JDK dan Netbeans mari kita mulai membuat program dengan menggunakan Java,

Java adalah bahasa pemrograman berorientasi objek yang bertipe modular. Java memecah komponen-komponennya menjadi objek-objek terpisah yang saling berinteraksi.
Keuntungan pemrograman berorientasi objek antara lain:

* - RealWorld programming

Layaknya dunia ini yang disusun oleh obyek-obyek yang saling berinteraksi, begitu pula Java dengan mudah dapat menyusun obyek-obyek

* - Reusability of code

Class yang telah dibuat oleh suatu program OOP, dapat digunakan oleh program OOP lain secara langsung. Berbeda dengan pemrograman prosedural yang mengharuskan "tulis ulang" jika ingin melakukan hal yang sama tetapi pada program yang berbeda.

* - Resilence of change

Karena berorientasi objek, maka akan banyak sekali terjadi perubahan secara dinamis. Sebuah aplikasi harus bisa menangani perubahan kedepannya tanpa harus merubah keseluruhasn program.

* - Information hiding

Informasi yang terdapat pada suatu kelas dapat sebisa mungkin disembunyikan dari luar kelas tsb. Tujuannya adalah untuk mengamankan data agar hanya dapat diakses oleh fungsi yang ada pada kelas tsb yang dapat mengakses data tersebut. Tetapi disediakan sebuah cara/prosedur untuk mengakses data tsb secara tidak langsung.

* - Modularity of object

Keuntungan utama dari OOP adalah modularitas. Sebuah objek dikelola secara terpisah dari objek lainnya meskipun berasal sari sebuah kelas yang sama. Modifikasi suatu objek dapat dilakukan tanpa mengubah fungsionalitas dari objek lain.



2. Class dan objek

Sebuah kelas menentukan struktur dan behaviour sebuah objek. Objek adalah dasar dari OOP itu sendiri yang berupa individual. Kelas biasanya berisi Constructor, Instance variable, Method (fungsi atau prosedur), dan Main. Objek memiliki "property" yang mana berisi nilai-nilai tersendiri.

2.1 Pembuatan kelas di Java
Attribut dan method dideklarasikan di dalam kelas. Semua statement diakhiri dengan tanda ";" (titik koma). Sintaks untuk mendeklarasikan kelas:
Code:

class
{
//isi kelas: constructor, instance variable, method, dan main
}

2.2 Pembuatan objek di Java
Objek merupakan instance class dan mempunyai identitas yang unik. Sintaks pendeklarasian:
Code:

= new ();


3. Access Specifiers

Acces specifier mengatur akses data dari bagian kelas oleh objek lain. Access Specifiers di Java antara lain:

* - Public

Dapat diakses secara bebas.

* - Private

Akses sangat terbatas, hanya bisa diakses oleh anggota kelas itu sendiri.

* - Protected

Digunakan jika anggota kelas dapat diakses oleh kelas turunan.

* - Friendly

Merupakan default Access specifier milik Java. Hampir sama dengan Public, tetapi hanya dapat diakses dalam satu package. Jika suatu anggota kelas tidak diberikan Access Specifier, maka secara otomatis akan diberikan Access specifier friendly



4. Attribute dan Method

4.1 Mengakses attribut
Attribut dapat diakses dari luar kelas dengan memanggil nama objek diikuti dengan tanda titik dan nama attribut. Sintaksnya:
Code:

. =

4.2 Mengakses method
Method bisa dibilang prosedur atau fungsi, tergantung keperluan. Sintaks umum:
Code:

void ()
{
//isi method
}

Sintaks diatas adalah prosedur, karena tidak mengembalikan nilai. Sintaks contoh dari fungsi:
Code:

()
{
//isi fungsi
}


5. Method Main
Hampir disemua bahasa pemrograman memiliki method main(). Method ini berfungsi untuk memanggil method-method yang ada di dalam kelas. Sintaks main():
Code:

public static void main (String[] args)
{
//isi method main()
}


6. Constructor
Constructor adalah sebuah method yang biasanya dipakai untuk melahirkan sebuah objek. Constructor memiliki nama yang sama dengan nama kelas, tidak mengembalikan nilai (karena prosedur) dan tidak berbentuk static. Constructor ada yang hanya melahirkan objek tanpa memberi nilai kepada properti, ada juga yang memberikan nilai property secara langsung. Sintaks constructor:
Code:

()
{
}

Constructor diatas tidak berisi apa-apa, hanya melahirkan objek saja. Berbeda dengan yang berikut ini:
Code:

()
{
=
//....
//....
}


7. Penggunaaan method set() dan get()
7.1 Method set()
Method set() biasanya digunakan untuk menge-set atau memberikan atau mengganti nilai property (variabel) milik sebuah objek. Lalu apa bedanya dengan pengisian variabel langsung seperti:
Code:

variabel = isi_variabel;

nah bedanya adalah kalau memakai cara diatas, jika variabel tsb di-set dengan access specifier private maka perintah tsb tidak akan bisa diberlakukan. Maka dibuatlah sebuah method untuk dapat mengakses perintah dan melakukan perubahan nilai variabel.

kita ambil contoh dari kelas Mahasiswa aja yah biar gampang :cheers:

Sintaks:
Code:

public void setNama(String a){
nama = a;
}

pemanggilan dalam main():
Code:

.setNama();

Penjelasan:
Code:

public void setNama(String a){ //membuat nama method setNama dengan parameter a sebagai penampung isi variabel baru
nama = a; //mengisi variabel nama dengan variabel a
}

sederhana bukan? sederhana tapi sangat penting untuk dimengerti dan dipahami. Yang repot kalo variabel atau property yang dirubah ga cuman satu atau dua, cz harus bikin method set sejumlah property dan juga harus membuat method get() sejumlah sama juga.

Ada teknik lain untuk pembuatan method set yang dijadikan satu, seperti contoh:
Code:

public void setAll(String a, String b, ... ){
nama = a;
nim = b;
...
...
}

teknik ini memang mengirit penggunaan method set() dan get() serta sangat mengurangi redundansi perintah dan beberapa baris sintaks. Tapi metode ini memilik kekurangan, yaitu menjadi repot jika hanya satu atau beberapa variabel yang ingin diubah atau dipanggil.
7.2 Method get
Hampir sama dengan method set, hanya saja method ini untuk memanggil nilai yang sudah ada. Biasanya dilakukan dalam penampilan di main() atau bisa juga di dalam sebuah method yang memerlukan property dari kelas lain.

Sintaks:
Code:

public String getNama(){
return nama;
}

pemanggilan dalam main():
Code:

.getNama();

Penjelasan:
Code:

public String getNama(){ //membuat method getNama tanpa parameter
return nama; //me-return (mengembalikan) nilai isi dari variabel nama
}

method get() biasanya tidak memakai parameter, kenapa? Karena method ini berbentuk fungsi yang wajib memiliki nilai kembalian (return value). Tapi tidak menutup kemungkinan ada parameter-nya jika ada operasi khusus sebelum return value..


8. Tutorial Tambahan

link

Code:

* good start for newbie
http://java.sun.com/docs/books/tutorial/
http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html
http://java.sun.com/docs/books/tutorial/getStarted/problems/index.html
http://java.sun.com/docs/books/tutorial/getStarted/application/index.html

Link

Code:

http://www.jibble.org/settingupjava.php
http://www.exampledepot.com/
http://java.sun.com/javase/downloads/
http://java.sun.com/docs/books/tutorial/
http://www.javaperformancetuning.com/
http://highscalability.com/
http://wiki.eclipse.org/VE/Installing
http://suhearie.wordpress.com/2008/01/30/scjp-finally-86/
http://www.betterprogrammer.com/
http://www.precisejava.com/javaperf/j2se/Collections.htm
http://rapid*share.com/files/131311054/1590595033_Pro_J2ME_Polish.zip.html
http://www.eclipse.org/vep/WebContent/main.php
http://ibatis.apache.org/
http://www.hibernate.org/5.html#A2
http://www.hibernate.org/6.html#A2
http://book.pdfchm.com/hibernate-quickly-4206/
http://book.pdfchm.com/java-persistence-with-hibernate-6060/
http://www.dom4j.org/
http://commons.apache.org/email/userguide.html
http://courses.coreservlets.com/Course-Materials/struts.html
http://jakarta.apache.org/jmeter/
http://www.quest.com/jprobe/
http://www.urubatan.info/2007/10/a-very-simple-login-example-with-jsf/
http://chintanrajyaguru.com/article/java-ee/installing-and-configuring-glassfish.html
http://users.frii.com/jarvi/rxtx/
http://en.wikipedia.org/wiki/Closure_(computer_science
http://www.sun.com/2006-1113/feature/story.jsp
http://ebookee.com/
http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html
http://www.cs.fiu.edu/~weiss/#dsaajava2
http://www.developer.com/java/data/article.php/3417381
http://articles.techrepublic.com.com/5100-10878_11-1044655.html
http://www.benpinter.net/article.php?story=20030824043735295
http://seamframework.org/
http://java.sun.com/developer/JDCTechTips/2001/tt0306.html
http://www.javaworld.com/javaworld/javatips/jw-javatip76.html?page=1
http://jmonkeyengine.com/
http://www.lwjgl.org/
https://lg3d-wonderland.dev.java.net/
http://cmusphinx.sourceforge.net/sphinx4/
https://pdf-renderer.dev.java.net/
http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jni.html
http://rapid*share.com/files/77657902/The_Definitive_Guide_to_iReport_-_Apress.rar
http://www.muntjak.de/hans/java/tinylaf/index.html
https://liquidlnf.dev.java.net



Sample Code:

* Mobil & Oplet 12
* Triangle, Even & Fibonacci Number, GuestBook
* Vector
* Images 1 2
* Animasi Text
* BubbleSort
* SqlInjection
* Calendar
* jgoodies
* DAO
* Date range
* ??????
* BlackJack

*
Code:

http://rapid*share.com/files/190863051/code.rar.html

* Othelo
Code:

http://rapid*share.com/files/202324126/Othelo.rar.html

Tidak ada komentar:

Posting Komentar