BAB III PEMBANGUNAN API MYSQL

dokumen-dokumen yang mirip
BAB IV PEMBANGUNAN APLIKASI MYSQL CLIENT

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Tutorial Tipe Data MySQL

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

PRAKTIKUM SISTEM INFORMASI MANAJEMEN

BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans)

Langkah-Langkah Pemrograman JDBC MENGIMPOR PACKAGE JAVA.SQL MEMANGGIL DRIVER JDBC

BAB V IMPLEMENTASI DAN PENGUJIAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Arsitektur Aplikasi Perangkat Enterprise JDBC. Antonius Rachmat C, S.Kom, M.Cs

TUGAS FRAMEWORK 2 FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA UNIVERSITAS DR. SOETOMO SURABAYA MOCHAMMAD ANNAS FAHRUDIN

BAB III ANALISA DAN DESAIN SISTEM

BAB I PENDAHULUAN. I.1 Latar Belakang

Apa itu DDL & DML? Semua perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu :

PEMBUATAN API MYSQL DAN APLIKASI MYSQL CLIENT PADA PLATFORM JAVA ME LAPORAN TUGAS AKHIR. Disusun Sebagai Syarat Kelulusan Tingkat Sarjana.

Kontrak Kuliah. Dasar-dasar MySQL. Edi Sugiarto, S.Kom, M.Kom

BAB III ANALISIS DAN PERANCANGAN

Pengenalan Structured Query Language

MAKALAH SEMINAR TUGAS AKHIR APLIKASI KONVERSI DATA DARI MYSQL KE ORACLE

LAPORAN PRAKTIKUM PENGANTAR TEKNOLOGI INFORMASI DATABASE

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB III METODE PENELITIAN

BAB 4 IMPLEMENTASI DAN EVALUASI

J2ME GUI dan Interkoneksi Client Server

3. DEFINISI Istilah-istilah dalam Prosedur Operasional Baku ini dapat dilihat pada Kamus Istilah ICT DKSI IPB. 4. PROSEDUR

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

IMPLEMENTASI TCP/IP UNTUK MEMBUAT SERVER DATABASE ACCESS ABSTRAK

PENGERTIAN DATABASE MySQL

PENGENALAN SINTAKS DASAR DALAM MySQL

HASIL DAN PEMBAHASAN Analisis SIRANJAJA Perancangan Modul Pembangunan Content Streaming

KAMUS INGGRIS-INDONESIA BERBASIS J2ME

Java Database Connectivity (JDBC) (Minggu 5 Praktikum II)

MODUL VII DATABASE DAN MICROSOFT SQL SERVER 2000

BAB III METODOLOGI PENELITIAN

BAB III PERANCANGAN SISTEM. Pada bab ini akan di bahas perancangan database, perancangan website, dan

BAB III METODE PENELITIAN. penelitian adalah pada semester Genap Tahun Pelajaran

BAB II ANALISIS DAN PERANCANGAN. Perancangan dari aplikasi ini memerlukan perangkat lunak. dan perangkat keras yang menjadi bagian penting dari

BAB II. KAJIAN PUSTAKA

data dengan menggunakan konektivitas tersebut terbatas jangkauan area koneksinya, meskipun pengguna tidak perlu mengeluarkan biaya.

BAB III LANDASAN TEORI. sistematis di dalam komputer yang dapat diolah atau dimanipulasi menggunakan

PENERAPAN LAYANAN LOCATION BASED SERVICE PADA PETA INTERAKTIF KOTA BANDUNG UNTUK HANDPHONE CLDC/1.1 dan MIDP/2.0

BAB III LANDASAN TEORI

BAB V IMPLEMENTASI DAN PENGUJIAN SISTEM. konfigurasi pada perangkat lunak serta perangkat keras sesuai kebutuhan sistem

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB IV IMPLEMENTASI DAN PENGUJIAN

LUQMAN Pembimbing I : Wahyu Suadi, S.Kom, M.Kom, MM Pembimbing II : Henning Titi Ciptaningtyas, S.Kom

BAB I PERSYARATAN PRODUK

Pertemuan 12 Pengenalan Structured Query Language

BAB IV IMPLEMENTASI DAN EVALUASI

BAB III ANALISIS PRAKTEK KERJA LAPANGAN. bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan

BAB III ANALISIS DAN PERANCANGAN

III. METODE PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika Dan

BAB IV IMPLEMENTASI DAN PENGUJIAN

