Penerapan Metode Soda (Simple Object Database Access) Pada Aplikasi Berbasis Web Dengan Multiple DBMS (Studi Kasus Database Web Faabula PT Telkom)

(1)

DENGAN MULTIPLE DBMS

(STUDI KASUS DATABASE WEB FAABULA PT TELKOM)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

ARIFANI HELGA

10108974

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG


(2)

i

PENERAPAN METODE SODA (SIMPLE OBJECT DATABASE ACCESS)

PADA APLIKASI BERBASIS WEB DENGAN MULTIPLE DBMS

(STUDI KASUS DATABASE WEB FAABULA PT TELKOM)

Oleh Arifani Helga

10108974

Setiap perusahaan yang menggunakan database yang berbeda-beda memiliki kebutuhan yang sama dalam pengambilan informasi dari data yang ada di database yang berbeda-beda. Salah satu permasalahan yang muncul adalah proses penggabungan data dari banyak sistem yang masing-masing menggunakan Database Management System (DBMS) yang berbeda-beda. Simple Object Database Access (SODA) adalah metode yang dapat diterapkan pada suatu objek yang digunakan untuk berkomunikasi dengan satu atau lebih DBMS.

Berdasarkan permasalahan tersebut di atas, maka diperlukan suatu perangkat lunak berbasis web yang menggunakan metode SODA untuk mengatasi permasalahan dalam melakukan penggabungan data dari database dengan DBMS yang berbeda. Aplikasi berbasis web yang dibangun menggunakan bahasa pemrograman PHP. Dengan satu perintah SQL query aplikasi dapat melakukan penggabungan data antar DBMS yang berbeda dengan menjalankan fungsi operation set (union,minus,intersect).

Berdasarkan hasil penelitian, dapat disimpulkan bahwa perangkat lunak yang dibangun yang dapat membantu pengguna dalam melakukan penggabungan data antar database dengan DBMS yang berbeda dan memudahkan developer atau programmer dalam mengembangkan aplikasi web dengan single or multiple DBMS.


(3)

ii

SODA (SIMPLE OBJECT DATABASE ACCESS) METHOD IMPLEMENTATION

ON WEB BASED APPLICATION USING MULTIPLE DBMS (CASE STUDIES ON PT TELKOM’S WEB FAABULA DATABASE)

By Arifani Helga

10108974

Every company that uses a different database have the similar needs in the retrieval of information from data contained in different databases. One issue that comes up is the process of merging data from many systems, each system using different Database Management System (DBMS). Simple Object Database Access (SODA) is a method that can be applied to an object that is used to communicate with one or more DBMS.

Based on the above issues, we need a web-based software that uses the SODA method to solve problems in merging data from the database with the different DBMS. Web-based applications are built using the PHP programming language. By using a single SQL query command, the application can merge data between different DBMS to perform the set operation functions (union, minus, intersect).

Based on the research, it can be concluded that the software can help the user to merging data between databases with different DBMS and facilitate developers or programmers to develop web applications with single or multiple DBMS.


(4)

iv

Puji dan syukur senantiasa penulis panjatkan kepada Allah SWT yang telah melimpahkan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi dengan judul “Penerapan Metode SODA (Simple Object Database Access) pada Aplikasi Berbasis Web dengan Multiple DBMS (studi kasus database web Faabula PT Telkom)” ini. Skripsi ini dibuat sebagai salah satu persyaratan untuk memperoleh gelar Sarjana Program Strata Satu (S1) pada jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. Dengan segenap motivasi, kesabaran, kerja keras, dukungan, dan doa, penulis berhasil menjalani tahap demi tahap dalam kehidupan akademik penulis di jurusan Teknik Informatika Universitas Komputer Indonesia.

Di dalam penyusunan skripsi ini tidak lepas dari berbagai kesulitan dan rintangan yang dialami oleh penulis, namun berbagai pihak telah banyak membantu penulis dalam penyelesaian skripsi ini. Pada kesempatan ini, dengan segala kerendahan hati penulis mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu penulis, terutama kepada:

1. Ibu Mira Kania Sabariah, S.T., M.T. ketua jurusan Teknik Informatika Universitas Komputer Indonesia, yang telah berkenan membimbing saya dalam penulisan skripsi ini. Terimakasih atas segala arahan, kritik, saran, petunjuk, dan bimbingan selama ini. 2. Bapak Andri Heryandi, S.T., M.T. selaku dosen wali sekaligus


(5)

v

3. Segenap tim sekretariat jurusan Teknik Informatika Universitas Komputer Indonesia. Terimakasih kepada mas Hendar, mbak Shanti, dan mbak Hani atas kesabaran, pelayanan dan bantuannya selama ini kepada kami para Mahasiswa khususnya kepada penulis.

4. Segenap dosen jurusan Teknik Informatika Universitas Komputer Indonesia. Terimakasih banyak atas segala ilmu dan pengalaman yang telah diberikan kepada kami sebagai modal dalam menjalani kehidupan ini.

5. Ibu Endang Kristyawati ibu yang sangat saya sayangi, yang telah membesarkan dan mendidik saya. Saya mutlak berterima kasih dan sekaligus meminta maaf kepada beliau karena hanya dengan dukungan beliau, saya dapat melanjutkan pendidikan saya hingga perguruan tinggi. Kepada adik-adik saya: Gilang Bayu Sukma dan Sike Ferensia terimakasih atas dukungannya.

6. Shinta Taufani Novitasari, S.Sos istri yang sangat saya sayangi, yang tak kenal lelah dan setia mendukung, mendoakan dan menyayangi saya. Juga kepada bapak Drs. H. Maman Rohmana dan ibu Hj. Euis Aisyah, S.Pd., M.M.Pd, teh Ega, bebe, a Dodi, dan iyank atas doa dan dukungannya selama ini.

7. Teman-teman di kantor, mbak ui, mas Dharma, Shandy, Faris, Anis, Arif, Randi, bapak Armansyah, dan rekan-rekan di FBCC terimakasih atas dukungannya selama ini.


(6)

vi

yang lain yang tidak dapat dituliskan satu persatu disini. Terimakasih atas kebersamaan yang tak terlupakan selama ini.

Dan kepada semua pihak lainnya yang tidak dapat disebutkan satu persatu yang telah memberikan dukungan dan bantuan dalam hal moril maupun materi sehingga penulis dapat menyelesaikan skripsi ini.

Semoga apa yang ada di dalam skripsi ini dapat bermanfaat bagi semua pihak yang telah membaca skripsi ini.

Bandung, Agustus 2011


(7)

1 1.1 Latar belakang masalah

Setiap perusahaan ataupun institusi yang menggunakan database yang berbeda-beda secara bersamaan, akan dihadapkan pada permasalahan yang beragam. Secara umum, setiap perusahaan memiliki kebutuhan yang sama dalam pengambilan informasi dari data yang ada di dalam database yang berbeda-beda. Salah satu permasalahan yang muncul adalah masalah penggabungan data dari banyak sistem yang masing-masing menggunakan Database Management System (DBMS) yang berbeda-beda. Untuk mendapatkan data dari database dari aplikasi yang berbasis web, cara akses ke database harus didefinisikan dalam web tersebut. Cara akses ke database berbeda-beda jika menggunakan DBMS yang berbeda. Sehingga dalam satu aplikasi web harus menggunakan lebih dari satu cara akses ke dalam database. Data dari database yang akan digabungkan harus memiliki arti atau maksud yang sama, akan tetapi tidak semua data mempunyai format data yang sama. Kendala inilah yang menimbulkan permasalahan dalam mengolah data yang akan digabungkan ke dalam format data yang sama.

Berdasarkan observasi, salah satu perusahaan yang mempunyai permasalahan tersebut adalah PT Telekomunikasi Indonesia, Tbk (Telkom). Telkom memiliki arsitektur database yang tersebar di masing-masing regional. Banyak aplikasi yang digunakan untuk mendukung operasional dalam mengelola data pelanggan Telkom. Telkom menggunakan banyak database dengan DBMS yang berbeda-beda (Heterogenous Database). Untuk menentukan langkah


(8)

strategis dalam pengelolaan pelanggan, manajemen Telkom memerlukan data yang lengkap dan dapat diakses dari aplikasi web di lingkungan kerja Telkom. Pada dasarnya hal inilah yang menimbulkan permasalahan di Telkom, yaitu dalam mengkaji dan memanfaatkan banyaknya data dalam sistem tersebut dengan melakukan penggabungan data ke dalam sebuah format data yang sama. Karena dibutuhkan komunikasi di tingkat database melalui aplikasi berbasis web untuk dapat melakukan penggabungan data.

Simple Object Database Access (SODA) adalah metode yang dapat diterapkan pada suatu objek yang digunakan untuk berkomunikasi dengan satu atau lebih DBMS. SODA menyimpan semua cara koneksi dan akses ke dalam database yang berbeda dalam suatu library tertentu dan membuat satu cara koneksi dan akses ke dalam semua database. Meskipun cara koneksi ke masing-masing DBMS berbeda-beda, terdapat kesamaan dalam hal pengambilan data yaitu dengan menggunakan query yang biasa kita kenal dengan menggunakan SQL (Structured Query Language) query. Hal inilah yang menjadi dasar metode SODA dalam melakukan penggabungan data dari bermacam-macam database.

Berdasarkan permasalahan tersebut di atas, maka diperlukan suatu perangkat lunak berbasis web yang menggunakan metode SODA untuk mengatasi permasalahan dalam melakukan penggabungan data dari database dengan DBMS yang berbeda. Dengan adanya sistem menggunakan metode SODA ini, mempermudah pengguna dalam melihat data atau informasi yang berasal dari database yang bermacam-macam.


(9)

1.2 Rumusan masalah

Dari latar belakang masalah yang dijelaskan sebelumnya maka dapat dirumuskan permasalahan yaitu bagaimana menerapkan SODA (Simple Object Database Access) pada aplikasi berbasis web dengan multiple DBMS dengan tujuan untuk mengatasi permasalahan dalam melakukan penggabungan data dalam lingkungan heterogenous database.

1.3 Maksud dan Tujuan

Maksud dari penelitian ini adalah bagaimana mengatasi permasalahan Heterogenous Database yang terjadi.

Sedangkan tujuan dari penelitian ini adalah sebagai berikut :

1. Memudahkan pengguna dalam melakukan koneksi dan akses data dari

aplikasi berbasis web ke dalam database dengan DBMS yang berbeda. 2. Membantu pengguna dalam melakukan penggabungan data antar

