MATERI PELATIHAN

Java Fundamental
Endy Muhardin
endy@artivisi.com http://endy.artivisi.com

http://www.artivisi.com

Jakarta, 2008

Daftar Isi
1.Pendahuluan.........................................................................................................................1 Tentang Java.......................................................................................................................1 Bagaimana cara belajar Java..............................................................................................1 Tentang pelatihan ini..........................................................................................................2 Susunan materi pelatihan...................................................................................................3 Latar belakang pembaca....................................................................................................4 Aturan penulisan................................................................................................................4 2.Persiapan..............................................................................................................................5 Java dan berbagai variasinya..............................................................................................5 Instalasi Java......................................................................................................................6 Hello World ......................................................................................................................11 Konsep penting.................................................................................................................12 Referensi..........................................................................................................................14 Siklus pemrograman Java.................................................................................................15 Perangkat pembantu........................................................................................................19 3.Pemrograman Java.............................................................................................................22 Anatomi kode program.....................................................................................................22 Statement, Expression, Block...........................................................................................25 Tipe data...........................................................................................................................31 Operator...........................................................................................................................34 Aliran kontrol....................................................................................................................38

HALAMAN III

banyak referensi dan tutorial tentang cara mengatasinya. artinya semua aplikasi yang sudah kita kompilasi dan berjalan mulus di Java versi lama akan terus berjalan dengan baik walaupun kita melakukan upgrade. Tapi di lain pihak. sehingga apabila masalah.4 menjadi 1. menunjukkan bahwa teknologi Java cukup solid dan dibangun di atas dasar yang kokoh. Transisi ini berjalan relatif mulus. ada perubahan signifikan dalam teknik pemrograman maupun library yang disediakan. ini menyulitkan orang yang baru mulai belajar Java. Sepanjang perjalanannya. dan kemudian 1. suatu teknologi dapat dikatakan telah matang.4. Bagaimana cara belajar Java Seiring dengan pertambahan umurnya. Banyak sekali fitur yang saling berkaitan dan berhubungan. Java telah mengalami dua kali perubahan signifikan. Ukuran besar ini di satu sisi menguntungkan karena apapun yang kita butuhkan. Java sudah menyediakannya. Semua transisi mempertahankan binary backward compatibility.PENDAHULUAN | HALAMAN 1 1.5 atau dikenal juga dengan 5.3 menjadi 1.Pendahuluan Tentang Java Teknologi Java telah berusia 10 tahun lebih. sampai ke aplikasi enterprise yang berinteraksi dengan mainframe dan mesin-mesin server besar. Dalam usia tersebut. fitur dalam Java juga sudah menjadi sangat besar. sehingga para pemula . kita Populasi menemui penggunanya relatif besar. Pertama pada waktu transisi dari versi 1.0. Mulai dari pemrograman perangkat kecil seperti handphone dan PDA. Dalam transisi tersebut.

5. Tentang pelatihan ini Pelatihan ini bertujuan untuk menyediakan pemahaman tentang sintaks Java dan konsep pemrograman berorientasi object (Object Oriented Programming – OOP). Dengan demikian diharapkan pembaca dapat memahami perbedaan antara keduanya. 2. Tapi dasar-dasar untuk mendesain aplikasi dengan paradigma object sudah dimiliki. Pada bagian desain aplikasi. jalur yang optimal adalah sebagai berikut: 1. peserta mungkin belum bisa membuat aplikasi yang utuh. Berdasarkan pengalaman saya belajar Java secara otodidak. Tetapi jangan khawatir.HALAMAN 2 | JAVA FUNDAMENTAL mengalami kesulitan untuk menemukan titik awal untuk belajar. Belajar sintaks Java Belajar konsep OOP Belajar dasar pemrograman database (JDBC) Belajar dasar pemrograman web (Servlet) Belajar dasar pemrograman desktop (Swing) Setelah menguasai lima materi dasar tersebut. misalnya Java Mobile Edition (JME) atau Java Enterprise Edition (JEE). kita akan melihat contoh kasus. 4. Setelah mengikuti pelatihan ini. 3. Pendekatan OOP bukanlah dimaksudkan untuk menggantikan . kemudian mendesainnya menggunakan kedua pendekatan (OOP dan Prosedural). Pemahaman OOP relatif sulit diserap dan dijiwai oleh programmer yang sebelumnya berasal dari latar belakang prosedural. kita akan memiliki modal yang mencukupi untuk menyelam lebih jauh lagi menuju lingkup Java yang kita minati.

pada bagian ini pembaca akan melihat bagaimana konsep Object Oriented Programming diterapkan dalam Java. dan konsep yang umum dan ada di bahasa yang lainnya. Pendahuluan Persiapan. bahasa Java. Susunan materi pelatihan Konsep OOP adalah konsep yang umum. 2. Setelah menguasai bahasa pemrograman Java. Jadi ada banyak perpaduan antara konsep yang spesifik hanya ada di Java. . Berisi melakukan pemrograman penjelasan singkat tentang dengan teknologi lainnya. Bahkan kita juga bisa mengimplementasikannya di bahasa yang tidak mendukung OOP secara eksplisit. mencampur kedua pendekatan bukanlah hal yang tabu. Di sini pembaca diasumsikan sudah pernah Sehingga yang dibahas di sini adalah bagaimana melakukan perulangan (looping). saya akan menuliskannya di catatan tepi. Bila perbedaannya cukup jelas. Walaupun demikian. digunakan Masing-masing dengan pendekatan yang ada tempatnya. proporsi sesuai. bukan konsep perulangan itu sendiri.PENDAHULUAN | HALAMAN 3 100% paradigma Asal prosedural. Pemrograman Java. Berisi gambaran umum tentang cara membuat aplikasi Java. Konsep ini bisa ditemui di berbagai bahasa pemrograman. 3. materi pelatihan ini ditujukan untuk mempelajari OOP dengan Java. Konsep Object Oriented Programming dengan Java. Berikut susunan materi pelatihan ini: 1. 4.

