Road to Java SE
Posted on July 13th, 2008 | by endy |Belajar bahasa pemrograman mirip dengan belajar bahasa manusia. Bahasa pertama adalah yang paling sulit. Ini disebabkan karena kita belum paham istilah-istilah yang digunakan, pola umum menyusun kata, dan ungkapan-ungkapan khusus yang biasa digunakan dalam bahasa tertentu.
Mari kita ingat waktu pertama kali belajar bahasa Inggris (bahasa Indonesia tidak dihitung, karena kita sudah bisa dari kecil). Pertama kali, kita sama sekali tidak tahu vocabulary. Kemudian kita belajar tentang susunan kata, Subjek-Predikat-Objek. Belajar kalimat aktif dan pasif.
Demikian juga dengan bahasa pemrograman. Bahasa pertama selalu paling sulit. Setelah kita menguasai satu bahasa, belajar bahasa berikutnya tidak sesulit yang pertama. Misalnya kita butuh waktu enam bulan untuk menguasai Java, maka untuk belajar PHP mungkin cuma butuh 2 bulan.
Dengan asumsi kita sama sekali belum pernah mengenal bahasa pemrograman, berikut adalah peta jalan untuk belajar bahasa pemrograman Java.
Pertama, kita kumpulkan dulu perlengkapan belajarnya. Kita membutuhkan:
- Java SDK
- Java Tutorial dari Sun
- Javadoc API
- Text Editor yang bisa memberi warna (syntax highlighting)
Pada tahap ini, jangan menggunakan editor canggih –biasa disebut Integrated Development Environment (IDE)– macam Eclipse, Netbeans, dan lainnya. IDE memiliki fitur yang canggih dan juga kompleks. Di awal masa belajar, kita ingin belajar tentang bahasa Java, bukan penggunaan tombol dan wizard.
Setelah itu, instal Java SDK. Tergantung metode instalasi Anda, mungkin Anda perlu mengatur environment variabel JAVA_HOME dan PATH. JAVA_HOME mengarah ke folder tempat instalasi Java SDK, sedangkan PATH mengarah pada folder bin di dalam lokasi JAVA_HOME.
Untuk mengetes apakah instalasi Anda sudah berhasil, coba ketik perintah berikut di command prompt:
javac -version
Bila keluar pesan error “perintah javac tidak ditemukan” berarti environment variabel masih belum diatur dengan benar.
Perhatikan bahwa setelah mengatur environment variabel, kita harus merestart command prompt. Command prompt baik di Windows maupun Linux tidak dapat mendeteksi perubahan environment variabel secara instan.
Selanjutnya, buat kode program sederhana. Dalam semua bahasa pemrograman, kode ini disebut HelloWorld. Kode program ini hanya mencetak tulisan Hello World ke layar komputer.
Coba kompilasi dan jalankan program HelloWorld tersebut. Dari sini Anda akan mengetahui beberapa konsep, yaitu:
- Cara kompilasi kode program Java
- Cara menjalankan aplikasi Java
- Konsep CLASSPATH
Begitu kita sudah bisa mengkompilasi dan menjalankan kode program Java, kita bisa mulai belajar prinsip umum pemrograman. Prinsip ini sama di semua bahasa pemrograman, walaupun cara penulisannya berbeda. Berikut prinsip-prinsip yang perlu dipelajari:
- Anatomi aplikasi. Di Java, aplikasi terdiri dari banyak package, satu package berisi banyak class, satu class berisi banyak property dan method, satu method terdiri dari banyak statement.
- Menggunakan variabel
- Macam-macam tipe data
- Operator
- Statement, Comment, Expression
- Method, function, atau procedure. Istilah mana yang digunakan tergantung bahasa yang dipelajari
- Penggunaan variabel sebagai argumen dan return value. Pelajari juga pass-by-value vs pass-by-reference dan scope variabel
- Control Flow, meliputi percabangan menggunakan if-else dan switch, dan perulangan dengan while atau for.Ketahui juga keyword control flow seperti break, return, dan exit.
- Setelah mahir menggunakan variabel skalar, pelajari variabel majemuk. Variabel majemuk ini ada di semua bahasa pemrograman. Biasanya ada dua kategori dasar, yaitu yang menggunakan indeks numerik dan indeks non-numerik. Di PHP variabel majemuk berindeks numerik disebut dengan numeric-array, sedangkan yang berindeks non-numerik disebut associative-array. Di Java pilihan lebih banyak. Untuk indeks numerik ada List dan array. Sedangkan indeks non-numerik diwakili oleh Map. Java juga punya variabel majemuk yang dinamakan Set, yang tidak memiliki indeks berurut, tapi bisa digunakan untuk mencegah elemen yang duplikat. Pelajari konsep, implementasi, dan penggunaannya.
Beberapa latihan yang dapat digunakan untuk memahami prinsip dasar ini antara lain:
- Hitung jumlah hari dalam bulan dan tahun tertentu
- Tampilkan nama sendiri secara berulang sebanyak jumlah hurufnya
- Hitung faktorial
- Deret Fibonacci
- dan sebagainya
Salah satu keunggulan Java adalah dukungannya terhadap Object Oriented Programming. Sekarang, setelah menguasai cara kerja bahasa pemrograman melalui prinsip-prinsip di atas, kita belajar tentang bagaimana mendesain aplikasi dengan menggunakan prinsip orientasi objek.
Langkah-langkah belajar OOP adalah:
- Belajar apa itu class dan apa itu object. Kalau di Java, ketahui perbedaan antara class dan instance. Perbedaan antara static variable dan instance variable.
- Encapsulation
- Inheritance
- Polymorphism
- Banyak orang mengalami kesulitan dalam menjelaskan, apalagi mempelajari encapsulation, inheritance, dan polymorphism. Berdasarkan pengalaman saya, design pattern dapat digunakan untuk membantu pemahaman ketiga konsep OO tersebut. Gunakan Strategy pattern untuk memahami polymorphism, Factory pattern untuk memahami encapsulation, dan Template Method untuk memahami Inheritance. Cukup dengan tiga pattern ini, seharusnya konsep OO sudah bisa dipahami dengan baik
Beberapa bahasa pemrograman seperti Java, Ruby, C# memiliki fitur Exception Handling. Pelajari fitur ini. Khusus Java, pelajari bedanya Error, Checked Exception, dan Unchecked Exception. Yang lebih penting, kenali karakteristik masing-masing dan kapan harus menggunakannya.
Semua bahasa pemrograman modern sudah memiliki infrastruktur Input/Output Stream. I/O Stream ini digunakan untuk membaca dan menulis data ke berbagai tujuan, misalnya file, jaringan, object, dan sebagainya. Dengan menggunakan I/O Stream, teknik baca/tulis file mirip dengan terima/kirim data dari jaringan.
Sebagai latihan, coba buat aplikasi chatting sederhana.
Terakhir, pelajari fitur-fitur Java yang advanced, seperti:
- Multithreading
- Reflections API
- Annotations
- Generics
- Enum
Kalau sudah sampai di sini, pengetahuan Anda sudah cukup untuk meneruskan sendiri. Bila ingin membuat aplikasi bisnis, pelajari JDBC, kemudian ikuti Road to Java EE. Bila ingin membuat aplikasi daemon seperti web server atau sms gateway, dalami multithreading, classloading, socket programming, dan lainnya. Bila ingin konsentrasi di mobile, pelajari Java ME.
Demikian panduan singkat untuk belajar bahasa pemrograman Java. Tidak ada yang instan di dunia ini, termasuk belajar bahasa pemrograman. Bila Anda sama sekali belum pernah coding, Anda butuh waktu paling tidak 6 bulan untuk menguasai Java. Bila sudah pernah menggunakan bahasa non-OOP, butuh waktu sekitar 2-3 bulan. Perkiraan waktu ini sekedar gambaran saja, mungkin juga ada yang 2 minggu sudah bisa, atau 2 tahun masih belum bisa. Tergantung kondisi.
Setelah menguasai bahasanya, selanjutnya menguasai (Application Programming Interface) API yang dibutuhkan untuk menyelesaikan pekerjaan. Kemudian masih ada framework untuk membantu pembuatan aplikasi. Jangan lupa, kita masih harus belajar menggunakan tools seperti IDE, Ant, Maven, JUnit, Subversion, agar kita bisa bekerja secara efektif dan efisien.
Selamat belajar Java.
22 Responses to “Road to Java SE”
By Wilbert on Jul 13, 2008 | Reply
Wah, bagus sekali tulisannya bung!! Maju terus yah, semoga tulisan
ini bisa membantu yang newbie2 jika ingin belajar java..
Sukses selalu!!
By sapi on Jul 14, 2008 | Reply
pemula sebaiknya jangan belajar OOP dulu. Terlalu sulit, ntar bikin puyeng. Lha wong konsep variabel, array, dan pointer aja belum ngerti, masa sudah belajar OOP.
Pengalaman 1 tahun dulu di programming baru belajar OOP.
By sapto on Jul 14, 2008 | Reply
Thank’s mas endy…..dah lama aku pingin tanya ROAD J2SE …eh malah dah di jawah duluan…
it will be helpfully….
By sofyan on Jul 14, 2008 | Reply
Thanks buat mas Endy, saya udah road to j2se sejak 3 bulan yang lalu, skrg baru mulai road to j2ee. Tulisan ini walaupun agak telat tapi banyak membantu untuk mereview j2se yang saya pelajari sebelumnya. Keep posting mas Endy…
By Wilbert on Jul 14, 2008 | Reply
@sapi
Wah, kasihan sekali anda belajar pemrograman saja lama sekali..
Maaf, karena memang anda koq sedikit ngeflame..
Saya belajar pemrograman cuman sebulan, sebulan berikutnya saya belajar OOP, dan sebulan setelahnya saya jadi asisten dosen untuk PBO, meskipun blm ambil mata kuliahnya.. hehehe..
Jadi newbs pun bisa belajar dengan cepat kalau mau.. Hanya anda yang bisa menghalangi jalan anda sendiri…
Best Regards…
By sapi on Jul 15, 2008 | Reply
@Wilbert
asumsi saya, si pemula ini belajar sendiri secara otodidak. Gak diajari siapa-siapa dan tanpa pengalaman apa2 di programming sebelumnya. Gak kayak anda belajar programming di kuliah dimana sudah ada dosen yang membimbing anda.
Asumsi kedua, si pemula ini punya IQ rata2 atau sedikit diatas rata2. Bukan super super super jenius seperti anda.
Kecuali pada orang2 super super jenius seperti anda, mengajari OOP pada orang yg baru belajar programming sama seperti mengajari berlari pada bayi yg baru belajar berjalan.
Karena alasan itulah mata kuliah PBO ditaruh di semester tiga keatas, bukan semester pertama di s1 Teknik Informatika manapun.
By sapto on Jul 15, 2008 | Reply
Ngomongin Learning Path belajar OOP JAVA;
saya anak t.industri awal mula belajar pemrograman dari vb, delphi tapi belum OOP, trus dapat project di Java, awal mula aku belum terlalu donk konsep OOP tu pa?tapi setelah tapu BASIC JAVA trus ku geber untuk masuk ke OOP akhirnya baru kerasa manfaatnya…
nah seberapa lama belajar OOP JAVA menurutku bisa tergantung dari masing individu?klo mau concern di JAVA benar apa yang dikatakan “KANG WILBERT”…
tapi sebelum masuk ke OOP mestinya JAVA BASIC;array, varible, dll
harus dikuasi dulu kalee ya
By bleketux on Jul 15, 2008 | Reply
Mas Endy, bisa bikinkan tulisan road to php nggak ? Makasih
By slamet on Jul 15, 2008 | Reply
selamat datang di dunia baru…aku akan belajar bahasa dunia baru ini…sepertinya akan menyenangkan, bertemu hal2 baru tentunya…come on start this journey
matur suwun mas Endy
By Wilbert on Jul 15, 2008 | Reply
Hehe, makanya mas, kalau asumsi anda, ditulis donk, jangan dikosongin tanpa ada penjelasan apa2.. It means you explain a general case..
By wildan on Jul 15, 2008 | Reply
Tidak ada yang instan.. semua butuh waktu..
yang penting niat dan ketekunan.. salam semuanya..
By arian on Jul 16, 2008 | Reply
mm… akhirnya endy balik lagi ke fundamental. yang namanya fundamental pasti fundamental!
By yanti on Jul 19, 2008 | Reply
bang endy ,kalau saya lihat sejauh ini pengajaran java hanya melulu teori,yang mana teorinya itu sangat membigungkan,kalau saya boleh usul,gimana kalau pemula dalam java di beri garis besarnya dulu baru di beri teorinya,maka akan sangat mudah di pahami walaupun awalnya masih bingung,tapi masih mendingan dibanding kalau awalnya hanya belajar apa Menggunakan variabel ,Macam-macam tipe data
Operator
Statement, Comment, Expression dll ,itu akan bigung tambah bingung dan para pemula akan tambah bosan belajar java.
kalau menurut saya sebaiknya diberi garis besarnya dulu,misal
kalau kita mau buat aplikasi dengan java yang harus diperhatikan pertama
1. membuat class class lalu setelah kelas dibuat selanjutnya di instance setelah itu class itu digabung menjadi suatu aplikasi
misalnya aplikasi database,begitu pak
intinya para pemula diperlihatkan gimana cara mmembuat aplikasi sampai jadi contoh database sederhana.baru setelah itu diajarkan teorinya,maka mereka akan mudah memahami
By algojo on Jul 19, 2008 | Reply
y
By algojo on Jul 19, 2008 | Reply
wilbert liu = fran thamura ” rajanya java “
By algojo on Jul 19, 2008 | Reply
wilbert liu lebih masternya java di banding fran thamura
By algojo on Jul 19, 2008 | Reply
wilbert liu sebaiknya melakukan reorganisasi kepemimpinan di jug – indonesia dimana wilbert liu sebagai ketuanya
ayo bung wilbert lakukan kudeta atas kepemipinan fran thamura,anda layak jadi penguasa di dunia persilatan -jug-indonesia
anda adalah pendekar java yang berkualitas internasional
By achmad anton on Jul 21, 2008 | Reply
mas endi mbok ya dikasih link untk download po’o
biar gak bingung mulainya
yang ini mas linknya dimana biar download gak sah nyari di google
* Java SDK
* Java Tutorial dari Sun
* Javadoc API
* Text Editor yang bisa memberi warna (syntax highlighting)
matur suwun cak endi
By ataherster on Nov 17, 2008 | Reply
wah… mas ini kayak nya berpengalaman sekali, salut buat mas, saya juga ingin seperti mas… mohon bimbingannya
By Linggis on Apr 20, 2009 | Reply
@achmad anton
sy cb menjawab ya,
* Java SDK
http://java.sun.com/javase/downloads/index.jsp
*Java Tutorial dari SUN
http://java.sun.com/docs/books/tutorial/information/download.html
* Javadoc API
http://java.sun.com/j2se/javadoc/faq/index.html#findjavadoc
*Text Editor yang bisa memberi warna (syntax highlighting)
# Notepad++
http://notepad-plus.sourceforge.net/uk/download.php
# DrJava
http://www.drjava.org/
dan lain2…..
By adiputra on Apr 29, 2009 | Reply
write once run anywhere…
great java….