database dengan DBMS yang berbeda.

3. Memudahkan developer atau programmer dalam mengembangkan aplikasi berbasis web yang menggunakan single atau multiple DBMS.


(10)

1.4 Batasan Masalah atau Ruang Lingkup Kajian

Untuk dapat mencapai tujuan penelitian ini, ruang lingkup dan batasan masalah yang ada dalam penelitian ini adalah sebagai berikut :

1. Pengujian dilakukan dengan menggunakan dua buah DBMS, yaitu : Oracle dan MySQL.

2. Pemrograman pada kelas Simple Object Database Access menggunakan bahasa pemrograman PHP.

3. Dalam penelitian ini, masing-masing data yang akan digabungkan berasal dari table, view dan SQL query.

4. Dalam proses penggabungan data, syarat dan prosedur yang akan dijalankan adalah sebagai berikut :

a. Data yang akan digabungkan berasal dari table, view, dan SQL query. Sistem mengenali ketiganya dengan SQL query. Sistem belum dapat menerima SQL query yang terdapat query join antara table dengan view.

b. Untuk dapat melakukan proses penggabungan data, jumlah field dan urutan field-nya harus sama antara query satu dengan yang lainnya, tiap field yang didefinisikan harus memiliki tipe data yang sama atau sejenis di setiap field.

c. Format SQL query mengikuti aturan produksi yang akan dijelaskan pada Bab III.

d. Penulisan set operator yang diterima adalah union, unionall, intersect, dan minus.


(11)

1.5 Metodologi Penelitian

Metodologi penelitian yang digunakan dalam penulisan skripsi ini adalah :

1. Pengumpulan data

a. Observasi

Merupakan teknik pengumpulan data dengan mengadakan pengamatan atau penelitian secara langsung dari objek penelitian, seperti perangkat keras yang ada, pengguna aplikasi, dan sebagainya.

b. Studi Kepustakaan

Merupakan kegiatan pengumpulan data dengan mempelajari buku-buku, karya ilmiah, koleksi perpustakaan, dan browsing via internet yang berkaitan erat dengan materi bahasan dalam penulisan laporan ini.

c. Wawancara

Merupakan teknik pengumpulan data dengan melakukan wawancara secara langsung dengan karyawan atau teknisi yang ada di lingkungan tersebut untuk memperoleh data dan informasi.


(12)

2. Pembangunan perangkat lunak

Tahapan yang akan dilakukan dalam pembangunan perangkat lunak, akan menggunakan metode waterfall yang terdiri dari System Requirement, Analysis, Design, Coding, Testing dan Maintenance. Seperti dalam gambar berikut ini :

Gambar 1.1 Diagram Waterfall

1.6 Sistematika Penulisan

Sistematika penulisan dalam penyusunan skripsi ini adalah sebagai berikut :

BAB I PENDAHULUAN

Bab ini berisi tentang latar belakang masalah, identifikasi masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.

BAB II TINJAUAN PUSTAKA

Bab ini menjelaskan mengenai teori apa saja yang digunakan dalam pembangunan program aplikasi.


(13)

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi analisis dan perancangan yang dilakukan dalam membangun perangkat lunak dengan menggunakan metode Object Oriented Unified Process dengan notasi Unified Modelling Language (UML).

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini menjelaskan tentang implementasi hasil dari analisis dan perancangan sistem ke dalam bentuk bahasa pemrograman. Serta kebutuhan perangkat keras dan perangkat lunak yang diperlukan dalam membangun sistem. Bab ini juga berisi tentang pengujian pada sistem yang sudah lengkap dan telah memenuhi semua persyaratan sistem.

BAB V KESIMPULAN DAN SARAN

Dalam bab ini berisi kesimpulan dari setiap tahapan yang dilalui dalam penelitian dan mengajukan saran untuk pengembangan sistem selanjutnya.


(14)

8

2.1 DBMS (Database Management System)

DBMS merupakan perangkat lunak yang dirancang untuk dapat melakukan utilisasi dan mengelola koleksi data dalam jumah yang besar. DBMS juga dirancang untuk dapat melakukan manipulasi data secara lebih mudah. Sebelum adanya DBMS maka data pada umumnya disimpan dalam bentuk flat file, yaitu file teks yang ada pada sistem operasi. Sampai sekarangpun masih ada aplikasi yang menyimpan data dalam bentuk flat secara langsung. Menyimpan data dalam bentuk flat file mempunyai kelebihan dan kekurangan. Penyimpanan dalam bentuk ini akan mempunyai manfaat yang optimal jika ukuran filenya relatif kecil, seperti file password. File password pada umumnya hanya digunakan untuk menyimpan nama yang jumlahnya tidak lebih dari seribu orang. Selain dalam bentuk flat file, penyimpanan data juga dapat dilakukan dengan menggunakan program bantu seperti spreadsheet. Penggunaan perangkat lunak ini memperbaiki beberapa kelemahan dari flat file, seperti bertambahnya kecepatan dalam pengolahan data. Namun demikian metode ini masih memiliki banyak kelemahan, diantaranya adalah masalah manajemen dan keamanan data yang masih kurang.


(15)

2.1.1 Pengertian DBMS

Berikut ini adalah beberapa pengertian tentang DBMS menurut para ahli di bidang database.

1. Menurut C.J. Date : DBMS adalah merupakan software yang menghandel seluruh akses pada database untuk melayani kebutuhan user.

2. Menurut S, Attre : DBMS adalah software, hardware, firmware dan prosedur-prosedur yang mengelola database. Firmware adalah software yang telah menjadi modul yang tertanam pada hardware (ROM).

3. Menurut Gordon C. Everest : DBMS adalah manajemen yang efektif untuk mengorganisasi sumber daya data.

Jadi dapat disimpulkan bahwa DBMS adalah semua peralatan komputer (Hardware, Software, dan Firmware) yang dilengkapi dengan bahasa yang berorientasi pada data (High level data language) yang sering disebut juga sebagai bahasa generasi ke-4 (fourth generation language). Peralatan untuk menetapkan atau menentukan pendekatan database disebut DBMS. DBMS merupakan software (dan hardware) yang didesain khusus untuk melindungi dan mengelola database.

2.1.2 Fungsi dan Kegunaan DBMS

DBMS memiliki beberapa fungsi diantaranya sebagai berikut

:

1. Definisi data dan hubungannya

2. Memanipulasi data


(16)

4. Recovery atau perbaikan dan concurency data 5. Data dictionary

6. Unjuk kerja atau performance Kegunaan DBMS antara lain :

1. Mendefinisikan data dan hubungannya. 2. Mendokumentasikan struktur dan definisi data

3. Menggambarkan, mengorganisasikan dan menyimpan data untuk akses yang selektif dan efisien.

4. Hubungan yang sesuai antara user dengan sumber daya data.

5. Perlindungan terhadap sumber daya data akan terjamin, dapat diandalkan, konsisten dan benar.

6. Memisahkan masalah logical dan physical sehingga mengubah implementasi database secara fisik tidak menghendaki user untuk mengubah maksud data (Logical).

7. Menentukan pembagian data kepada para user untuk mengakses secara concurent pada sumber daya data.

2.1.3 Keuntungan Dan Kerugian Penggunaan DBMS

Beberapa keuntungan penggunaan DBMS adalah sebagai berikut: 1. Kebebasan data dan akses yang efisien

2. Mereduksi waktu pengembangan aplikasi 3. Integritas dan keamanan data

4. Administrasi keseragaman data

5. Akses bersamaan dan perbaikan dari terjadinya crashes (tabrakan/error dari proses serentak).


(17)

6. Mengurangi data redundancy : Data redundansi dapat direduksi atau dikurangi, tetapi tidak dapat dihilangkan sama sekali (untuk kepentingan keyfield)

Beberapa kerugian penggunaan DBMS adalah sebagai berikut:

1. Memperoleh perangkat lunak yang mahal (teknologi DBMS, Operation, Conversion, Planning, Risk). DBMS mainframe masih sangat mahal. DBMS berbasis mikro biayanya mencapai beberapa ratus dolar, dapat menggambarkan suatu organisasi yang kecil secara berarti.

2. Memperoleh konfigurasi perangkat keras yang besar. DBMS sering memerlukan kapasitas penyimpanan primer dan sekunder yang lebih besar daripada yang diperlukan oleh program aplikasi lain. Juga, kemudahan yang dibuat oleh DBMS dalam mengambil informasi mendorong lebih banyak terminal pemakai yang disertakan dalam konfigurasi daripada jika sebaliknya.

3. Mempekerjakan dan mempertahankan seorang DBA DBMS memerlukan pengetahuan khusus agar dapat memanfaatkan kemampuan secara penuh. Pengetahuan khusus ini paling baik diberikan oleh pengelola database.


(18)

2.1.4 Macam-macam DBMS

Banyak sekali DBMS yang dikembangkan saat ini untuk mengimbangi kebutuhan pengguna akan manajemen basis data. Beberapa DBMS yang sering dipakai oleh pengguna adalah sebagai berikut:

1. Microsoft SQL Server

Microsoft SQL Server adalah program Sistem Manajemen Basis Data Relasional. Susunan dari Microsoft SQL Server dibagi menjadi tiga komponen:

a. SQL OS yang melakukan layanan utama pada SQL Server, misalnya mengatur aktifitas, pengaturan memori, dan pengaturan Input atau Output;

b. Relational Engine yang bekerja sebagai penghubung komponen database, table, query, dan perintah tersimpan;

c. Protocol Layer yang mengatur fungsi-fungsi SQL Server.

2. Oracle

Oracle adalah salah satu software sistem manajemen basis data relasional yang cukup diminati, dikenal, dan dipakai saat ini. Software ini biasa digunakan untuk pengaksesan data yang dilakukan secara online dan sangat baik dalam pengelolaan data dalam jumlah record yang sangat besar. Oracle adalah Relational Database Management System (RDBMS) untuk mengelola informasi secara terbuka, komprehensif dan terintegrasi. Oracle merupakan DBMS yang dirancang khusus untuk organisasi berukuran besar, bukan untuk ukuran kecil dan menengah. Kebutuhan organisasi berukuran besar tidaklah sama dengan organisasi yang kecil atau menengah yang tidak


(19)

akan berkembang menjadi besar. Organisasi yang berukuran besar membutuhkan fleksibilitas dan skalabilitas agar dapat memenuhi tuntutan akan data dan informasi yang bervolume besar dan terus menerus bertambah besar.

3. MySQL