Kadang-kadang kotak ini juga digunakan untuk menjelaskan fitur yang hanya ada di Java versi tertentu Perintah command prompt ditulis dengan latar belakang kelabu seperti ini: C:\> javac ­version Sedangkan output dari hasil eksekusi perintah tersebut ditulis tanpa latar belakang dengan font Courier biasa (tidak bold) seperti ini: javac 1.HALAMAN 4 | JAVA FUNDAMENTAL Latar belakang pembaca Pembaca diasumsikan sudah mengenal pemrograman sebelumnya.6. switch) perulangan (for. Istilah dan konsep umum pemrograman seperti misalnya: ● ● ● percabangan (if/else. Aturan penulisan Kode program ditulis dengan font Courier tebal seperti ini: public class Shipment { } penting hal yang penting dan perlu diperhatikan ditulis di tepi seperti ini. while) function atau method seharusnya sudah dipahami.0 .

jar) . Pemula Java biasanya akan pusing melihat banyak sekali versi Java yang tidak mereka mengerti. kita hanya membutuhkan Java Standard Edition.Persiapan Java dan berbagai variasinya Kalau kita membuka website resmi Java http://java.PERSIAPAN | HALAMAN 5 2. kita akan mendapati banyak sekali link. Java Standard Edition Software Development Kit (SDK) berisi beberapa peralatan penting. Ini merupakan perlengkapan minimal untuk mulai membuat aplikasi Java.sun.com. ● ● Runtime (java) : tool untuk menjalankan byte code JavaDoc Compiler (javadoc) : Generator untuk dokumentasi source code (JavaDoc) ● Archiver (jar) : tool untuk membuat paket java (*. Berikut adalah peralatan yang paling sering kita gunakan: ● Compiler (javac) : tool untuk mengubah source code menjadi byte code yang siap dieksekusi. Teknologi Java dikelompokkan menjadi tiga kategori utama: ● ● ● Java Standard Edition Java Mobile Edition Java Enterprise Edition Java Standard Edition Pada sebagian besar kasus.

Netbeans juga lebih mudah diinstal secara terpisah.jsp Ada banyak link download di sana. Jangan serakah dan mendownload JDK 6 with Java EE atau JDK 6 with Netbeans 5.0). tapi jangan bingung. Biasanya paket yang ada di sini telah disediakan oleh development tool kita ataupun application server yang digunakan. JRE hanya dibutuhkan bila kita . Paket ini ada di website Java sebagai pusat referensi.com/javase/downloads/index. Tetapi kita tidak perlu mendownload paket ini. ● ● Dokumentasi Library.sun. Java Runtime Environment (JRE) 6 juga tidak perlu didownload karena sudah ada di dalam SDK. Instalasi Java Download Ada beberapa file yang perlu di download: ● SDK Installer. Seperti sudah dijelaskan di atas. Gunakan saja versi terbaru (saat ini 6. SDK dan Dokumentasi dapat didownload pada alamat ini: http://java. Ambil JDK 6 dan Java SE 6 Documentation. Java Mobile Edition Jelajahi bagian ini jika Anda ingin membuat aplikasi yang berjalan di perangkat kecil seperti handphone atau PDA.5. biasa dikenal dengan JavaDoc API Tutorial resmi. Java SDK ini sudah berisi Runtime Environment (RE). Java EE dapat didapatkan berikut application server yang kita gunakan.HALAMAN 6 | JAVA FUNDAMENTAL Java Enterprise Edition Ini adalah kumpulan paket untuk membuat aplikasi enterprise.

0_06­b05) Java HotSpot(TM) Client VM (build 1. ganti permission filenya supaya menjadi executable $ chmod +x  jdk­6­linux­i586. sharing) Konfigurasi variabel Ada satu hal lagi yang perlu kita lakukan sebelum Java bisa digunakan untuk memproses kode program. .sun.bin  Kemudian jalankan installernya. mixed  mode.tes dengan cara menjalankan Java runtime : C:\> java ­version java version "1. Untuk itu. butuh akses root. Untuk Windows.html Pada halaman muka tutorial.5. klik dua kali installernya. Untuk Linux.bin  Setelah instalasi selesai dilakukan.0_06­b05. $ sudo . yaitu setting variabel PATH. Standard Edition (build  1./ jdk­6­linux­i586.com/docs/books/tutorial/index. kemudian klik Next beberapa kali. Instalasi Instalasi Java sangat mudah.PERSIAPAN | HALAMAN 7 hanya ingin menjalankan aplikasi Java dan tidak akan membuat atau memodifikasi aplikasi Java.5. ada link untuk mendownload tutorial tersebut berikut contoh kode yang dibahas di dalamnya.0_06" Java(TM) 2 Runtime Environment. Cukup jalankan file installernya.5. Saya biasanya menginstal di folder /opt. Tutorial resmi dapat dilihat secara online di sini: http://java.