RANGKUMAN PHP dan MYSQL

Pemrograman Database Java

BAB V IMPLEMENTASI PENGUJIAN SISTEM

4. BAB IV ANALISIS DAN PERANCANGAN SISTEM. diusulkan perancangan sistem baru, dimana kinerja dari suatu sistem yang baru

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA MASALAH DAN SISTEM

STORE PROCEDURE. Pemrograman Client Server Sarji, S.Kom Studi kasus pada

BAB II ANALISIS DAN PERANCANGAN

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB III ANALISIS DAN PERANCANGAN SISTEM

Tutorial Java Desktop 3 Melakukan Pengambilan data pada JavaDB

BAB II ANALISA DAN RANCANGAN. kebutuhan dari objek yang dibangun antara lain sistem pendukung,

HASIL DAN PEMBAHASAN. 2 Perangkat keras: Prosesor AMD Athlon II 245 2,9 GHz; Memori 2046 MB; HDD 160 GB. Client:

BAB III ANALISIS MASALAH DAN RANCANGAN SISTEM

BAB II ANALISIS DAN PERANCANGAN

PERANCANGAN DAN PEMBANGUNAN CLIENT PADA PERANGKAT MOBILE BERBASIS JAVA ME

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB 3 ANALISIS DAN PERANCANGAN. menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB II LANDASAN TEORI

BAB IV IMPLEMENTASI DAN PENGUJIAN APLIKASI. Setelah melakukan analisis dan perancangan terhadap Aplikasii

PENGENDALIAN JARAK JAUH KOMPUTER MENGGUNAKAN APLIKASI MOBILE

BAB 4 IMPLEMENTASI DAN EVALUASI. perangkat lunak, perangkat keras, dan jaringan sebagai berikut. a. Sistem operasi Microsoft Windows Server 2003

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

BAB 1 PENDAHULUAN. 1 Universitas Kristen Maranatha

BAB III LANDASAN TEORI. adalah mengajarkan anak untuk menjadi anak yang mampu memajukan

BAB IV IMPLEMENTASI DAN PENGUJIAN

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT)

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB III PEMBAHASAN. Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem

MODUL 1 Pengenalan MySQL, DDL, DML

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

BAB III ANALISIS DAN DESAIN SISTEM

Masukkan connector tersebut ke dalam direktori pada tempat jdk di-instal dengan path

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA DAN DESAIN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV ANALISA DAN DESAIN

IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

Transkripsi:

BAB III PEMBANGUNAN API MYSQL Setelah dilakukan studi mendalam tentang hal-hal teknis yang berhubungan dengan pengerjaan Tugas Akhir ini maka langkah selanjutnya adalah membangun API MySQL dengan menggunakan metodologi Rational Unified Process (RUP) yang bersifat iteratif[ben02]. Selanjutnya API MySQL ini akan disebut dengan MyME. III.1 Deskripsi Umum MyME adalah sebuah API yang mengimplementasikan protokol MySQL dan memungkinkan aplikasi Java ME untuk berkomunikasi dengan MySQL Server. Sebuah aplikasi Java ME dapat menggunakan MyME untuk melakukan komunikasi dengan MySQL Server pada jaringan wireless. Gambar III-1 - Gambaran global MyME MyME pada versi ini tidak akan mengimplementasikan semua protokol MySQL sehingga tidak semua fitur dari MySQL Server dapat digunakan. Salah satu fitur protokol MySQL yang tidak diimplementasikan adalah protokol untuk menangani Prepared Statement. Pembatasan implementasi ini dilakukan karena protokol MySQL yang utuh memiliki tingkat kompleksitas yang tinggi sehingga tidak cocok untuk diimplementasikan pada mobile device yang mempunyai banyak keterbatasan. III-1