MySQL adalah perangkat lunak sistem manajemen basis data yang diciptakan untuk dapat dilakukan instalasi secara gratis (open source). MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public Licency (GPL), tetapi mereka juga menjual di bawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.

Beberapa contoh DBMS lainnya : Microsoft Visual Fox Pro, dBase, DB2, Microsoft Office Access, Ingres, Arago, Force, dbFast, dbXL, Quicksilver, Clipper, Xbase++, Flagship, Codebase, Harbour/Xharbour.

2.2 Data Agregation dan Data Integration

Data Agregation adalah sebuah sistem atau konsep yang digunakan untuk menghubungkan berbagai macam database atau lebih dari satu database ke dalam satu aplikasi. Perbedaan mendasar dari kedua sistem tersebut adalah data agregation tidak menggunakan repository, sedangkan data integrasi dalam implementasinya menggunakan repository.


(20)

2.2.1 DataAgregation

Data agregation mengambil konsep dari agregasi, yakni suatu konsep yang menghubungkan lebih dari satu entitas. Apabila dalam implementasi suatu aplikasi pengambilan data yang berasal dari database dengan lokasi yang berbeda beda, pengguna aplikasi tidak perlu tahu lokasi fisik data tersebut disimpan.

Keuntungan dari Data Agregation adalah :

1. Menghemat tempat penyimpanan data, tidak perlu repository

2. Tidak perlu sinkronisasi, karena akses langsung terhadap data source.

3. Data akan selalu real time

Namun konsep Data Agregation memiliki kelemahan antara lain :

1. Data yang digunakan tidak normal, berbeda-beda tergantung pada sistem yang ada pada datasource-nya.

2. Mengurangi efektifitas dan kecepatan akses. 3. Sedikit banyaknya akan merubah struktur query.

Agregasi DBMS dapat dilakukan pada level SQL Query, artinya DBMS

yang dapat diagregasikan juga terbatas pada DBMS yang sudah

mengimplementasikan standar query. 2.2.2 Data Integration

Sampai saat ini, definisi data integration masih abstrak, namun secara garis besarnya data integration adalah solusi umum untuk menyelesaikan permasalahan

heterogenous database. Data integration biasanya diimplementasikan ke dalam suatu aplikasi, konsep data integration umumnya mengambil data dari data source yang berbeda-beda untuk kemudian di store dalam satu database


(21)

repository, karenanya lahirlah konsep data integration. Kemampuan data integration masih terbatas pada Extract, Transform, Load.

Data Integration System secara formal didefinisikan sebagai tripel [G,S,M], dimana G adalah global skema. S adalah heterogenous data source, dan M adalah pemetaan yang memetakan permintaan antara sumber dan skema global. Baik G dan S dinyatakan dalam bahasa lebih abjad terdiri dari simbol-simbol untuk setiap hubungan masing-masing. Pemetaan M terdiri dari pernyataan antara G dan pertanyaan atas pertanyaan di atas S. Sedangkan untuk implementasi data integration dalam aplikasi ditandai dengan kode ETL. Elemen dari integrasi data diantaranya adalah sebagai berikut:

- perpindahan data secara realtime - transformasi atau perubahan bentuk - sinkronisasi dan kualitas data - manajemen data dan data services


(22)

Kelebihan dari konsep data integration adalah

1. Data yang ditaruh dalam repository sudah diperbaharui dan dinormalisasikan sesuai dengan kebutuhan penggunanya.

2. Akses ke dalam data dapat lebih cepat, karena user langsung mengakses ke dalam repository.

Kekurangannya adalah

1. Data tidak sepenuhnya realtime.

2. Sistem perlu melakukan sinkronisasi dengan data source yang sebenarnya.

3. Karena menggunakan repository maka data integration

membutuhkan DBMS temporary

2.3 SODA (Simple Object Database Access)

SODA (Simple Object Database Access) adalah metode yang dapat digunakan untuk berkomunikasi dengan DBMS. Metode ini bertujuan untuk menyatukan komponen untuk mengakses lebih dari satu DBMS, membuatnya lebih sederhana dan lebih terstruktur.

SODA dapat diimplementasikan dalam sebuah class yang nantinya dapat digunakan dalam beberapa aplikasi berbasis objek, dan dapat dibentuk ke dalam sebuah prosedur untuk diimplementasikan ke dalam aplikasi berbasis prosedural. Komponen dasar dari SODA terdiri dari :

1. User Access 2. Event Notifier 3. Controller


(23)

4. Data Source Map 5. Data Access Library 6. Data Access

7. Event Publisher

Gambar 2.2 Ilustrasi SODA pada web application dengan multiple DBMS

Komponen-komponen yang mendukung SODA pada gambar di atas dijelaskan sebagai berikut :

1. User Access

User access adalah komponen bagian depan dari data agregator yang digunakan untuk membaca dan mengkategorikan masukan. User access juga berfungsi sebagai keluaran data hasil eksekusi query data agregator dengan user dalam hal ini adalah aplikasi.


(24)

Komponen ini memiliki format yang telah ditentukan sebelumnya baik untuk masukan maupun keluaran, tujuan format tersebut adalah agar algoritma dibelakangnya dapat membaca dan mengkategorikan inputan.

Bentuk masukan pada komponen ini digambarkan sebagai berikut:

Gambar 2.3 Ilustrasi masukan

Alias : jenis alias koneksi ke DBMS yang digunakan

Query : SQL query select data dari table atau table-table pada database Format keluarannya adalah array hasil eksekusi query berupa data yang didefinisikan dalam SQL query.

Gambar 2.4 Ilustrasi array data hasil keluaran


(25)

2. Event Notifier

Event notifier adalah komponen bagian depan yang digunakan untuk merubah format dari format standart input kedalam format yang lebih dikenal oleh controller sesuai dengan data source map. Komponen ini sangat membantu memudahkan controller untuk membaca masukan dengan cara memisahkan komponen masukan ke dalam beberapa bagian.

Ilustrasinya dapat digambarkan sebagai berikut:

Gambar 2.5 Pemecahan format masukan

Alias : jenis alias koneksi database yang digunakan

Query : SQL query select data dari table atau view pada database

DB Name : nama database yang diakses

DB Connection : jenis koneksi database yang digunakan

Perubahan format ini dimaksudkan agar komponen controller dapat menemukan lokasi, jenis koneksi dan nama database yang akan diakses dengan menggunakan entitas database_name dan menyesuaikannya dengan data source map sehingga dapat ditentukan data access mana yang akan digunakan pada data access library.


(26)

3. Controller

Controller adalah komponen terpenting dalam Simple Object Database Access, dimaksudkan sebagai sentral dan letak dari implementasi algoritma pada Simple Object Database Access. Controller bertugas membaca inputan SQL query setelah di transformasi dan mencari lokasi, jenis dan nama database dalam data source map berdasarkan entitas aliasnya. Untuk kemudian memutuskan dengan data access yang mana DBMS tersebut akan diakses.

4. Data Source Map

Data source map adalah komponen yang memetakan bentuk, lokasi dan jenis database. Data source map memiliki format yang sudah didefinisikan, sehingga user bisa dengan bebas menambahkan lokasi, jenis DBMS dan nama database yang akan diakses dengan menambahkan indeks ke dalam masing-masing source yang ditambahkan.

5. Data Access Library

Data access library adalah komponen yang menyimpan tata cara akses ke dalam DBMS dengan cara yang sudah didefinisikan sebelumnya. Data access library dapat ditambahkan sesuai dengan koneksi yang akan diakses sesuai dengan format yang digunakan oleh controller. Misalnya adalah cara akses ke mysql, cara akses ke sql-server,cara akses ke oracle.

6. Data Access

Data access adalah komponen yang umum digunakan dalam mengakses database. Data access secara global disimpan dalam data access library. Di dalam SODA, data access dikendalikan oleh controller karena jenis DBMS yang akan diakses dapat bermacam-macam.


(27)

7. Event Publisher

Event publisher adalah komponen bagian depan yang digunakan untuk meneruskan keluaran dari data access kepada user access. Event publisher memiliki format yang sama dengan keluaran hasil eksekusi query pada user access. Event publisher dapat juga dimanfaatkan sebagai transformator dari data access ke dalam sebuah array dengan format keluaran.

2.4 UML (Unified Modelling Language)

UML adalah bahasa untuk spesifikasi, visualisasi, konstruksi dan dokumentasi pembuatan perangkat lunak yang berorientasi objek. UML dapat membantu kita untuk :

1. Memudahkan berpikir dan mendokumentasikan sistem sebelum

mengimplementasikannya

2. Merencanakan dan menganalisa logika atau perilaku sistem

3. Membuat keputusan yang benar sedini mungkin (sebelum

melangkah ke tahap coding)

4. Lebih mudah untuk memodifikasi atau mengelola sistem yang


(28)

Diagram UML digambarkan dalam tree di bawah ini :

Gambar 2.6 Diagram UML

Dalam gambar 2.6 terdapat banyak macam diagram UML seperti : 1. Use Case (relation of actors to system functions)

2. Class (static class structure)

3. Object (same as class - only using class instances – i.e. objects) 4. State (states of objects in a particular class)

5. Sequence (Object message passing structure)

6. Collaboration (same as sequence but also shows context - i.e. objects and their relationships)

7. Activity (sequential flow of activities i.e. action states) 8. Component (code structure)


(29)

2.5 Teori Bahasa dan Otomata

Arti menurut American Heritage Dictionary: 1. a robot

2. one that behaves in an automatic or mechanical fashion

Arti dalam dunia matematika

Berkaitan dengan teori mesin abstrak, yaitu mesin sekuensial yang menerima input, dan mengeluarkan output, dalam bentuk diskrit.

Contoh :

1. Mesin Jaja / vending machine 2. Kunci kombinasi

3. Parser/compiler

Teori Otomata dan bahasa formal, berkaitan dalam hal :

1. Pembangkitan kalimat / generation : menghasilkan semua kalimat dalam bahasa L berdasarkan aturan yang dimilikinya

2. Pengenalan kalimat / recognition : menentukan suatu string (kalimat) termasuk sebagai salah satu anggota himpunan L.


(30)

2.5.1 Bahasa Formal

Suatu kalimat dibentuk dengan menerapkan serangkaian aturan produksi pada sebuah simbol ‘akar’. Proses penerapan aturan produksi dapat digambarkan sebagai suatu diagram pohon.

Teori dasar dari bahasa formal adalah sebagai berikut:

1. Def. 1 : Sebuah string dengan panjang n yang dibentuk dari himpunan A adalah barisan dari n simbol

