Saturday, January 31, 2015

Bab 1: Java Teori dan Impementasi

Bab. 1 Introduksi Pemrograman JAVA

Tujuan Instruksional
Meninjau-ulang dasar-dasar komputer, pemrograman, dan sistem operasi.
Menjelajah hubungan antara Java dan World Wide Web.
Membedakan istilah API, IDE, dan JDK.
Menulis program Java sederhana.
Menampilkan keluaran pada konsol.
Menjelaskan sintaks dasar dari program Java.
Menulis, mengkompilasi, dan menjalankan program Java.
Menampilkan keluaran menggunakan kotak dialog JOptionPane.

1.1 Introduksi
Pengolah kata (word processor) dipakai untuk menulis naskah, penjelajah Web untuk mengeksplorasi Internet, dan program email untuk mengirim email. Contoh-contoh tersebut merupakan perangkat lunak yang dapat dijalankan pada komputer. Perangkat lunak dikembangkan menggunakan bahasa pemrograman. Ada banyak bahasa pemrograman---jadi kenapa harus JAVA? Jawabannya adalah bahwa JAVA memampukan pengguna untuk mengembangkan dan menyebarkan aplikasi-aplikasi melalui Internet untuk server, komputer desktop, dan divais-divais elektronik cerdas lainnya. Masa depan komputasi akan sangat bergantung pada Internet, dan JAVA menjanjikan untuk menjadi bagian penting pada masa depan tersebut. Dengan kata lain, JAVA merupakan bahasa pemrograman Internet.


