BAB IV PEMBANGUNAN APLIKASI MYSQL CLIENT
Setelah tahap pembangunan API MyME, Bab ini membahas pembangunan aplikasi MySQL Client yang bernama MieSQL. Selain berfungsi sebagai MySQL Client, aplikasi ini juga bertujuan untuk membantu proses pengujian API MyME. Dengan MieSQL, penggunanya dapat membuat koneksi ke suatu MySQL Server dan kemudian dapat melakukan proses manipulasi terhadap basisdata MySQL. MieSQL mendukung proses pembuatan, pengubahan, dan penghapusan database beserta tabel di dalamnya. Selain itu MieSQL juga mendukung proses pengambilan, pengisian, pengubahan, dan penghapusan data pada tabel dalam database MySQL. Semua proses manipulasi tersebut dapat dilakukan dengan menggunakan Graphical User Interface (GUI) yang disesuaikan dengan karakter telepon seluler yang memiliki banyak keterbatasan. Pembangunan aplikasi ini akan memakai metodologi RUP [BEN02], yang terdiri atas empat fase utama yaitu: insepsi, elaborasi, konstruksi, dan testing/deployment. Keempat fase tersebut dilakukan secara iteratif.
IV.1 Latar Belakang Dibutuhkannya MieSQL Hingga saat ini aplikasi MySQL Client telah dikembangkan sebagai aplikasi desktop dan aplikasi web tetapi belum sebagai aplikasi telepon seluler. Dengan adanya aplikasi MySQL Client sebagai aplikasi telepon seluler, mobilitas dari manajemen basisdata MySQL akan meningkat. Manajemen basisdata MySQL akan dapat dilakukan dimana saja dan kapan saja dengan menggunakan telepon seluler selama berada dalam jangkauan jaringan seluler.
IV.2 Deskripsi Umum Aplikasi MieSQL adalah sebuah aplikasi MySQL Client pada platform Java ME. MieSQL berfungsi sebagai interface dari MySQL Database Server. Pengguna MieSQL akan dapat melakukan manipulasi terhadap basisdata MySQL dengan menggunakan sebuah Graphical User Interface (GUI) yang telah disesuaikan dengan karakteristik telepon seluler yang memiliki banyak keterbatasan. Keterbatasan yang dimaksud diantaranya adalah layar yang kecil, memory dan storage yang terbatas, serta user input yang sederhana.
IV-1
IV-2
Gambar IV-1 - Gambaran global MieSQL
IV.3 Pengumpulan Kebutuhan MieSQL Untuk dapat mendefinisikan kebutuhan MieSQL, dilakukan eksplorasi pada PHPMyAdmin, sebuah MySQL Client berbasis web. Selanjutnya hasil dari eksplorasi disesuaikan dengan kemampuan mobile device dan platform Java ME yang memiliki banyak keterbatasan.Kebutuhan pengguna yang berhasil dikumpulkan dan merupakan kebutuhan fungsional adalah: 1. Menampilkan halaman untuk melakukan otentikasi ke MySQL Server. 2. Mampu melakukan proses manipulasi database MySQL yang meliputi pembuatan database baru, menampilkan daftar database, dan penghapusan database yang ada. 3. Mampu melakukan proses manipulasi tabel MySQL yang meliputi pembuatan tabel baru, menampilkan daftar tabel, serta pengubahan dan penghapusan tabel yang ada. 4. Mampu melakukan proses manipulasi data pada tabel MySQL yang meliputi penambahan data baru, menampilkan data tabel, serta pengubahan dan penghapusan data yang ada. 5. Mampu mengeksekusi statement SQL dan menerima responnya. Kebutuhan pengguna yang berhasil dikumpulkan dan merupakan kebutuhan nonfungsional adalah: 1. Menggunakan memori dengan seefektif dan seefisien mungkin. 2. Memiliki ukuran file sekecil mungkin. 3. Memiliki sebuah Graphical User Interface yang baik. 4. Dapat dengan mudah digunakan.
IV-3
IV.4 Arsitektur Sistem MieSQL yang dibangun di atas platform Java ME, menggunakan MyME untuk mengakses MySQL Server. Pengaksesan MySQL Server oleh MieSQL dilakukan dengan cara asynchronous, yaitu membangkitkan sebuah thread setiap kali melakukan pengaksesan MySQL Server. Hal ini dilakukan untuk menghindari terjadinya deadlock akibat perebutan resource antara komunikasi socket dengan GUI dari MieSQL. Arsitektur Sistem dimana MieSQL berada dapat dilihat pada Gambar IV-2.
Gambar IV-2 - Arsitektur MieSQL
IV.5 Diagram Use Case Pada Subbab ini akan dilakukan perancangan terhadap use case-use case yang terdapat dalam proses pemakaian MieSQL.
IV-4
Gambar IV-3 – Diagram use case MieSQL
Use case yang didefinisikan sesuai dengan Gambar IV-3 adalah: 1. Melakukan otentikasi MySQL 2. Mengeksekusi SQL 3. Mengedit database 4. Mengedit tabel 5. Mengedit data
IV.6 Diagram Kelas Analisis Pada Subbab ini akan dilakukan perancangan diagram kelas analisis dari kebutuhan-kebutuhan yang telah dibahas sebelumnya. MieSQL mengimplementasikan GUI nya dengan menggunakan kelas Page yang diturunkan dari kelas Canvas pada Java ME. Kelas Page merepresentasikan sebuah halaman yang dapat diisi dengan komponen-komponen halaman. Komponen halaman ini direpresentasikan dengan interface
IV-5 Component. Kelas yang merupakan implementasi dari Component adalah Form, Table, dan Label. Form adalah representasi dari bentuk form yang dapat menerima input dari pengguna. Sedangkan Table adalah representasi dari bentuk tabel yang terdiri dari kolom dan baris. Dan Label adalah
representasi dari label yang berisi teks. Kelas PageManager bertugas untuk membentuk halaman sesuai dengan permintaan dari pengguna. Untuk membangun sebuah halaman, PageManager akan membuat sebuah instan objek Page dan kemudian menambahkan objek-objek Component yang diperlukan.
Gambar IV-4 - Diagram kelas MieSQL
IV.7 Diagram Sekuens Pada Subbab ini akan dilakukan perancangan diagram sekuens dengan dasar diagram kelas analisis untuk membantu dalam menentukan dan merancang diagram kelas perancangan.
IV-6 IV.7.1 Melakukan Otentikasi MySQL Proses pertama yang harus dijalani pengguna agar dapat menggunakan MieSQL adalah melakukan proses otentikasi ke MySQL Server yang diinginkan. Diagram sekuens dari proses otentikasi MySQL dapat dilihat pada Gambar IV-5.
Gambar IV-5 - Diagram sekuens melakukan otentikasi MySQL
Ketika MieSQL dijalankan, PageManager akan membentuk halaman otentikasi dan kemudian menampilkannya kepada pengguna. Selanjutnya pengguna akan menspesifikasikan alamat host, nomor port, username dan password dari MySQL Server yang diinginkan. Proses otentikasi dilakukan dengan memanggil fungsi otentikasi yang telah disediakan oleh MyME. Proses ini dilakukan secara asinkron dengan cara melakukannya pada sebuah thread baru. IV.7.2 Mengeksekusi SQL MieSQL memungkinkan penggunanya untuk menspesifikasikan statement SQL yang diinginkan untuk dieksekusi. Pertama kali PageManager akan membangun sebuah halaman yang dapat digunakan pengguna untuk menspesifikasikan statement SQL. Selanjutnya proses eksekusi SQL akan diserahkan kepada MyME. Jika eksekusi SQL mengembalikan sebuah result set, PageManager akan membangun sebuah halaman yang menampilkan tabel berisi result set tersebut.
IV-7 Diagram sekuens dari proses pengeksekusian SQL dapat dilihat pada Gambar IV-6.
Gambar IV-6 - Diagram sekuens mengeksekusi SQL
IV.7.3 Mengedit Database Setelah pengguna berhasil melakukan otentikasi ke suatu MySQL Server, PageManager akan menampilkan sebuah halaman yang berisi daftar database yang sudah ada. Selanjutnya pengguna dapat membuka halaman untuk membuat database baru ataupun menghapus database yang sudah ada. Yang bertanggung jawab dalam pembangunan halaman-halaman tersebut adalah PageManager. Setiap aksi yang dilakukan oleh pengguna, akan diteruskan kepada MyME untuk dieksekusi. Diagram sekuens dari proses melihat daftar database dapat dilihat pada Gambar IV-7. Diagram sekuens dari proses membuat database baru dapat dilihat pada Gambar IV-8. Dan diagram sekuens dari proses menghapus database dapat dilihat pada Gambar IV-9.
IV-8
Gambar IV-7 – Diagram sekuens melihat daftar database
Object1
PageManager
«subsystem» MyME
Page
Pengguna Membuka halaman database baru Membentuk halaman database baru Eksekusi query
Kirim paket
Gambar IV-8 - Diagram sekuens membuat database baru
Gambar IV-9 - Diagram sekuens menghapus database
IV-9 IV.7.4 Mengedit Tabel Untuk setiap database yang ada, pengguna dapat membuka halaman untuk menampilkan daftar tabel dari database tersebut. Selanjutnya pengguna dapat membuka halaman untuk membuat tabel baru ataupun mengedit tabel yang sudah ada. Yang bertanggung jawab dalam pembangunan halamanhalaman tersebut adalah PageManager. Setiap aksi yang dilakukan oleh pengguna, akan diteruskan kepada MyME untuk dieksekusi. Diagram sekuens dari proses melihat daftar tabel dapat dilihat pada Gambar IV-10. Diagram sekuens dari proses membuat tabel baru dapat dilihat pada Gambar IV-11. Dan diagram sekuens dari proses mengedit tabel dapat dilihat pada Gambar IV-12.
Gambar IV-10 – Diagram sekuens melihat daftar tabel
Gambar IV-11 - Diagram sekuens membuat tabel baru
IV-10
Object1
PageManager
«subsystem» MyME
Page
Pengguna Membuka halaman edit tabel Membentuk halaman edit tabel
Mengedit tabel (rubah atau hapus) Eksekusi query
Kirim paket
Gambar IV-12 - Diagram sekuens mengedit tabel
IV.7.5 Mengedit Data Untuk setiap tabel yang ada, pengguna dapat membuka halaman untuk menampilkan isi data dari tabel tersebut. Selanjutnya pengguna dapat membuka halaman untuk menambahkan data baru ataupun mengedit data yang sudah ada. Yang bertanggung jawab dalam pembangunan halaman-halaman tersebut adalah PageManager. Setiap aksi yang dilakukan oleh pengguna, akan diteruskan kepada MyME untuk dieksekusi. Diagram sekuens dari proses melihat isi tabel dapat dilihat pada Gambar IV-13. Diagram sekuens dari proses menambahkan data baru dapat dilihat pada Gambar IV-14. Dan diagram sekuens dari proses mengedit data dapat dilihat pada Gambar IV-15.
Gambar IV-13 - Diagram sekuens melihat isi tabel
IV-11
Object1
PageManager
«subsystem» MyME
Page
Pengguna Membuka halaman insert data Membentuk halaman insert data
Menspesifikasikan data baru Eksekusi query
Kirim paket
Gambar IV-14 - Diagram sekuens menambah data baru
Gambar IV-15 - Diagram sekuens mengedit data
IV.8 Perancangan GUI Terdapat dua cara yang dapat digunakan untuk membuat GUI pada Java ME, yaitu dengan membuat kelas yang menurunkan kelas javax.microedition.lcdui.Canvas atau menggunakan kelaskelas turunan dari javax.microedition.lcdui.Screen seperti kelas Alert, Form, List, dan TextBox. Cara pertama lebih memberikan kebebasan dalam membangun GUI karena kelas Canvas
menyediakan akses ke low-level event dan fungsi-fungsi dasar dari grafika. Sedangkan cara kedua lebih memberikan kemudahan dalam membangun GUI karena kelas-kelas turunan dari kelas Screen telah menyediakan antarmuka dengan interaksi tertentu.
IV-12 Berdasarkan kebutuhan dari MieSQL yang menuntut penggambaran tabel dengan baik, maka GUI MieSQL akan diimplementasikan dengan cara yang pertama, yaitu menurunkan kelas Canvas.
IV.9 Kelas Perancangan Terdapat perbedaan yang cukup signifikan antara kelas-kelas analisis dengan kelas-kelas perancangan. Perbedaan tersebut adalah dibaginya MieSQL menjadi 2 subsistem. Subsistem pertama adalah subsistem UI yang membentuk Graphical User Interface (GUI) dari MieSQL (Gambar IV-17). Dan subsistem yang kedua adalah subsistem Integrator yang bertugas menggabungkan subsistem UI dengan API MyME untuk mewujudkan fungsi-fungsi dari MieSQL (Gambar IV-16).
Gambar IV-16 - Diagram kelas perancangan MieSQL subsistem Integrator
IV-13
Gambar IV-17 - Diagram kelas perancangan MieSQL subsistem UI
IV-14 Daftar kelas pada subsistem UI dapat dilihat pada Tabel IV-1.
Tabel IV-1 - Daftar kelas dari MieSQL subsistem UI
No. 1 2 3 4 5 6 7 8 9 10 11 12 13
Nama Kelas ActionListeners Button CheckBox ComboBox Component DialogPage Frame Label LayoutPage Line ListFrame MCanvas MCommand
14 15 16 17 18 19 20
MenuBar MenuButton MenuContainer MenuItem MFont MImage MScreen
21 22
MTextField NokiaCanvas
23 24 25 26
Page ProgressBar ProgressPage RegulerCanvas
27 28 29
ScrollBar Space Style
30
TableFrame
31 32 33
TablePage Text TitleBar
Keterangan Kelas yang harus di implement agar dapat menerima aksi dari user interface. Kelas turunan Component yang merepresentasikan tombol. Kelas turunan Component yang merepresentasikan check box. Kelas turunan Component yang merepresentasikan combo box. Kelas abstrak yang merepresentasikan komponen dari kelas Frame. Kelas turunan Page yang merepresentasikan halaman dialog. Kelas yang merepresentasikan wadah dari komponen dalam Page. Kelas turunan Component yang merepresentasikan label. Kelas turunan Page yang merepresentasikan halaman layout. Kelas turunan Component yang merepresentasikan sebuah garis. Kelas turunan Frame yang menata komponennya secara menurun. Interface yang merepresentasikan canvas dari MScreen. Kelas yang merepresentasikan perintah pada Component yang akan dieksekusi di dalam ActionListeners. Kelas yang merepresentasikan menu dalam Page. Kelas turunan MenuItem yang merepresentasikan tombol pada MenuBar. Kelas turunan MenuItem yang dapat menampung MenuButton. Kelas abstrak yang merepresentasikan komponen dari MenuBar. Kelas yang mengatur font yang digunakan dalam subsistem UI ini. Kelas turunan Component yang merepresentasikan gambar. Kelas utama dari subsistem UI. Kelas ini juga mengatur kompatibilitas layar yang digunakan. Kelas turunan Component yang merepresentasikan text field. Kelas turunan com.nokia.mid.ui.FullCanvas yang mengimplementasikan MCanvas yang digunakan untuk device Nokia. Kelas abstrak yang merepresentasikan sebuah halaman pada MScreen. Kelas turunan Component yang merepresentasikan progress bar. Kelas turunan Page yang merepresentasikan halaman progress. Kelas turunan javax.microedition.lcdui.Canvas yang mengimplementasikan MCanvas yang digunakan untuk device selain Nokia. Kelas yang merepresentasikan scroll bar dalam Page. Kelas turunan Component yang merepresentasikan tempat kosong. Kelas yang mengatur gaya dari subsistem UI ini yang meliputi tipe font dan warna-warna yang digunakan. Kelas turunan Frame yang menata komponennya dalam bentuk tabel yang terdiri dari kolom dan baris. Kelas turunan Page yang merepresentasikan halaman tabel. Kelas yang digunakan untuk menggambar teks. Kelas yang merepresentasikan judul dalam Page.
IV-15 Daftar kelas pada subsistem Integrator dapat dilihat pada Tabel IV-2. Tabel IV-2 - Daftar kelas dari MieSQL subsistem Integrator
No. 1
Nama Kelas AddFieldPage
2 3 4 5
AuthPage CreateTablePage DatabasesPage EditFieldPage
6
EditTablePage
7
InsertPage
8
MieSQL
9 10
PageManager QueryPage
11
ResultSetPage
12
TableDataPage
13
TableIndexPage
14
TablesPage
15
TableStructurePage
16
UpdatePage
Keterangan Kelas turunan LayoutPage representasi dari halaman untuk menambah field pada suatu table. Kelas turunan LayoutPage representasi dari halaman otentikasi. Kelas turunan LayoutPage representasi dari halaman pembuatan table baru. Kelas turunan LayoutPage representasi dari halaman daftar database. Kelas turunan LayoutPage representasi dari halaman untuk merubah field pada suatu table. Kelas turunan LayoutPage representasi dari halaman untuk merubah properti dari suatu table. Kelas turunan LayoutPage representasi dari halaman untuk menambahkan suatu baris pada suatu table. Kelas turunan javax.microedition.midlet.MIDlet yang merupakan kelas utama dari MieSQL. Kelas yang bertugas menampilkan halaman-halaman yang dibutuhkan. Kelas turunan LayoutPage representasi dari halaman untuk mengeksekusi custom SQL. Kelas turunan TablePage representasi dari halaman yang menampilkan tabel result set hasil dari suatu query. Kelas turunan TablePage representasi dari halaman yang menampilkan tabel data dari suatu table. Kelas turunan TablePage representasi dari halaman yang menampilkan tabel daftar index dari suatu table. Kelas turunan LayoutPage representasi dari halaman yang menampilkan daftar table dari suatu database. Kelas turunan TablePage representasi dari halaman yang menampilkan tabel struktur dari suatu table. Kelas turunan LayoutPage representasi dari halaman untuk mengubah suatu baris pada suatu table.
IV.10 Sketsa Antarmuka Untuk memudahkan dalam proses konstruksi perangkat lunak khususnya pengembangan antarmuka grafis diperlukan sketsa awal dari antarmuka tersebut. Pada layar otentikasi (Gambar IV-10) pengguna harus menspesifikasikan alamat host dan nomor port dari MySQL Server, username, serta password jika diperlukan. Kemudian pengguna dapat menekan tombol “login” untuk dapat memulai proses otentikasi. Setelah berhasil melakukan proses otentikasi, pengguna akan masuk ke halaman daftar database (Gambar IV-11). Pada halaman ini pengguna dapat memilih database yang sudah ada atau membuat sebuah database baru. Jika memilih salah satu database yang ada, pengguna akan masuk ke halaman daftar tabel dari database tersebut (Gambar IV-12). Pada halaman ini pengguna dapat memilih tabel yang sudah ada, membuat tabel baru, atau menghapus database yang bersangkutan.
IV-16 Pengguna akan masuk ke halaman tabel baru (Gambar IV-13) jika memilih untuk membuat tabel baru. Pada halaman tabel baru ini, pengguna dapat menspesifikasikan nama field, tipe data, dan atribut-atribut dari field tersebut.
Gambar IV-18 - Antarmuka halaman otentikasi
Gambar IV-19 - Antarmuka halaman daftar database
IV-17
Gambar IV-20 - Antarmuka halaman daftar table
Jika memilih salah satu tabel yang ada, pengguna akan masuk ke halaman isi tabel (Gambar IV-14). Pada halaman ini, pengguna dapat menambahkan data baru, mengubah atau menghapus data yang sudah ada, dan menghapus tabel yang bersangkutan.
Gambar IV-21 - Antarmuka halaman tabel baru
IV-18
Gambar IV-22 - Antarmuka halaman isi table
Selain itu pengguna juga dapat mengeksekusi statement SQL yang diinginkan pada halaman Custom SQL (Gambar IV-15). Pengguna mengetikkan SQL yang diinginkan di dalam text field yang disediakan dan kemudian menekan tombol “execute”. Jika SQL tersebut menghasilkan result set, maka aplikasi akan menampilkan result set tersebut dalam bentuk tabel.
Gambar IV-23 - Antarmuka halaman Custom SQL
IV-19
IV.11 Implementasi MieSQL Setelah melakukan berbagai analisis terhadap MieSQL yang kemudian diikuti proses perancangan MieSQL, maka pada Subbab ini akan dijelaskan proses implementasi dari MieSQL. IV.11.1 Lingkungan Implementasi Lingkungan implementasi MieSQL adalah sebagai berikut: 1. Sistem Operasi: Apple Macintosh Tiger OSX 10.4.8 2. Perangkat Lunak Utama: a. VMWare Fusion 1.0 b. Microsoft Windows XP Professional Service Pack 2 c. Java Development Kit (JDK) 1.5 d. J2ME Wireless Tool Kit (WTK) 2.2 e. SonyEricsson J2ME SDK f.
Eclipse 3.2 dengan obfuscator Proguard 3.10
3. Perangkat Keras Utama: Notebook Sony VAIO SZ-220 B dengan spesifikasi: a. Processor Intel Core Duo CPU T2400 1,83 GHz b. Memory DDR2 SDRAM 1GB c. Harddisk 120 GB Agar hasil kompilasi memiliki ukuran file yang lebih kecil, Proguard digunakan sebagai obfuscator Java ME. IV.11.2 Batasan Implementasi Batasan implementasi MieSQL adalah sebagai berikut: 1. Tidak semua ponsel mendukung pemakaian aplikasi ini secara sempurna dan pada Tugas Akhir ini tidak dibahas mengenai incompatibility perangkat keras. Perangkat keras yang mendukung aplikasi ini adalah perangkat keras yang mendukung Java dengan spesifikasi profil MIDP 2.0 dan konfigurasi CLDC 1.1. 2. Diuji dengan emulator Sony Ericsson SDK dan device Nokia 6630. 3. Semua batasan mengenai MyME juga berlaku untuk MieSQL. IV.11.3 Penggunaan MieSQL Ketika MieSQL mulai dijalankan, akan ditampilkan sebuah halaman otentikasi. Kemudian pengguna harus menspesifikasikan nama host, nomor port, username, dan password sebelum menekan tombol “Login”. Jika proses otentikasi gagal, MieSQL akan menampilkan pemberitahuan kegagalan otentikasi.
IV-20 Jika proses otentikasi berhasil, MieSQL akan menampilkan halaman daftar database yang sudah ada. Pada halaman ini pengguna dapat membuat database baru dengan mengisi text field yang telah disediakan atau memilih salah satu database yang sudah ada dengan menekan tombol yang sesuai dengan database yang diinginkan. Setelah pengguna memilih salah satu database, MieSQL akan menampilkan halaman daftar table yang ada pada database tersebut. Pada halaman ini pengguna dapat melakukan beberapa pilihan fungsi. Yang pertama adalah menghapus database yang sedang dipilih dengan cara memilih menu “Drop”. Yang kedua adalah mengeksekusi custom SQL dengan cara memilih menu “SQL”. Yang ketiga adalah membuat table baru dengan cara menekan tombol “New table”. Dan yang terakhir adalah menuju halaman struktur table yang diinginkan. Pada halaman struktur table terdapat banyak fungsi yang dapat dipilih oleh pengguna, yaitu: 1. Menuju halaman yang menampilkan tabel yang berisi data dari table yang sedang dipilih dengan cara memilih menu “Browse”. 2. Menuju halaman yang menampilkan tabel yang berisi index dari table yang sedang dipilih dengan cara memilih menu “Indexes”. 3. Menambahkan data baru pada table yang sedang dipilih dengan cara memilih menu “Insert”. 4. Merubah properti dari table yang sedang dipilih dengan cara memilih menu “Operation” submenu “Edit”. 5. Menghapus table yang sedang dipilih dengan cara memilih menu “Operation” submenu “Drop”. 6. Menambahkan sebuah field baru pada table yang sedang dipilih dengan cara memilih menu “Operation” submenu “Add field”. 7. Merubah field yang diinginkan pada table yang sedang dipilih dengan cara menekan tombol bergambar pensil pada baris field yang diinginkan. 8. Menghapus field yang diinginkan pada table yang sedang dipilih dengan cara menekan tombol bergambar silang pada baris field yang diinginkan. Jika pengguna memilih menu “Browse”, MieSQL akan menampilkan halaman yang menampilkan tabel yang berisi data dari table yang sedang dipilih dimana pengguna dapat merubah data suatu baris dengan cara menekan tombol bergambar pensil pada baris yang diinginkan ataupun menghapus data suatu baris dengan cara menekan tombol bergambar silang pada baris data diinginkan.