Panjang string x dituliskan dengan |x|

2. Def 2 : String kosong (null string), dilambangkan dengan ε adalah untaian dengan panjang 0 dan tidak berisi apapun. Panjang string x dituliskan dengan |x|

3. Def 3 : Dua buah string a = a1a2...am dan b = b1b2...bndapat disambungkan menjadi string c dengan panjang m+n sebagai berikut c = a1a2...am b1b2...bn. Operasi penyambungan tersebut dapat pula diterapkan pada himpunan

4. Def 4 : (Closure) . An adalah himpunan string dengan panjang n yang dibentuk dari simbol-simbol di himpunan simbol/alfabet A: Transitif Closure atau Kleen Closure adalah himpunan seluruh string yang dapat dibentuk dari A dengan berbagai panjang


(31)

Jika string kosong dikeluarkan , akan

diperoleh positive closure

2.5.2 Tata Bahasa

Aturan yang disebutkan pada proses pengenalan dan pembangkitan kalimat. Secara formal, tata bahasa terdiri dari 4 komponen yaitu :

1. Himpunan berhingga, tidak kosong dari simbol-simbol non terminal 2. Himpunan berhingga, dari simbol-simbol non-terminal N

3. Simbol awal S ∈ N, yang merupakan salah satu anggota dari himpunan simbol nonterminal.

4. Himpunan berhingga aturan produksi P yang setiap elemennya dituliskan dalam bentuk : α → β dimana α dan β adalah string yang dibentuk dari himpunan dan α harus berisi paling sedikit satu simbol non-terminal.

Keempat komponen tersebut sering dituliskan sbb : G = (T,N,S,P). Bahasa yang dihasilkan oleh G ditulis sebagai L(G), yaitu himpunan string yang dapat diturunkan dari simbol awal S dengan menerapkan aturan-aturan produksi yang terdapat pada P.


(32)

2.5.3 Aturan Produksi

Aturan produksi α→β yang diterapkan pada suatu string w=aαc mengganti kemunculan α menjadi β, sehingga string tersebut berubah menjadi w=aβc, sehingga dapat dituliskan aαc ⇒ aβc (aαc memproduksi aβc).

Produksi tersebut dapat diterapkan berkali-kali

atau dapat dituliskan

jika minimal harus ada 1 aturan produksi yang diterapkan :

Contoh 1

Tatabahasa G = {{S} , {a,b}, S , P } dengan aturan produksi P adalah S → aSb

S →ε

maka dapat dihasilkan suatu string S ⇒ aSb ⇒ aaSbb ⇒aabb sehingga dapat dituliskan S ⇒* aabb

Bahasa yang dihasilkan dari tatabahasa tersebut adalah L(G) = { ε , ab, aabb , aaabbb , aaaabbbb, ... }

atau dapat pula dituliskan L(G) = {anbn | n ≥ 0 }


(33)

Contoh 2

Tatabahasa G = {{S,A} , {a,b}, S , P } dengan aturan produksi P adalah S → Ab

A → aAb A →ε

maka dapat dihasilkan suatu string S ⇒ Ab ⇒b

S ⇒ Ab ⇒ aAbb ⇒ abb

S ⇒ Ab ⇒ aAbb ⇒ aaAbbb ⇒ aaAbbb

Bahasa yang dihasilkan dari tatabahasa tersebut adalah L(G) = { b , abb, aabbb , aaabbbb , aaaabbbbb, ... } atau dapat pula dituliskan


(34)

2.5.4 Finite State Automata (FSA)

Ciri-ciri dari Finite State Automata diantaranya adalah

1. Model matematika yang dapat menerima input dan mengeluarkan output 2. Memiliki state yang berhingga banyaknya dan dapat berpindah dari satu

state ke state lainnya berdasar input dan fungsi transisi

3. Tidak memiliki tempat penyimpanan atau memory, hanya bisa mengingat state terkini.

4. Mekanisme kerja dapat diaplikasikan pada : elevator, text editor, analisa leksikal, pengecek parity.

Contoh pengecek parity ganjil

Misal input : 1101


(35)

diterima mesin Misal input : 1100

Genap 1 Ganjil 1 Genap 0 Genap 0 Genap ditolak mesin

Finite State Automata dinyatakan oleh lima tuple M = (Q , Σ , δ , S , F )

Q = himpunan state

Σ = himpunan simbol input δ = fungsi transisi δ : Q × Σ

S = state awal / initial state , S ∈ Q F = state akhir, F ⊆ Q

Pada contoh diatas, Q = {Genap, Ganjil} Σ = {0,1}

S = Genap F = {Ganjil }

atau

δ(Genap,0) = Genap δ(Genap,1) = Ganjil δ(Ganjil,0) = Ganjil δ(Ganjil,1) = Genap


(36)

2.5.5 Jenis FSA

Deterministic Finite Automata (DFA) : dari suatu state ada tepat satu state berikutnya untuk setiap simbol masukan yang diterima.

Non-deterministic Finite Automata (NFA) : dari suatu state ada 0, 1 atau lebih state berikutnya untuk setiap simbol masukan yang diterima.

2.5.5.1 Deterministic Finite Automata

1. Contoh : pengujian parity ganjil.

2. Contoh lain : Pengujian untuk menerima bit string dengan banyaknya 0 genap, serta banyaknya 1 genap.

3. 0011 : diterima.

4. 10010 : ditolak, karena banyaknya 0 ganjil 5. Diagram transisi-nya :

6. DFA nya

Q = {q0 , q1 , q2 , q3 } Σ = {0,1}

S = q0 F = { q0}


(37)

fungsi transisi

δ( q0,011)= δ( q2,11) =δ( q3,1)= q2 Ditolak δ( q0,1010)= δ( q1,010) =δ( q3,10)=δ( q2,0)= q0 Diterima

2.5.5.2 Nondeterministic Finite Automata

1. Perbedaan dengan NFA: fungsi transisi dapat memiliki 0 atau lebih fungsi transisi

2. String diterima NFA bila terdapat suatu urutan transisi berdasar input, dari state awal ke state akhir.


(38)

4. Contoh : string 01001

Dua buah FSA disebut ekuivalen apabila kedua FSA tersebut menerima bahasa yang sama. Contoh : FSA yang menerima bahasa {an | n≥0 }

Dua buah state dari FSA disebut indistinguishable (tidak dapat dibedakan) apabila : δ(q,w)∈F sedangkan δ(p,w)∉F dan δ(q,w) ∉F sedangkan δ(p,w) ∈F untuk semua w ∈Σ*.

Dua buah state dari FSA disebut distinguishable (dapat dibedakan) bila terdapat w ∈Σ * sedemikian hingga:

δ(q,w)∈F sedangkan δ(p,w)∉F dan


(39)

Prosedur menentukan pasangan status indistinguishable

1. Hapus semua state yang tak dapat dicapai dari state awal.

2. Catat semua pasangan state (p,q) yang distinguishable, yaitu {(p,q) | p ∈ F

∧ q ∉ F}

3. Untuk setiap pasangan (p,q) sisanya, untuk setiap a∈ Σ, tentukan δ(p,a) dan δ(q,a)

Contoh :

1. Hapus state yang tidak tercapai -> tidak ada

2. Pasangan distinguishable (q0,q4), (q1,q4), (q2,q4), (q3,q4). 3. Pasangan sisanya (q0,q1), (q0,q2), (q0,q3), (q1,q2) (q1,q3) (q2,q3)


(40)

Prosedur Reduksi DFA

1. Tentukan pasangan status indistinguishable.

2. Gabungkan setiap group indistinguishable state ke dalam satu state dengan relasi pembentukan group secara berantai : Jika p dan q indistingishable dan jika q dan r indistinguishable maka p dan r indistinguishable, dan p,q serta r indistinguishable semua berada dalam satu group.


(41)

2.6 Notasi BNF (Backus-Naur Form)

Di dalam ilmu komputer, BNF (Backus Normal Form atau Backus-Naur Form) adalah notasi untuk tata bahasa CFG (Context-free Grammar), yang sering dipakai untuk mendiskripsikan sintaks tata bahasa yang digunakan, contoh: bahasa pemrograman, format dokumen, set intruksi, dan protokol komunikasi. Notasi BNF ini diterapkan dimanapun saat deskripsi dari tata bahasa diperlukan, misalnya dalam spesifikasi tata bahasa resmi, dalam buku manual, dan di buku teori bahasa pemrograman.

Banyak ekstensi dan varian dari notasi asli yang digunakan, beberapa yang pasti didefinisikan termasuk EBNF (Extended Backus-Naur Form) dan ABNF (Augmented Backus-Naur Form).

Sebuah spesifikasi BNF adalah serangkaian aturan derivasi, ditulis :

Dimana <symbol> adalah sebuah non-terminal, dan __expression__

terdiri dari satu atau lebih barisan simbol. Barisan yang dipisahkan oleh simbol | mempunyai arti sebuah pilihan. Semua simbol pada sisi kanan menjadi subtitusi bagi simbol non-terminal pada sisi kiri. Simbol terminal tidak boleh ada pada sisi kiri. Sisi kiri selalu diisi oleh satu simbol non-terminal yang diapit oleh simbol < dan >.


(42)

Berikut ini adalah aturan sintaks pada BNF yang sering dipakai :

- Untuk menandakan item yang opsional (bisa ada atau bisa tidak ada), ditandai dengan diapit dua buah kurung siku, yaitu [ dan ]. Contoh: <kalimat> ::= <subjek> <predikat> [ <objek> ]

- Simbol terminal diapit oleh simbol < dan >. Simbol non-terminal selalu ada di sisi kiri. Untuk simbol non-terminal biasanya diapit oleh tanda kutip ‘. Contoh : <angkasatu> ::= ‘1’

- Item yang berulang sebanyak 0 kali atau lebih, diapit oleh kurung kurawal. Atau diapit dengan tanda kurung dengan diakhiri dengan tanda superscript bintang *.

Contoh 1 : <word> ::= <letter> {<letter>}

Contoh 2 : <word> ::= <letter> (<letter>)*

- Item yang berulang sebanyak 1 kali atau lebih, diapit dengan tanda kurung dengan diakhiri dengan tanda superscript tambah +.

Contoh : <word> ::= (<letter>)+

- Simbol terminal bisa ditulis dengan cetak tebal (bold) dan simbol non-terminal bisa ditulis dengan cetak biasa (plain text)

Contoh : <angkasatu> ::= ‘1’