III-2 III.2 Pengumpulan Kebutuhan MyME Untuk dapat mendefinisikan kebutuhan MyME, dilakukan eksplorasi pada package JDBC pada Java SE dan driver JDBC MySQL. Selanjutnya hasil dari eksplorasi disesuaikan dengan kemampuan mobile device dan platform Java ME yang memiliki banyak keterbatasan. Berikut adalah kebutuhan fungsional dari MyME: 1. Mampu melakukan proses otentikasi dengan MySQL Server versi 4.1.1 atau yang lebih baru. 2. Mampu mengirim perintah (Command Packet) kepada MySQL Server. 3. Mampu menerima hasil query (Result Set Packet) yang dikirimkan oleh MySQL Server. 4. Mampu mengakomodasi tipe data MySQL yang terdiri dari: Numeric Types, yang meliputi: a. BIT b. BOOLEAN c. TINYINT d. SMALLINT e. INT f. MEDIUMINT g. BIGINT h. FLOAT i. DOUBLE j. DECIMAL Date and Time Types, yang meliputi: a. DATE b. DATETIME c. TIMESTAMP d. TIME e. YEAR String Types, yang meliputi: a. CHAR b. VARCHAR c. TINYTEXT d. MEDIUMTEXT e. LONGTEXT f. TEXT g. ENUM h. SET 5. Mampu menerima paket Error.

III-3 Selain kebutuhan fungsional di atas, terdapat juga kebutuhan nonfungsional sebagai berikut: 1. Memiliki cara penggunaan yang mirip dengan cara penggunaan dari JDBC sehingga mudah untuk dipelajari dan digunakan. 2. Memiliki ukuran file yang sekecil mungkin. 3. Menggunakan memori seefektif dan seefisien mungkin. 4. Mudah untuk dikembangkan lebih lanjut. III.3 Diagram Use Case Gambar III-2 - Use Case Diagram MyME Gambar III-2 adalah diagram use case dari MyME. Diagram use case ini menggambarkan tingkah laku dari MyME dan hubungannya dengan pengguna. Use case yang didefinisikan adalah: 1. Melakukan otentikasi MySQL API membuka koneksi socket ke MySQL Server yang dispesifikasikan dan melakukan sesi Handshake dengan MySQL Server. Pengguna API akan mendapatkan suatu objek yang merepresentasikan koneksi yang terbentuk jika proses otentikasi berhasil atau sebuah exception jika proses otentikasi gagal. 2. Mengirim perintah MySQL dan menerima responnya Dengan objek koneksi yang didapatkan, pengguna API dapat mengirimkan perintah berupa Command Packet kepada MySQL Server. Jika terjadi error dalam pemrosesan perintah, pengguna akan menerima exception. Perintah yang dapat dikirimkan dapat dilihat pada Tabel A-3 Lampiran A.

III-4 3. Mengirim statement SQL dan menerima hasilnya Dengan objek koneksi yang didapatkan, pengguna API dapat mengirimkan statement SQL kepada MySQL Server. Jika hasilnya berupa result set, pengguna akan menerima objek result set tersebut. Dan jika terjadi error pengguna akan menerima exception. III.4 Diagram Sekuens Pada bagian ini akan dilakukan perancangan diagram sekuens berdasarkan use case yang telah didefinisikan. III.4.1 Melakukan Otentikasi MySQL Proses ini akan melibatkan tiga bagian, yaitu MyME yang merepresentasikan kelas DriverManager pada JDBC, MySQLConnection yang merepresentasikan kelas Connection pada JDBC, dan MySQLIO yang bertanggung jawab dalam penerimaan dan pengiriman paket dari dan ke MySQL Server melalui koneksi socket. Gambar III-3 - Diagram sekuens proses otentikasi MySQL Pertama-tama aplikasi harus melakukan instansiasi MyME terlebih dahulu. Langkah selanjutnya adalah mendapatkan MySQLConnection dengan memanggil fungsi connect() pada objek MyME dengan parameter string URL. Dalam string URL ini, aplikasi dapat menspesifikasikan alamat host MySQL Server beserta nomor port-nya, username, password, dan properti-properti lainnya yang diinginkan. Kemudian MySQLConnection akan melakukan proses otentikasi menggunakan MySQLIO untuk mengirimkan paket Handshake. Bila terjadi exception dalam proses otentikasi, aplikasi akan