Variabel ini sering dibutuhkan oleh aplikasi Java.HALAMAN 8 | JAVA FUNDAMENTAL Sebelum disetting. Klik Advanced. dan klik . Klik kanan icon My Computer Kita harus mendaftarkan System Properties akan terbuka.exe untuk Windows) berada di folder [LOKASI_INSTALASI_JAVA_SDK]\bin. Perintah ini berguna untuk melakukan kompilasi. Sudah menjadi kesepakatan umum bahwa variabel ini harus menunjuk ke lokasi instalasi Java SDK atau Java RE. Cara setting variabel di Windows adalah dengan membuka System Properties. operable program. kita juga membuat variabel baru JAVA_HOME. kita tidak bisa memanggil perintah javac. or batch file Perintah javac (javac. Sambil mengedit variabel PATH. folder ini ke dalam PATH. C:\> javac ­version 'javac' is not recognized as an internal or external  command.

klik New untuk membuat variabel baru. .PERSIAPAN | HALAMAN 9 Environment Variables. Pada layar Environment Variables.

6. C:\> javac ­version javac 1. klik OK. dan Variable Value diisi dengan %PATH%.sh Sekarang Java SDK siap digunakan. .0 export JAVA_HOME export PATH=$PATH:$JAVA_HOME/bin Kemudian panggil file javapath.sh ini dari dalam bash_profile.HALAMAN 10 | JAVA FUNDAMENTAL Isikan JAVA_HOME pada field Name. Tambahkan satu baris berikut di ujung akhir bash_profile. Kita harus mengedit file ini agar variabel JAVA_HOME terdaftar di sistem. kali ini Variable Name diisi dengan PATH. dan coba lagi jalankan javac.%JAVA_HOME%\bin Sekarang coba buka Command Prompt.6. . Setelah itu.0) pada field Value. dan lokasi instalasi Java (misalnya C:\Program Files\Java\jdk1. Seharusnya sekarang javac sudah dikenali. JAVA_HOME=/opt/jdk1.6. Agar perubahan di file ini tidak terlalu banyak.0 Untuk Linux. buat satu file lagi yang berisi konfigurasi path. Kemudian buat User Variable sekali lagi. misalnya namanya javapath. ~/javapath.bash_profile. variabel PATH untuk masing-masing user diatur melalui file konfigurasi yang terletak di /home/namauser/.sh.

java Perintah di atas akan menghasilkan file hasil kompilasi. Gunakan perintah java untuk menjalankannya. Perhatikan besar kecilnya huruf. Kode program Java case sensitive.java. . kode program kita sudah bisa dijalankan.out. yaitu Halo. artinya membedakan antara huruf besar dan huruf kecil. Eksekusi Kalau tidak ada error pada saat kompilasi. dan masuk ke folder di mana Halo. C:\Latihan> javac Halo. Kompilasi File Halo.   } } kemudian simpan dengan nama Halo. Jalankan perintah javac. Gunakan text editor yang tersedia.java tersebut harus dikompilasi dulu sebelum bisa dijalankan. Buka command prompt.class.println(“Halo”). public class Halo {   public static void main(String[] args){     System. misalnya Notepad. Source Code Ketik kode program berikut.java berada. mari kita buat kode program sederhana.PERSIAPAN | HALAMAN 11 Hello World  Untuk mengetes hasil instalasi kita.

file berekstensi *.HALAMAN 12 | JAVA FUNDAMENTAL C:\Latihan> java Halo Halo Perhatikan bahwa perintah java menerima argumen berupa nama kelas. Di Java. Virtual Machine Portabilitas Machine bytecode Java dimungkinkan VM biasa dengan juga adanya Java Virtual Runtime (VM). kita hanya perlu mengkompilasi satu kali. Untuk bisa menjalankan kode program C di sistem operasi yang lain. kita harus melakukan kompilasi sesuai dengan sistem operasi yang kita tuju. atau Ruby yang dapat langsung dijalankan dari source code. Ini berbeda dengan bahasa pemrograman yang berbasis interpreter seperti PHP. bytecode dapat dijalankan di semua sistem operasi. Bytecode Kode program kita. yaitu file yang berekstensi *.java. harus dikompilasi terlebih dulu sebelum bisa dijalankan. Ini berbeda dengan file kompilasi C atau C++ yang hanya bisa berjalan di satu sistem operasi tertentu. Source code Java dikompilasi menjadi bytecode. bukan nama file. Python. ada beberapa istilah penting yang harus dipahami sebelum kita melangkah lebih jauh.class. disebut . berarti instalasi Java kia sudah berhasil dengan baik. Bytecode bersifat universal dan dapat berjalan di berbagai sistem operasi. JRE mengerti dan bisa menjalankan bytecode ini. Konsep penting Dalam dunia Java. Kalau perintah di atas berhasil dijalankan.

PERSIAPAN | HALAMAN 13 Environment (JRE). Overhead yang ditimbulkan telah berhasil diminimasi terlalu Keuntungan portabilitas menjadi lebih besar daripada overhead penggunaan VM. Ini tentu saja menghasilkan overhead dibandingkan kode program yang langsung dieksekusi sistem operasi seperti C. Kegiatan memperbesar memori ini butuh waktu agak lama. berikan memori awal yang cukup agar VM tidak perlu memperbesar memori di tengah jalan. sudah banyak optimasi yang kode dilakukan. VM akan membesarkan memorinya. Di PHP dikenal istilah include_path. Kita tentu mengira Java lebih lambat daripada aplikasi yang berjalan tanpa VM (native). Java VM akan mencari di dalam classpath. Dengan arsitektur VM. Java VM ini berbeda antar sistem operasi. Konsep classpath sebenarnya tidak spesifik Java. ini adalah pemberitahuan kita .class yang kita buat? Sebab. Bila itu terjadi. sehingga terasa. sehingga aplikasi yang kita jalankan terkesan berjalan tersendat-sendat.path. Jumlah ini dipertahankan sampai aplikasi kita butuh memori lebih. Ini benar. Python menyebutnya sys. Pertanyaan yang penting adalah. Untuk mencegah hal ini. Pastikan kita mendownload JRE yang sesuai dengan sistem operasi yang kita gunakan. Classpath Misalnya kita membuat kode program sendiri. tapi perbedaannya tidak sebesar yang kita asumsikan. melainkan oleh VM. Java VM telah berusia sehingga sangat tidak tua. bytecode tidak langsung dieksekusi oleh sistem operasi. dan dalam Ruby dikenal istilah RUBYLIB. Jawabannya adalah. kita bisa saja meletakkannya di sembarang tempat. Intinya. Java VM langsung membooking memori sebesar nilai defaultnya. biasanya 32 MB. Pada waktu pertama kali dijalankan. bagaimana Java VM bisa menemukan *.

masingmasing folder dipisahkan dengan titik koma (. setting tersebut akan hilang begitu command prompt ditutup.D:\belajar­java  Kita bisa memasukkan banyak folder ke dalam classpath. Tapi cara ini tidak direkomendasikan. kita bisa memanggil class tersebut dari mana saja. referensi yang disediakan oleh Sun Microsystem sudah memadai. melalui command prompt. Kita dapat mengatur variabel classpath melalui Environment Variables di System Properties.HALAMAN 14 | JAVA FUNDAMENTAL kepada VM di mana harus mencari kode program yang dibutuhkan. Setelah classpath kita set ke folder berisi Halo.) untuk Windows. dan titik dua (:) untuk Linux. kita harus melakukan setting di kedua command prompt tersebut. Jika kita membuka dua command prompt. Ada dua referensi utama yang wajib dimiliki: Java API Documentation dan Java Tutorial. karena setting classpath untuk masing-masing aplikasi biasanya berbeda. Cara yang lebih baik adalah melakukan setting classpath pada saat dibutuhkan. Cara melakukan setting melalui command prompt adalah sebagai berikut: C:\> set CLASSPATH=C:\Latihan.class. tidak harus di folder tempat file tersebut berada. Kekurangan cara ini adalah. Java Tutorial Java Tutorial dapat diakses di . Referensi Sebenarnya untuk mempelajari Java secara mandiri (otodidak). Kita tidak ingin setting classpath bersifat permanen dan mengganggu aplikasi lainnya.

Tetapi apabila kita menggunakan editor biasa seperti Notepad++.sun. yang biasanya menyebabkan orang enggan membacanya. atau Intellij IDEA). dokumentasi ini sudah diikutkan secara built-in. Sayangnya ditulis dalam bahasa Inggris. Desain Aplikasi Java didesain dengan pola pikir berorientasi object (Object Oriented). Siklus pemrograman Java Sebelum kita mulai menulis kode. Kalau kita menggunakan text editor yang canggih (seperti Eclipse. .PERSIAPAN | HALAMAN 15 http://java. Netbeans. kita lihat dulu secara garis besar bagaimana cara membuat aplikasi dalam Java. misalnya: ● ● ● ● Poseidon CE Visual Paradigm Jude Bamboo Omondo (Eclipse Plugin) Beberapa UML editor memiliki kemampuan untuk menghasilkan kerangka kode Java. Banyak UML editor yang tersedia secara open source. Beberapa diantaranya bahkan dapat bekerja sebaliknya. Biasanya desain aplikasi ini dituliskan dengan notasi Unified Modelling Language (UML). menghasilkan diagram UML dari kode program Java yang sudah ada.com/docs/books/tutorial/index. Java API Java API Documentation berisi dokumentasi semua class yang disertakan dalam distribusi Java SDK.html Isinya sangat lengkap dan komprehensif. dokumentasi ini sangat bermanfaat.

“Enjoy Development”. mengendalikan application server. seperti menjalankan test. Dengan skala ini. Aplikasi Java umumnya memiliki source code yang terdiri dari antara puluhan sampai ribuan file. kita gunakan perangkat build yang disebut Ant. Dengan semboyannya. Untuk hasil yang maksimal. tidak praktis kalau kita melakukan kompilasi dengan javac. kita dapat menggunakan Eclipse untuk menulis kode business logic. dan . Kemudian masih ada ketergantungan dengan library tambahan.org. Selain kedua editor yang open source itu.apache. Editor yang cukup terkenal dan open source diantaranya adalah Eclipse dan Netbeans. Ant bisa didapatkan di http://ant. Ant memiliki banyak fitur lainnya. Selain melakukan kompilasi. dan menggunakan Netbeans untuk membuat tampilan User Interface. Sedangkan Netbeans memiliki UI Designer untuk menggambar tampilan aplikasi desktop yang sangat canggih. Untuk source code yang berjumlah satu-dua file. Kita tidak harus memilih salah satu saja. ada juga editor komersial yang sangat terkenal. Untuk itu. mempaket aplikasi. IDEA dikenal sangat nyaman digunakan dan mampu meningkatkan produktivitas programmer. IntelliJ IDEA.HALAMAN 16 | JAVA FUNDAMENTAL Tulis source code Langkah berikutnya tentunya adalah menulis source code. kita dapat menggunakan javac untuk mengkompilasinya. Kompilasi Source code yang sudah kita tulis harus dikompilasi sebelum bisa dijalankan. Ada banyak peralatan pembantu yang dapat mempercepat dan mempermudah penulisan kode. Eclipse memiliki kemampuan pengeditan source code yang sangat baik.

atau sambungan soket ke aplikasi lain. Dengan . Tes ini bertujuan untuk mengotomasi pelaksanaan tes tersebut. Berikut adalah berbagai jenis test yang dapat dilakukan dalam pembangunan aplikasi Java. koneksi ke email server. Perangkat code review mencari dan melaporkan kode program yang ditulis secara ceroboh dan berpotensi menimbulkan bug. In Container Test Dalam Server Kadangkala ada fungsi yang hanya bisa dites ketika aplikasi sedang berjalan di dalam server. Integration Test Titik sambungan Pada test ini.PERSIAPAN | HALAMAN 17 masih banyak yang lainnya. Jenis Unit Test Lingkup Method Keterangan Unit test mengetes satu method dalam class. Ant adalah perangkat yang wajib dikuasai oleh programmer Java. Test Platform Java menyediakan perangkat test yang lengkap. Coverage Test Aplikasi Kita ingin mengetahui apakah rangkaian test yang kita miliki sudah mengetes seluruh bagian dari kode program kita. Code Review Source Code Dalam ketergesaan. Method yang kita tulis diuji terhadap berbagai input dan hasilnya diperiksa. Misalnya koneksi ke database. kadang kita meninggalkan praktek pemrograman yang baik dan benar. hubungan aplikasi dengan pihak eksternal diujicoba.

4. Tulis kode tes untuk mengetes kode program Jalankan kode test Periksa laporan hasil tes Perbaiki kode program bila ditemukan kegagalan tes Tambah lagi tes sehingga lebih lengkap Penggunaan peralatan testing akan meningkatkan kualitas kode kita. kita akan sering melakukan . Biasanya langkah ini dilakukan di akhir siklus pembangunan aplikasi. aplikasi kita akan selalu dites. kita dapat mengetahui bagian mana dari aplikasi kita yang belum tersentuh tes sama sekali. Paket Aplikasi yang sudah selesai akan dipaket sehingga mudah dideploy di application server. Atau kalau aplikasinya adalah aplikasi desktop. 3. kita akan segera mengetahuinya. 5.HALAMAN 18 | JAVA FUNDAMENTAL Jenis Lingkup Keterangan perangkat coverage test. Perlengkapan testing yang baik akan terus menjalankan kode tes secara otomatis. apabila penambahan kode baru menyebabkan error di kode lama. Ini akan meningkatkan stabilitas kualitas kode program yang kita hasilkan. bahkan kode yang sudah lama tidak kita sentuh. 2. kita perlu membuatkan installer supaya pengguna hanya tinggal mengklik Next untuk menginstal aplikasi. Cara kerja perlengkapan testing adalah sebagai berikut: 1. Deploy Pada saat pembangunan aplikasi. Jadi. Dengan demikian.

Apabila ada versi yang lebih baru. Ini akan memudahkan kita untuk mendistribusikan dan memaintain aplikasi. dan menjalankan aplikasi. pengguna cukup mengklik satu link di website yang kita sediakan. Untuk mempercepat siklus ini. Perangkat pembantu Untuk meningkatkan produktivitas dan mempercepat development. ada beberapa perangkat yang perlu kita ketahui. dia akan secara otomatis mengupgrade dirinya sendiri.apache. Setelah itu.org. pengguna tidak perlu mendownload lagi. Java secara otomatis akan mendownload. Selain metode download atau bagi-bagi CD yang sudah umum dilakukan. aplikasi akan disimpan di mesin lokal. kita dapat mengotomasi prosesnya dengan menggunakan Ant. Dengan fasilitas ini. Aplikasi yang diiinstal melalui Java Web Start juga akan memeriksa website asalnya setiap kali dijalankan untuk mencari versi terbaru. Ant Ant adalah build tool. sehingga ketika dijalankan lagi. Dapat diperoleh secara cuma-cuma di http://ant. Setelah itu. menginstal. Ant memiliki kemampuan untuk: ● ● ● ● melakukan kompilasi menjalankan aplikasi mengkompres folder menjalankan tes dan membuat laporannya . Distribusi Aplikasi yang sudah selesai dibuat siap didistribusikan agar bisa digunakan khalayak ramai. Java juga menyediakan fasilitas Java Web Start.PERSIAPAN | HALAMAN 19 deploy-undeploy aplikasi kita di server.

kita dapat membuat aplikasi desktop semudah Visual Basic atau Borland Delphi. tidak sampai satu megabyte. Netbeans Netbeans adalah IDE open source yang disponsori oleh Sun Microsystem.apache. Engine Matisse yang dimilikinya sangat legendaris. Tomcat tersedia secara gratis di http://tomcat. Tomcat Tomcat adalah servlet engine.org. Dengan ukurannya yang ringan. Eclipse dibangun dengan arsitektur berbasis plugin. kita dapat melakukan development dengan lebih cepat. Ukurannya cuma 620 KB. sehingga banyak orang yang menyediakan pluginnya baik gratis maupun komersil. . Hypersonic SQL dapat dijalankan sebagai server. Dengan Matisse. dan juga bisa dijalankan secara embedded oleh aplikasi kita. Eclipse Eclipse adalah Integrated Development Editor (IDE) open source yang disponsori IBM.HALAMAN 20 | JAVA FUNDAMENTAL ● ● ● ● berinteraksi dengan aplikasi version control melakukan deploy/undeploy menyalakan/mematikan application server dan sebagainya Dengan Ant. Fiturnya sangat lengkap dan canggih. kita dapat mengotomasi pekerjaan yang sering kita lakukan sehingga dapat dijalankan dengan satu perintah saja. Hypersonic SQL Hypersonic SQL adalah aplikasi database yang mungil. web server yang mengerti bagaimana menjalankan servet dan JSP.

Jetty adalah servlet dan JSP engine. Ukurannya hanya 420 KB. Sama seperti Hypersonic SQL. Jetty juga bisa dijalankan secara embedded. Bandingkan dengan Tomcat yang memakan harddisk sebesar 20 MB. Kita bisa menjalankan Jetty melalui Ant. . Keistimewaan Jetty dibandingkan Tomcat adalah Jetty sangat kecil.PERSIAPAN | HALAMAN 21 Jetty Sama seperti Tomcat.

Pemrograman Java Setelah memahami secara umum tentang apa itu Java. kita perlu memahami class. dan class member. Bahasa pemrograman apapun yang kita pelajari. Class Secara umum. Aplikasi skala kecil dapat memiliki puluhan class. while) dibahas di sini adalah bagaimana konsep umum pemrograman diterapkan di Java. switch) perulangan (for. kita akan mempelajari bahasa pemrograman Java. sebuah aplikasi Java terdiri banyak class.HALAMAN 22 | JAVA FUNDAMENTAL 3. biasanya ada dua hal yang harus kita pahami: ● ● bahasa pemrograman library yang disediakan Pada bab ini. Di antara konsep umum tersebut Anatomi kode program Untuk memahami bagaimana aplikasi Java tersusun. bahasa pemrograman Java. sekarang kita akan menyelam ke dunia yang lebih teknis. tetapi umumnya hal ini . Yang adalah: ● ● ● ● statement (instruksi) variabel dan tipe data percabangan (if-else. Satu file bisa menampung beberapa class. package. sedangkan aplikasi enterprise bisa terdiri dari ribuan class.

package database dan package web. Misalnya. Ini bermanfaat agar kita bisa menggunakan nama class yang sama untuk kondisi yang berbeda. kita dapat memiliki dua class bernama sama untuk keperluan yang berbeda. satu file memuat satu class saja. Biasanya untuk kasus normal. kita juga memiliki class Session untuk merepresentasikan koneksi yang kita lakukan ke database.PEMROGRAMAN JAVA | HALAMAN 23 tidak dianjurkan. untuk tampilan web.latihan. Adanya nama package menyediakan namespace. public class Session { } Dengan demikian. Dalam urusan Session ini.artivisi.artivisi.latihan. public class Session { } dan package com. Jenis-jenis class member adalah: ● ● Constructor Method .web. kita dapat menempatkan kedua Session ke dalam dua package. Deklarasi class menjadi sebagai berikut: package com.database. Class Member Sebuah class berisi banyak class member. kita memiliki class Session yang merepresentasikan kegiatan user yang sedang login. Di sisi lain. Package Class dikelompokkan dalam package. Jadi ada Session untuk tampilan dan ada Session koneksi database.

dan statement yang memanggil function. kode seperti di atas akan menimbulkan error kompilasi. Di Java. Sebagai ilustrasi. display_person().   echo($p=>name). deklarasi function.   $p=>name = “Endy”. ?> Pada kode di atas. kita harus membuat method di dalam class. Untuk melakukan hal yang sama (deklarasi class. kita bisa mendeklarasikan variabel atau membuat function di mana saja. deklarasi function. } function display_person(){   $p = new Person(). dalam satu file belajar. seperti ini: . Tetapi di Java. } echo(“menjalankan function <br>”). kita menempatkan kode menurut aturan Java. dan mengeksekusi function tersebut) di Java. isinya bisa seperti ini: <? class Person {   var $name. kita lihat dalam satu file bisa berisi deklarasi class.php. Berbeda dengan bahasa pemrograman PHP atau Ruby. di Java semua kode program harus diletakkan pada tempatnya. Di PHP misalnya.HALAMAN 24 | JAVA FUNDAMENTAL ● ● Property Inner Class Penjelasan lebih lanjut tentang masing-masing class member ini akan diberikan di bab selanjutnya.

    p. Ekspresi Ekspresi adalah rangkaian variabel atau pemanggilan method yang menghasilkan satu nilai. tidak ada statement yang ada di luar class.println(“Halo”). dimana statement diakhiri dengan pergantian baris.PEMROGRAMAN JAVA | HALAMAN 25 package belajar. Contoh statement adalah sebagai berikut: System. class Person {   public String name.println(p.   }   public static void main(String[] xx) {     displayPerson(). Semua deklarasi function (method) dan variabel dilakukan di dalam class.java. Setiap statement diakhiri dengan tanda titik koma (. Expression.). Block Statement Statement dalam bahasa Indonesia dapat diartikan menjadi instruksi atau perintah. Statement.out. Ini berbeda dengan VB.out. } public class Belajar {   public static void displayPerson() {     Person p = new Person().name).name = “Endy”.   } } Seperti kita lihat di atas.     System. Ekspresi biasanya digunakan dalam .

kita menambahkan satu baris komentar di atasnya untuk menjelaskan kegunaan algoritma tersebut. yaitu 5. Coba lihat contoh kode berikut: int a = 5. Komentar Komentar adalah tulisan dalam kode program yang diabaikan oleh compiler. if (username.startsWith(“admin”) Ekspresi pertama menghasilkan nilai integer. Sedangkan ekspresi kedua menghasilkan nilai true atau false. Dengan demikian. Komentar digunakan untuk memperjelas kode program kita. tergantung apa isi variabel username. C++. Komentar satu baris diawali dengan dua tanda garis miring seperti ini: .startsWith(“admin”)) {   // lakukan sesuatu } Pada contoh kode di atas. orang tidak harus membaca keseluruhan baris kode hanya untuk memahami bahwa kode tersebut (misalnya) melakukan formatting untuk tampilan report. Penulisan komentar di Java sama dengan komentar di C.HALAMAN 26 | JAVA FUNDAMENTAL deklarasi variabel atau dalam percabangan. yang disebut ekspresi adalah: a = 5 dan username. Misalnya ada algoritma rumit yang panjangnya beberapa belas baris. atau PHP.

 catat. Berikut contoh komentar JavaDoc. Berbeda dengan komentar biasa yang diabaikan kompiler.next()) {   if(rs.getDouble(“price”) > 10000. Contohnya sebagai berikut: /* Menjelajahi hasil query dari database.startsWith(“admin”)) {   // redirect ke admin page } Komentar yang terdiri dari banyak baris diawali dengan /* dan diakhiri dengan */.PEMROGRAMAN JAVA | HALAMAN 27 // apabila user adalah admin. JavaDoc ini biasanya dibuat untuk mendokumentasikan class dan class member. langsung buka halaman admin if(username. */ while(rs. .0) {     // tulis ke log file   } } JavaDoc Selain komentar biasa seperti di atas.  Bila menemukan pesanan yang bernilai tinggi. untuk komentar JavaDoc kita dapat menggunakan kompiler khusus untuk mengambil dan memformat isinya menjadi dokumentasi dalam bentuk HTML. di Java dikenal satu jenis komentar khusus yang dinamakan komentar JavaDoc.

HALAMAN 28 | JAVA FUNDAMENTAL /** * menangani halaman login di website.  * Class ini dapat dipanggil melalui URL  * http://<nama­server>/latihan/login */ public class LoginProcessor {   /**   * memeriksa username dan password.   * @param username nama user yang ingin diperiksa   * @param password kata kunci yang ingin diperiksa   * @return true kalau kombinasi username/password      ada di database. false kalau tidak ada   */   public boolean isExist(String username.    * Method ini akan menerima username dan password   * dari parameter dan mencocokkannya    * dengan isi database.                          String password) {   } } Kode di atas dapat dikompilasi dengan perintah sebagai berikut: .

Generating index....html..0 Building tree for all the packages and classes. Generating allclasses­frame.html.. Standard Doclet version 1. Generating LoginProcessor... Generating constant­values. seperti dapat dilihat di screenshot berikut. Generating deprecated­list.java. Building index for all classes.html. Generating package­tree..html. ... Constructing Javadoc information.html.html...html.. Generating overview­tree.html.PEMROGRAMAN JAVA | HALAMAN 29 C:\> javadoc LoginProcessor. Generating index­all..6. Generating allclasses­noframe..java Loading source file LoginProcessor.html.. Generating stylesheet......... Generating help­doc.html.. Perintah javadoc ini akan menghasilkan banyak file di dalam target folder.. Generating package­frame....html.... Generating package­summary..css....html.html dengan menggunakan browser. Building index for all the packages and classes. Kita bisa buka file index.

html. Penjelasan method yang kita tuliskan di atas telah disalin dengan rapi ke dalam dokumentasi HTML. Pada screenshot di atas kita bisa lihat ada bagian Constructor Summary dan Method Summary.HALAMAN 30 | JAVA FUNDAMENTAL Berikut adalah tampilan browser yang telah membuka index. dalam hal ini hanya ada satu class LoginProcessor. karena perangkat pembantunya sudah tersedia. Dengan demikian. kita bisa membuat dokumentasi source code dengan mudah. Sebelah kiri berisi daftar class yang berhasil ditemukan javadoc. disajikan informasi rinci tentang class tersebut. Keterangan tentang method isExist dapat dilihat pada screenshot berikut. Di sebelah kanan. tampilan hasil JavaDoc terdiri dari dua frame. . Seperti kita lihat.

short. Berukuran 64 bit Bilangan pecahan ● ● float. Menyimpan nilai true atau false. Berukuran 16 bit int. Primitif Tipe data primitif menyimpan tipe data sederhana. Berikut adalah daftar tipe data primitif yang ada dalam Java. ● Bilangan bulat ● ● ● ● ● byte. Berukuran 64-bit IEEE 754 ● Non bilangan ● char. Berukuran 8 bit. . Tipe data array nantinya akan dibahas lebih lanjut dalam bahasan tentang Collection Framework. Java mengenal dua jenis data: primitif dan referensi. Referensi Tipe data referensi diklasifikasikan menjadi dua jenis: array dan object. Mari kita lihat satu persatu. Berukuran 32 bit long. Berukuran 16 bit Unicode ● boolean. Menyimpan satu huruf. Berukuran 32-bit IEEE 754 double.PEMROGRAMAN JAVA | HALAMAN 31 Tipe data Salah satu hal pertama yang kita perlu pahami dalam bahasa pemrograman apapun adalah bagaimana bahasa tersebut menyimpan data. Sedangkan tipe data object akan dibahas dalam bagian tersendiri tentang Object.

tetapi kedua method ini akan berperilaku berbeda jika dijalankan. Walaupun sama.println(“Nilai dalam method: ”+x). kemudian mencetaknya di konsol.   } } Seperti kita lihat.out. Ada dua mekanisme passing. tipe data primitif dipassing by value.HALAMAN 32 | JAVA FUNDAMENTAL Passing Variabel Hal penting lainnya dalam belajar bahasa pemrograman adalah mengetahui bagaimana suatu variabel dikirim ke method atau function lain (mekanisme passing). mari kita buat dua buah method. Dalam Java. satu lagi menerima masukan array. public class PassingVariables {   public void cetakDanTampilkan(int x){     x = x + 1. package tutorial. Mari kita tambahkan method main untuk menjalankan contoh ini.     System. sedangkan tipe data array dan object dipassing by reference. kedua method melakukan hal yang sama.   }   public void cetakDanTampilkan(int[] x){     x[0] = x[0] + 1.out. Untuk mengilustrasikannya. .println(“Nilai dalam method: ”+x[0]). yaitu by value dan by reference.variable.     System. yang satu menerima masukan int. Mereka menambahkan nilai variabel yang dipassing dengan angka 1.fundamental.

nilai variabel tidak berubah. Sebelum: 5 Nilai dalam method: 6 Setelah: 5 Sebelum: 5 Nilai dalam method: 6 Setelah: 6 Seperti kita lihat.   pv.out.println(“Setelah: ”+y[0]).PEMROGRAMAN JAVA | HALAMAN 33 public static void main(String[] xx) {   PassingVariables pv = new PassingVariables(). yang ditambah adalah variabel yang baru.cetakDanTampilkan(y). Java akan membuatkan satu variabel lain bernilai sama. variabel asli dan . bukan yang asli. Variabel bertipe primitif nilainya tetap 5. sedangkan variabel bertipe array nilainya menjadi 6.out.   int z = 5. Passing by value artinya yang dikirim (passing) adalah nilainya (by value).   pv.println(“Sebelum: ”+z).println(“Sebelum: ”+y[0]). hasilnya adalah seperti ini.    System.   System.println(“Setelah: ”+z).out. Passing by reference artinya yang dikirim (passing) adalah alamat memorinya (by reference).cetakDanTampilkan(z). Dengan demikian.   System.out. ada perbedaan di akhir eksekusi method.   System. Jadi. Ketika kita lakukan pertambahan dengan 1. ketika variabel dimasukkan ke dalam method.   int[] y = {5}. } Bila kode ini dijalankan. Ini sebabnya ketika kita cetak nilai variabel setelah method dijalankan.

yaitu operator = dan +. Ini sebabnya setelah eksekusi method.  int y = 5.HALAMAN 34 | JAVA FUNDAMENTAL variabel yang dikirim menunjuk ke lokasi memori yang sama.  ● Ternary operator: memiliki tiga operand.  ● Binary operator: memiliki dua operand. Operator Operator juga adalah hal yang umum dalam bahasa pemrograman. kita dapat klasifikasikan operator menjadi: ● ● ● Aritmatika Relasional Logika . int x = 3. kita dapat mengklasifikasikan operator menjadi: ● Unary operator: jumlah operand cuma satu. Berdasarkan jumlah operand-nya. Nilai yang berada di sisi kiri atau sisi kanan operator disebut dengan operand. Contoh: success ? “Ok” : “Not OK” Berdasarkan penggunaannya. Ada dua operator yang digunakan pada kode di atas. variabel yang asli ikut berubah nilainya. Contoh: y++. Mari kita lihat contoh kode berikut. Ketika variabel di dalam method nilainya ditambah satu. variabel asli akan berubah nilainya.  int z = x + y. Contoh: x + y.

3) Modulus adalah perhitungan nilai sisa. Maka z akan bernilai 4. Aritmatika Operator ini digunakan untuk melakukan operasi matematika. Selain operator di atas. Berikut adalah daftar operator aritmatika. Apabila kita memiliki kode program seperti ini: int x = 10.  int z = 10 % 3.PEMROGRAMAN JAVA | HALAMAN 35 ● ● Assignment Lain-lain Mari kita lihat satu persatu. bagaimana dengan operasi perpangkatan? Pada bahasa pemrograman lain ada yang menulis 2 pangkat 3 seperti ini: 2 ^ 3 Di Java. Math. int y = 6. karena 10 dibagi 3 menghasilkan 1 dan sisanya adalah 4. 2 pangkat 3 ditulis seperti ini dalam Java.pow(2. operasi perpangkatan dilakukan dengan menggunakan method pow dari class Math. Operator + * / % Pertambahan Pengurangan Perkalian Pembagian Nilai sisa dari pembagian (modulus) Kegunaan Contoh x+y x-y x*y x/y x%y Pada saat ini mungkin ada pembaca yang berkomentar. ada lagi operator aritmatika yang berguna .

Dan hasilnya adalah sebagai berikut. Sehingga nilai akhir z adalah 6. Yang perlu diperhatikan adalah. ataupun di depan operand (++z).out.println(x++). dan PHP tentu sudah tidak asing lagi dengan operator ini. yaitu mengurangi satu. Bila kode di atas dijalankan. Operator ­­ bekerja sebaliknya. Sedangkan bila diletakkan di depan operand.println(x). C++.out. Mari kita ilustrasikan melalui contoh kode. Berikut contoh kodenya. akan menambah satu setelah operand dievaluasi (dalam hal ini dicetak dengan perintah println). Pembaca yang berasal dari latar belakang C. int x = 10.  System.println(++x). int x = 10.  System.out.HALAMAN 36 | JAVA FUNDAMENTAL untuk mempersingkat kode. Operator ++ menambah satu ke operand-nya.println(x). hasilnya adalah: 10 11 Operator ++ yang diletakkan di belakang operand.out.  System. maka z++ sama dengan z = z + 1. operator ini dapat diletakkan di belakang operand (z++). akan menambah satu sebelum operand dievaluasi. . Penempatan yang berbeda akan menghasilkan hal yang berbeda pula.  System. yaitu operator ++ dan ­­. Jadi kalau nilai awal variabel z adalah 5.

isCorrect()) {} Pada kode di atas. kita juga dapat menggunakan operator & untuk melakukan operasi And.isCorrect() menghasilkan nilai false. sudah pasti hasil keseluruhannya adalah false.isCorrect(). Perhatikan kode berikut sebagai ilustrasi.PEMROGRAMAN JAVA | HALAMAN 37 10 11 Relasional Operator relasional membandingkan operand dan menentukan hasil perbandingan tersebut. if (username. Operator relasional dalam Java adalah sebagai berikut. apapun hasil dari password. Perbedaan antara && dan & adalah dengan &&. Berikut adalah operator kondisional yang tersedia di Java. Operator > < >= <= != == 3>5 3<5 3 >= 5 3 <= 5 3 != 5 3 == 5 => false => true => false => true => true => false Contoh Kondisional Operator kondisional berhubungan erat dengan nilai true atau false. operand kedua tidak diperiksa apabila hasil akhir sudah dapat ditentukan.isCorrect() && password. . Bila kita menggunakan &&. bila username. Operator && || ! Nama And Or Not true && false true || false !true Contoh => false => false => false Selain operator &&. Operator ini biasanya digunakan dalam blok if-else atau while.

if Contoh penggunaan if di Java adalah sebagai berikut. kita gunakan else if. Assignment Lainnya Aliran kontrol Aliran kontrol adalah teknik pemrograman untuk menentukan jalannya program. Kita bisa menggunakan || atau | dengan perilaku yang sama dengan && dan &.isCorrect() tidak dieksekusi. hanya sintaksnya saja yang berbeda.HALAMAN 38 | JAVA FUNDAMENTAL password. } Apabila pilihannya lebih dari dua. } else {   return 28. Demikian juga untuk operator Or. Fitur ini ada di semua bahasa pemrograman. if (year % 4 == 0) {   return 29. Jadi. . arti dari masingmasingnya tidak dijelaskan lebih lanjut.

PEMROGRAMAN JAVA | HALAMAN 39 if (username.equals(“administrator”)) {   // lakukan sesuatu  } else if (username. .equals(“guest”)) {   // lakukan sesuatu } else {   // lakukan sesuatu } switch Berikut adalah contoh kode switch. diambil dari tutorial Java.

Berikut contoh kode for.     break.   case 4:   case 6:   case 9:   case 11:     numDays = 30.HALAMAN 40 | JAVA FUNDAMENTAL switch (month) {   case 1:   case 3:   case 5:   case 7:   case 8:   case 10:   case 12:     numDays = 31. } for For digunakan untuk perulangan. diambil dari Java Tutorial dari Sun.     break. .     else       numDays = 28.     break.   case 2:     if ( ((year % 4 == 0) && !(year % 100 == 0))                           || (year % 400 == 0) )       numDays = 29.

} akan menampilkan: endy oky Looping selesai Jadi begitu keyword break dijalankan. Contoh kodenya adalah sebagai berikut. 589 }. 3. while(resultSet. } while Bentuk while biasanya digunakan untuk perulangan yang belum dapat ditentukan titik akhirnya. i++) {     System.out.length.out. 87.next()) {   // lakukan sesuatu } break Keyword break digunakan untuk segera keluar dari loop.print(arrayOfInts[i] + " ").println(“Looping selesai”). seperti misalnya membaca hasil query database yang jumlahnya belum diketahui. “anton”}. i++) {   System.   for(int i = 0.     if(members[i]. public void displayMembers()   String[] members = {“endy”.length. “oky”.PEMROGRAMAN JAVA | HALAMAN 41 int[] arrayOfInts = { 32. loop yang mengelilinginya langsung disudahi.out.   }   System.equals(“oky”) break.println(members[i]). i < arrayOfInts. for (int i = 0. . i<members.

  for(int i = 0. “anton”}.println(“Looping selesai”).equals(“oky”) continue. Kita akan gunakan contoh kode yang sama. public void displayMembers()   String[] members = {“endy”.     System. Mari kita modifikasi contoh kode di atas untuk mengilustrasikannya. i++) {     if(members[i]. hanya keyword continue yang kita ganti dengan return.length.       }   System. i<members.println(members[i]).out. keyword continue hanya menghentikan iterasi yang sedang berjalan. “oky”. . } Kode di atas akan menampilkan: endy anton Looping selesai return Keyword return akan langsung mengakhiri method yang mengelilinginya.out.HALAMAN 42 | JAVA FUNDAMENTAL continue Kalau keyword break menghentikan loop.

    System. “oky”.println(members[i]). i++) {     if(members[i].out. karena method langsung berakhir.   for(int i = 0. . baris Looping selesai tidak dijalankan.out.PEMROGRAMAN JAVA | HALAMAN 43 public void displayMembers()   String[] members = {“endy”. “anton”}. i<members.       }   System.equals(“oky”) return. } Kode di atas akan menampilkan: endy Seperti kita lihat.println(“Looping selesai”).length.

Sign up to vote on this title
UsefulNot useful