1.2 Apa Itu Komputer?
Komputer adalah suatu divais elektronik yang mampu menyimpan dan mengolah data. Komputer terdiri-dari perangkat keras (hardware) dan perangkat lunak (software). Pada umumnya, perangkat keras memuat elemen-elemen fisikal komputer dan perangkat lunak yang menyediakan instruksi-instruksi untuk mengendalikannya. Menulis intruksi-instruksi yang memerintahkan komputer untuk melakukan sesuatu disebut dengan memprogram komputer. Memiliki pengetahuan tentang perangkat keras komputer merupakan hal yang tidak esensial dalam mempelajari suatu bahasa pemrograman, tetapi hal itu dapat membantu Anda lebih memahami pengaruh instruksi-instruksi program. Suatu komputer memuat komponen-komponen perangkat keras utama (Lihat Gambar 1.1):
a. CPU (central processing unit)
b. Memori
      c. Divais-divais penyimpanan (hardisk, CD, dll) 
      d. Divais-divais masukan dan keluaran (monitor, keyboard, mouse, printer)
      e. Divais-divais komunikasi (modem dan kartu antar-muka jaringan (NIC, network interface card)

Komponen-komponen di atas terhubung melalui suatu subsistem yang disebut dengan bus yang mentransfer data atau memberikan daya listrik.

Gambar 1.1 Suatu komputer


1.2.1 CPU (Central Processing Unit)
CPU merupakan otak suatu komputer. Tugasnya adalah mengambil instruksi-instruksi dari memori kemudian mengeksekusinya. CPU biasanya memiliki dua komponen: suatu unit kendali dan suatu unit aritmatik/logik. Unit kendali bertugas untuk mengendalikan dan mengkoordinasikan aksi-aksi komponen-komponen komputer yang lain. Unit aritmatik/logik berfungsi untuk melakukan operasi-operasi numerik (penjumlahan, pengurangan, perkalian, dan pembagian) dan operasi-operasi logikal (perbandingan-perbandingan).

CPU mutakhir saat ini dimanufaktur dalam suatu chip semikonduktor silikon berukuran kecil yang memiliki jutaan transistor. Setiap komputer memiliki suatu pewaktu internal, yang menghasilkan pulsa-pulsa elektronik dengan laju konstan. Semakin tinggi kecepatan pewaktu, semakin banyak pula instruksi yang dieksekusi pada suatu periode waktu. Satuan ukuran kecepatan pewaktu adalah hertz (Hz), dimana 1 hertz sama dengan satu pulsa per detik. Kecepatan pewaktu suatu komputer biasanya dinyatakan dalam megahertz (MHz) (1 MHz sama dengan 1 juta Hz).

Gambar 1.2 Memori menyimpan data dan instruksi-instruksi program


1.2.2 Memori
Untuk menyimpan dan memproses informasi, komputer memerlukan keadaan-keadaan elektrikal on dan off, yang dinyatakan secara konvensional dengan 1 dan 0. Keadaan 0 dan 1 diinterpretasikan sebagai dijit-dijit dalam sistem bilangan biner dan dikenal sebagai bit (dijit biner). Berbagai jenis data, seperti angka, karakter, dan string, dikodekan sebagai rentetan bit. Data dan instruksi program yang dieksekusi CPU disimpan dalam grup-grup bit, atau byte, dimana setiap byte terdiri-dari delapan bit, di dalam suatu memori komputer. Suatu unit memori merupakan runtun byte terurut, seperti yang ditunjukkan pada Gambar 1.2.

Programmer tidak perlu khawatir pengkodean dan pendekodean data, karena sistem melakukannya secara otomatis, berdasarkan pada skema pengkodean. Dalam skema pengkodean ASCII, misalnya, karakter ‘J’ direpresentasikan dengan 01001010 di dalam satu byte.

Suatu byte merupakan unit penyimpanan minimum. Suatu angka kecil, misalnya 3, dapat disimpan dalam suatu byte tunggal. Akan tetapi, untuk menyimpan suatu angka yang tidak muat dalam satu byte, komputer menggunakan beberapa byte memori yang bertetangga.

Tidak ada byte memori yang kosong dan isi inisialnya tidak bermanfaat bagi program Anda. Nilai yang terkandung dalam suatu memori akan hilang manakala nilai baru ditempatkan pada memori yang sama.  Suatu program dan datanya harus dibawa ke memori sebelum dieksekusi.

Setiap byte memiliki alamatnya masing-masing. Alamat tersebut digunakan untuk menunjukkan lokasi penyimpanan dan mengetahui lokasi pengambilan atau penarikan data. Karena byte-byte dalam memori tersebut dapat diakses dengan sembarang urutan, maka disebut dengan memori akses-acak (RAM, random-access memory). Komputer pribadi dewasa ini memiliki minimum RAM 1 gigabyte. Ukuran penyimpanan komputer diukur dalam byte, kilobyte (KB), megabyte (MB), gigabyte (GB), dan terabyte (TB). Satu kilobyte adalah , atau sekitar 1000 byte, dan satu gigabyte adalah , atau sekitar sejuta byte.


1.2.3 Divais Penyimpanan
Memori dikatakan volatile, karena informasi hilang saat daya listrik tidak ada atau mati. Untuk mengatasinya, program dan data dapat secara permanen disimpan dalam divais-divais penyimpanan. Terdapat beberapa divais penyimpanan utama:
    Diskk drive
    CD drive (CD-R, CD-RW, dan DVD)
    USB flash drive

Disk
Setiap komputer memiliki paling sedikit satu hard drive. Hard disk menyimpan data dan program secara permanen. Hard disk belakangan ini mampu menyimpan dari 500 gigabyte sampai 1 terabyte.

CD dan DVD
CD adalah kependekan dari compact disk. Ada dua tipe CD drive: CD-R dan CD-RW. Suatu CD-R hanya bisa dipergunakan untuk penyimpanan permanen mode read-only; pengguna tidak bisa memodifikasi isinya setelah informasi disimpan atau direkam. Suatu CD-RW berperan seperti layaknya hard disk, yang dapat dibaca dan ditulis-ulang. Suatu CD mampu menampung data sampai sebanyak 700 MB. Kebanyakan perangkat lunak didistribusikan melalui CD-ROM. Saat ini hampir semua komputer pribadi dilengkapi dengan CD-ROM drive yang dapat berperan baik sebagai CD-R maupun sebagai CD-RW.

DVD adalah singkatan dari digital versatile disc atau digital video disk.  Tampilan DVD dan CD sama, dan keduanya dapat digunakan untuk menyimpan data. Suatu DVD dapat menampung data lebih banyak dari CD, dengan kapasitas penyimpanan standar sebesar 4,7 GB.

USB flash drive
USB flash drive merupakan divais untuk menyimpan dan memindahkan data. Ukurannya kecil, kira-kira sebesar permen karet. Divais ini berperan seperti layaknya hard drive portabel yang dapat disambungkan ke  port USB komputer. Kapasitas USB flash drive saat ini tersedia sampai dengan 64 GB.


1.2.4 Divais Masukan dan Keluaran
Divais masukan dan keluaran memampukan pengguna untuk berkomunikasi dengan komputer. Divais masukan yang paling sering dijumpai adalah keyboard dan mouse. Divais keluaran yang umum adalah printer dan monitor.

Keyboard
Keyboard komputer menyerupai papan ketik mesin ketik dengan beberapa kunci ekstra untuk fungsi-fungsi spesial. Kunci-kunci fungsi dilokasikan di atas keyboard dan dinomori dengan awalan F. Kegunaannya tergantung pada perangkat lunak. Suatu kunci modifier adalah kunci spesial (Shift, Alt, Ctrl, dll) yang memodifikasi kegunaan normal kuncil lain pada saat ditekan bersamaan.

Kunci numerik (numeric keypad), yang ditempatkan di pojok kanan bawah keyboard, adalah sekumpulan kunci untuk mengetikkan angka-angka dengan cepat.

Kunci-kunci Insert, Delete, Page Up, dan Page Down digunakan untuk pengolahan kata untuk menyisipkan, menghapus, menggeser halaman ke atas, dan menggeser halaman ke bawah.

Mouse
Suatu mouse adalah divais penunjuk, digunakan untuk menggeser suatu penunjuk elektronik yang disebut dengan pointer di sekitar layar atau untuk mengklik suatu objek pada layar.

Monitor
Monitor menampilkan informasi (teks dan grafik). Resolusi layar, yang menentukan kualitas tampilan, diukur berdasarkan jumlah piksel pada tiap inchi kuadrat. Piksel merupakan titik kecil yang membentuk suatu citra pada layar. Resolusi yang umum dijumpai untuk suatu layar 17 inchi adalah 1024 piksel (lebar) dan 768 piksel (tinggi). Tetapi resolusi dapat diatur secara manual. Semakin tinggi resolusi, semakin tajam dan jelas pula citra yang ditampilkan.


1.2.5 Divais Komunikasi
Beberapa komputer dapat dihubungkan melalui divais-divais komunikasi seperti modem dialup (modulator/demodulator), DSL, modem kabel, NIC (network interface card), dan nirkabel. Suatu modem dialup menggunakan jaringan telepon kabel dan dapat memindahkan data sampai dengan 56.000 bps (bit per second). Suatu DSL (digital subscriber line) juga menggunakan jaringan telepon kabel dan dapat memindahkan data dua puluh kali lebih cepat dari modem dialup. Suatu modem kabel menggunakan jaringan TV kabel dan dapat memindahkan data secepat DSL. NIC adalah suatu divais yang menghubungkan komputer dengan  LAN (local area network). LAN secara umum digunakan oleh universitas, organisasi bisnis, dan institusi pemerintahan. Jenis NIC yang banyak dijumpai adalah 10BaseT yang dapat memindahkan data sampai dengan 10 mbps (million bits per second). Teknologi nirkabel dewasa ini sangat populer. Hampir semua laptop saat ini diperlengkapi dengan suatu adapter nirkabel yang bisa menghubungkan komputer dengan Internet.


1.3 Program
Program komputer, yang dikenal dengan perangkat lunak, adalah instruksi-instruksi untuk komputer, yang mendeskripsikan apa yang harus dilakukan komputer. Komputer tidak bisa memahami bahasa manusia, sehingga diperlukan penggunaan bahasa komputer di dalam program komputer. Pemrograman adalah pembuatan suatu program yang dapat dieksekusi oleh suatu komputer agar dapat melakukan tugas-tugas yang diperintahkan.

Bahasa natif suatu komputer, yang berbeda di antara tipe komputer, merupakan bahasa mesin. Bahasa mesin adalah sekumpulan instruksi primitif. Instruksi-instruksi ini memiliki format kode biner, jadi dalam memerintah mesin untuk melakukan sesuatu, Anda harus memberikan kode biner. Pemrograman bahasa mesin merupakan proses yang melelahkan, karena program bahasa mesin sangat susah dipahami dan dimodifikasi. Misalnya, untuk menambahkan dua angka, Anda harus menulis suatu instruksi biner berikut ini:

1101101010011010

Bahasa Assembly adalah suatu bahasa pemrograman tingkat-rendah, dimana di dalamnya suatu mnemonic digunakan untuk merepresentasikan setiap instruksi bahasa mesin. Sebagai contoh, untuk menjumlahkan dua angka, Anda harus menuliskan suatu instruksi dalam kode Assembly seperti ini:

ADDF3 R1, R2, R3

Bahasa Assembly dikembangkan untuk mempermudah pemrograman. Namun, karena komputer tidak bisa memahami bahasa Assembly, maka suatu program yang dikenal dengan Assembler dibuat untuk mengonversi program-program Assembly menjadi kode-kode mesin, seperti yang ditampilkan pada Gambar 1.3.

Gambar 1.3 Assembler menerjemahkan instruksi-instruksi bahasa Assembly menjadi kode mesin

Program Assembly ditulis menggunakan nama-nama mnemonic yang gampang diingat untuk merepresentasikan instruksi-instruksi mesin. Karena bahasa mesin sangat bergantung pada jenis mesin yang digunakan, maka suatu program Assembly bisa dieksekusi hanya pada jenis mesin tertentu. Bahasa-bahasa pemrograman tingkat-tinggi dikembangkan dengan tujuan agar ketergantungan terhadap mesin tersebut bisa teratasi dan agar membuat pemrograman menjadi lebih mudah.

Bahasa-bahasa pemrograman tingkat-tinggi diciptakan dengan peristilahan yang mirip dengan bahasa Inggris. Sebagai contoh, suatu statemen bahasa pemrograman tingkat-tinggi berikut ini dipakai untuk menghitung luas suatu lingkaran dengan radius  5:

luas = 5 * 5 * 3.1415;

Dari seratus lebih bahasa-bahasa pemrograman tingkat-tinggi, berikut adalah yang paling dikenal publik:
COBOL (Common Business Oriented Language)
FORTRAN (FORmula TRANslation)
BASIC (Beginner’s All-purpose Symbolic Instruction Code)
Pascal (dinamai dari ilmuwan Blaise Pascal)
Ada (dinamai dari Ada Lovelace)
C (dikembangkan oleh perancang B)
Visual Basic (bahasa visual seperti-Basic dikembangkan oleh Microsoft)
Delphi (bahasa visual seperti-Pascal dikembangkan oleh Borland)
C++ (bahasa pemrograman berorientasi objek, dikembangkan dari C)
C# (bahasa seperti-JAVA dikembangkan oleh Microsoft)
JAVA

Setiap bahasa pemrograman tersebut dikembangkan untuk tujuan spesifik. COBOL dirancang untuk aplikasi-aplikasi bisnis dan lebih banyak digunakan untuk pengolahan data bisnis. FORTRAN didesain untuk komputasi matematik dan secara umum digunakan untuk komputasi numerik. BASIC diciptakan agar bisa dipelajari dan dipahami dengan mudah. Ada dikembangkan untuk Departemen Pertahanan Amerika dan diterapkan pada proyek-proyek pertahanan dan militer. Bahasa C menggabungkan kekuatan bahasa Assembly dengan kemudahan dan portabilitas bahasa tingkat-tinggi. Visual Basic dan Delphi digunakan untuk mengembangkan antar-muka pengguna grafikal (GUI, graphical user interface) dan merupakan bahasa tingkat-tinggi yang sangat cepat berkembang. C++ sangat populer untuk proyek-proyek perangkat lunak seperti kompiler dan sistem operasi. Sistem operasi Microsoft Windows dikembangkan dari C++. C# (diucapkan sebagai C sharp) adalah bahasa pemrograman yang dikembangkan oleh Microsoft untuk aplikasi-aplikasi yang berbasis Microsoft.NET. Bahasa JAVA, yang dikembangkan oleh Sun Microsystem, digunakan secara luas untuk aplikasi Internet.

Suatu program yang ditulis dengan bahasa pemrograman tingkat-tinggi disebut dengan kode sumber atau program sumber. Karena komputer tidak memahami program sumber, maka suatu program yang dikenal dengan kompiler dipakai untuk menerjemahkannya menjadi program bahasa mesin. Program bahasa mesin tersebut kemudian dihubungkan dengan kode pustaka pendukung untuk menghasilkan suatu file yang bisa dieksekusi (executable), seperti yang ditampilkan pada Gambar 1.4. Pada Windows, file executable tersebut berekstensi .exe.

Gambar 1.4 Suatu program sumber yang dikompilasi menjadi file bahasa mesin, yang kemudian dihubungkan dengan pustaka sistem untuk menghasilkan file executable


1.4 Sistem Operasi
Sistem operasi merupakan program paling penting pada suatu komputer, yang mengelola dan mengendalikan aktifitas komputer. Tiga sistem operasi yang paling populer saat ini adalah Microsoft Windows, MAC OS, dan Linux. Program-program aplikasi, seperti penjelajah Web (Web browser) dan pengolah kata, tidak dapat bekerja tanpa adanya sistem operasi. Relasi antara perangkat keras, sistem operasi, dan pengguna ditunjukkan pada Gambar 1.5.

Gambar 1.5 Sistem operasi adalah perangkat lunak yang mengendalikan dan mengelola sistem

Tiga tugas utama sistem operasi adalah:
Mengendalikan dan memonitor aktifitas-aktifitas sistem
Mengalokasikan sumber daya sistem
Melakukan operasi-operasi penjadwalan


1.4.1 Mengendalikan dan Memonitor Aktifitas - Aktifitas Sistem
Sistem operasi melakukan beberapa tugas dasar, seperti mengenali masukan dari keyboard, mengirim keluaran ke monitor, menjejak file dan direktori pada disk, dan mengendalikan divais-divais periferal (disk drive dan printer). Sistem operasi juga harus menjamin bahwa beberapa program dan beberapa pengguna yang berbeda yang berjalan pada saat bersamaan tidak akan saling menginterferensi satu sama lain. Sistem operasi bertanggung jawab atas keamanan data, sehingga pihak yang tidak berotoritas tidak bisa mengakses sistem.


1.4.2 Mengalokasikan Sumber Daya Sistem
Sistem operasi bertanggung jawab untuk menentukan apa sumber daya komputer yang dibutuhkan oleh suatu program (misalnya CPU, memori, disk, divais masukan, dan divais keluaran).


1.4.3 Melakukan Operasi-Operasi Penjadwalan
Sistem operasi bertanggung jawab untuk menjadwal program-program agar penggunaan sumber daya menjadi efisien. Banyak sistem operasi sekarang ini menyediakan teknik-teknik, seperti multiprogramming, multithreading, dan multiprocessing untuk meningkatkan kinerja sistem.

Multiprogramming memampukan beberapa program berjalan secara bersamaan dengan memakai CPU secara bersama. CPU jauh lebih cepat dibandingkan komponen-komponen komputer yang lain. Akibatnya, CPU lebih sering santai, misalnya, pada saat menunggu data yang dikirim dari suatu disk atau dari sumber lain. Teknik multiprogramming pada sistem operasi memanfaatkan situasi seperti ini dengan mengijinkan beberapa program menggunakan CPU. Sebagai contoh, Anda bisa menggunakan suatu pengolah kata untuk mengedit file pada saat sedang menjelajah dunia maya untuk mengunduh data.

Multithreading mengijinkan konkurensi dalam suatu program, sehingga beberapa tugas internal dalam suatu program dapat berjalan secara bersamaan. Misalnya, suatu program pengolah kata membolehkan pengguna secara bersamaan mengedit teks dan menyimpannya dalam suatu file. Pada contoh ini, pengeditan dan penyimpanan adalah dua tugas internal dalam suatu aplikasi.

Multiprocessing, atau pemrosesan paralel, menggunakan dua atau lebih prosesor secara bersamaan untuk melakukan suatu tugas. Hal ini mirip dengan operasi pembedahan dimana beberapa dokter bekerja pada seorang pasien.


1.5 JAVA dan World Wide Web
Buku ini dimaksudkan untuk mengenalkan pemrograman JAVA. Bahasa JAVA dikembangkan oleh sebuah tim yang diketuai oleh James Gosling di Sun Microsystem. JAVA awalnya dikenal dengan Oak, yang didesain pada tahun 1991 untuk chip-chip yang tertanam pada peralatan-peralatan elektronik. Pada tahun 1995, diberi nama baru JAVA, yang didesain ulang untuk mengembangkan aplikasi-aplikasi Internet. Untuk lebih lengkapnya, Anda dapat mengunjungi situs java.sun.com/features/1998/05/birthday.html.

JAVA telah menjadi sangat populer. Perkembangannya yang sangat cepat dan penerimaannya di kalangan pengguna dapat dijejak dari karakteristik perancangannya, khususnya dari janji pengembang JAVA bahwa begitu Anda menciptakan suatu program, maka Anda bisa menjalankannya di mana saja. Seperti yang dikutip dari Sun, JAVA is simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, high performance, multithreaded, and dynamic. Anatomi karakteristik JAVA dapat dibaca di situs www.cs.armstrong.edu/liang/JavaCharacteristics.pdf.

JAVA memiliki banyak fitur, bahasa pemrograman bertujuan-umum yang dapat digunakan untuk mengembangkan aplikasi-aplikasi tingkat tinggi. Saat ini, JAVA tidak lagi hanya digunakan untuk pemrograman Web, tetapi juga untuk aplikasi-aplikasi standalone bebas platform pada server, desktop, dan divais-divais bergerak (mobile). Bahasa JAVA juga telah digunakan untuk mengembangkan kode dalam berkomunikasi dan mengendalikan robot di Mars. Banyak perusahaan yang sebelumnya meremehkan keunggulan JAVA sekarang malah menggunakannya untuk mengembangkan aplikasi-aplikasi terdistribusi yang dapat diakses oleh banyak konsumen melalui internet.

World Wide Web merupakan gudang informasi elektronik yang bisa diakses melalui Internet dari mana saja. Internet, yang merupakan infrastruktur Web, telah ada lebih dari tiga puluh tahun. Nuansa artistik dan kehebatan penjelajah Web merupakan alasan utama popularitas Internet.

Bahasa pemrograman Web pertama kali adalah HTML (hypertext markup language). HTML adalah suatu bahasa sederhana untuk mengatur tata-letak dokumen, menghubungkan dokumen ke Internet, dan menjadikan gambar, suara, dan video tersedia pada Web. Namun, bahasa ini tidak dapat berinteraksi dengan pengguna kecuali bila formatnya sederhana.

Gambar 1.6 Suatu JAVA applet untuk memainkan Tic Tac Toe yang terpasang pada suatu halaman HTML.

JAVA pada awalnya atraktif karena program JAVA dapat dijalankan dari suatu penjelajah Web. Program JAVA tersebut dikenal dengan applets. Program ini memakai antarmuka grafikal yang moderen dengan tombol, bidang teks, area teks, tombol radio, dan lain-lain, sehingga para pengguna dapat saling berinteraksi. Applets membuat Web menjadi responsif, interaktif, dan menyenangkan untuk digunakan. Gambar 1.6 menunjukkan bagaimana applets berjalan di suatu penjelajah Web dalam memainkan permainan Tic Tac Toe.

Untuk melihat demonstrasi JAVA applet, kunjungi java.sun.com/applets. Situs ini menyediakan sumber daya yang kaya dan banyak link ke situs-situs demo applet yang lain. Situs java.sun.com merupakan situs resmi Sun JAVA.

JAVA juga bisa dipakai untuk mengembangkan aplikasi-aplikasi pada server. Aplikasi-aplikasi tersebut dapat dijalankan pada suatu Web server untuk menghasilkan halaman-halaman Web yang dinamis. Situs edukasi berikut ini, yang dikembangkan menggunakan JAVA, ditampilkan pada Gambar 1.7.

Pemrograman JAVA adalah pemrograman yang serba bisa. Anda bisa menggunakannya untuk mengembangkan aplikasi-aplikasi pada desktop dan server. Anda juga dapat mengembangkannya untuk divais-divais bergerak, seperti yang ditampilkan pada Gambar 1.8.

Gambar 1.7 JAVA dimanfaatkan untuk mengembangkan halaman untuk tujuan edukasi


Gambar 1.8 JAVA digunakan untuk mengembangkan aplikasi-aplikasi pada divais nirkabel, sepert BlackBerry (kiri) dan telepon genggam (kanan).


1.6 Spesifikasi – Spesifikasi Bahasa JAVA, API, JDK, dan IDE
Setiap bahasa pemrograman memiliki aturan-aturan ketat yang harus ditaati. Jika Anda tidak menuruti aturan-aturan tersebut saat menulis suatu program, maka komputer tidak akan mampu memahaminya. Spesifikasi bahasa JAVA dan JAVA API mendefinisikan standar baku pemrograman JAVA.

Spesifikasi bahasa JAVA merupakan suatu definisi teknikal yang memuat sintaks dan semantik bahasa pemrograman JAVA. Spesifikasi bahasa JAVA secara utuh dapat ditemukan pada java.sun.com/docs/books/jls.
API (application progam interface) memuat kelas dan antarmuka yang telah didefinisikan untuk mengembangkan program JAVA. Spesifikasi bahasa JAVA stabil, tetapi API masih terus berkembang. Pada situs Sun JAVA (java.sun.com), Anda bisa melihat dan mengunduh versi terakhir JAVA API.

JAVA merupakan bahasa pemrograman yang tangguh dan terbukti handal pada banyak aplikasi. Terdapat tiga edisi JAVA: JAVA SE (JAVA standard edition), JAVA EE (JAVA enterprise edition), dan JAVA ME (JAVA micro edition). JAVA SE dapat digunakan untuk mengembangkan aplikasi-aplikasi pada sisi client atau applet. JAVA EE dapat dipakai untuk mengembangkan aplikasi-aplikasi pada sisi server, seperti JAVA servlets dan JavaServer Pages. JAVA ME dapat digunakan untuk mengembangkan aplikasi-aplikasi untuk divais bergerak, seperti telepon genggam. Buku ini menggunakan JAVA SE untuk mengenalkan pemrograman JAVA.

Ada banyak versi JAVA SE. Yang terakhir, JAVA SE 7, akan digunakan pada buku ini. Sun mengeluarkan setiap versi dengan suatu JDK (JAVA Development Kit). Untuk SE 7, JAVA Depelopment Kit disebut dengan JDK 1.7 (yang juga dikenal dengan JDK7).

JDK memuat sekumpulan program terpisah, yang masing-masing dipanggil dari command line, untuk mengembangkan dan menguji program JAVA. Di samping JDK, anda juga bisa menggunakan perangkat pengembangan JAVA (seperti Net-Beans, Eclipse, dan TextPad), yang menyediakan suatu IDE (integrated development environment) untuk mengembangkan program JAVA.


1.7 Contoh Program JAVA Sederhana
Sebagai permulaan, berikut disajikan suatu program JAVA yang menampilkan pesan “JAVA itu Tangguh!” pada konsol. Program tersebut ditampilkan pada Kode1.1.


Kode1.1 Tangguh.java
1
2
3
4
5
6
public class Tangguh {
   public static void main(String[] args) {
      // Menampilkan pesan JAVA itu Tangguh pada konsol
      System.out.println("JAVA itu Tangguh!");
   }
}
Keluaran:
JAVA itu Tangguh!

Nomor baris ditampilkan sebagai referensi tetapi bukan bagian dari program. Jadi, Anda tidak perlu mengetikkannya dalam program.

Baris 1 mendefinisikan suatu kelas. Setiap program JAVA harus memiliki paling sedikit satu kelas. Setiap kelas memiliki suatu nama. Secara konvensional, nama kelas dimulai dengan huruf besar. Pada contoh ini, nama kelas yang dimaksud adalah Tangguh.

Baris 2 mendefinisikan metode main. Untuk menjalankan suatu kelas, kelas harus memuat satu metode main. Program dieksekusi mulai dari metode main.

Suatu metode memuat beberapa statemen. Metode main dalam program tersebut memuat statemen System.out.println. Statemen ini menampilkan suatu pesan “JAVA itu Tangguh!” pada konsol (pada baris 4). Setiap statemen dalam JAVA diakhiri dengan tanda semikolon (;), yang dikenal sebagai terminator statemen.

Kata-kata kunci atau keywords atau reserved words memiliki arti spesifik bagi kompiler dan tidak dapat digunakan untuk tujuan lain. Sebagai contoh, saat kompiler melihat kata class, maka dipahami bahwa kata setelah class adalah nama kelas. Kata-kata kunci lainnya dalam program tersebut adalah public, static, dan void.

Baris 3 adalah komentar yang mendokumentasikan keterangan program dan bagaimana program itu dibuat. Komentar membantu programmer untuk mengkomunikasikan dan memahami program. Komentar bukanlah statemen dan diabaikan oleh kompiler. Dalam JAVA, komentar diawali dengan dua garis miring (//) untuk sebaris, dan sepasang /* dan */ untuk komentar lebih dari satu baris. Berikut adalah beberapa contoh komentar program:

       // Program aplikasi ini menampilkan JAVA itu Tangguh!
       /* Program aplikasi ini menampilkan JAVA itu Tangguh! */
       /* Program aplikasi ini menampilkan

          JAVA itu Tangguh! */

Sepasang kurung kurawal dalam suatu program membentuk suatu blok yang mengelompokkan komponen-komponen program. Dalam JAVA, setiap blok dimulai dengan kurung kurawal buka ({) dan diakhiri dengan kurung kurawal tutup (}). Setiap kelas memiliki blok kelas, yang mengelompokkan data dan metode dalam suatu kelas. Setiap metode memiliki blok metode, yang mengelompokkan beberapa statemen dalam suatu metode. Blok-blok dapat dijadikan nested, yang berarti bahwa suatu blok dapat ditempatkan di dalam blok yang lain, seperti yang ditampilkan dalam kode berikut ini:

Setiap kurung kurawal pembuka harus berpasangan dengan kurung kurawal penutup. Kapan saja Anda menggunakan kurung kurawal pembuka, ketikkan segera kurung kurawal penutup. Kebanyakan IDE JAVA secara otomatis menyisipkan kurung kurawal penutup untuk setiap kurung kurawal pembuka.

Program sumber JAVA adalah sensitif terhadap huruf besar maupun huruf kecil. Program akan salah, misalnya, mengganti main dalam program menjadi Main.

Anda saat ini mungkin masih heran mengapa metode main dideklarasikan dengan cara ini dan mengapa System.out.println() digunakan untuk menampilkan pesan pada konsol. Pertanyaan-pertanyaan Anda ini akan segera terjawab pada bab-bab berikutnya.

Program pada Kode1.1 hanya menampilkan satu pesan. Begitu Anda memahami program itu, maka akan lebih gampang untuk menampilkan beberapa pesan. Sebagai contoh, Anda bisa menulis-ulang program untuk menampilkan tiga pesan, seperti yang ditampilkan pada Kode1.2.


Kode1.2 Tangguh1.java
1
2
3
4
5
6
7
public class Tangguh1 {
   public static void main(String[] args) {
      System.out.println("Pemrograman itu menyenangkan!");
      System.out.println("JAVA itu Tangguh!");
      System.out.println("Internet itu Revolusioner");
   }
}

Keluaran:
Pemrograman itu menyenangkan!
JAVA itu Tangguh!

Internet itu Revolusioner

Selanjutnya, Anda bisa melakukan komputasi matematikal dan menampilkannya pada konsol. Kode1.3 menyajikan suatu contoh untuk mengevaluasi .

Kode1.3 HitungEkspresi.java
1
2
3
4
5
public class HitungEkspresi {
   public static void main(String[] args) {
   System.out.println((10.5 + 2 * 3) / (45 - 3.5));
   }
 }

Keluaran:

0.39759036144578314

Operator perkalian dalam JAVA adalah *. Seperti yang Anda perhatikan, merupakan proses yang sederhana untuk mengekspresikan persamaan matematik dalam JAVA. Hal ini selanjutnya akan didiskusikan pada Bab. 2.


1.8 Menciptakan, Mengkompilasi, dan Mengeksekusi Program JAVA
Anda perlu menciptakan program Anda dan mengkompilasinya sebelum bisa dieksekusi. Proses ini bersifat repetitif, seperti yang ditampilkan pada Gambar 1.9. Jika program Anda mempunyai error kompilasi, maka Anda mesti memodifikasinya, kemudian mengkompilasinya ulang. Jika program anda memiliki error runtime atau tidak menghasilkan keluaran yang tepat, maka Anda harus memodifikasi program, kemudian mengkompilasi-ulang dan mengeksekusinya ulang.

Gambar 1.9 Proses pengembangan-program JAVA yang memuat penulisan/pemodifikasian kode sumber, kompilasi, dan eksekusi program.

Anda bisa menggunakan sembarang editor teks atau IDE untuk penulisan dan pengeditan suatu kode sumber JAVA. Jika Anda menggunakan suatu IDE seperti Eclipse, NetBeans, atau atau TextPad, Anda bisa membaca Supplement II untuk membaca tutorialnya. Dari command window, Anda bisa menggunakan NotePad untuk menciptakan suatu file kode sumber JAVA, seperti tertampil pada Gambar 1.10.

Gambar 1.10 Anda bisa menggunakan NotePad Windows dalam menciptakan suatu kode sumber JAVA

Kode sumber harus berekstensi .java dan harus memiliki nama file yang sama dengan nama kelas publik. Misalnya, file kode sumber Kode1.1 harus diberi nama Tangguh.java, karena nama kelas publiknya adalah Tangguh.

Kompiler JAVA menerjemahkan suatu file sumber JAVA menjadi file kode byte JAVA. Perintah berikut ini mengompilasi Tangguh.java:

javac Tangguh.java

Jika tidak terdapat kesalahan sintaks, maka kompiler akan membangkitkan suatu file kode byte dengan ekstensi .class. Jadi, perintah di atas akan menghasilkan suatu file yang bernama Tangguh.class, seperti yang ditunjukkan pada Gambar 1.11(a). Bahasa pemrograman JAVA merupakan bahasa tingkat-tinggi, sedangkan kode byte JAVA adalah bahasa tingkat-rendah. Kode byte sama dengan instruksi-instruksi mesin dengan arsitektur netral, sehingga bisa dijalankan pada sembarang platform yang memiliki JVM (JAVA virtual machine), seperti yang ditampilkan pada Gambar 1.11(b). JVM merupakan suatu program yang menginterpretasikan kode byte JAVA. Ini merupakan salah satu keunggulan JAVA: kode byte JAVA dapat dijalankan pada sembarang perangkat keras dan sistem operasi.

Gambar 1.11 (a) Kode sumber JAVA diterjemahkan menjadi kode byte. (b) Kode byte JAVA dapat dieksekusi pada sembarang komputer yang memiliki JVM.


1.9 GUI untuk Menampilkan Teks dalam Kotak Dialog Pesan
Program pada Kode1.1 menampilkan pesan pada konsol. Anda bisa menulis-ulang program tersebut untuk menampilkan teks dalam suatu kotak dialog pesan. Untuk melakukannya, Anda perlu menggunakan metode showMessageDialog dalam kelas JOptionPane. Kelas JOptionPane merupakan salah satu kelas yang telah didefinisikan dalam sistem JAVA, jadi Anda tinggal memakainya saja. Anda bisa menggunakan metode showMessageDialog untuk menampilkan sembarang teks dalam suatu kotak dialog pesan, seperti yang ditampilkan pada Gambar 1.12.

Kode1.4 TangguhInMessageDialogBox.java

1
2
3
4
5
6
7
8
9
10
11
/* Program ini untuk menampilkan pesan JAVA itu Tangguh!
 * dalam suatu kotak dialog pesan.
 */
import javax.swing.JOptionPane;

public class TangguhInMessageDialogBox {
   public static void main(String[] args) {
      // Menampilkan JAVA itu Tangguh! dalam suatu kotak dialog pesan
      JOptionPane.showMessageDialog(null, "JAVA itu Tangguh!");
 }
 }

Keluaran: 

Gambar 1.12 JAVA itu Tangguh! ditampilkan dalam suatu kotak pesan

Pada baris 9 digunakan suatu kelas JAVA JOptionPane. Kelas-kelas yang terdefinisi dalam JAVA dikelompokkan menjadi paket-paket. JOptionPane berada dalam paket javax.swing. JOptionPane diimpor ke program menggunakan statemen import pada baris 4, sehingga kompiler bisa mencari lokasi kelas tanpa harus memberikan nama javax.swing.JOptionPane.

Jika Anda menggantikan JOptionPane pada baris 9 dengan javax.swing.JOptionPane, maka Anda tidak perlu mengimpornya pada baris 4. javax.swing.JOptionPane adalah nama utuh dari kelas JOptionPane.

Metode showMessageDialog merupakan metode statik. Metode seperti ini harus dipanggil menggunakan nama kelas yang diikuti dengan operator titik (.) dan nama metode (plus argumen). Penjelasan atas metode akan diberikan pada Bab. 5. Metode showMessageDialog bisa dipanggil dengan dua argumen. Argumen pertama selalu null. null adalah sebuah katakunci dalam JAVA yang akan dijelaskan pada Bab. 8. Argumen kedua adalah string yang akan ditampilkan.

Ada beberapa cara menggunakan metode showMessageDialog. Untuk sementara ini, Anda hanya perlu tahu dua cara saja. Salah satu cara adalah yang digunakan pada Kode1.4:

JOptionPane.showMessageDialog(null, x);

dimana x adalah suatu string untuk ditampilkan. Cara lainnya adalah menggunakan statemen seperti ini:

JOptionPane.showMessageDialog(null, x, y, JOptionPane.INFORMATION_MESSAGE);

dimana x adalah suatu string yang akan ditampilkan, dan y adalah suatu string untuk judul kotak pesan. Argumen keempat adalah JOptionPane.INFORMATION_MESSAGE,yang menyebabkan tombol ( ) ditampilkan pada kotak pesan, seperti yang ditunjukkan di bawah ini.



Terdapat dua jenis statemen import: impor spesifik dan impor bebas. Impor spesifik menyebutkan nama kelas yang akan diimpor pada statemen import. Sebagai contoh, statemen berikut ini mengimpor JOptionPane dari paket javax.swing:

Import javax.swing.JOptionPane;

Impor bebas mengimpor semua kelas dalam suatu paket. Sebagai contoh, statemen berikut ini mengimpor semua kelas dari paket javax.swing:

Import javax.swing.*;

Ingat bahwa Anda telah menggunakan kelas System dalam statemen System.out.println(“JAVA itu Tangguh!”); pada Kode1.1. Kelas System tidak diimpor karena berada di dalam paket java.lang. Semua kelas dalam paket java.lang secara implisit diimpor dalam setiap program JAVA.