III-5 menerima MySQLException. Berikut ini adalah diagram sekuens yang memperlihatkan proses otentikasi ke MySQL Server. III.4.2 Mengirim Perintah MySQL dan Menerima Responnya Berikut ini adalah diagram sekuens yang menggambarkan proses pengiriman perintah MySQL kepada MySQL Server. Gambar III-4 - Diagram sekuens mengirim perintah MySQL dan menerima responnya Proses ini melibatkan MySQLConnection dan MySQLIO. Setelah aplikasi melakukan proses otentikasi, aplikasi dapat mengirimkan perintah MySQL kepada MySQL Server. Aplikasi dapat mengirimkan perintah MySQL dengan memanggil fungsi-fungsi yang ada pada MySQLConnection. Selanjutnya MySQLConnection akan menggunakan MySQLIO untuk mengirimkan paket Command kepada MySQLServer. Respon dari pengiriman perintah tersebut akan diteruskan kepada aplikasi yang memanggilnya. Bila terjadi exception dalam proses pengiriman perintah MySQL, aplikasi akan menerima MySQLException. III.4.3 Mengirim Statement SQL dan Menerima Hasilnya Selain MySQLConnection dan MySQLIO, proses ini juga melibatkan Statement yang merepresentasikan kelas Statement pada JDBC, dan ResultSet yang merepresentasikan kelas ResultSet pada JDBC. Setelah aplikasi melakukan proses otentikasi, aplikasi dapat mengirimkan statement SQL kepada MySQL Server. Berikut ini adalah diagram sekuens yang menggambarkan proses pengiriman statement SQL kepada MySQL Server.

III-6 Gambar III-5 - Diagram sekuens proses mengirim statement SQL dan menerima hasilnya Untuk dapat mengirimkan statement SQL, aplikasi harus mendapatkan Statement dengan memanggil fungsi createstatement() pada MySQLConnection. Selanjutnya aplikasi dapat mengirimkan statement SQL dengan menggunakan fungsi execute atau executequery pada Statement. Kemudian objek MySQLIO akan mengirimkan paket statement SQL tersebut kepada MySQLServer. Respon dari pengiriman statement SQL tersebut akan diteruskan kepada aplikasi yang memanggilnya. Bila respon berupa result set, aplikasi akan menerima ResultSet sebagai representasi result set tersebut. Dan bila terjadi exception dalam proses pengiriman statement SQL, aplikasi akan menerima MySQLException. III.5 Arsitektur dan Package MyME Dari analisis yang telah dilakukan, selanjutnya dapat dipetakan kapabilitas-kapabilitas MyME ke package yang bersesuaian. MyME terdiri dari 2 subsistem. Subsistem pertama merupakan pembungkus fungsi-fungsi yang berhubungan dengan protokol MySQL dan komunikasi dengan MySQL Server. Subsistem ini terdiri dari package MySQLIO dan Types. Package-package ini tidak diakses secara langsung oleh aplikasi pengguna API MyME. Sedangkan subsistem kedua merupakan pembungkus fungsi-fungsi yang akan dipakai secara langsung oleh aplikasi pengguna API MyME. Subsistem ini terdiri dari package MySQLConnection, Statement, ResultSet, dan Exceptions.

III-7 Tabel III-1 memuat package-package yang akan dikembangkan sebagai bagian dari API MyME. Package-package tersebut dapat berupa sebuah kelas ataupun lebih dari satu buah kelas. Tabel III-1 Package-package pada MyME No. Nama Package Keterangan 1 MySQLIO Package yang bertanggung jawab mengirim dan menerima data berupa sekumpulan byte melalui layanan TCP/IP dan bertugas juga memantau kegagalan yang terjadi pada proses transfer data menjadi suatu kelas exception. 2 Types Package yang bertanggung jawab untuk menerjemahkan tipe data MySQL menjadi tipe data Java ME dan juga sebaliknya. 3 MySQLConnection Package yang merepresentasikan sebuah koneksi ke suatu MySQL Server. Modul ini mempunyai fungsi untuk melakukan proses otentikasi dan mengirimkan perintah kepada MySQL Server. 4 Statement Package yang berfungsi untuk mengeksekusi statement SQL dan kemudian mengembalikan hasilnya. Hasil dari ekseskusi statement SQL dapat berupa laporan keberhasilan pengeksekusian, result set hasil query, ataupun laporan SQL Error jika terjadi suatu kesalahan. 5 ResultSet Package yang merepresentasikan sebuah result set basisdata yang biasanya adalah hasil dari pengeksekusian query ke basisdata. Result set memiliki bentuk sebuah tabel yang terdiri dari kolom dan baris. 6 Exceptions Bertugas membungkus semua kegagalan pada proses pemakaian API MyME. Kegagalan yang didukung antara lain: gagal mengirim/menerima data, gagal mengeksekusi statement atau query, gagal mengalokasikan memori, gagal melakukan proses otentikasi, dan lain-lain. Gambar III-6 - Arsitektur MyME

III-8 III.6 Diagram Kelas Analisis Pada Subbab ini akan dilakukan perancangan diagram kelas analisis dari kebutuhan-kebutuhan yang telah dibahas sebelumnya. Gambar III-7 - Diagram kelas analisis MyME

