• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
155
0
0

Teks penuh

(1)

PENERAPAN METODE SODA

(SIMPLE OBJECT DATABASE ACCESS)

PADA APLIKASI BERBASIS WEB

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

ABSTRACT

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

penguji dalam sidang skripsi ini. Terimakasih atas masukan dan

saran untuk perbaikan skripsi ini.

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

(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

BAB I

PENDAHULUAN

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

(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

(9)

3

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

(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)

5

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

(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

(13)

7

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

(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,

(15)

9

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

(17)

11

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.

(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

(19)

13

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

(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

(21)

15

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

(23)

17

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

(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 queryselect 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)

19

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 queryselect 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

(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

(27)

21

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)

23

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)

(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

(31)

25

Jika string kosong dikeluarkan , akan

diperoleh positiveclosure

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

(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

(33)

27

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)

29

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

(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

(37)

31

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)

33

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).

(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)

35

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

(43)

37

BAB III

ANALISA DAN PERANCANGAN SISTEM

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

(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

(45)

39

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

(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)

41

- 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

(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>

3 <term> ::= <lroundbrackets>

<expression>

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

{ <alphabet> | <numeral> }

(49)

43

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)

45

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)

47

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

(55)

49

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,

Keterangan simbol yang dipakai sebagai simbol masukan dapat dilihat pada

tabel 3.2 berikut ini.

Tabel 3.2 Keterangan simbol masukan

(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

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

(57)

51

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

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

(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

(59)

53

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

(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)

55

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

(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

Gambar

Tabel 3.3 Tabel transisi DFA (bagian 1)
Tabel 3.4 Tabel transisi DFA (bagian 2)
Gambar 3.15 DFA untuk scanner pada aplikasi SODA Data Merger
Gambar 3.18 Diagram Use Case Aplikasi SODA Data Merger
+7

Referensi

Dokumen terkait

Manfaat dari penelitian ini adalah aplikasi OLAP yang dibangun diharapkan dapat menampilkan ringkasan data tanaman hortikultura sehingga membantu pengguna dalam memperoleh

Berdasarkan hasil pengujian aplikasi yang dilakukan maka dapat disimpulkan bahwa perangkat lunak yang dibangun sudah berjalan sesuai dengan yang diharapkan baik

Kesimpulan yang dapat diambil dari pembahasan ini adalah telah dibangun sebuah aplikasi perangkat lunak inventarisasi yang mampu memfasilitasi petugas admin kantor untuk

Berdasarkan kebutuhan sistem secara umum, perangkat lunak yang akan dibangun harus memenuhi kebutuhan sebagai berikut: harus dapat menghubungkan aplikasi dengan

Hasil pengujian black box dan kuesioner yang telah dilakukan, dapat disimpulkan bahwa aplikasi yang dibangun dapat diterima pengguna, berfungsi dengan baik, membantu

Perangkat lunak website yang dirancang oleh peneliti dapat membantu pihak pengguna dalam hal pelanggan bisa melihat transaksi laundry untuk mengetahui apakah pakaian atau kainnya

Berdasarkan hasil penulisan skripsi dapat disimpulkan bahwa, telah berhasil membuat perangkat lunak Sistem Informasi Arsip Digital yang dapat membantu dalam pengolahan data arsip

Proses bisnis usulan permintaan kebutuhan yaitu, bagian mechanical electrical melakukan penambahan data barang yang disertakan dalam permintaan, pengguna dapat memilih barang