- Untuk menandakan pilihan, biasanya digunakan tanda ‘|’ Contoh : <angkabiner> ::= ‘1’ | ‘0’

- Untuk mengelompokkan simbol-simbol ke dalam group simbol bisa digunakan simbol tanda kurung.


(43)

37 3.1 Analisis Sistem

Tahap analisis sistem dilakukan sebelum tahap perancangan sistem. Tahap analisis sistem merupakan tahap yang kritis dan sangat penting karena kesalahan di dalam tahap ini akan menyebabkan kesalahan pada tahap selanjutnya. Proses analisis sistem merupakan suatu prosedur yang dilakukan untuk pemeriksaan masalah dan penyusunan alternatif pemecahan masalah yang timbul serta membuat spesifikasi sistem yang baru atau sistem yang akan diusulkan dan dimodifikasi. Hasil akhir dari tahap analisis sistem adalah suatu laporan yang dapat menggambarkan sistem yang telah dipelajari dan diketahui bentuk permasalahannya serta rancangan sistem baru yang akan dikembangkan.

3.1.1 Analisis Masalah

Salah satu kendala dalam proses pengolahan data dari database yang tersebar adalah proses penggabungan data dari database yang berbeda. Tidak semua DBMS memiliki fitur database link seperti pada DBMS Oracle sehingga dalam proses penggabungan data akan mengalami kendala dalam hal akses data antar DBMS yang berbeda.

Proses penggabungan data akan lebih mudah jika data yang akan digabungkan mempunyai format data yang sama. Karena hal ini merupakan syarat dilakukan proses penggabungan data.


(44)

Yang dimaksud dengan format data yang sama ini adalah sebagai berikut : 1. Memiliki jumlah field atau kolom yang sama

2. Memiliki nama-nama field atau kolom yang sama.

3. Memiliki tipe data dan ukuran yang sama di setiap field atau kolomnya. Dalam kenyataannya tidak semua data yang akan digabungkan pasti memiliki format data yang sama. Informasi yang akan diambil tidak hanya berasal dari satu tabel, tetapi dapat juga berasal dari banyak tabel, maka harus dilakukan query dahulu ke dalam masing-masing database yang digunakan. Hasil dari query tersebut juga harus memiliki format data yang sama dengan data (hasil query) yang lain jika akan dilakukan penggabungan data.

Pada umumnya cara yang sering dipakai adalah dengan membuat spool data tersebut ke dalam text file dengan delimiter tertentu. Setelah itu semua text file yang ada digabungkan dengan menggunakan text editor atau menggunakan command prompt menjadi satu text file. Kemudian data gabungan di dalam file tersebut diolah menjadi sebuah informasi.

Dari permasalahan yang sudah dijelaskan sebelumnya maka dapat disimpulkan beberapa kendala yang ada, diantaranya sebagai berikut:

1. Tidak ada aplikasi yang mempunyai fungsi untuk melakukan koneksi dan menghubungkan database dengan DBMS yang berbeda.

2. Data yang akan digabungkan tidak selalu memiliki format data yang sama.

3. Proses penggabungan data dilakukan secara manual dengan mengolah data textfile hasil dari data yang diambil dari database yang berbeda.


(45)

3.1.2 Blok Diagram Model Aplikasi

Aplikasi yang akan dibangun dimaksudkan untuk menyelesaikan permasalahan dalam penggabungan data dari database yang berbeda. Secara umum dapat dimodelkan dalam block diagram berikut ini.

Gambar 3.1 Blockdiagram model aplikasi

Block Diagram pada gambar 3.1 di atas adalah gambaran umum model aplikasi. Aplikasi berbasis web yang akan dibangun memiliki fungsi utama yaitu melakukan penggabungan data antar database dengan DBMS yang berbeda. Pengabungan data yang dimaksud adalah dengan menggunakan fungsi set operasi atau operation set (Union, Intersect, Minus) antar tabel dalam database dengan DBMS yang berbeda dalam satu perintah atau sintaks SQL query.

Penjelasan dari block diagram di atas adalah sebagai berikut : a. Input SQL Query

- SQL query dipakai sebagai masukan aplikasi.

- Query data dipakai sebagai metode untuk mengambil data dari masing-masing database.

- Format query yang diterima oleh aplikasi ini sesuai dengan aturan produksi yang ada dalam aplikasi ini.


(46)

- Sintaks blok SQL query yang diterima adalah SQL query yang diterima oleh masing-masing DBMS yang diakses.

b. Scanning SQL Query

Proses scanning (analisis leksikal) melakukan pemeriksaan terhadap SQL query dengan cara membaca satu per satu karakter yang ada pada kode sumber tersebut, kemudian dikelompokkan menjadi token/leksik yang mempunyai arti tertentu.

c. Parsing SQL Query

Proses parsing (analisis sintaksis) memeriksa kebenaran sintaks dari SQL query dan menangani kesalahan sintaks berdasarkan tata bahasa (grammar) SQL query. Proses ini dilakukan oleh masing-masing DBMS yang diakses.

d. Identifying SQL Query Block

Proses ini mengidentifikasi elemen-elemen pada SQL query, seperti jumlah kolom, nama kolom, alias kolom, nama table, dan alias table. Kolom-kolom yang didefinisikan dapat juga berupa fungsi yang memiliki tipe data keluaran tertentu sesuai dengan daftar fungsi-fungsi yang ada dalam SQL Query.

e. Comparing (Pembandingan format data).

- Validasi data dilakukan untuk mengecek nama kolom dan tipe data kolom yang didefinisikan dalam SQL query. Nama kolom yang dipakai adalah nama-nama kolom yang didefinisikan dalam blok SQL query yang pertama.


(47)

- Jika format data sama, aplikasi akan melakukan penggabungan data berdasarkan fungsi yang didefinisikan oleh pengguna (Union, Intersect, atau Minus) dalam SQL Query.

f. Data Merging Process (Union, Intersect, atau Minus).

- Fungsi ini dapat dieksekusi jika format data yang akan digabungkan memiliki format yang sama.

- Hasil dari penggabungan data dapat disimpan dalam teks file atau disimpan dalam sebuah tabel di dalam database.

3.1.3 Analisis Proses Parsing pada Masukan SQL Query

Proses parsing terhadap inputan SQL query ini terdari dari dua bagian. Bagian pertama adalah yang menggabungkan karakter demi karakter untuk membuat token (biasanya dilakukan oleh bagian yang disebut scanner atau lexer), dan bagian kedua adalah yang menentukan apakah token-token tersebut memenuhi grammar (dilakukan oleh bagian yang disebut parser).

Analisis leksikal (scanner) melakukan pemeriksaan terhadap SQL query dengan cara membaca satu per satu karakter yang ada pada kode sumber tersebut, kemudian dikelompokkan menjadi token atau leksik yang mempunyai arti tertentu. Scanner berperan sebagai antar muka antara source code dengan proses analisis sintaksis (parser).

Analisis sintaksis (parser) menerima masukan dari scanner (dalam bentuk token) dan membentuk parse tree sesuai dengan sintaks dan tata bahasanya. Dengan kata lain parser memeriksa kebenaran sintaks dari SQL query dan menangani kesalahan sintaks.


(48)

3.1.3.1Aturan produksi sintaks dan Diagram sintaks

Aturan produksi sintaks pada SQL query ditulis dalam format BNF (Backus Nour Form). Aturan produksi ini mengacu pada Final Committee Draft (FCD) of ISO/IEC 9075-2:2003. Dalam penelitian ini, aturan produksi yang dipakai dapat dilihat pada table 3.1 di halaman ini. Aturan produksi ini dipakai untuk memeriksa kebenaran sintaks. Untuk sintaks query ke database akan ditangani oleh masing-masing DBMS yang diakses.

Aturan produksi yang dimaksud dapat dilihat pada table 3.1 berikut ini: Tabel 3.1 Tabel BNF SQL Query

1 <s> ::= <expression><semicolon>

2 <expression> ::= <term>

|

<expression> <set_operator> <term>

3 <term> ::= <lroundbrackets>

<expression> <rroundbrackets> | <expression> | <squery>

4 <squery> ::= <dbidentifier>

<lsquarebrackets> <rsquarebrackets>

5 <dbidentifier> ::= 'db-'<alphabet>

{ <alphabet> | <numeral> }

6 <set_operator> ::= union' ['all']

| 'intersect' | 'minus'

7 <alphabet> ::= 'a..z'

8 <numeral> ::= '0..9'

9 <lsquarebrackets> ::= '['

10 <rsquarebrackets> ::= ']'

11 <lroundbrackets> ::= '('

12 <rroundbrackets> ::= ')'


(49)

Diagram sintaks memberikan gambaran yang jelas mengenai BNF yang telah dirancang dalam bentuk grafis. Masing-masing diagram sintaks memudahkan pembaca untuk melihat masing-masing aturan produksi yang ada. Diagram-diagram sintaks pada gambar 3.2 sampai dengan gambar 3.14 berikut ini menggambarkan BNF (13 aturan produksi) yang telah dirancang pada tabel 3.1 di halaman 42.

Simbol <s> pada gambar 3.2 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan urutan variable <expression><semicolon>.

Gambar 3.2 Diagram sintaks S

Simbol <expression> pada gambar 3.3 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan variable <term>. Variabel <expression> juga menghasilkan urutan variable <expression><set_operator><term>.


(50)

Simbol <term> pada gambar 3.4 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan variabel <expression> atau <squery> atau urutan variable <lroundbrackets><expression><rroundbrackets>.

Gambar 3.4 Diagram sintaks TERM

Simbol <squery> pada gambar 3.5 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan urutan variabel <dbidentifier> <lsquarebrackets> <rsquarebrackets>. SQL query ke masing-masing DBMS diletakkan diantara variable <lsquarebrackets> dan <rsquarebrackets>. SQL query tidak diparsing oleh aplikasi ini, akan tetapi diparsing oleh masing-masing DBMS yang dipanggil sesuai dengan variabel <dbidentifier> yang didefinisikan.


(51)

Simbol <dbidentifier> pada gambar 3.6 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan urutan terminal ‘db-’ (urutan karakter d, b, dan -) variabel <alphabet> diikuti iterasi variable <alphabet> atau <numeral>. Contoh string yang diterima oleh variabel <dbidentifier> : best, ora90, db-mssql2011, dsb.

Gambar 3.6 Diagram sintaks DBIDENTIFIER

Simbol <set_operator> pada gambar 3.7 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan terminal ‘union’ atau ‘union all’ atau ‘intersect’ atau ‘minus’.


(52)