III-9 Untuk dapat menggunakan API MyME, pengguna harus membuat sebuah instan dari kelas MyME dan kemudian memanggil fungsi connect() untuk mendapatkan sebuah objek dari kelas MySQLConnection. Kelas MySQLConnection adalah representasi dari sebuah koneksi ke suatu MySQL Server. MySQLConnection menggunakan kelas MySQLIO untuk melakukan komunikasi dengan MySQL Server melalui socket. Untuk dapat mengirimkan statement SQL, pengguna harus memanggil fungsi createstatement pada kelas MySQLConnection untuk mendapatkan objek Statement. Kemudian pengguna dapat memanggil fungsi execute() atau executequery() untuk mengirimkan statement SQL kepada MySQL Server. Jika hasil dari eksekusi tersebut berupa result set, fungsi akan mengembalikan objek ResultSet sebagai representasi dari result set tersebut. Kelas Types digunakan untuk menerjemahkan tipe data MySQL menjadi tipe data Java ME. Jika terjadi suatu exception, API akan menggunakan kelas SQLError untuk membungkus exception tersebut dan melemparkannya sebagai objek SQLException. III.7 Kelas Perancangan MyME Terdapat sedikit perbedaan antara kelas-kelas analisis dengan kelas-kelas perancangan. Perbedaan tersebut adalah ditambahkannya beberapa kelas lain untuk mendukung implementasi API ini. Pemetaan kelas analisis ke kelas perancangan dapat dilihat pada Tabel III-2. Tabel III-2 - Pemetaan kelas analisis ke kelas perancangan No. Kelas Analisis Kelas Perancangan 1 MySQLConnection MySQLConnection 2 MySQLIO DatabaseMetaData MySQLIO Buffer 3 MyME MyME 4 ResultSet ResultSet Field ResultSetMetaData 5 SQLError SQLError 6 SQLException SQLExceptions 7 Statement Statement 8 Types Types BigDecimal BigInteger Date Time 9 Utils Timestamp Util SQLDefs

III-10 MyME dibagi menjadi 2 subsistem yang terdiri dari subsistem Internal dan subsistem Eksternal. Subsistem Internal terdiri dari kelas-kelas yang tidak digunakan secara langsung oleh aplikasi pengguna MyME. Sedangkan Subsistem Eksternal terdiri dari kelas-kelas yang dapat digunakan secara langsung oleh aplikasi pengguna MyME. Komponen-komponen utama dari subsistem Internal adalah MySQLIO dan Types. Sedangkan komponen-komponen utama dari subsistem Eksternal adalah Statement, ResultSet, dan MySQLConnection. Masing-masing komponen tersebut diimplementasikan menjadi sebuah kelas. Terdapat juga beberapa kelas tambahan yang diimplementasikan untuk mendukung implementasi kelas-kelas yang telah dirancang sebelumnya. Daftar kelas pada subsistem Internal dapat dilihat pada Tabel III-3 dan daftar kelas subsistem Eksternal dapat dilihat pada Tabel III-4. Tabel III-3 Daftar kelas dari MyME subsistem Internal No. Nama Kelas Keterangan 1 Buffer Kelas ini merepresentasikan paket data dalam protokol MySQL. 2 Field Kelas ini merepresentasikan kolom table dari MySQL 3 MySQLIO Kelas yang bertanggung jawab mengirim dan menerima data yang dibungkus dalam objek kelas Buffer. Kelas ini juga melakukan proses otentikasi ke MySQL Server. 4 SQLDefs Kelas ini memetakan konstanta yang ada pada MySQL 5 SQLError Kelas ini memetakan jenis kesalahan pada MySQL 6 Types Kelas yang memetakan tipe data MySQL 7 Util Kelas ini menyediakan fungsi-fungsi tertentu yang digunakan untuk membantu kelas-kelas lainnya. Tabel III-4 Daftar kelas dari MyME subsistem Eksternal No. Nama Kelas Keterangan 1 BigDecimal Kelas ini merepresentasikan tipe data big decimal. 2 BigInteger Kelas ini merepresentasikan tipe data big integer. 3 DatabaseMetaData Kelas ini menyediakan informasi mengenai database yang sedang diakses. 4 Date Kelas ini merepresentasikan tipe data date yang terdiri dari tanggal, bulan, dan tahun dengan format yyyy-mm-dd. 5 MyME Kelas ini menyediakan fungsi untuk membuka koneksi ke MySQL Server dan mengembalikan objek kelas MySQLConnection. 6 MySQLConnection Kelas yang merepresentasikan sebuah koneksi ke suatu MySQL Server. Kelas ini digunakan untuk menghasilkan objek kelas Statement, mendapatkan objek kelas DatabaseMetaData, dan menutup koneksi. 7 ResultSet Kelas yang merepresentasikan sebuah result set yang biasanya adalah hasil dari pengeksekusian query ke basisdata. Pengguna kelas ini dapat mengambil nilai dari tiap kolom tabel atau mendapatkan objek kelas ResultSetMetaData. 8 ResultSetMetaData Kelas ini menyediakan berbagai informasi mengenai result set yang diterima. 9 SQLExceptions Kelas ini bertugas membungkus semua kegagalan pada proses pemakaian API MyME. 10 Statement Kelas ini berfungsi untuk mengeksekusi statement SQL dan mengembalikan hasilnya. Hasil tersebut dapat berupa laporan keberhasilan pengeksekusian, objek kelas ResultSet, ataupun SQLException jika terjadi suatu kesalahan. 11 Time Kelas ini merepresentasikan tipe data time yang terdiri dari jam, menit, dan detik dengan format hh:mm:ss. 12 Timestamp Kelas ini merepresentasikan tipe data timestamp yang terdiri dari tanggal, bulan, tahun, jam, menit, detik, dan nanodetik dengan format yyyy-mm-dd hh:mm:ss.fffffffff.

