LUQMAN - 5106100124
Pembimbing I : Wahyu Suadi, S.Kom, M.Kom, MM Pembimbing II : Henning Titi Ciptaningtyas, S.Kom
Rumusan Masalah Bagaimana memanfaatkan kecepatan dan kemudahan
database SQLite secara remote Bagaimana membuat arsitektur jaringan komputer yang mengkoneksikan antara server dengan klien Bagaimana cara melakukan pertukaran data antara klien dengan server dan server dengan database Fitur apa saja yang akan dibuat dalam aplikasi ini
Tujuan membangun
suatu aplikasi klien-server yang mengizinkan database SQLite menangani permintaan SQL dari user melewati jaringan komputer menggunakan Interface Library Python DatabaseAPI v2.0 yang dikemas dalam modul PySQLite sebagai alat komunikasi utama ke database SQLite. Aplikasi dibangun sebagai alternatif untuk mengakses database SQLite melalui jaringan. Aplikasi diharapkan mempermudah pengguna, melalui jaringan, dalam memanfaatkan kehandalan dan kecepatan database SQLite.
Teknologi SQLite Database merupakan sebuah Relational Database Manajement System (RDBMS) yang memiliki pustaka kode relatif kecil, ditulis dalam bahasa C Severless : akses database read dan write secara langsung ke file database tanpa proses server Zero-Configuration : tidak membutuhkan instalasi sebelum penggunaan.
RDBMS dengan klien/server arsitektur
SQLite serverless arsitektur
Python Database API 2.0 Adalah suatu ketetapan yang didefinisikan untuk pengembangan interface modul python, dimana fungsi modul ini untuk pengaksesan database
PySQLite Merupakan paket modul pengaksesan database SQLite yang dibuat memenuhi ketetapan DB-API 2.0 Modul Inteface
Objek Connection : membuka koneksi ke file database Objek Cursor : mengatur operasi pengambilan dari file database
XMLRPC Merupakan implementasi komputasi terdistribusi, yang menjelaskan mengenai pemanggilan prosedur jarak jauh dengan menggunakan XML dan HTTP sebagai protokolnya.
Perancangan Sistem Pada pembuatan tugas akhir ini penulis akan
membuat sistem yang diberi nama NetSQLite yang merupakan implementasi klien-server SQLite database dengan bantuan modul PySQLite alias sqlite3 sebagai pustaka perangkat lunak.
Arsitektur Sistem
Diagram Use Case Manajemen Akun *
Eksekusi perintah SQL
* *
*
* *
Monitoring User
*
*
*
Listening Server
User Authorized
Admin
*
Server
Listening Server
Client
Server
Usecase Manajemen Akun Menambah Pengguna Mengedit Pengguna Menghapus Pengguna Memberikan dan menghapus Hak Akses
Usecase Monitoring user Menampilkan database Menampilkan user Menampilkan tabel user Menampilkan Index Menampilkan Trigger Menampilkan Versi
Usecase Listening Server Listening Server
KLIEN - SERVER
Usecase Eksekusi perintah SQL
Membaca data Blob Menyimpan data Blob Koneksi Database Memutus koneksi database Mendapatkan record Mendapatkan id INSERT terakhir Eksekusi Query Eksekusi skrip Query Mengakhiri Transaksi dengan COMMIT Mengakhiri Transaksi dengan ROLLBACK
Skema Sistem Bagian ini memperlihatkan skema direktori
dilihat dari cara paket modul dibentuk, diharapkan skema ini memperjelas alur import dari sistem
Skema modul Client Subpaket Server
Paket NetSQLite
Modul Client
Subpaket Client
Modul-modul Pelengkap
Skema Modul Server Direktori Account Direktori DB Kumpulan Berkas database User Subpaket Server
Account
StartListening
Modul-modul Pelengkap
Berkas database Admn DB_Master.db
Lingkungan Sistem Lingkungan, piranti keras maupun piranti lunak, pada saat aplikasi dibangun adalah sebagai berikut: Perangkat Keras Komputer Notebook Menggunakan spesifikasi komputer notebook dengan prosesor Intel core 2 duo T7100, RAM 1 GB. Sistem operasi menggunakan Windows 7 Ultimate Edition. Perangkat Lunak
Spesifikasi piranti lunak yang diperlukan antara lain: Python 2.7.1 SQLite database v3.7.4
(SQLite database v3.6.21 telah terkemas pada instalasi python 2.7.1) Notepad++ (Editor text seperti Notepad maupun Wordpad pun memungkinkan)
Uji Coba Uji coba dilakukan dengan membandingkan kecepatan
eksekusi melalui jaringan (localhost) dan dengan tanpa melalui kabel (secara langsung ke database SQLite). Perintah yang di eksekusi adalah perintah INSERT INTO. Banyak dari perintah ini masing – masing adalah 10, 50, 100, 500, 1000, 5000, dan 10000 perintah. Pengujian menggunakan fungsi execute dimana satu kali eksekusi (transkaksi) –satu kali perintah (Query) dan menggunakan fungsi executescript dimana satu kali eksekusi –banyak perintah. Berikut ini merupakan data hasil percobaan dalam satuan detik:
Hasil Uji Coba eksekusi perintah SQLfungsi execute N
NetSQLite
non NetSQLite
10 50
10,479 52,366
0,545 3,182
100 500 1000 5000 10000
105,023 524,254 1047,533 5239,5 10.479
6,666 31,899 63,615 311,03 623,172
selisih
9,934 49,184 98,357 492,355 983,918 4.928,47 9.855,83
12000 10000 8000 6000
NetSQLite nonNetSQLite
4000 2000 0 10
50
100
500 1000 5000 10000
Hasil Uji Coba eksekusi perintah SQLfungsi executescript N
NetSQLite
Non NetSQLite
10
1,456
0,445
1,011
50
3,957
2,886
1,071
100
6,875
6,26
0,615
500
32,264
31,686
0,578
1000
67,058
62,49
4,568
5000
329,228
318,247
10,981
10000
683,193
647,647
35,546
Selisih
800 700 600 500 400
NetSQLite nonNetSQLite
300 200 100 0 10
50
100
500
1000 5000 10000
Kesimpulan Dari implemantasi dan uji coba yang telah dilakukan maka penulis membuat kesimpulan antara lain: xmlrpc merupakan salah satu webservis yang digunakan untuk membangun Network Server yang berfungsi sebagai penghubung (middleware) antara server dengan klien. Ada keuntungan dan kerugian membangun sistem database, dalam aplikasi ini database SQLite, secara remote. Keuntungannya adalah transaksi ke database bisa dilakukan secara jauh sehingga mempermudah pengguna. Kekurangannya adalah lamanya waktu yang dilakukan untuk proses transaksi. Kekurangan ini bisa diminimalisir dengan memilih fungsi execute dan fungsi executescript
Uji coba menunjukan bahwa tugas akhir yang dibangun
telah mengaplikasikan fitur-fitur yang telah diuraikan pada bab 3
Uji coba menunjukkan bahwa fungsi execute cocok
untuk .perintah yang tidak banyak membutuhkan proses request dan respond klien-server. Sedangkan fungsi executescript cocok untuk perintah yang membutuhkan transaksi sekala besar, contohnya penulisan data pada database.