Simbol <alphabet> pada gambar 3.8 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan terminal karakter alphabet ‘a’ sampai dengan ‘z’.

Gambar 3.8 Diagram sintaks ALPHABET

Simbol <numeral> pada gambar 3.9 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan terminal karakter number ‘0’ sampai dengan ‘9’.

Gambar 3.9 Diagram sintaks NUMERAL

Simbol <lsquarebrackets> pada gambar 3.10 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan terminal karakter ‘[’ (kurung siku buka).


(53)

Simbol <rsquarebrackets> pada gambar 3.11 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan terminal karakter ‘]’ (kurung siku tutup).

Gambar 3.11 Diagram sintaks RSQUAREBRACKETS

Simbol <lroundbrackets> pada gambar 3.12 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan terminal karakter ‘(’ (kurung buka).

Gambar 3.12 Diagram sintaks LROUNDBRACKETS

Simbol <rroundbrackets> pada gambar 3.13 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan terminal karakter ‘(’ (kurung tutup).


(54)

Simbol <semicolon> pada gambar 3.14 adalah sebuah simbol variabel (simbol non terminal) yang menghasilkan terminal karakter ‘;’ (titik koma). Variable ini menandakan akhir dari string SQL query yang diterima oleh aplikasi ini.

Gambar 3.14 Diagram sintaks SEMICOLON

3.1.3.2Diagram FSA (Finite State Automata) untuk analisis leksikal (scanner)

Pada sub bab sebelumnya sudah dijelaskan mengenai aturan produksi dan diagram sintaks pada SQL query. Aturan produksi tersebut digunakan sebagai pedoman dalam proses parsing pada saat proses penggabungan data dilakukan. Proses penggabungan data dapat dilakukan jika SQL query yang diberikan oleh pengguna sudah sesuai dengan aturan produksi tersebut. Aturan produksi tersebut menggunakan tata bahasa bebas konteks. Proses parsing merupakan tahapan yang berfungsi untuk memeriksa urutan kemunculan token.

Token dihasilkan oleh parser (yang melakukan proses scanning) dengan cara menguraikan kode sumber (source code) menjadi unit-unit kecil yang mempunyai arti. Proses parsing (analisis leksikal) lebih mudah diimplementasikan pada FSM (Finite State Machine) atau FSA (Finite State Automata). FSA bukan merupakan sebuah mesin fisik tetapi merupakan model


(55)

matematika dari suatu sistem yang menerima masukan dan mengeluarkan keluaran dalam bentuk diskrit. FSA terdiri dari sejumlah state berhingga.

Pada gambar 3.15 dapat dilihat sebuah state diagram dalam bentuk DFA (Non-Deterministic State Automata) yang menggambarkan proses scanning dalam penelitian ini. FSA dalam bentuk DFA akan memudahkan pembuatan algoritma pada tahap implementasi nantinya karena dalam DFA dari suatu state ada tepat satu state berikutnya untuk setiap simbol masukan.

Tuple yang ada dalam gambar 3.15 adalah sebagai berikut :

Q = {q0,q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q16,q17,q18,q19,q20, q21,q22,q23,q24,q25,q26,q27,q28,q29,q30,q31,q32,q33,q34,q35,q36,q37,q3 8,q39,q40,q41,q42,q43,q44,q45,q46,q47,q48,q49,q50,q51,q52,q53,q54,q55, q56,q57,q58}

∑ = { '-','(',')',';','[',']',0,1,2,3,4,5,6,7,8,9,

a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z} S = q0

F = q15

Keterangan simbol yang dipakai sebagai simbol masukan dapat dilihat pada tabel 3.2 berikut ini.

Tabel 3.2 Keterangan simbol masukan

simbol input keterangan

; titik koma

( Tanda kurung buka

) Tanda kurung tutup

- Tanda kurang

[ Tanda kurung siku buka


(56)

Tabel transisi untuk DFA pada gambar 3.15 dapat dilihat pada tabel 3.3 dan tabel 3.4 berikut ini.

Tabel 3.3 Tabel transisi DFA (bagian 1)

δ - ( ) ; [ ] 0 1 2 3 4 5 6 7 8 9 a b c d e

q0 q2 q1

q1 q3

q2 q4

q3 q5

q4 q6

q5 q7 q7 q7 q7 q7

q6 q8

q7 q9 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7

q8 q10 q10 q10 q10 q10

q9 q11

q10 q12 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10

q11 q15 q12 q17 q13 q14 q16 q17 q11 q18 q19 q20 q21 q22 q23 q24 q25 q31 q26 q27 q28 q29 q30 q31 q32 q33 q34 q40 q35

q36 q2 q42 q1

q37

q38 q2 q1

q39 q40 q41 q42

q43 q48

q44 q49 q4

q45 q46 q4 q47 q48 q52 q49 q50 q54

q51 q2 q1

q52 q53

q54 q57

q55 q2 q1

q56 q4

q57


(57)

Tabel 3.4 Tabel transisi DFA (bagian 2)

δ f g h i j k l m n o p q r s t u v w x y z

q0 q1 q2 q3 q4

q5 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q6

q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7 q7

q8 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10

q9

q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10 q10

q11 q14 q16 q13

q12

q13 q18

q14 q19

q16 q20

q17 q22 q23 q21

q18 q24 q19 q25 q20 q26 q21 q27 q22 q28 q23 q29 q24 q30 q25 q26 q32 q27 q33 q28 q34 q29 q35 q30 q36 q31 q37 q32 q38 q33 q39 q34 q35 q41 q36 q37 q43 q38 q39 q44 q40 q45 q41 q46 q42 q47 q43 q44 q45 q50 q46 q47 q51 q48 q49 q53 q50 q51 q52 q55 q53 q56 q54 q55 q56 q57 q58 q58


(58)

Gambar berikut ini adalah sebuah diagram DFA yang dipakai sebagai acuan untuk melakukan proses scanning.

Gambar 3.15 DFA untuk scanner pada aplikasi SODA Data Merger

3.1.3.3Metode parsing

Terdapat dua buah metode parsing yaitu Top-Down Parsing dan Bottom-Up Parsing. Metode Top-Down Parsing melakukan penelusuran dari puncak menuju daun. LL parser merupakan top-down parser, yang akan membaca masukan dari kiri ke kanan dan melakukan parsing secara penurunan terkiri (left-most derivation). Kelas grammar yang bisa diturunkan dengan menggunakan LL parser dinamakan LL grammar. LL grammar tidak boleh mengandung rekursif


(59)

kiri (left recursive), contoh : A Abc. LL grammar tidak boleh mengandung faktorisasi kiri (left factorization), yaitu dalam sebuah aturan produksi yang memiliki ruas kiri yang sama tidak boleh ada alternatif penurunan (ruas kanan) yang diawali simbol yang sama, contoh : B a | aC.

Metode Bottom-Up Parsing melakukan penelusuran dari daun menuju puncak. Metode ini lebih general dari metode Top-Down Parsing dan dapat menangani aturan produksi yang mengandung rekursif kiri. Hampir semua kelas bahasa CFG (Context Free Grammar) dapat diselesaikan oleh metode ini. Metode ini akan mereduksi string masukan menjadi simbol awal dengan menggunakan aturan produksi yang ada. Parser yang digunakan dalam metode ini adalah LR Parser. LR Parser akan membaca input dari kiri ke kanan dan melakukan parsing secara penurunan terkanan (right-most derivation). Kelas grammar yang bisa diturunkan dengan menggunakan LR parser dinamakan LR grammar. Aturan produksi yang memenuhi bentuk CFG merupakan LR grammar. Metode ini akan mereduksi string masukan (input) menjadi simbol awal dengan menggunakan aturan produksi yang ada. Dalam metode Bottom-Up Parsing terdapat dua buah aksi yang dilakukan dalam proses parsing, yaitu Shift (membaca string masukan berikutnya) dan Reduce (mengubah string menjadi simbol variabel yang dapat menurunkan string tersebut). Hasil akhir dari metode ini dapat berupa accepted (jika string masukan sudah habis dibaca dan state mampu mencapai state awal) atau error (jika string masukan sudah habis dibaca tetapi tidak dapat mencapai state awal, atau state awal mampu dicapai tapi masih ada string masukan yang tersisa).


(60)

3.1.3.4Proses scanning dan parsing yang dilakukan dalam aplikasi ini

State diagram DFA dan aturan produksi BNF yang digunakan dalam proses scanning dan parsing mempunyai tujuan yang sama yaitu memeriksa kebenaran sintaks pada string masukan. Dalam penelitian ini, kebenaran sintaks ditangani di dalam proses scanning yaitu dengan memeriksa apakah string sudah sesuai dengan state diagram DFA atau tidak. Hasil proses scanning berupa token dbidentifier dan block SQL query akan dibaca, diidentifikasi dan dieksekusi.

Pada Tabel BNF SQL Query pada tabel 3.1 di halaman 45, variabel <set_operator> dapat kita sebut sebagai sebuah operator dan variabel <expression> dapat kita sebut sebagai sebuah operand. Scanner akan mengidentifikasi string masukan SQL query ke dalam variabel <set_operator> dan <expression>. Sehingga menghasilkan suatu format dengan urutan tertentu yang akan dijalankan oleh aplikasi ini.

Diagram DFA yang digunakan sebagai acuan dalam proses scanning dapat dilihat pada gambar 3.15 di halaman 56. Untuk memastikan bahwa DFA tersebut sudah benar sesuai dengan kebutuhan untuk melakukan scanning pada SQL query, maka berikut ini adalah pembuktian dengan melakukan penelusuran string SQL query ke dalam DFA tersebut.

SQL Query :

db-alias1[select x.kolom1as col1 from tablex x] union

(db-alias2[select y.kolom2 from tabley y] minus


(61)

Hasil tracing dari SQL Query di atas dapat dilihat pada table 3.5 berikut ini. Sebelum aplikasi melakukan proses scanning, string masukan SQL query tersebut harus diubah menjadi huruf kecil (menggunakan fungsi strtolower pada php) dan membagi string masukan per baris menjadi string-string dan disimpan ke dalam sebuah array variable. Sehingga string masukan tersebut (dalam array variable) menjadi:

Array[0]: db-alias1[select x.kolom1 as col1 from tablex x]

Array[1]: union

Array[2]: (db-alias2[select y.kolom2 from tabley y]

Array[3]: minus

Array[4]: db-alias3[select z.kolom3 as col1 from tablez z]);

Variabel tersebut digunakan agar setiap ada kesalahan sintaks, aplikasi dapat menunjukkan letak kesalahan dengan jelas yaitu pada baris tertentu yang terjadi kesalahan.

Proses scanning dilakukan pada tiap-tiap karakter mulai dari baris pertama sampai dengan baris terakhir. Ada beberapa kondisi dimana karakter digolongkan ke dalam golongan sintaks dan ke dalam golongan block SQL query.

Kriteria masing-masing golongan tersebut adalah sebagai berikut: 1. Golongan sintaks.

- Karakter-karakter pada golongan ini adalah karakter yang akan diperiksa apakah sesuai dengan DFA atau tidak.

- Karakter-karakter ini berada di posisi sebelum karakter ‘[‘ dan berada di posisi setelah karakter ‘]’. Dengan catatan bahwa karakter ‘[’ dan ‘]’ bukan merupakan bagian dari sebuah string yang diapit oleh dua buah tanda kutip satu (‘).


(62)

- Menghasilkan sebuah token yang disebut dbidentifier yang berarti sebuah alias database yang didefinisikan dalam inputan SQL query. Setiap menemukan karakter ‘]’ (dengan catatan bahwa karakter tersebut bukan bagian dari sebuah string yang berada di antara simbol kutip), proses scanning akan menghasilkan sebuah token dbidentifier dan sebuah block SQL query.

- Setiap token dbidentifier yang ditemukan akan dicek apakah sudah didefinisikan dalam aplikasi atau belum. Jika belum ada maka proses scanning akan menghasilkan pesan error dan menunjukkan letak kesalahan tersebut.

2. Golongan block SQL query.

- Karakter-karakter pada golongan ini adalah serangkaian karakter yang menjadi sebuah SQL query. Karakter pada golongan ini tidak diperiksa atau dilakukan proses parsing oleh aplikasi. Proses parsing dilakukan oleh masing-masing DBMS yang didefinisikan pada sintaks (dbidentifier) sebelumnya.

- Karakter-karakter pada golongan ini berada pada posisi diantara karakter ‘[‘ dan karakter ‘]’. Dengan catatan bahwa karakter ‘[’ dan ‘]’ bukan merupakan bagian dari sebuah string yang diapit oleh dua buah tanda kutip satu (‘).


(63)

Selama proses scanning ini, aplikasi akan mengkategorikan atau menggolongkan tiap-tiap karakter apakah termasuk ke dalam golongan sintaks atau ke dalam golongan block SQL query. Pada contoh string masukan di atas, karakter-karakter yang termasuk ke dalam golongan sintaks adalah karakter yang cetak tebal dan yang termasuk ke dalam golongan block SQL query adalah karakter yang cetak dengan warna abu-abu. Untuk lebih jelasnya dapat dilihat pada kalimat di bawah ini:

Array[0]: db-alias1[select x.kolom1 as col1 from tablex x]

Array[1]: union

Array[2]: (db-alias2[select y.kolom2 from tabley y]

Array[3]: minus

Array[4]: db-alias3[select z.kolom3 as col1 from tablez z]);

Urutan karakter-karakter yang termasuk ke dalam golongan sintaks tersebut diperiksa dan disesuaikan dengan DFA. Hasil tracing tiap-tiap karakter ke DFA dapat dilihat pada tabel 3.5. Dari hasil tracing SQL query pada tabel 3.5 menunjukkan bahwa kalimat masukan pada SQL tersebut sudah sesuai dengan DFA pada gambar 3.15 karena tracing diawali dari initial state q0 dan berakhir di final state q15.


(64)

Tabel 3.5 Tracing string masukan

STEP TRANSISI STEP TRANSISI STEP TRANSISI

1 d(q0, 'd') = q1 17 d(q36, '(') = q2 33 d(q41, 's') = q46

2 d(q1, 'b') = q3 18 d(q2, 'd') = q4 34 d(q46, 'd') = q4

3 d(q3, '-') = q5 19 d(q4, 'b') = q6 35 d(q4, 'b') = q6

4 d(q5, 'a') = q7 20 d(q6, '-') = q8 36 d(q6, '-') = q8

5 d(q7, 'l') = q7 21 d(q8, 'a') = q10 37 d(q8, 'a') = q10

6 d(q7, 'i') = q7 22 d(q10, 'l') = q10 38 d(q10, 'l') = q10

7 d(q7, 'a') = q7 23 d(q10, 'i') = q10 39 d(q10, 'i') = q10

8 d(q7, 's') = q7 24 d(q10, 'a') = q10 40 d(q10, 'a') = q10

9 d(q7, '1') = q7 25 d(q10, 's') = q10 41 d(q10, 's') = q10

10 d(q7, '[') = q9 26 d(q10, '2') = q10 42 d(q10, '3') = q10

11 d(q9, ']') = q11 27 d(q10, '[') = q12 43 d(q10, '[') = q12

12 d(q11, 'u') = q13 28 d(q12, ']') = q17 44 d(q12, ']') = q17

13 d(q13, 'n') = q18 29 d(q17, 'm') = q23 45 d(q17, ')') = q11

14 d(q18, 'i') = q24 30 d(q23, 'i') = q29 46 d(q11, ';') = q15

15 d(q24, 'o') = q30 31 d(q29, 'n') = q35

16 d(q30, 'n') = q36 32 d(q35, 'u') = q41

Pada akhir proses scanning ini, akan dihasilkan sebuah variabel array dua dimensi yang berisi dbidentifier dan block SQL query. Pada masing-masing elemen array terdapat sebuah array yang berisi sebagai berikut :

Array[index][0]: berisi nama atau alias operand

Array[index][1]:berisi string yang dimaksud oleh operand Array[index][2]:berisi alias database

Array[index][3]:berisi kode atau key dari tabel jenis database Array[index][4]: berisi keterangan jenis database

Array[index][5]: berisi letak baris ke-berapa terdapat alias database Array[index][6]: berisi block SQL query yang dimaksud oleh operand


(65)

Pada contoh masukan SQL query di atas array variable akan berisi sebagai berikut:

Array[0][0]: operand1

Array[0][1]: db-alias1[select x.kolom1 as col1 from tablex x]

Array[0][2]: alias1

Array[0][3]: 1 (misalnya) Array[0][4]: oracle (misalnya) Array[0][5]: baris ke-1

Array[0][6]: select x.kolom1 as col1 from tablex x

Array[1][0]: operand2

Array[1][1]: db-alias2[select y.kolom2 from tabley y]

Array[1][2]: alias2

Array[1][3]: 2 (misalnya) Array[1][4]: mysql (misalnya) Array[1][5]: baris ke-3

Array[1][6]: select y.kolom2 from tabley y

Array[2][0]: operand3

Array[2][1]: db-alias3[select z.kolom3 as col1 from tablez z])

Array[2][2]: alias3

Array[2][3]: 2 (misalnya) Array[2][4]: mysql (misalnya) Array[2][5]: baris ke-5


(66)

Setelah mendapatkan array variable di atas, selanjutnya akan dihasilkan serangkaian sintaks dalam bentuk urutan operand dan operator dengan mengidentifikasi string mana saja yang termasuk operand atau operator atau simbol asosiasi. Pada contoh string SQL query sebelumnya akan didapat sebuah string berikut ini:

operand1 operator1 (operand2 operator2 operand3);

dimana :

operand1 : db-alias1[select x.kolom1 as col1 from tablex x]

operator1 : union

operand2 : db-alias2[select y.kolom2 from tabley y]

operator2 : minus

operand3 : db-alias3[select z.kolom3 as col1 from tablez z]

dengan urutan eksekusinya adalah

1. operand2 operator2 operand3 dikerjakan

2. misalkan menghasilkan sebuah resulset atau misal kita sebut dengan

operand4

3. operand1 operator1 operand4 dikerjakan

4. menghasilkan sebuah resultset (hasil akhir)

Hasil akhir dari SQL query tersebut adalah sebuah resultset dalam bentuk array variable yang berisi data hasil penggabungan data.


(67)

3.1.4 Analisis Metode SODA pada Kasus Penggabungan Data

Untuk membangun aplikasi dalam kasus penggabungan data dengan multiple DBMS, diperlukan adanya koneksi ke masing-masing database yang digunakan. Untuk mengambil data dari database, diperlukan adanya query dan cara akses ke masing-masing database. Penggabungan data bisa dilakukan jika ada dua buah atau lebih sumber data dengan format data yang sama. Secara umum, kita dapat mengambil data dari table atau view dengan cara melakukan query ke database, lalu melakukan penggabungan data dari hasil query tersebut.

Dari penjelasan sebelumnya, aplikasi dituntut agar dapat melakukan koneksi dan akses ke database dengan multiple DBMS. Untuk memudahkan penulis dalam tahap implementasi aplikasi nanti, penulis menggunakan metode SODA untuk membantu menangani kasus penggabungan data dengan multiple DBMS ini.

Metode SODA adalah sebuah metode pengaksesan database dengan cara menyamakan dan menyederhanakan cara akses ke semua database. Dengan menggunakan metode ini, programmer akan menggunakan cara akses database yang sama meskipun database yang digunakan berbeda DBMS. Metode SODA ini akan diimplementasikan ke dalam sebuah kelas SODA. Di dalam kelas SODA terdapat satu method yang sama untuk melakukan akses data ke database meskipun berbeda-beda DBMS. Dengan demikian sintaks untuk mengeksekusi query ke DBMS satu dan yang lainnya adalah sama.

Untuk melakukan penggabungan data antar database dibutuhkan suatu komponen yang dapat berkomunikasi dengan banyak database. Dengan keuntungan (SODA memiliki method yang sama untuk akses data ke database)


(68)

yang dimiliki oleh metode SODA tersebut, penulis menyimpulkan bahwa metode SODA dapat diimplementasikan ke dalam aplikasi untuk melakukan penggabungan data dari database dengan multiple DBMS. Sebelum melakukan penggabungan data aplikasi harus dapat melakukan komunikasi dan akses data ke semua database.

Komponen-komponen dalam kelas SODA dapat dilihat dalam gambar 3.16. Pada gambar tersebut sudah ditambahkan komponen parser dan penggabungan data.


(69)

Detail dari komponen-komponen dalam kelas SODA tersebut adalah sebagai berikut:

1. User Access (Input/Output)

Komponen ini merupakan suatu method dalam kelas SODA yang berfungsi sebagai penerima masukan dari pengguna sekaligus sebagai keluaran data untuk pengguna. Masukan method ini berupa string SQL query. Keluaran method ini berupa data dalam variabel array.

2. Parser

Komponen ini bertugas untuk memeriksa string masukan SQL query. Komponen ini melakukan proses scanning dan parsing. Komponen ini juga memeriksa apakah data yang akan digabungkan memenuhi syarat untuk digabungkan atau tidak.

3. DB (database) Connector

Komponen ini bertugas untuk melakukan koneksi ke database sesuai dengan parameter database dari masukan.

4. Data Access

Komponen ini bertugas untuk melakukan akses data (mengeksekusi query) ke dalam database.

5. Data Source Map

Data source map ini berupa sebuah file yang berisi parameter database yang didefinisikan oleh pengguna.


(1)

144

2.2

Saran

Penulis sadar bahwa penelitian yang dilakukan masih jauh dari

sempurna, sehingga perlu dilengkapi dengan saran untuk penelitian

selanjutnya. Berikut ini adalah saran sebagai gambaran untuk penelitian

selanjutnya.

1.

Dalam Class SODA dapat ditambahkan Library

Data Access

untuk

semakin memperbanyak jenis DBMS yang dapat di akses.

2.

Diharapkan aplikasi yang dibangun ini tidak hanya mampu

melakukan fungsi set operasi (union, minus, intersect) antar DBMS

saja tetapi aplikasi juga mampu melakukan fungsi

query

yang

lainnya, seperti

query join

antar

table

dari

multiple

DBMS


(2)

145

DAFTAR PUSTAKA

[1] Final Committee Draft (FCD) of ISO/IEC 9075-2:2003. “BNF Grammar for

ISO/IEC 9075-2:2003 -

Database

Language SQL (SQL-2003)

SQL/Foundation. Internet :

http://savage.net.au/SQL/sql-2003-2.bnf.html

,

13 Juli 2005 [April 2011]”

[2] Larman, Craig.

Applying UML and patterns : an introduction to

object-oriented analysis dan design.

United States of America: Prentice Hall PTR,

1997.

[3] Nur RN, A Fadyaz. “Implementasi dan Analisis Simple Object

Database

Access (SODA) Pada Web Service”. S.T. Tugas Akhir, Institut Teknologi

Telkom, Bandung, 2009.

[4]

Sediyono, Eko. Teknik Kompilasi Teori dan Praktik. Yogyakarta: Penerbit

Andi Offset, 2005.

[5] Sutabri, Tata.

Analisa Sistem Informasi.

Yogyakarta: Penerbit Andi Offset,

2004.

[6] Utdirartatmo, Firrar.

Teknik Kompilasi, edisi kedua

.Yogyakarta: Penerbit

Graha Ilmu, 2005.

[7] Utdirartatmo, Firrar.

Teori Bahasa dan Otomata, edisi kedua

.Yogyakarta:

Penerbit Graha Ilmu, 2005.

[8] Wikipedia. “Bottom-up Parsing”. Internet :

http://en.wikipedia.org/wiki/Bottom-up_parsing

,

last modified on 20 April

2011 at 18:39


(3)

Jl. Cikajang Raya no 37 Antapani Bandung Flexi: 02270835566, GSM: 082128583366

Tanggal Lahir: 02-Juli-1985 Tempat Lahir: Jepara

Jenis kelamin: Laki-laki Umur: 26

Status: Menikah Email: helga.himura@gmail.com

Basic: Database dan Web Programming

Hobi: Sepakbola, Futsal, Browsing, Jalan-jalan, Nonton, Games dan Musik

Universitas: Sekolah Tinggi Teknologi Telkom (STT Telkom)

Jurusan: Teknik Informatika

IPK: 2.99

Mulai: Agustus 2002 Sampai: September 2007

Universitas: UNIKOM (Universitas Komputer Indonesia)

Jurusan: Teknik Informatika

IPK: -

Mulai: Agustus 2008 Sampai: Juli 2011

Pekerjaan Tempat Tanggal

Karyawan Kopma STT Telkom STT Telkom Bandung Tahun 2003

Freelance programmer - Tahun 2003-2010

Geladi PT. Telkom Kandatel Sukabumi Juli-Agustus 2004

IT Support PT. Telkom Divre III Jabar & Banten Oktober-Desember 2004

Perusahaan: PT. Telekomunikasi Indonesia, Tbk

Posisi: IT Support dan DBA (Database Administrator)

Unit Billing & Collection (UBC) Area III PT Telkom

Mulai: December 2004 Sampai: September 2010

Detail pekerjaan:

• mengelola data Pelanggan, Billing, Collection, dan Tunggakan di server UBC (10.64.28.28)

• menyediakan table yang berisi data di atas, untuk kebutuhan laporan harian dan bulanan UBC

• mengelola data tunggakan dan data hasil reminding call di aplikasi

• membuat dan mengelola aplikasi untuk men-support pekerjaan di UBC maupun untuk kebutuhan unit lainnya

A


(4)

Perusahaan: PT. Telekomunikasi Indonesia, Tbk

Posisi: IT Support FBCC (Finance Billing Collection Center)

Mulai: Oktober 2010 Sampai: sekarang

Detail pekerjaan:

• anggota tim developer aplikasi faabula (reporting system standar nasional PT Telkom)

• mengelola data hasil billing, data pelanggan, data payment, dan data tunggakan pelanggan PT Telkom

• mensupport kebutuhan data FBCC

• mensupport kebutuhan data divisi atau unit lain

Produk IT yang pernah didevelop dan diaplikasikan di PT Telkom

1

Aplikasi Control CN (Credit Nota) : tahun 2004

• reformat file teks data Tel75 dari siska dan SBF20 ke format file microsoft access dan excel

• form input nominal CN harian dari CA (Collecting Agent) dan Bank Host to Host

• reporting dan monitoring laporan collection

• Teknologi : Borland Delphi dan database microsoft access

2

Aplikasi Dashboard Performance Management : tahun 2004

• reporting data billing, pelanggan, collection dan tunggakan

• Teknologi : Macromedia Coldfusion dan database Microsoft SQL Server

3

Aplikasi RATOES versi 1 : tahun 2006

• untuk kebutuhan Reminding Call via telepon

• menampilkan data order call tunggakan, data hasil call operator, data report collection dari hasil call

• Teknologi : Macromedia Coldfusion dan database Microsoft SQL Server

4

Aplikasi RATOES versi 2 : tahun 2007

• untuk kebutuhan Reminding Call via telepon

• menampilkan data order call tunggakan, data hasil call operator, data report collection dari hasil call

• Teknologi : PHP dan database Oracle

5

Aplikasi IBCMS (Integration Billing and Collection Management System) : tahun 2007

• aplikasi reporting, pengembangan dari aplikasi DashboardPM

• modul billing : reporting data hotbilling dan pascabilling, data usage telepon dan speedy, dsb

• modul collection : reporting data collection harian dan bulanan

• modul churn management : reporting data tunggakan, data retensi tunda cabut, dan data cabutan

• Teknologi : PHP dan database Oracle

6

Aplikasi Interactive SMS for Enhancement Collection : tahun 2007

• aplikasi SMS gateway

• info tagihan (telepon, speedy dan flexi Classy) via SMS ke 7003

• broadcast sms info tagihan dan data tunggakan Flexi Classy bulanan

• Teknologi : PHP dan database Oracle

7

Aplikasi Caring : tahun 2008

• aplikasi untuk mensupport program Caring (1-25) dari Unit Customer Care Divre III

• menampilkan data order call untuk operator caring, menampilkan data report hasil caring

• Teknologi : PHP dan database Oracle

8

Aplikasi PONDS (Powerful Outbond call and No more Debt customerS) : tahun 2008

• pengembangan dari aplikasi RATOES versi 2

• integrasi dengan aplikasi caring

• untuk kebutuhan Reminding Call via telepon

• menampilkan data order call tunggakan, data hasil call operator, data report collection dari hasil call


(5)

9

Aplikasi TMS (Threshold Management System) : tahun 2008

• aplikasi untuk mensupport program “Classy berasa Trendy” UBC Divre III

• menampilkan data pemakaian classy bulan berjalan agar tidak melebihi quota yang diinginkan

pelanggan

• member : pelanggan flexi classy (karyawan Telkom)

• Teknologi : PHP dan database Oracle

10

Aplikasi SINCAN (SistemMonitoring Collecting Agent) : tahun 2009

• untuk kebutuhan monitoring CA (Collecting Agent)

• menampilkan data CA yang aktif dan tidak aktif, menampilkan data collection per CA

• Teknologi : PHP, Ajax dan database (mySQL dan Oracle)

11

Aplikasi SMS Reminder tagihan Speedy : tahun 2009

• aplikasi SMS gateway

• broadcast sms info tagihan dan data tunggakan Speedy ke nomor Flexi Classy pelanggan

• Teknologi : PHP, Ajax dan database (mySQL dan Oracle)

12

Aplikasi FAABULA: tahun 2010

• http://faabula.telkom.co.id/

• aplikasi reporting UBC All Regional

• modul billing : reporting data hotbilling dan pascabilling, FBil, hasil proses billing, quadran speedy, dsb

• modul collection : reporting data collection harian dan bulanan

• modul churn management : data tunggakan, data retensi tunda cabut, dan data cabutan

• modul sales : reporting data sales

• Teknologi : PHP, Ajax dan database (mySQL dan Oracle)

Prestasi bersama team inovasi UBC:

• Winner The Best Strategic Innovation 2006 (aplikasi IBCMS)

• Winner The Best Strategic Innovation 2nd quarter 2007 (Interactive SMS for Enhancement Collection)

• Winner The Best Strategic Innovation (Production and Performance Tools)

Pengetahuan di Telkom:

• Struktur Organisasi Lama (per Divre) dan Baru (per DCS)

• Struktur database siska

• Struktur database i-siska (aplikasi infusion PL)

• Bisa menggunakan aplikasi TREMS, siska, i-siska, SBF20, CCF

Kemampuan di bidang Level

! " #

$ % " &' (

$ & )&& $ *+, -) "

$ (. ( $/(.


(6)

Pengalaman organinasi

2003 – 2004 Panitia kegiatan MABIM ( Masa Bimbingan ) Jurusan Teknik Informatika 2003

2003 – 2005 Anggota dan pengurus UKM ( Unit Kegiatan Mahasiswa ) Kopma STT Telkom

Pelatihan dan Seminar

Pelatihan Macromedia Cold Fusion di PT Telkom Divre I Pelatihan Oracle di UBC Area III

Pelatihan Aplikasi TREMS di UBC Area III Pelatihan SAP Fundamental STT Telkom