III-11 III.8 Implementasi MyME Setelah melakukan berbagai analisis terhadap MyME yang kemudian diikuti proses perancangan MyME, maka pada Subbab ini akan dijelaskan proses implementasi dari MyME. III.8.1 Lingkungan Implementasi Lingkungan implementasi MyME 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. III.8.2 Batasan Implementasi Batasan implementasi MyME adalah sebagai berikut: 1. Tidak semua tipe data MySQL diimplementasikan. Tipe data yang diimplementasikan dapat dilihat pada Subbab III.2. 2. Menggunakan kerangka API yang mirip dengan JDBC tetapi tidak semua fungsi dan kelas JDBC diimplementasikan. 3. Tidak semua ponsel mendukung pemakaian API ini dan pada Tugas Akhir ini tidak dibahas mengenai incompatibility perangkat keras. Perangkat keras yang mendukung API ini adalah perangkat keras yang mendukung Java dengan spesifikasi profil MIDP 2.0 dan konfigurasi CLDC 1.1. 4. Tidak mendukung transaksi MySQL. 5. Tidak mendukung koneksi yang terkompresi. 6. Tidak mendukung koneksi SSL. 7. MySQL Server yang didukung adalah MySQL versi 4.1.1 ke atas.

III-12 III.8.3 Penggunaan MyME Untuk melakukan komunikasi dengan MySQL Server, MyME menggunakan socket TCP/IP. Spesifikasi koneksi diberikan oleh pengguna MyME dalam bentuk String dengan format myme:mysql://host[:port]/[database]?[property]=[value]. Setelah koneksi terbangun dan proses otentikasi berhasil dilakukan, pengguna MyME dapat mengeksekusi query dengan cara memanggil fungsi createstatement() pada objek MySQLConnection untuk mendapatkan objek Statement. Dengan objek Statement tersebut, pengguna dapat memanggil fungsi execute() dengan parameter String query yang diinginkan. Jika hasil eksekusi query tersebut adalah sebuah result set, maka pengguna MyME dapat memanggil fungsi getresultset() pada objek Statement untuk mendapatkan objek ResultSet. Dengan objek ResultSet tersebut maka nilai dari setiap kolom pada tabel result set dapat diambil. Cara penggunaan dari MyME ini mirip dengan cara penggunaan JDBC. Contoh source code dari penggunaan MyME dapat dilihat pada Kode III-1. import org.myme.*;... MyME myme = new MyME(); try { MySQLConnection conn = myme.connect( myme:mysql://if.itb.ac.id:3306/user=root&pass=123 ); Statement stmt = conn.createstatement(); if (stmt.execute( SELECT * FROM tab )) { ResultSet rs = stmt.getresultset(); while (rs.next()) { System.out.println(rs.getString(1)); } } conn.close(); } catch (SQLException e) { } Kode III-1 - Contoh penggunaan MyME