BAB 2 LANDASAN TEORI
2.1 Teknologi Java
Java adalah suatu teknologi di dunia software komputer, yang merupakan suatu bahasa pemrograman, dan sekaligus suatu platform. Sebagai bahasa pemrograman, Java dikenal sebagai bahasa pemrograman tingkat tinggi. Java mudah dipelajari, terutama bagi programmer yang telah mengenal C/C++. Java merupakan bahasa pemrograman berorientasi objek yang merupakan paradigma pemrograman masa depan. Sebagai bahasa pemrograman Java dirancang menjadi handal dan aman. Java juga dirancang agar dapat dijalankan di semua platform, dan juga dirancang untuk menghasilkan aplikasi-aplikasi dengan performansi yang terbaik, seperti aplikasi database Oracle 8i/9i yang core-nya dibangun menggunakan bahasa pemrograman Java. Sedangkan Java bersifat neutral architecture, karena Java Compiler yang digunakan untuk mengkompilasi kode program Java dirancang untuk menghasilkan kode yang netral terhadap semua arsitektur perangkat keras. Sebagai sebuah platform, Java terdiri atas dua bagian utama, yaitu: 1. Java Virtual Machine (JVM) 2. Java Application Programming Interface (Java API) Sun membagi arsitektur Java membagi tiga bagian, yaitu: 1. J2EE (Java 2 Enterprise Edition) 2. J2SE (Java 2 Second Edition) 3. J2ME (Java 2 Micro Edition)
Universitas Sumatera Utara
7
2.1.1 J2EE (Java 2 Enterprise Edition)
J2EE adalah kelompok dari beberapa API (Application Programming Interface) dari Java dan teknologi selain Java. J2EE dirancang untuk membuat aplikasi yang rumit. J2EE sering dianggap sebagai middle-ware atau teknologi yang berjalan di server, namun sebenarnya J2EE tidak hanya terbatas untuk itu. Faktanya J2EE juga mencakup teknologi yang dapat digunakan disemua lapisan dari sebuah sistem informasi. Implementasi J2EE menyediakan kelas dasar dan API dari Java yang mendukung pengembangan dan rutin standard untuk aplikasi client maupun server, termasuk aplikasi yang berjalan di web browser. untuk aplikasi berbasis web, aplikasi sistem tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi.
2.1.2 J2SE (Java 2 Standard Edition)
Aplikasi yang dibuat dan dikembangkan penulis dalam penulisan ini menggunakan bahasa pemrograman berbasis Java 2 Standard Edition (lebih dikenal dengan J2SE). Pada bagian ini, penulis akan menjelaskan dasar-dasar J2SE, meliputi pengenalan J2SE dan komponen pada J2SE. Berikut adalah penjelasannya: J2SE atau Java 2 Standard Edition merupakan bahasa pemrograman Java untuk aplikasi desktop yang merupakan object-oriented programming. Pada J2SE, terdiri dari dua buah produk yang dikeluarkan untuk membantu dalam membuat aplikasi tanpa tergantung dari platform yang digunakan, yaitu: 1. Java SE Runtime Environment (JRE) Java Runtime Environment (JRE) menyediakan perpustakaan, Java Virtual Machine (JVM), dan komponen lain untuk menjalankan applet dan aplikasi
Universitas Sumatera Utara
8
yang ditulis dengan bahasa pemrograman Java. Selain itu, terdapat dua buah kunci teknologi yang merupakan bagian dari JRE, yaitu: d Plug-in, yang memungkinkan menjalankan applet di browser populer dan Java Web Start, yang menyebarkan aplikasi mandiri melalui jaringan. JRE tidak mengandung utilitas seperti compiler atau debugger untuk mengembangkan applet dan aplikasi. 2. Java Development Kit (JDK) Java Development Kit (JDK) merupakan perangkat lunak yang digunakan untuk menajemen dan membangun berbagai aplikasi Java. JDK merupakan superset dari JRE, berisikan segala sesuatu yang ada di JRE ditambahkan compiler dan debugger yang diperlukan untuk mengembangkan applet dan aplikasi. Pada JDK, terdapat berbagai tools yang digunakan untuk membangun aplikasi Java. Tools tersebut digambarkan dengan diagram berikut:
Gambar 2.1 Tools Dasar JDK
Universitas Sumatera Utara
9
Bahasa pemrograman Java menyediakan library-library standar yang telah dicompile dan dapat langsung digunakan dalam implementasi pembuatan sebuah aplikasi. Pada library, terdapat berbagai macam class yang dapat digunakan dan telah dikelompokkan ke dalam package. Package yang tersedia dalam J2SE akan dijabarkan pada tabel berikut: Tabel 2.1 Tabel Package pada J2SE Package Language
Nama Package java.lang
Untilities
java.until
I/O
java.io
Text
java.text
Math
java.math
AWT
java.awt
Swing
java.swing
Javax Applet Beans Reflection
Javax java.applet java.beans java.lang.reflect
SQL
java.sql
RMI
java.rmi
Networking
java.net
Security
java.security
Keterangan Class-class utama yang merupakan inti dari bahasa Java Class-class yang mendukung utilitas struktur Java Class-class yang mendukung berbagai macam tipe input dan output Class yang mendukung lokalisasi penanganan teks, tanggal, bilangan, dan message Class untuk melakukan perhitungan aritmatik arbitrary-precesion, baik integer atau floating point Class untuk perancangan user-interface dan event-handling Class untuk membuat berbagai komponen dalam Java yang bertingkahlaku sama dengan berbagai platform Perluasan dari bahasa Java Class untuk membuat applet Class untuk membuat Java Beans Class untuk memperoleh informasi runtime Class untuk mendukung akses dan pengolahan data dalam database Class untuk mendukung distributed programming Class untuk mendukung dalam membangun aplikasi jaringan Class untuk mendukungkeamanan kriptografi
Universitas Sumatera Utara
10
2.1.3 J2ME ( Java 2 Micro Editon)
J2ME adalah lingkungan pengembangan yang dirancang untuk meletakan perangkat lunak Java pada barang elektronik beserta perangkat pendukungnya. Pada J2ME, jika perangkat lunak berfungsi baik pada sebuah perangkat, maka belum tentu juga berfungsi baik pada perangkat yang lainnya. J2ME membawa Java ke dunia informasi, komunikasi, dan perangkat komputasi selain perangkat komputer desktop yang biasanya lebih kecil dibandingkan perangkat komputer desktop. J2ME biasa digunakan pada telepon selular, pager, personal digital assistants (PDA) dan sejenisnya. J2ME adalah bagian dari J2SE, karena itu tidak semua librabry yang ada pada J2SE dapat digunakan pada J2ME. Tetapi J2ME mempunyai beberapa library khusus yang tidak dimiliki J2SE. Arsitektur J2ME dapat dilihat seperti pada Gambar 2.2.
Gambar 2.2 Arsitektur J2ME
2.1.4 GUI (Graphical User Interface)
Class dapat digambarkan sebagai cetakan untuk membuat object dengan karakteristik sesuai yang dimiliki oleh class tersebut. Class menyediakan kemampuan bagi objectobject yang dibangun dari class tersebut. Class dapat dipandang sebagai gambaran umum dari sebuah object, sedangkan bentuk aktual object dalam Java disebut instance. Analoginya, andaikan Class sebagai gambar rancangan sebuah
Universitas Sumatera Utara
11
gedung, maka instance adalah gedung yang telah dibangun berdasarkan rancangan tersebut. Jadi sebenarnya tidak ada perbedaan antara Object dan Instance, hanya saja object merupakan definisi umum sedangkan instance merupakan sebutan bagi object yang nyata terlihat. Keduanya mengacu pada benda yang sama. Dalam Java, class dikelompokkan berdasarkan fungsi umumnya, misalkan untuk membuat program berbasis GUI (Graphical User Interface), atau fungsi lainnya. Kelompok class ini disebut class library. Pemrograman tidak perlu repot membuat class library, karena development kit yang ada telah membuat library sedemikian rupa, sehingga mudah digunakan. Misalnya library java.awt untuk memprograman GUI. Dengan adanya program berbasis grafis ini, mengolah database akan menjadi lebih mudah, disamping tampilannya lebih menarik. Beberapa bagian dasar GUI adalah: 1. JLabel JLabel namaLabel = new JLabel(“label”) Sama seperti namanya, class ini akan membuat suatu label pada sebuah window. 2. JTextField JTextField namaText = new JTextField(jumlah_karakter_max);\ JTextField adalah suatu class yang akan memudahkan dalam membentuk isian text pada suatu frame. 3. JButton JButton namaButton = new JButton(“label_pada_button”); JButton adalah suatu class yang akan membantu membentuk objek tombol. 4. JFrame
Universitas Sumatera Utara
12
JFrame sebenarnya adalah suatu class yang disediakan untuk memudahkan dalam membuat suatu window. 5. JInternalFrame Sama halnya dengan JFrame, JInternalFrame akan membantu dalam membuat window. Bedanya JInternalFrame akan berada didalam suatu window lainnya, jadi tidak dapat berdiri sendiri seperti JFrame. 6. JMenu JMenu akan membuat objek menu bar pada sebuah frame. 7. ActionListener ActionListener bukan merupakan suatu objek, melainkan sebuah class yang akan menampung aksi-aksi dari sebuah objek (yang banyak dipakai disini adalah tombol). Aksi-aksi itu akan ditampung dalam sebuah metode bernama ActionPerformed. Jadi bila menggunakan ActionListener, maka harus menyertakan metode ActionPerformed pada class tersebut. 8. Container Container.setLayout(new GridLayout(jumlah_baris, jumlah_kolom)); Container akan membantu dalam mengatur penempatan objek seperti text, label,ataupun tombol. Ada banyak cara yang disediakan untuk mengatur penempatan objek. GridLayout akan membagi sebuah window menjadi beberapa baris dan kolom sesuai yang masukkan pada saat setLayout. Dan penempatan objeknya dimulai dari kiri atas lalu kekanan.
Empat hal utama untuk membangun program berbasis GUI menggunakan swing, yaitu:
Universitas Sumatera Utara
13
1. Menciptakan dan konfigurasi component Untuk menciptakan component GUI sama seperti membuat object lain dalam Java, dengan menjalankan constructor.
Setiap
component
dapat
dilihat
karakteristiknya
dalam
dokumentasi Java. 2. Menambahkan component pada container Setiap component dalam Java harus diletakkan
didalam
container.
Container
dalam
Java
terdapat
di
java.awt.Container. Container yang sering digunakan yaitu JFrame dan JDialog. Untuk program berbasis web, dapat menggunakan container Applet dalam class java.applet.Applet. Ketiga container tersebut merupakan top levelcontainer, yaitu container dasar yang menjadi tempat dasar bagi component dan container yang lain. Selain tiga di atas masih ada beberapa container lain seperti JPanel. 3. Mengatur tata letak component Setelah meletakkan component dalam container, maka component dapat diatur ukuran dan tata letaknya. Selain itu dapat juga diatur warna dan bentuknya. Untuk mengatur layout, object yang digunakan yaitu LayoutManager. 4. Menangani kejadian (event-handling) yang dihasilkan oleh component Component seringkali mengalami kejadian seperti button diklik, frame digeser, dan lain sebagainya. Kejadian merupakan hasil interaksi user dan program. Kejadian ini lebih lanjut disebut dengan event. Agar program dapat merespon event, maka perlu adanya event-listener.
Universitas Sumatera Utara
14
2.2 Download
Download merupakan proses transmisi atau pemindahan sebuah file dari suatu sistem komputer ke sistem komputer lainnya yang saling terhubung didalam sebuah jaringan, baik dalam LAN maupun internet. Logikanya, Download sama seperti copy-paste pada sebuah direktori ke direktori lain dimana file yang berada pada direktori asal ditransfer ke direktori tujuan tanpa menghapus file asal tersebut. Bedanya Download dilakukan dari sebuah jaringan dimana ada user yang meminta atau request sebuah file dari komputer lain yang menjadi server yang kemudian file tersebut dikirim dan ditampilkan pada komputer user. Pada saat download sering terjadi perbedaan waktu, hal itu karena dipengaruhi oleh faktor kecepatan koneksi internet dan besarnya file yang di-download. Didunia maya, ada beberapa proses download misalnya saja file transfer protocol (FTP) atau proses download di-internet yang membutuhkan komputer server atau host dan client dimana file yang dapat di-download harus terlebih dahulu diupload ke server baru kemudian komputer client dapat merequest file tersebut dan terjadilah proses download. Kemudian ada juga yang disebut dengan peer-to-peer yaitu jaringan yang tidak membutuhkan server. File tersebut di-download dari komputer yang terhubung dalam jaringan tersebut secara langsung tanpa perantara server. Biasanya cara ini digunakan untuk file-file yang besar
yang tidak mungkin diupload dan untuk itu
mendownloadnya akan diperlukan software khusus yang akan penulis rancang ditugas akhir ini yang diberi nama “JAVA DOWNLOADER”.
Universitas Sumatera Utara
15
2.3 Bahasa Pemrograman Java
Java adalah bahasa pemrograman yang dapat dijalankan diberbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun Microsystems dan dirilis tahun 1995. Java berbeda dengan JavaScript. JavaScript adalah bahasa scripting yang digunakan oleh web browser.
2.3.1 Sejarah Perkembangan Java
Bahasa pemrograman Java pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven). Setelah era Star Seven selesai, sebuah anak perusahaan Tv kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto. Perusahaan baru ini bertambah maju, jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide diantara
Universitas Sumatera Utara
16
mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya dikalangan akademisi dan militer. Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java. Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995. Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape. Nama Oak, di ambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "Bapak Java", James Gosling. Nama Oak ini tidak di pakai untuk versi release Java karena sebuah perangkat lunak lain sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. Konon kopi ini berasal dari Pulau Java. Jadi nama bahasa pemrograman Java tidak lain berasal dari kata Java (bahasa Inggris untuk Java adalah Java).
2.3.2 Kelebihan Pemrograman Java
Java memiliki beberapa kelebihan dibandingkan dengan bahasa pemrograman lainnya. Adapun kelebihan tersebut di antaranya: 1. Sederhana dan Ampuh
Universitas Sumatera Utara
17
Java dirancang untuk mudah dipelajari, terutama bagi programmer yang telah mengenal C/C++ akan mudah sekali untuk berpindah ke Java. Pemakai dapat belajar membuat program dengan Java secara cepat jika telah memahami konsep dasar pemrograman berorientasi objek. Java member programmer kemampuan untuk menuangkan semua ide, karena bahasa pemrograman ini bukan merupakan scripting language (bahasa naskah) yang menghilangkan kemampuan programmer untuk berinovasi, tetapi dengan cara berorientasi objek yang mudah dan jelas. 1. Aman Java dirancang sebagai bahasa pemrograman yang handal dan aman. Aplikasiaplikasi yang dibangun dengan bahasa Java sangat handal dengan manajemen memori yang bagus. Aplikasi Java juga dikenal sangat secure, yaitu kasuskasus seperti buffer everflow yang umumnya menjadi lubang keamanan aplikasi-aplikasi berbasis C/C++ tidak terjadi di Java, karena pengaturan keamanannya yang bagus. 2. Berorientasi-Objek Java merupakan bahasa pemrograman berorientasi objek dan bukan turunan langsung dari bahasa pemrograman manapun, juga sama sekali tida kompetibel dengan semuanya. Java memiliki keseimbangan, menyediakan mekanisme peng-class-an sederhana, dengan model antar muka dinamik yang intuitif hanya jika diperlukan. 3. Kokoh Kesalahan sering terjadi pada saat kompilasi karena Java merupakan bahasa pemrograman yang sensitif dalam hal deklarasi dan tipe data. Oleh karena hal tersebut, Java memiliki batasan agar dapat menemukan kesalahan lebih cepat
Universitas Sumatera Utara
18
saat mengembangkan program yaitu dengan langsung memeriksa program saat ditulis, dan sekali lagi ketika program di jalankan. Hal ini akan lebih menghemat waktu jika dibandingkan dengan keharusan menjalankan program terlebih dahulu dan memeriksa semua bagian program untuk melihat ketidakcocokan dinamis selama program berjalan. 4. Interaktif Java memiliki kemampuan yang memungkinkan program melakukan beberapa hal pada saat bersamaan, tanpa harus kesulitan menangani proses yang akan terjadi selanjutnya. Jalinan program-program Java yang mudah digunakan memungkinkan programmer untuk memikirkan pembuatan perilaku khusus, tanpa harus mengintegrasikan perilaku tersebut dengan model pemrograman global yang mengatur perulangan kejadian. 5. Netral Terhadap Berbagai Arsitektur Java memiliki kemampuan yang memungkinkan program melakukan beberapa hal pada saat bersamaan, tanpa harus kesulitan menangani proses yang akan terjadi selanjutnya. Jalinan program-program Java yang mudah digunakan memungkinkan programmer untuk memikirkan pembuatan perilaku khusus, tanpa harus mengintegrasikan perilaku tersebut dengan model pemrograman global yang mengatur perulangan kejadian. 6. Terinterpretasi dan Berkinerja-Tinggi Java dirancang untuk tetap berkinerja baik pada CPU yang tidak terlalu kuat. Walaupun Java merupakan bahasa terinterpretasi, kode-kode Java telah dirancang dengan hati-hati sehingga mudah diterjemahkan ke dalam bahasa asli suatu mesin untuk menghasilkan kinerja yang tinggi. Java dilengkapi keajaiban lintas-platform yang luar biasa dengan kompilasi ke dalam
Universitas Sumatera Utara
19
representasi langsung yang disebut kode-byte Java (Java byte-code), yang dapat diterjemahkan oleh sistem manapun yang memilki program Java didalamnya. Sebagai sebuah platform, Java terdiri atas dua bagian utama, yakni : a. Java virtual machine (jvm) b. Java application programming interface (Java api) 7. Multiplatform Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform/ sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin/bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis Java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk menginterpretasikan bytecode tersebut. 8. Perpustakaan Kelas yang Lengkap Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman Java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
Universitas Sumatera Utara
20
9. Bergaya C++ Dalam bahasa pemrograman manapun selalu ada fitur komentar. Java sendiri memiliki sintaks seperti bahasa pemrograman C++, dengan tambahan yang sangat istimewa yaitu komentar yang nantinya digunakan untuk menciptakan dokumentasi secara otomatis oleh suatu aplikasi yang disebut javadoc, sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer. 10. Pengumpulan sampah otomatis Memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). Serupa dengan C, java mengalokasikan operator baru untuk mengalokasikan memori pada heap untuk objek baru.
2.3.3 Kekurangan Pemrograman Java
Adapun kekurangan pemrograman Java, yaitu: 1. Tulis sekali, perbaiki di mana saja Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X. 2. Mudah didekompilasi
Universitas Sumatera Utara
21
Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer. 3. Penggunaan memori yang banyak Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.
2.3.4 Contoh Pemrograman Java
Contoh program Hello World yang ditulis menggunakan bahasa pemrograman Java adalah sebagai berikut: public class HelloWorld { public static void main(String args[]) { System.out.println("Hello, world!"); } }
Kode program tersebut dituliskan pada sebuah text editor seperti JCreator serta disimpan dengan ekstensi *.Java (contoh: HelloWorld.Java) pada direkori D:/area_Java dan outputnya jika dijalankan di command prompt windows adalah sebagai berikut:
Universitas Sumatera Utara
22
Gambar 2.3 Hasil Program dengan Menggunakan Java
2.4 Tahapan Kompilasi Java
Adapun tahapan kompilasi Java sebagai berikut: 1. Tulis/Ubah Pemrogram menulis program dan menyimpannya di media dalam bentuk berkas '.Java'. 2. Kompilasi Pengkompilasi membentuk bytecodes dari program menjadi bentuk berkas '.class'. 3. Muat Pemuat kelas memuat bytecodes ke memori. 4. Verifikasi Peng-verifikasi memastikan bytecodes tidak mengganggu sistem keamanan Java. 5. Jalankan Penerjemah menerjemahkan bytecodes ke bahasa mesin dan memilih mana yang tidak bisa di pakai.
Universitas Sumatera Utara
23
2.5 Swing
Java Swing merupakan library Java yang digunakan untuk menciptakan Graphic User Interface (GUI) yang berbasis cross platform atau OS independent. User interface yang dibangun dengan Java swing dapat dijalankan pada sistem operasi apa saja yang mendukung Java dengan tampilan yang relatif sama, bahkandapat menyerupai user interface Windows XP, Mac OS atau Linux.
2.5.1 Sejarah Swing
Internet Foundation Classes (IFC) merupakan library grafik untuk Java yang dikeluarkan pertama kali oleh Netscape Comminication Corporation pada 16 Desember 1996. Pada 2 April 1997, Sun Microsystems dan Netscape Comminication Corporation menggabungkan IFC dengan teknologi lain untuk membangun Java Foundation Classes. Swing diperkenalkan sebagai mekanime yang dapat dilihat dan dirasakan tiaptiap komponen dalam sebuah aplikasi tanpa membuat perubahan pada substansi dalam pengkodean dari aplikasi. Perkenalan tersebut didukung dengan pluggabke kook and feel yang membuat komponen swing dapat digunakan dalam berbagai platform. Pada dasarnya, swing merupakan library yang terpisah. Namun, sejak Java Standard Edition 1.2 dipublikasikan, swing sudah termasuk ke dalam bagian J2SE.
2.5.2 Arsitektur Swing
Swing merupakan platform-independent, Model View Controller framework untuk Java yang mengikuti model pemrograman tunggal. Arsitekturdari swing terdiri dari: 1. Platform Independence
Universitas Sumatera Utara
24
Swing dapat digunakan diberbagai platform seperti Windows OS, Mac OS, dan Linux karena ekspresi Java dan implementasinya hamper sama untuk berbagai platform. 2. Extensible Swing merupakan arsitektur terpartisi, yang memungkinkan untuk penggunaan implementasi berbagai framework interface tertentu. Pengguna dapat menyediakan
kustom
implementasi
sendiri
dari
komponen
untuk
menggantikan implementasi default. Secara umum, pengguna Swing dapat menambahkan framework dengan memperluas framework yang sudah ada dan menyediakan implementasi alternatif komponen inti. Swing juga merupakan framework berbasis komponen, dimana komponen Swing adalah komponen Java Beans yang kompatibel dengan spesifikasi Java Beans Component Architecture. 3. Customizable Atas dasar model program rendering dari framework Swing, kendali atas rincian rendering komponen dimungkinkan dalam Swing. Representasi visual dari komponen Swing pada umumnya berupa satu set standar elemen. Pengguna program biasanya menyesuaikan komponen Swing standar dengan menetapkan beberapa elemen untuk membuat visualisasi kontrol GUI yang unik. 4. Configurable Swing bergantung pada mekanisme runtime dan pola komposisi tidak langsung untuk merespon perubahan pengaturan secara run-time. Contohnya aplikasi berbasis Swing dapat mengubah tampilan pada saat run-time, dimana
Universitas Sumatera Utara
25
pengguna dapat memberikan tampilan mereka sendiri dan diimplementasikan tanpa perubahan apapun pada kode program. 5. Loosely-Coupled and MVC Pustaka Swing memanfaatkan pola model/view/controller(mvc) desain perangkat lunak yang secara konseptual pasangan data yang dilihat dari kontrol interface pengguna melalui yang dilihat. Karena hal tersebut, komponen Swing dikaitkan model dan programmer dapat menggunakan berbagai macam implementasi atau menyediakan sendiri implementasi tersebut. Penggunaan framework Swing tidak memerlukan penciptaan model, karena telah tersedia satu set implementasi yang transparan secara default, yang terkait dengan kelas Jcomponent di perpustakaan Swing. Komponen yang kompleks mungkin memerlukan implementasi model disekitar data spesifik aplikasi seperti: tabel dan pohon.
2.5.3 Komponen Dasar Swing
Secara umum, komponen swing terdiri dari lima bagian yang sering digunakan, yaitu: 1. Top-level Container Merupakan container dasar dimana komponen lainnya diletakkan. Toplevel Container ini terdiri dari Frame, Dialog, dan Applet yang diimplementasikan dalam class JFrame, JDialog, dan JApplet. 2. Intermediate Container Merupakan komponen perantara untuk peletakkan komponen lainnya, yaitu class JPanel.
Universitas Sumatera Utara
26
3. Atomic Container Merupakan komponen yang memiliki fungsi spesifik dan biasanya user berinteraksi langsung dengan jenis komponen ini. Komponen ini terdiri dari: JButton, JTextField, dan JTextArea. 4. Layout Manager Layout Manager berfungsi untuk mengatur posisi dari komponen yang diletakkan pada container. Terdapat lima macam layout, yaitu: class BorderLayout, Boxlayout, FlowLayout, GridBagLayout, dan GridLayout. 5. Event Handling Event Handling berfungsi untuk menangani event yang dilakukan user, misalnya menekan tombol, mengklik mouse, dan lain sebagainya.
2.6 AWT
AWT atau Abstract Window Toolkit adalah salah satu platformindependent Java untuk windowing, graphics, dan user-interface widget toolkit. Saat ini, AWT sudah termasuk ke dalam bagian dari Java Foundation Classes (JFC), yaitu standar API untuk pemrograman Java berbasis GUI. AWT merupakan GUI toolkit untuk beberapa profil Java ME, seperti konfigurasi alat yang terhubung meliputi Java runtimes pada mobile telephone untuk mendukung AWT.
2.6.1 Sejarah AWT
Ketika Java pertama kali dirilis oleh Sun Microsystems pada tahun 1995, komponen AWT memberikan tingkat abstraksi yang tipis yang mendasari interface pengguna. Contohnya, menciptakan checkbox AWT akan menyebabkan pemanggilan langsung subroutine yang mendasari pembuatan checkbox. Program GUI yang ditulis dengan
Universitas Sumatera Utara
27
menggunakan AWT tampak seperti aplikasi asli ketika dijalankan pada sistem operasi yang menjalankan aplikasi tersebut. Dalam J2SE 1.2, komponen AWT sebagian besar digantikan dari toolkit Swing. Selain menyediakan satu set komponen UI, Swing menarik komponen sendiri(dengan menggunakan Java 2D untuk memanggil ke subroutine tingkat rendah dalam subsistem grafis lokal) bukan mengandalkan modul pengguna tingkat tinggi interface sistem operasi. Swing menyediakan pilihan baik menggunakan sistem “tampilan dan nuansa” menggunakan platform asli tampilan dan nuansa atau platformsilang yang terlihat pada semua platform. Namun, Swing bergantung pada AWT untuk tampilan interface untuk sistem windowing asli.
2.6.2 Arsitektur AWT
AWT menyediakan dua tingkat API, yaitu: 1. Interface umum antara Java dengan sistem asli, digunakan untuk windowing, manajer layout. API ini merupakan inti dari pemrograman Java GUI dan juga digunakan oleh Swing dan Java 2D yang berisi: a. Interface antara sistem windowing asli dan aplikasi Java. b. Inti dari event subsistem GUI. c. Beberapa manajer layout. d. Interface untuk perangkat input seperti mouse dan keyboard. e. Paket java.awt.datatransfer untuk digunakan dengan clipboard dan Drag and Drop. 2. Satu set dasar komponen GUI seperti button, textbox, dan menu yang juga menyediakan interface dasar AWT, yang memungkinkan librari render
Universitas Sumatera Utara
28
dikompilasi ke kode asli untuk langsung menarik ke AWT canvas permukaan objek gambar. AWT juga membuat beberapa fungsionalitas tinggti yang tersedia untuk aplikasi, seperti: 1. Akses ke sistem tray pada sistem pendukung. 2. Kemampuan untuk meluncurkan beberapa aplikasi dekstop seperti browser web dan klien email dari aplikasi. Baik AWT ataupun Swing secara inheren aman, karena kode yang meng-update GUI harus dijalankan pada thread event pengirim. Kegagalan untuk melakukan hal ini dapat menyebabkan kondisi kebuntuan atau ras. Untuk mengatasi masalah ini, kelas utilitas bernama SwingWorker memungkinkan aplikasi untuk melakukan tugas-tugas yang memakan waktu mengikuti acara-interaksi pengguna di thread acara pengirim.
2.7 Koneksi Database Java
Koneksi database Java sering disebut sebagai JDBC, adalah sebuah application programming interface (API) untuk bahasa pemrograman Java yang mendefinisikan bagaimana klien dapat mengakses database. Ini menyediakan metode untuk query dan meng-update data dalam database. JDBC berorientasi pada database relasional. Sebuah jembatan JDBC-ke-ODBC memungkinkan sambungan ke sumber data ODBC dapat diakses dalam lingkungan host JVM.
Universitas Sumatera Utara
29
Gambar 2.4 Skema koneksi database Java
2.8 Database MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual di bawah lisensi komersial untuk kasus-kasus di mana penggunaannya tidak cocok dengan penggunaan GPL. Tidak sama dengan proyek-proyek seperti Apache, di mana perangkat lunak dikembangkan oleh komunitas umum dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, di mana memegang hak cipta hampir atas semua kode sumbernya sehingga pengguna dapat mengunduh software ini dan memakainya secara gratis.
Universitas Sumatera Utara
30
2.8.1 Perkembangan Database MySQL
MySQL merupakan hasil buah pikiran dari Michael “Monty” Widenius, David Axmark dan Allan Larsson yang dimulai pada tahun 1995. Mereka kemudian mendirikan perusahaan bernama MySQL AB di Swedia. Tujuan awal ditulisnya program ini adalah untuk mengembangkan aplikasi web yang akan digunakan oleh salah satu klien MySQL AB. MySQL versi 1.0 dirilis pada Mei 1996 dan penggunaannya hanya terbatas di kalangan intern saja. Pada bulan Oktober 1996, MySQL versi 3.11.0 dirilis ke masyarakat luas di bawah lisensi “Terbuka Tapi Terbatas”. Barulah pada bulan Juni 2000, MySQL AB mengumumkan bahwa mulai MySQL versi 3.23.19 diterapkan sebagai GPL (General Public License). Dengan lisensi ini, maka “Siapa pun boleh melihat program aslinya dan menggunakan program eksekusinya dengan cuma-cuma. Dan bila ingin memodifikasi pada program aslinya, maka program modifikasi tersebut harus dilepas di bawah lisensi GPL juga”. Hingga kini MySQL terus berkembang dengan berbagai penyempurnaan sehingga dirilis MySQL versi 5.0.21 pada bulan Mei 2006, yang
semula
untuk
melakukan administrasi dalam basis data MySQL, dengan menggunakan modul yang berupa Command Prompt (perintah: mysql dan mysqladmin). Saat ini dapat dirancang sebuah database melalui modul berbasis grafik GUI (Graphical User Interface) seperti PhpMyAdmin dan MySQL Query Browser Tools.
2.8.2 Perintah Dasar Database MySQL
Dalam menjalan MySQL diperlukan berbagai perintah untuk membuat suatu database, berikut ini disebutkan beberapa perintah dasar dalam menggunakan MySQL. Untuk
Universitas Sumatera Utara
31
menjalankan MySQL pertama kali cukup dengan mengetikkan mysql pada Command Prompt. Perintah-perintahnya adalah sebagai berikut : 1. Menampilkan database : SHOW DATABASE; 2. Membuat database baru : CREATE DATABASE database; 3. Memilih database yang akan digunakan : USE database; 4. Menampilkan tabel : SHOW TABLE; 5. Membuat tabel baru : CREATE TABLE tabel (field spesifikasi_field,...); 6. Menampilkan struktur tabel : SHOW COLUMNS FROM tabel atau DESCRIBE tabel; 7. Mengubah struktur tabel : ALTER TABLE tabel Jenis_Pengubahan; 8. Mengisikan data : INSERT INTO table(kolom1, ) VALUES („data_kolom1‟, ); atau INSERT INTO table SET kolom1 = „data_kolom1‟, ; 9. Menampilkan data : SELECT kolom FROM tabel WHERE kriteria ORDER BY kolom atau SELECT * FROM tabel; 10. Mengubah data : UPDATE tabel SET kolom = pengubahan_data WHERE kriteria; 11. Menampilkan data dengan kriteria tertentu : SELECT kolom1,... FROM table WHERE kriteria; 12. Menghapus data : DELETE FROM tabel WHERE kriteria; 13. Menghapus tabel : DROP tabel; 14. Menghapus database : DROP database; 15. Keluar dari MySQL : QUIT; atau EXIT;
Universitas Sumatera Utara
32
2.9 NetBeans IDE 6.8
Penulisan menggunakan Text Editor NetBeans IDE 6.8 untuk membuat kode sumber dapat dilihat pada Gambar 2.5.
Gambar 2.5 NetBeans IDE 6.8
2.9.1 Langkah Awal Menjalankan Aplikasi NetBeans IDE 6.8
Langkah-langkah dalam menjalankan Aplikasi NetBeans IDE 6.8 sebagai erikut: 1. Klik tombol start pada bagian Taskbar. 2. Pilih menu Programs dan pilih Netbeans, kemudian klik Netbeans. 3. Setelah itu pilih New Project seperti Gambar 2.6.
Universitas Sumatera Utara
33
Gambar 2.6 New Project Netbeans IDE 6.8 4. Kemudian pilih Java pada Categories dan pilih Java Application pada Projects. Lalu Klik Next. 5. Kemudian akan Muncul Tampilan sebagai berikut.
Gambar 2.7 New Java Application 6. Kemudian isi project name dengan nama file yang diinginkan. Kemudian klik Finis. 7. Untuk membuat form pada netbeans klik kanan pada Source Packages, pilih New Jframe Form. Akan tampil gambar dibawah ini.
Universitas Sumatera Utara
34
Gambar 2.8 New JFrame Form 8. Kemudian isi Class name-nya lalu klik Finish. 9. Setelah klik Finish akan muncul tampilan seperti dibawah ini. Selanjutnya silahkan membuat Aplikasi yang diinginkan.
Gambar 2.9 Layar Project NetBeans IDE 6.8 IDE merupakan sebuah lingkungan dimana semua tombol perintah yang diperlukan untuk mendesign aplikasi, menjalankan dan menguji sebuah aplikasi disajikan dengan baik untuk memudahkan pengembangan program.
Universitas Sumatera Utara
35
2.9.2 Komponen NetBeans 6.8
1. Main Windows Jendela utama ini bagian dari IDE yang mempunyai fungsi yang sama dengan semua fungsi utama dari program aplikasi Windows lainnya. Jendela utama Netbeans terbagi menjadi tiga bagian, berupa Main Menu, Toolbar dan Component Pallete. 2. Toolbar Netbeans Netbeans memiliki beberapa toolbar yang masing-masing memiliki perbedaan fungsi dan setiap tombol pada bagian toolbar berfungsi sebagai pengganti suatu menu perintah yang sering digunakan. Toolbar sering disebut juga dengan Speedbar. Toolbar terletak pada bagian bawah baris menu. Pada kondisi default Netbeans memiliki beberapa bagian toolbar, antara lain : Build Main Project, Clean and Build Main Project, Run Main Project, Debug Main Project, dan Profile Main Project. 3. Component Palette Component Pallete berisi kumpulan ikon yang melambangkan komponenkomponen yang terdapat pada VCL (Visual Component Library), pada Component Pallete akan ditemukan beberapa page control, seperti Swing Containers, Swing Controls, Swing Menus, Swing Windows, AWT, Beans, dan Java Persistence.
Universitas Sumatera Utara
36
Gambar 2.10 Component Palette 4. From Designer Form Designer merupakan suatu objek yang dapat dipakai sebagai tempat untuk merancang program aplikasi. Form berbentuk sebuah meja kerja yang dapat diisi dengan komponen-komponen yang diambil dari Component Pallete.
Gambar 2.11 Form Kerja NetBeans IDE 6.8
Universitas Sumatera Utara
37
5. Source Editor Source Editor merupakan tempat untuk menuliskan kode program. Pada bagian ini dapat dituliskan pernyataan-pernyataan dalam Object Java. Keuntungan bagi pemakai Netbeans adalah bahwa tidak perlu menuliskan kode-kode sumber, karena Netbeans telah menyediakan kerangka penulisan sebuah program seperti yang tampak pada Gambar 2.12
Gambar 2.12 Source Editor 6. Object Inspektor Object Inspector digunakan untuk mengubah properti atau karakteristik dari sebuah komponen. Object Inspector terdiri dari dua tab, yaitu Properties dan Events seperti yang tampak pada Gambar 2.13.
Gambar 2.13 Inspector
Universitas Sumatera Utara