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 SQLitesecara 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 SQLitemelalui 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 Admin User Authorized * Listening Server 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 DB Direktori Account Berkas database Admn DB_Master.db Kumpulan Berkas database User Subpaket Server Account StartListening Modul-modul Pelengkap
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 selisih 10 10,479 0,545 9,934 50 52,366 3,182 49,184 100 105,023 6,666 98,357 500 524,254 31,899 492,355 1000 1047,533 63,615 983,918 5000 5239,5 311,03 4.928,47 10000 10.479 623,172 9.855,83
12000 10000 8000 6000 4000 NetSQLite nonnetsqlite 2000 0 10 50 100 500 1000 5000 10000
Hasil Uji Coba eksekusi perintah SQLfungsi executescript N NetSQLite Non NetSQLite Selisih 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
800 700 600 500 400 300 NetSQLite nonnetsqlite 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 serverdengan 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.