BAB 2 LANDASAN TEORI 2.1 Kamus Secara etimologi, kata kamus berasal dari kata dalam bahasa Arab, yaitu qamus (bentuk jamaknya qawamus). Bahasa Arab menyerap kata kamus dari kata dalam bahasa Yunani kuno, okeanos yang berarti lautan. Tentu menjadi pertanyaan, bagaimana kata kamus yang berurusan dengan kosakata berasal dari bahasa Yunani kuno okeanos yang berarti lautan? Kalau kita mencoba untuk memahami sejarah kata itu, jelaslah bahwa kata kamus memiliki makna dasar wadah pengetahuan, khususnya pengetahuan bahasa yang tidak terhingga dalam dan luasnya, seluas dan sedalam lautan (Chaer, 2007:179) [2]. Selain pengertian kamus yang telah disebutkan di atas, Chaer (2007:179) juga menyebutkan pengertian kamus yang dikemukakan oleh beberapa para ahli [2]. 1. Kridalaksana menyebutkan bahwa kamus adalah buku referensi yang memuat daftar kata atau gabungan kata dengan keterangan mengenai pelbagai segi maknanya dan penggunaannya dalam bahasa, biasanya disusun menurut abjad. 2. Dalam American Every Dictionary disebutkan bahwa kamus adalah sebuah buku berisi kata-kata dari sebuah bahasa, biasanya disusun secara alfabetis, disertai keterangan akan artinya ucapannya, ejaannya, dsb. 3. Labrousse (1977) menyebutkan bahwa kamus adalah buku berisi kumpulan kata-kata sebuah bahasa yang disususn secara alfabetis diikuti dengan definisi atau terjemahannya dalam bahasa lain. 4. Keraf (1984) mendefinisikan kamus sebagai sebuah buku referensi, memuat daftar kata-kata yang terdapat dalam sebuah bahasa, disusun secara alfabetis, disertai keterangan cara menggunakan kata itu. Universitas Sumatera Utara 2.2 Pengertian Java Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkungan internet, intranets, consumer electronic products, dan computer applications. Untuk beragam aplikasi yang dibuat dengan bahasa Java, Java dipaketkan dalam edisi-edisi berikut [1]: 1. Java 2 Standar Edition (J2SE), yang digunakan untuk mengembangkan aplikasi-aplikasi desktop dan applet (aplikasi Java yang dapat dijalankan di dalam browser web). 2. Java 2 Enterpise Edition (J2EE), merupakan edisi perluasan dari J2SE (Superset dari J2SE), aplikasi berskala besar (Enterprise), seperti pemrograman memakai database dan diatur di server. Teknologi yang termasuk dalam edisi ini adalah EJBs (Enterprise Java Bean), XML (Extensible Markup Language), Servlet, JSP (Java Server Pages), CORBA (Common Object Request Broker Arhitechture), dan lain-lain. 3. Java 2 Micro Edition (J2ME), merupakan edisi khusus dari Java dan subset dari edisi J2SE. Edisi ini untuk pemrograman dengan peralatan-peralatan kecil atau terbatas seperti PDA, mobile, pager, dan lain-lain. 2.3 Java 2 Micro Edition (J2ME) J2ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat mobile. Perangkat ini memiliki banyak jenis dalam hal ukuran, desain dan layout. Tetapi semuanya memiliki karakteristik yang sama, yaitu: jumlah memori yang terbatas, mengkonsumsi daya yang rendah dari baterai, layar yang kecil dan konektivitas yang terbatas, yakni bandwith jaringan yang rendah [11]. Sebuah aplikasi J2ME bisa dijalankan pada semua perangkat mobile yang mendukung Java tanpa harus dilakukan kompilasi berulang kali akibat dari perangkat yang berbeda-beda. Hal ini bisa dilakukan karena J2ME menyediakan suatu interface Universitas Sumatera Utara yang sesuai dengan perangkat tersebut. Dengan kata lain, aplikasi atau program tidak lagi berinteraksi dengan perangkat, tetapi langsung berinteraksi dengan Java Virtual Machine (JVM) melalui hasil kompilasi program berupa bytecode. Interface yang dimaksud adalah Configuration dan Profile. Configuration menyediakan lingkungan runtime dasar yang terdiri dari kumpulan pustaka (kelaskelas) inti didalam system J2ME. Sedangkan Profile menyediakan pustaka tambahan untuk kelas tertentu dari Configuration dalam sebuah perangkat[9]. 1. Configuration Configuration didefinisikan menjadi dua buah, yaitu: a. Connected Limited Device Configuration (CLDC) untuk perangkat kecil. b. Connected Device Configuration (CDC) untuk perangkat yang lebih besar. Hubungan antara library yang digunakan antara Java Standart Edition (J2SE), J2ME (CLDC dan CDC) dapat digambarkan sebagai berikut: Java SE CD CLD C Gambar 2.1 Hubungan J2SE dan J2ME [9] 2. Profile Terdapat beberapa jenis Profile yang dapat dikombinasikan dengan Configuration antara lain MIDP, Foundation Profile, Personal Basis Profile dan masih banyak lagi[8]. Universitas Sumatera Utara 2.3.1 Connected Limited Device Configuration (CLDC) CLDC menggunakan spesifikasi dasar berupa library dan API seperti yang digunakan pada perangkat mobile. Spesifikasi tersebut antara lain: spesifikasi minimal dari package, class, dan sebagian fungsi JVM yang dikurangi. Tujuannya adalah agar spesifikasi tersebut dapat diimplementasikan pada perangkat mobile dengan adanya pertimbangan pada keterbatasan sumber daya. JVM yang digunakan oleh CLDC adalah Kilobyte Virtual Machine (KVM) [6]. Gambar 2.2 CLDC pada Arsitektur J2ME [9] CLDC dirancang untuk perangkat mobile yang memiliki keterbatasan pada kemampuan prosesor, memori, dan grafik. Spesifikasi CLDC yang dibutuhkan untuk perangkat mobile dapat dilihat pada tabel di bawah ini. Tabel 2.1 Spesifikasi CLDC yang Dibutuhkan untuk Perangkat Mobile [11] CLDC Digunakan pada perangkat mobile, yakni: handphone, PDA, two-way pager yang memenuhi karakteristik di bawah ini, yaitu: • Prosesor: 16 / 32 bit dengan kecepatan clock: 16 MHz atau lebih tinggi. • Minimum memori ROM adalah sebesar 160 KB, dimana digunakan untuk alokasi terhadap satu atau lebih library CLDC dan mesin virtual. • Minimum memori RAM adalah sebesar 192 KB yang disediakan untuk platform Java. Universitas Sumatera Utara 2.4 Mobile Information Device Profile (MIDP) MIDP adalah salah satu profile yang didesain untuk handphone dan entry level PDA. MIDP menangani fungsi inti aplikasi yang dibutuhkan aplikasi mobile, termasuk tampilan pemakai (user interface), konektivitas jaringan (network), penyimpanan data lokal dan pengaturan aplikasi. MIDP adalah jenis profile yang paling sering digunakan bersamaan dengan CLDC untuk menyediakan Java runtime environment yang mempengaruhi kapabilitas untuk menangani perangkat dan meminimalisir penggunaan memori dan konsumsi power. MIDP yang digunakan oleh aplikasi Kamus ini adalah MIDP 2.0. Ada pun karakteristik dari MIDP 2.0 tersebut dapat dilihat pada tabel di bawah ini [11]. Tabel 2.2 Karakteristik dari MIDP 2.0 [11] MIDP 2.0 Display : 96 x 54 Kedalaman Display : 1-bit Bentuk piksel (rasio aspek) : Mendekati 1 : 1 Input : Keyboard dan touch-screen. Memori : 256 KB memori non-volitale untuk komponen MIDP. 8 KB memori non-volitale untuk data persistence yang dibuat oleh aplikasi. 128 KB memori volitale untuk JRE. Jaringan : Dua arah, tanpa kabel (wireless). Library J2ME : - javax.Micro Edition.lcdui - javax.Micro Edition.midlet - javax.Micro Edition.rms - javax.Micro Edition.lcdui.game - javax.Micro Edition.media - javax.Micro Edition.pki Multimedia : Memiliki kemampuan untuk memainkan file multimedia (suara dan video). Universitas Sumatera Utara 2.5 Mobile Information Device Applet (MIDlet) MIDlet adalah istilah untuk aplikasi J2ME yang dibangun menggunakan profile MIDP. Sedangkan kumpulan MIDlet disebut MIDlet suite. MIDlet ini harus memiliki sebuah class yang diperluas (extends) dengan class javax.Micro Edition.midlet.MIDlet. Sebuah aplikasi MIDlet mempunyai tiga kemungkinan kondisi active, pause dan destroy [9]. Dalam sebuah MIDlet tidak dikenal method main yang dijalankan pertama kali sebagaimana J2SE, namun MIDlet memiliki tiga buah method utama yang terdapat pada masing-masing kondisi, yaitu method startApp(), pausedApp(), dan destroyApp(). Berikut ini adalah contoh kode yang menerapkan beberapa method tersebut. Gambar 2.3 Tiga Method yang Harus Diimplentasikan Adapun gambar daur hidup dari sebuah MIDlet yang dapat menjelaskan kode di atas, yaitu sebagai berikut ini. destroyApp() new Active startApp() pausedApp() Paused destroyApp() Destroyed Gambar 2.4 Siklus Hidup Midlet [9] Universitas Sumatera Utara Pada saat aplikasi MIDlet diciptakan (new), maka akan diinisialisasi oleh dengan kondisi Paused (masih dalam kondisi inactive). Apabila sebuah exception terjadi dalam constructor, maka MIDlet akan memasuki kondisi Destroyed dan akan membuangnya segera. Apabila tidak terjadi exception, maka akan masuk ke kondisi berikutnya, yakni kondisi Active, melalui method startApp() oleh AMS. Pada saat kondisi Active, ini berarti aplikasi sedang dijalankan atau sedang digunakan oleh user. MIDlet akan masuk ke kondisi Destroyed, pada saat user keluar dari MIDlet, melalui method destroyApp(). Method destroyApp() akan memanggil method notifyDestroyed() untuk menterminasi MIDlet dan membersihkan semua sumber daya yang mengacu pada MIDlet [6]. 2.5 Lightweight User Interface Toolkit (LWUIT) LWUIT adalah sebuah teknologi terbaru dalam pembuatan aplikasi java mobile yang dikembangkan oleh Sun Developer. Teknologi mendukung MIDP 2.0/CLDC 1.1 dan dapat juga dihubungkan (ported) dengan platform CDC [10]. Beberapa keunggulan teknologi LWUIT yang diberikan adalah sebagai berikut ini. 1. Layouts Manager Sangat fleksibel dan merupakan fitur yang kokoh dan konsisten, khususnya apabila aplikasi dijalankan pada ukuran layar yang berbeda-beda tanpa merusak rancangan tampilan. 2. Pluggable Look and Feel & Themes Memampukan untuk menciptakan sebuah file CSS dimana dapat dipanggil (loaded) atau pun diganti (changed) pada saat runtime, mengontrol look and feel sebuah aplikasi. 3. Fonts Memiliki kebebasan dalam menciptakan dan menggunakan font di dalam aplikasi. 4. Touch Screen Semua komponen LWUIT mendukung touch events tanpa memerlukan special coding di dalam menjalankan perangkat mobile touch screen. Universitas Sumatera Utara 5. Animations & Transitions Memiliki efek visual yang bermacam-macam yang tersedia di dalam library LWUIT. Untuk menggunakannya dapat dipanggil (import) langsung dari library. 6. 3D and SVG Graphics Integration 7. Tools Memiliki aplikasi stand-alone (Theme Creator) yang dapat membantu programmer dalam merancang tampilan background, tampilan objek, dan elemen-elemen theme lainnya pada sebuah aplikasi java mobile. 8. Bi-directional text support Mendukung penulisan text dari kanan ke kiri. Berikut ini adalah contoh tampilan dapat dihasilkan melalui teknologi LWUIT, yaitu sebagai berikut: Gambar 2.5 Tampilan yang Dihasilkan dengan Teknologi LWUIT [13] 2.7 Widget Dalam pembuatan aplikasi J2ME akan dijumpai beberapa widget untuk membentuk sebuah User Interface (UI). Widget adalah sebuah jenis component khusus yang memiliki keunikkan dari segi tampilan dan kegunaannya, misalnya Button, Label, ComboBox, dan lain-lain. Di bawah ini adalah gambar dari keseluruhan widget dalam bentuk family tree [7]. Universitas Sumatera Utara Gambar 2.6 Widget dalam bentuk Family Tree [7] 2.7.1 Container Container digunakan sebagai penampung, dimana dapat diisi dengan satu atau lebih component, termasuk juga Container. Container memiliki turunan atau pembagian, yaitu: Form, Dialog, TabbedPane, dan Calendar [10]. 2.7.1.1 Form Form adalah sebuah container dengan titlebar diatasnya untuk judul form dan MenuBar dibawahnya untuk command dan menu. Ruang kosong (space) yang ada di antara kedua bar tersebut adalah content pane, yang digunakan sebagai tempat untuk menampung satu atau lebih component yang akan diisi ke dalam form. Berikut ini adalah contoh tampilan dari sebuah form dengan command Exit pada menubar. Universitas Sumatera Utara Gambar 2.7 Contoh Tampilan Form [10] Implementasi dalam Program Java Berikut ini adalah contructor dan method dari widget form yang digunakan penulis dalam merancang dan membuat aplikasi MyDict, yaitu sebagai berikut ini. 1. form() 2. addCommand() 3. addComponent() 4. setCommandListener 5. setLayout() 6. setScrollable() 7. show() Constructor/Method Form(java.lang.String title) Penjelasan Memberikan judul setelah menciptakan sebuah form. void addCommand(Command cmd) Menambah MenuBar sebuah Softkey. command Jika form pada hanya memiliki satu buah Command saja, maka command akan ditempatkan di sebelah kanan. Jika memiliki dua buah, maka Universitas Sumatera Utara command pertama ditempatkan di sebelah kanan, sedangkan command kedua ditempatkan di sebelah kiri. Jika memiliki lebih dari dua buah, maka command pertama ditempatkan di sebelah kiri dan di sebelah kanan akan ditempati oleh command menu yang menampung sisa dari command yang ada. Parameters: cmd – Command yang akan ditambahkan. void addComponent(Component cmp) Menambah sebuah Component pada content pane form. Parameters: cmd – Component yang akan ditambahkan. void setCommandListener Menanamkan listener pada command, (ActionListener commandListener) sehingga command akan bereaksi dan melakukan aksi ketika diklik. Parameters: commandListener – menentukan interface dalam mengimplementasikan commandlistener. void setLayout(Layout layout) Mengijinkan layout manager untuk menyusun tata letak component pada container. Parameters: layout – jenis layout tertentu. void setScrollable(boolean Mengatur aktif tidaknya Scroll sumbu X scrollable) dan sumbu Y. Apabila suatu component melebihi batas dari layar suatu perangkat mobile, maka secara otomatis scroll akan Universitas Sumatera Utara diaktifkan, dengan syarat setScrollable adalah true. Parameters: scrollable – mengaktifkan/mengnonaktifkan scroll sumbu X dan sumbu Y. Bernilai: true – mengaktifkan scrollable. false – mengnon-aktifkan scrollable. void show() Menampilkan form pada layar perangkat mobile. 2.7.1.1.a Dialog Dialog adalah sebuah component yang digunakan untuk memberikan informasi kepada user pada saat aplikasi sedang dijalankan. Component ini berada pada posisi di tengah layar dengan sebuah bingkai (frame) baru, dengan rupa yang mencolok dan membuat sekelilingnya menjadi tampak gelap. Dialog dapat digunakan untuk beberapa hal, yaitu seperti: • Alarm • Confirmation • Error • Info • Warning Berikut ini adalah contoh tampilan dari sebuah dialog dengan command Cancel dan Ok pada menubar. Universitas Sumatera Utara Gambar 2.8 Contoh Tampilan Dialog [10] Implementasi dalam Program Java Berikut ini adalah contructor dan method dari widget Dialog yang digunakan penulis dalam merancang dan membuat aplikasi MyDict, yaitu sebagai berikut ini. 1. Dialog() 2. setAutoDispose() 3. show () Constructor/Method Penjelasan Dialog() Menciptakan sebuah Dialog. void setAutoDispose Mengatur (boolean autoDispose) dispose pada Dialog. Dialog pada saat aktif tidaknya automatic- sudah ditampilkan akan dapat menutup dirinya sendiri. Hal ini dapat terjadi apabila setAutoDispose adalah true. Parameters: autoDispose – mengaktifkan/mengnonaktifkan automatic-dispose. Bernilai: true – mengaktifkan automatic-dispose. Universitas Sumatera Utara false – mengnon-aktifkan automaticdispose. static show Menampilkan Dialog dengan mode yang (String title, Component body, sudah diset pada layar perangkat mobile. Command[] cmds, int type, Image icon, long timeout) Parameters: title – judul dari sebuah Dialog. body – Component yang akan dimasukkan dalam Dialog. cmds – Command yang akan digunakan oleh Dialog. type – memilih tipe Dialog yang akan digunakan, misalnya: TYPE_WARNING, TYPE_INFO, TYPE_ERROR, TYPE_CONFIRMATION atau TYPE_ALARM. icon – memasang sebuah ikon untuk Dialog. timeout – mengatur waktu dari automaticdispose apabila setAutoDispose adalah true. Jika nilainya adalah false, maka timeout dapat diisi dengan 0 saja. Dispose dilakukan dari command. 2.7.1.1.b TabbedPane TabbedPane menyediakan sejumlah component (tab) yang memiliki ukuran tempat yang sama. Setiap tab pada tabbedpane masing-masing memiliki kemampuan untuk menampung satu atau lebih component, termasuk juga container. Dan component yang ditampung oleh tab yang satu dengan tab yang lainnya tidak harus sama. Tab yang terseleksi akan langsung ditampilkan kepada user sesuai dengan component yang ditampung. Universitas Sumatera Utara Berikut ini adalah contoh tampilan dari sebuah TabbedPane dengan command Help dan Back pada menubar. Gambar 2.9 Contoh Tampilan TabbedPane [10] Implementasi dalam Program Java Berikut ini adalah contructor dan method dari widget tabbedpane yang digunakan penulis dalam merancang dan membuat aplikasi MyDict, yaitu sebagai berikut ini. 1. TabbedPane() 2. addFocusListener() 3. addTab() 4. addTabListener() 5. getTabCount() 6. setSelectedIndex() Constructor/Method TabbedPane() Penjelasan Menciptakan sebuah tabbedpane kosong, yakni belum terdapat tab di dalamnya. void addTab(java.lang.String Menambah tab pada tabbedpane,berikut title, Component component) dengan judul tab dan component yang akan diisi. Parameters: title – judul dari tab. component – component yang akan diisi. void addTabListener Menanamkan listener pada tabbedpane, Universitas Sumatera Utara (SelectoinListener listener) sehingga tabbedpane akan bereaksi dan melakukan aksi ketika ada perpindahan fokus dari satu tab ke tab lain. Parameters: l – menentukan interface dalam mengimplementasikan tablistener. int getTabCount() Mengambil nilai (int) dari total banyaknya tab yang ada pada tabbedpane. void setSelectedIndex(int index) Menentukan fokus tab berdasarkan indexnya. Parameters: index – index dari tab. void Menanamkan listener pada tabbedpane, addFocusListener(FocusListener l) sehingga tabbedpane akan bereaksi dan melakukan aksi apabila tabbedpane menerima fokus atau kehilangan fokus. 2.7.2 Label Family Label Family memiliki empat buah anggota, yaitu sebagai berikut: • Label • Button • CheckBox • RadioButton 2.7.2.1 Label Label digunakan sebagai tempat untuk menampilkan teks atau ikon atau keduaduanya. Label tidak digunakan untuk bereaksi terhadap input dari user, tetapi digunakan untuk menampilkan informasi secara tekstual pada aplikasi. Berikut ini adalah contoh tampilan dengan menggunakan Label dan dengan command Exit pada MenuBar. Universitas Sumatera Utara Gambar 2.10 Contoh Tampilan dengan Menggunakan Label [10] Implementasi dalam Program Java Berikut ini adalah contructor dan method dari widget label yang digunakan penulis dalam merancang dan membuat aplikasi MyDict, yaitu sebagai berikut ini. 1. Label() 2. getText() 3. setAlignment() 4. setStyle() 5. setText() Constructor/Method Label(java.lang.String text) Penjelasan Menciptakan sebuah Label dan memberikan teks atau judul padanya. String getText() Mengambil teks atau judul (String) dari sebuah Label. int setAlignment(int align) Mengatur alignment sebuah Label, misalnya: CENTER, LEFT, dan RIGHT. Parameters: align – alignment yang akan digunakan. Void text) setText(java.lang.String Menuliskan teks atau judul sebuah Label. Parameters: text – teks yang akan ditampilkan pada Universitas Sumatera Utara Label. void setStyle(Style style) Mengubah style menggantikannya dari Label dan dengan style yang dipilih. Parameters: style – style yang diberikan kepada Label. 2.7.2.2 Button Button digunakan terutama untuk menangkap input dari user, misalnya klik. Selain itu, Button mirip dengan Label dimana dapat menampilkan informasi secara tekstual berupa teks atau gambar atau kedua-duanya. Berikut ini adalah contoh tampilan dengan menggunakan Button. Gambar 2.11 Contoh Tampilan dengan Menggunakan Button [10] Implementasi dalam Program Java Berikut ini adalah contructor dan method dari widget button yang digunakan penulis dalam merancang dan membuat aplikasi MyDict, yaitu sebagai berikut ini. 1. Button() 2. addActionListener() 3. getState() 4. getText() 5. setAlignment() 6. setEnabled() Universitas Sumatera Utara 7. setIcon() 8. setText() 9. setTextPosition Constructor/Method Button(java.lang.String text) Penjelasan Menciptakan sebuah button dan memberikan teks atau judul padanya. Button(java.lang.String text, Menciptakan Image icon) memberikan teks atau judul dan ikon sebuah button dan padanya. void addActionListener Menanamkan (ActionListener l) sehingga listener button pada akan button, bereaksi dan melakukan aksi ketika diklik. Parameters: l – menentukan interface dalam mengimplementasikan actionlistener. int getState() Mengembalikan nilai keadaan (state) dari suatu Button. Nilai tersebut [4] antara lain: • final int STATE_DEFAULT = 2 • final int STATE_PRESSED = 1 • final int STATE_ROLLOVER = 0 void setEnabled(boolean enabled) Membuat button menjadi enable atau disable. Parameters: enabled – mengatur enable/disable sebuah button. Bernilai: true – berarti enable. false – berarti disable. String getText() Mengambil teks atau judul (string) dari sebuah button. int setAlignment(int align) Mengatur alignment sebuah button, misalnya: CENTER, LEFT, dan RIGHT. Universitas Sumatera Utara Parameters: align – alignment yang akan digunakan. void setIcon(Image icon) Memasang sebuah ikon pada button. Parameters: icon – icon yang akan digunakan. void setText(java.lang.String Menuliskan teks atau judul sebuah button. text) Parameters: text – teks yang akan ditampilkan pada Button void setTextPosition(int Mengatur posisi teks yang akan textPosition) ditampilkan pada Button, misalnya: LEFT, RIGHT, BOTTOM, dan TOP. Pengaturan juga akan berdampak pada posisi ikon. Parameters: textPosition – posisi teks yang akan digunakan. 2.7.3 TextArea Penyuntingan pada TextArea dilakukan melalui sebuah screen yang berbeda. Ketika user ingin menuliskan sebuah pesan, maka secara otomatis akan beralih ke screen text editor (gambar 2.12 a), kemudian user baru akan menuliskan pesannya. Pesan akan ditampilkan ke dalam bingkai TextArea ketika penyuntingan berhasil dilakukan. Pesan yang dituliskan apabila terlalu panjang, maka textarea secara otomatis akan memperlebar ukuran bingkainya dan akan mengaktifkan vertical scroll-bar, sehingga user dapat membaca keseluruhan teks. Untuk lebih jelasnya dapat dilihat pada gambar 2.12 b. Secara default, TextArea menampung teks sebanyak 124 karakter. Apabila dimasukkan lebih dari itu, maka teks yang berikutnya tidak akan diterima. Untuk Universitas Sumatera Utara memungkinkan menambah kapasitas karakter, maka dapat memanggil sebuah method untuk mengatur besar maksimum kapasitas karakter pada TextArea tersebut. Selain itu, TextArea juga dapat digunakan untuk hanya menampilkan pesan pada aplikasi, misalnya menampilkan informasi help untuk penggunaan fitur sebuah aplikasi. Biasanya pesan yang ditampilkan ini, tidak bisa diubah atau di-edit oleh user, kecuali perubahan dilakukan dari program aplikasi. Berikut ini adalah contoh tampilan dengan menggunakan TextArea Gambar 2.12 Screen Text-Editor (a) dan Contoh Tampilan dengan Menggunakan TextArea (b) [10]. Implementasi dalam Program Java Berikut ini adalah contructor dan method dari widget TextArea yang digunakan penulis dalam merancang dan membuat aplikasi MyDict, yaitu sebagai berikut ini 1. TextArea() 7. setConstraint() 2. addActionListener() 8. setEditable() 3. addFocusListener() 9. setEnabled() 4. 10. setMaxSize() getText() 5. hasFocus() 11. setText() 6. setAlignment() 12. setVisible() Universitas Sumatera Utara 30 Textarea(java.lang.String text, Menciptakan sebuah TextArea dan int rows, int colums) mengisi pesan di dalamnya, serta mengatur banyaknya baris dan kolom. void addActionListener Menanamkan listener pada TextArea, (ActionListener a) sehingga TextArea akan bereaksi dan melakukan aksi ketika penyuntingan dilakukan. Parameters: a – menentukan interface dalam mengimplementasikan actionlistener. String getText() Mengambil teks atau pesan (String) dari sebuah TextArea void setAlignment(int align) Mengatur alignment sebuah textarea, misalnya: CENTER, LEFT, dan RIGHT. Parameters: align – alignment yang akan digunakan. void setConstraint(int Mengatur penyempitan (constraint) constraint) terhadap teks yang akan ditulis pada TextArea misalnya: ANY, EMAILADDR, NUMERIC, PHONENUMBER, URL, DECIMAL, PASSWORD, UNEDITABLE, SENSITIVE, NON_PREDICTIVE, INITIAL_CAPS_SENTENCE, dan INITIAL_CAPS_WORD. Constraint dapat digunakan lebih dari satu. Parameters: constraint – constraint yang akan digunakan. void setEditable(boolean b) Mengatur TextArea untuk bisa disunting (edit) atau tidak, atau membuatnya Universitas Sumatera Utara 30 menjadi read-only. Parameters: b – mengaktifkan/mengnon-aktifkan editable. void setMaxSize(int maxSize) Mengatur besar maksimum kapasitas karakter yang dapat dituliskan dalam TextArea Parameters: maxSize – besar maksimum yg ditentukan. void setText(java.lang.String t) Menuliskan teks atau pesan ke dalam TextArea. Parameters: t – teks yang akan diisikan. void addFocusListener Menanamkan listener pada TextArea, (FocusListener l) sehingga TextArea akan bereaksi dan melakukan aksi apabila TextArea menerima fokus atau kehilangan fokus. Parameters: l – menentukan interface dalam mengimplementasikan FocusListener. boolean hasFocus() Mengembalikan nilai true jika TextArea terfokus dan false untuk sebaliknya. void setEnabled(boolean enabled) Membuat TextArea menjadi tampak kelihatan (visible) pada Container atau tidak. Parameters: visible– mengatur visible/invisible sebuah TextArea. Bernilai: true – berarti visible. false – berarti invisible. Universitas Sumatera Utara 30 void setVisible(boolean visible) Membuat TextArea menjadi tampak kelihatan (visible) pada Container atau tidak. Parameters: visible– mengatur visible/invisible sebuah TextArea. Bernilai: true – berarti visible. false – berarti invisible. 2.7.4 ComboBox ComboBox merupakan gabungan dari component List dan Button. Dengan kata lain, ComboBox dapat bereaksi terhadap input dari user. Ketika Button diklik, maka ComboBox akan menampilkan satu atau lebih item secara drop-down. Item yang terpilih yang akan digunakan dan ditampilkan pada Combo Box. Berikut ini adalah contoh tampilan dengan menggunakan ComboBox. Gambar 2.13 Contoh Tampilan dengan Menggunakan ComboBox [10] Implementasi dalam Program Java Berikut ini adalah contructor dan method dari widget ComboBox yang digunakan penulis dalam merancang dan membuat aplikasi MyDict, yaitu sebagai berikut ini. Universitas Sumatera Utara 1. ComboBox() 2. addActionListener() 3. addItem() 4. addFocusListener() 5. addSelectionListener() 6. getSelectedIndex() 7. getSelectedItem() 8. setSelectedIndex() Constructor/method Penjelasan ComboBox() Menciptakan sebuah ComboBox kosong. void setSelectedIndex(int Menentukan fokus item berdasarkan selection) indexnya.Parameters: selection – index dari item. void addFocusListener Menanamkan listener pada ComboBox, (FocusListener l) sehingga ComboBox akan bereaksi dan melakukan aksi apabila ComboBox menerima fokus atau kehilangan fokus. Parameters: l – menentukan interface dalam mengimplementasikan FocusListener. void addActionListener Menanamkan listener pada ComboBox, (ActionListener l) sehingga ComboBox akan bereaksi dan melakukan aksi ketika ada sebuah item terseleksi. Parameters: l – menentukan interface dalam mengimplementasikan ActionListener. void addItem (java.lang.Object Menambah item pada ComboBox. item) Parameters: item – item yang akan ditambahkan. void addSelectionListener Menanamkan listener pada ComboBox, Universitas Sumatera Utara (SelectionListener l) sehingga ComboBox akan bereaksi dan melakukan aksi ketika ada perpindahan fokus dari satu item ke item lain. Parameters: l – menentukan interface dalam mengimplementasikan SelectionListener. int getSelectedIndex() Mengambil nilai index (int) dari item yang terfokus. Object getSelectedItem() Mengambil nama objek dari item yang terfokus. 2.8 Manipulasi String String adalah suatu tipe data yang berbeda dengan tipe lainnya, karena String adalah sebuah Class, bukan primitive data type. Namun sebagai sebuah class, instance dari String masih bisa diperlakukan seperti tipe data biasa dimana seharusnya tidak bisa dilakukan pada suatu objek. Dengan kata lain, objek tersebut harus diberi perintah new. Contohnya: String s = “Hello”; s += “dear”; // s berisi “Hello dear” Selain itu, String juga bisa disambung dengan menggunakan tanda positif (‘+’). Manipulasi String sangat penting digunakan dalam pemrograman sebuah aplikasi J2ME, khususnya aplikasi MyDict. Hasil dari manipulasi ini akan digunakan sebagai acuan dan alur logika pemrograman. Seperti contohnya pada aplikasi MyDict, yaitu: pengaturan pada date (fitur Set-date-automatically), selected-index (fokus index sebuah Component), manipulasi data (konversi dan kalkulasi), proses sinkronisasi (Data dengan Record-RMS), hingga proses parsing (SemanticAnalyzer). Semuanya itu melibatkan proses manipulasi String. Universitas Sumatera Utara Implementasi dalam Program Java Berikut ini adalah beberapa method yang digunakan penulis dalam melakukan manipulasi terhadap data-data yang ada pada aplikasi MyDict. 1. concat() 2. equals() 3. indexOf() 4. length() 5. substring() 6. valueOf() 7. parseInt() Method String concat(String str) Penjelasan Menggabungkan String tambahan ke posisi akhir String yang ada. Parameters: str – String yang mau ditambahkan. boolean equals(Object anObject) Membandingkan String dengan Object. Parameters: anObject – Object yang akan dibandingkan. Selain itu, Object juga dapat berupa String. Bernilai: true – berarti sebanding. false – berarti tidak sebanding. int indexOf(String str) Mengambil nilai index (int) dengan menjadikan suatu String sebagai acuan, kemudian (karakter) melakukan perbandingan dengan String yang dituju. Nilai index pertama yang akan diambil jika ditemukan karakter yang sama. Jika tidak ditemukan, maka nilai index adalah Universitas Sumatera Utara -1. Parameters: str – String (karakter) yang akan dijadikan sebagai acuan. int length() Menampilkan total karakter yang dimiliki oleh sebuah String. String substring(int beginIndex) Membuat sebuah String baru dengan cara melakukan (substring) pemotongan dari Pemotongan String String String yang ada. dilakukan berdasarkan index yang diberikan. Contohnya: "unhappy".substring(2) returns "happy" "Harbison".substring(3) returns "bison" Parameters: beginIndex – index untuk memulai pemotongan String substring(int beginIndex, Membuat sebuah String baru dengan cara int endIndex) melakukan (substring) pemotongan dari String String yang ada. Pemotongan String dimulai dan diakhiri berdasarkan index yang diberikan. Contohnya: "jokolo".substring(0, 4) returns "joko" "smiles".substring(1, 5) returns "mile" Parameters: beginIndex – index untuk memulai pemotongan endIndex – index untuk mengakhiri pemotongan String valueOf(Object obj) Mendapatkan nilai String pada sebuah Object. Parameters: Universitas Sumatera Utara Obj – Object yang mau diambil Stringnya. String trim() String toLowerCase Metode trim () menghilangkan whitespace diawal dan diakhir objek String toUpperCase string. Metode toLowerCase dan toUpperCase untuk mengonversi semua karakter di objek string ke lowercase dan uppercase. 2.9 Generic Connection Framework (GFC) GFC adalah sebuah Application Programming Interface(API) yang terdiri dari kumpulan kelas dan antarmuka yang digunakan untuk membangun sebuah koneksi client-server. GFC merupakan API yang disediakan oleh MIDP dari CLDC. Library GFC merupakan perpaduan antara paket javax.microedition.io dari MIDP dann java.io dari CLDC. Kelas utama yang digunakan untuk membangun koneksi adalah kelas Connector pada kelas javax.microedition.io. Kelas ini mempunyai tugas utama sebagai interpreter (penerjemah) URL, instantiator (membuat objek) kelas, dan memilih antarmuka yang tepat [9]. 2.9.1 Membangun Koneksi HTTP Hypertext Transf5er Protocol (HTTP) yaitu sebuah aturan yang digunakan untuk pertukaran data pada web. Inti dari koneksi HTTP ini adalah client mengirim permintaan data ke server, kemudian server merespon dengan mengirimkan data yang diminta. Kelas Connector merupakan kelas yang disediakan GFC untuk membangun koneksi. Kelas ini mempunyai method open yang dipanggil secara static untuk mendapatkan objek Connection yang kemudian dapat di-casting kepada kelas koneksi yang sesuai, misalnya HttpConnection Universitas Sumatera Utara Method Penjelasan Connection Connector.open Method ini mengembalikan interface (String name, int mode, boolean Connection yang dapat di-casting timeouts) (diubah) menjadi HttpConnection. Parameter : String name : Request atau permintaan yang akan dikirimkan ke server dalam bentuk URL. Int mode: Mode akses file yang dikirim atau diterima. Boolean apakah timeouts: saat mengindikasikan membangun koneksi mempunyai batas waktu tertentu atau tidak. httpC.setRequestMethod mengirimkan data melaui parameter url. (HttpConnection.GET) Saat meode diizinkan ini sebuah digunakan, data tidak dikirimkan bersamaan dengan request, tetapi header diizinkan. httpC.setRequestProperty Apabila nilai close diberikan, maka (“Connection”, “close”); koneksi akan ditutup setelah server membalas permintaan client . int getResponseCode() Untuk membaca status response server. Contoh: HTTP_OK Menunjukka request berhasil InputStream openInputStream Membuat objek stream input untuk melakukan pembacaan data. Universitas Sumatera Utara 2.10 Bahasa Pemograman PHP (Hypertext Preprosessor) PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk pemrograman website, walaupun tidak tertutup kemungkinan untuk digunakan untuk pemakaian lain. PHP merupakan salah satu bahasa server side scripting yang disisipkan di antara bahasa HTML untuk membuat halaman web yang dinamis. Dan karena bahasa berbasis server side, maka PHP akan dieksekusi di server, sehingga yang akan dikirimkan ke web browser adalah hasil dalam bentuk HTML dan kode PHP tidak akan terlihat[12]. Salah satu fungsi PHP adalah untuk menerima, mengolah, dan menampilkan data dari dan ke sebuah website. Data yang diterima akan diolah di sebuah program database server dan kemudian hasilnya ditampilkan kembali ke layar web browser sebuah website. Seorang pengguna internet tidak dapat melihat kode program yang ditulis dalam PHP sehingga keamanan dari halaman web menjadi lebih terjamin. PHP merupakan singkatan dari Personal Home Page, sebelum akhirnya dipaksakan menjadi singkatan rekursif dari PHP : Hypertext Preprocessor. Pertengahan tahun 1995 dirilis PHP/FI (FI adalah singkatan dari Form Interpreter) yang memiliki kemampuan dasar membangun aplikasi web, memproses form dan mendukung database MySQL. Untuk dapat bekerja dengan PHP, berikut ini adalah beberapa aplikasi yang diperlukan: 1. Web server (Apache, IIS, Personal Web Server/PWS) 2. PHP server (dapat didownload di PHP.net) 3. Database server (MySQL, Interbase, MS SQL) 4. Web Editor (Dreamweaver, Frontpage). 2.10.1 Contoh Pemrograman dengan Menggunakan PHP Untuk menjalankan program PHP ini, komputer harus telah memiliki sebuah sistem yang telah terinstalasi dan terkonfigurasi dengan baik Apache Web Server, PHP, dan database MySQL. Ketiganya adalah program open source yang tersedia secara gratis di Internet dan dapat berjalan di berbagai platform (Windows maupun UNIX/Linux). Universitas Sumatera Utara Program untuk menampilkan tulisan selamat belajar php yang dibuat dengan menggunakan PHP adalah sebagai berikut : <?php echo”Hello World”; ?> Kode program tersebut dituliskan pada sebuah text editor serta disimpan dengan ekstensi yang hasilnya dapat dilihat melalui web browser seperti Internet Explorer, arahkan alamat pada file fibo.php yang telah kita buat, misalkan alamatnya adalah http://localhost/test1.php Contoh tampilannya: Gambar 2.14 Hasil Program dengan Menggunakan PHP 2.11 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 kasuskasus di mana penggunaannya tidak cocok dengan penggunaan GPL [4] Universitas Sumatera Utara 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 cumacuma. Dan bila ingin memodifikasi pada program aslinya, maka program modifikasi tersebut harus dilepas di bawah lisensi GPL juga”. Tidak sama dengan proyek-proyek seperti Apache, dimana 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, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael “Monty”Widenius[4]. Universitas Sumatera Utara