KOMPONEN VALIDASI INPUT DATA MENGGUNAKAN EKSPRESI REGULAR DATA

Download Ekspresi regular (regex) merupakan bentuk ekspresi dari bahasa regular yang merupakan bahasa sederhana (berada level terbawah) ... Implemen...

2 downloads 487 Views 560KB Size
Tugas Akhir - 2006

KOMPONEN VALIDASI INPUT DATA MENGGUNAKAN EKSPRESI REGULAR DATA INPUT VALIDATION COMPONENT USING REGULAR EXPRESSION Trisna¹, -² ¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom Abstrak Ekspresi regular (regex) merupakan bentuk ekspresi dari bahasa regular yang merupakan bahasa sederhana (berada level terbawah) pada hierarki chomsky. Ekspresi regular dibentuk dari karakter-karakter khusus yang disebut metakarakter. Dengan aturan/definisi yang dimiliki tiap metakarakter, pola regex dapat menggantikan belasan hingga puluhan kode program dengan sebuah pola. Tugas akhir ini menggunakan regex untuk menyelesaikan masalah validasi input data. Hasil keluaran REMaskEdit dapat bernilai valid atau tidak valid berdasarkan spesifikasi tertentu. Proses validasi dilakukan dengan melakukan konversi ekspresi regular hingga didapat deterministik finite automata (DFA), bentuk DFA inilah yang akan dijadikan sebagai diagram transisi untuk melakukan validasi input data. Implementasi validasi input data diterapkan pada komponen REMaskEdit yang merupakan turunan dari TCustomEdit pada Borland Delphi 7. Pengujian komponen dilakukan dengan cara melakukan validasi data berupa: NIM (Nomor Induk Mahasiswa), tanggal lahir, kode pos, nomor telepon dan alamat email. Semua data tersebut ada pada kasus uji form input data mahasiswa. Langkah selanjutnya adalah melakukan perbandingan kemampuan REMaskEdit dengan komponen standar Delphi yaitu EditMask dalam hal validasi input data. Pada akhirnya dengan kelebihan yang dimilikinya, REMaskEdit dapat menjadi alternatif lain selain EditMask. Kata Kunci : validasi input data, ekspresi regular, komponen, DFA

Abstract Regular exspression (regex) is an expression of a regular language which is a simple language on chomsky ‘s hierarchy. Regular Regular expression is formed by special characters known as metacharacter. Regex pattern can replace a long source code with a simple pattern because it has rule and definition for each metacharacter. This final project use regex to handle data input validation problems. Result of REMAskEdit is valid or not valid based on a certain specification. Validation process convert regular expression until a deteministic finite automata (DFA) is obtained, DFA will used as transsition diagram for data input validations. Data input validation is implemented in a REMaskEdit component, it’s an inheritance of TCustomEdit class in Borland Delphi 7. The component are tested by validating some data, such as : NIM (student id), birthdate, postal code, telephone number, and e-mail address. The data used are taken from test case of student data input form. The next step is comparing the capability of REMaskEdit with EditMask, a standart component in Borland Delphi 7. Based on its capability, REMaskEdit can be used as another alternative beside EditMask. Keywords : data input validation, regular expression, component, DFA

Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org)

Program Studi S1 Teknik Informatika

Tugas Akhir - 2006

BAB I PENDAHULUAN 1.1 Latar Belakang Ekspresi regular (regex) merupakan bentuk ekspresi dari bahasa regular yang merupakan bahasa sederhana (berada di level terendah) pada hirarki chomsky. Pola regex pada dasarnya sama dengan string biasa, yang membedakan regex dengan string biasa adalah terdapat karakter-karakter khusus yang disebut metakarakter. Metakarakter inilah salah satu faktor yang membuat regex lebih ampuh dalam pengolahan string atau text. Dengan aturan/ definisi yang dimiliki tiap metakarakter dapat dibentuk suatu pola regex. Pola regex ringkas dan dapat menggantikan belasan hingga puluhan kode program dengan sebuah pola. Dilihat dari kemampuan dalam pengolahan text yang dimilikinya , regex dapat digunakan untuk beberapa hal diantaranya : 1. Mencari (searching) dari suatu file yang berisi text. 2. Melakukan validasi input data. 3. Melakukan perubahan (replace) pada code tertentu pada suatu source code 4. Menampilkan semua file di file system komputer dan diinginkan penyaringan terhadap file tertentu saja, misal hanya file yang berisi text application Semua kegunaan diatas merupakan tantangan yang harus dipecahkan dalam pemograman. Semuanya dapat diselesaikan dengan suatu bahasa yang mendukung proses kondisional dan manipulasi terhadap string. Tapi pekerjaan akan menjadi sangat kompleks untuk menghasilkan solusi. Dengan menggunakan ekspresi regular, setiap persoalan diatas diselesaikan menggunakan pola

tertentu berupa susunan

string singkat. Tugas akhir ini akan menyelesaikan persoalan untuk validasi input data dengan menerapkan pada suatu komponen di Borland Delphi 7, selanjutnya di dokumen ini disebut

komponen

REMaskEdit.

Pengujian

REMaskEdit

dilakukan

untuk

penanganan validasi input data pada kasus uji form input data mahasiswa. Tools untuk validasi input yang ada saat ini berupa MaskEdit pada Borland Delphi 7, mask disini berupa mask standar yang memiliki kemampuan terbatas untuk kasus validasi input data. Untuk itu kemampuan yang ada pada regex akan dianalisa sesuai

1

PDF created with FinePrint pdfFactory Pro trial version http://www.softwarelabs.com

Fakultas Teknik Informatika

Program Studi S1 Teknik Informatika

Tugas Akhir - 2006

BAB I Pendahuluan

2

kebutuhan untuk menyelesaikan persoalan seputar validasi input data. Pada akhirnya REMaskEdit dapat menjadi alternatif lain selain EditMask untuk fasilitas validasi input data.

1.2 Perumusan Masalah Permasalahan yang dihadapi dalam pengembangan Tugas Akhir ini adalah: 1. Bagaimana proses suatu ekspresi regular dapat melakukan validasi input berupa string, sehingga dapat memutuskan string tersebut diterima atau ditolak? 2. Bagaimana mendesain dan mengimplementasikan komponen untuk fasilitas validasi input data? 3. Apa kelebihan yang bisa dihasilkan pengolahan string untuk validasi input dengan menggunakan regex dibandingkan dengan tidak menggunakan regex?

1.3 Tujuan Penelitian Yang menjadi tujuan dari tugas akhir ini adalah: 1. Menganalisa rule metakarakter yang membentuk ekspresi regular. 2. Membangun suatu komponen validasi input data berdasarkan hasil analisa. 3. Membandingkan validasi input string menggunakan regex dengan validasi input tanpa menggunakan regex. Parameter pembanding berupa

kemampuan

penanganan validasi input data untuk mendapatkan hasil validasi yang lebih spesifik. 1.4 Batasan Masalah Agar pembahasan tidak meluas, maka pada tugas akhir ini akan dibatasi sebagai berikut : 1. Permasalahan yang dipecahkan dengan regex hanya validasi input data. 2. Data input berupa ekspresi regular dan string uji dari sisi programmer. 3. Kasus uji adalah validasi input data pada form input data mahasiswa berupa NIM (Nomor Induk Mahasiswa), tanggal lahir, kode pos, nomor telepon dan alamat email.

PDF created with FinePrint pdfFactory Pro trial version http://www.softwarelabs.com

Fakultas Teknik Informatika

Program Studi S1 Teknik Informatika

Tugas Akhir - 2006

BAB I Pendahuluan

3

4. Berdasarkan analisis terhadap kasus uji berupa form input data mahasiswa, metakarakter yang ditangani adalah, ’-’, ’[’, ’]’, ’(’, ’)’, ’{’, ’}’, ‘+’, ‘?’, ‘*’, ‘|’, ‘\d’, ‘\w’, ‘\x’, ’,’(koma) , alphanumerik 5. Implementasi diterapkan sebagai komponen pada Borland Delphi 7. 6. Komponen validasi input yang dibuat akan dibandingkan dengan MaskEdit standar yang ada di Borland Delphi 7.

1.5 Metodologi Metodologi yang digunakan dalam pengerjaan tugas akhir ini adalah sebagai berikut : 1. Studi literatur : mempelajari konsep ekspresi regular (regex), kemampuan yang dimiliki oleh regex (dalam hal ini validasi input data), metakarakter yang dimiliki regex secara konsep, pembentukan NDFA (Non Deterministik Finite Automata) dari suatu ekspresi regular hingga penyederhanaan sehingga dapat menghasilkan DFA (Deterministik Finite Automata). 2. Analisa dan perancangan meliputi : analisa kebutuhan perangkat lunak, analisa kebutuhan fungsional, analisa rule metakarakter yang akan digunakan, analisa aturan produksi dari metakarakter, analisa pengguna, analisa masukan dan keluaran, mendesain diagram aliran data dan spesifikasi proses untuk pembangunan komponen REMaskEdit. 3. Implementasi hasil rancangan dibuat dalam bentuk komponen REMaskEdit pada Borland Delphi 7. 4. Pengujian, meliputi pengujian hasil implementasi berupa komponen REMaskEdit terhadap

aplikasi

form

input

data

mahasiswa.

Selanjutnya

dilakukan

perbandingan komponen REMaskEdit dengan komponen MaskEdit standar yang ada di Borland Delphi 7. 5. Penarikan kesimpulan dan saran.

PDF created with FinePrint pdfFactory Pro trial version http://www.softwarelabs.com

Fakultas Teknik Informatika

Program Studi S1 Teknik Informatika

Tugas Akhir - 2006

BAB I Pendahuluan

4

1.6 Sistematika Penulisan Tugas Akhir Tugas Akhir ini disusun berdasarkan sistematika sebagai berikut: BAB I

: Pendahuluan Pembahasan latar belakang, tujuan, perumusan masalah, pembatasan masalah, metodologi pemecahan masalah, dan sistematika penulisan.

BAB II

: Dasar Teori Membahas teori yang mendukung penyusunan tugas akhir ini yaitu teori ekspresi regular, Nondeterministk Finite Automata (NDFA)

dan

Deterministik

Finite

Automata

(DFA),

pembahasan tentang komponen Delphi dan kajian tentang EditMask standar yang ada pada Borland Delphi 7. BAB III

: Analisa dan Perancangan Sistem Analisa kebutuhan perangkat lunak,

analisa kebutuhan

fungsional, analisa rule metakarakter yang akan digunakan, analisa aturan produksi, analisa pengguna, analisa masukan dan keluaran yang terjadi pada sistem, mendesain diagram aliran data dan spesifikasi proses sistem yang akan dibangun. BAB IV

: Implementasi dan Pengujian Sistem Membangun komponen REMaskEdit sesuai perancangan, melakukan

pengujian,

melakukan

perbandingan

dengan

EditMask dan menganalisa hasil pengujian. BAB V

: Kesimpulan dan Saran Berisi kesimpulan dan saran pengembangan lebih lanjut dari komponen yang dibangun.

PDF created with FinePrint pdfFactory Pro trial version http://www.softwarelabs.com

Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org)

Program Studi S1 Teknik Informatika

Tugas Akhir - 2006

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan Kesimpulan yang bisa diambil dengan dibangunnya Komponen Validasi Input Data Menggunakan Ekspresi Regular ini adalah : 1. Komponen REMaskEdit telah berhasil dibuat sesuai dengan spesifikasi yang telah ditetapkan. 2. REMaskEdit mampu melakukan validasi sesuai pola ekspresi regular, dimana pola ekspresi regular tergantung pada aturan metakarakternya. 3. Pengubahan pola ekspresi regular dapat ditangani secara fleksibel karena disimpan pada property regex di komponen REMaskEdit. 4. REMaskEdit tidak melakukan proses pengubahan aturan metakarakter yang membentuk pola ekspresi regular. 5. REMaskEdit mampu melakukan validasi input data untuk mendapatkan hasil validasi yang lebih spesifik dibandingkan dengan EditMask.

5.2

Saran Saran yang diusulkan untuk pengembangan dan perbaikan perangkat lunak ini

adalah : 1. Kemampuan validasi data REMaskEdit dapat dikembangkan untuk menangani pola metakarakter yang lebih beragam, hal ini dilakukan dengan cara menambahkan fungsi yang mampu melakukan perubahan aturan metakarakter sehingga lebih fleksibel tanpa harus mengubah source code. 2. Pengecekan validasi string uji dapat dilakukan untuk setiap kali pengisian karakter string uji (pada event OnChange). 3. Ekspresi regular dapat diimplementasikan pada kasus lain seperti : searching file dan replace code tertentu pada source code.

47

PDF created with FinePrint pdfFactory Pro trial version http://www.softwarelabs.com

Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org)

Program Studi S1 Teknik Informatika

Tugas Akhir - 2006

DAFTAR PUSTAKA

[1]

Bambang Harianto, Ir., MT., “Teori Bahasa, Otomata, dan Komputasi serta penerapannya”, Informatika Bandung, Bandung, April 2004.

[2]

Ben Forta, “Sams Teach Yourself Regular Expressions in 10 Minutes”, Sams Publishing, February 28, 2004

[3]

Carroll, John dan Darrel Long, “Theory of automata with Introduction to Formal Language ”

[4]

Djoko Susilo, ”Perancangan dan Implementasi Komponen Visual pada Delphi”, Graha Ilmu, 2004

[5]

Firrar Utdirartatmo, “Teori Bahasa dan Otomata”, J&J Learning Yogyakarta, 2001

[6]

J.Glenn Brookshear, “Theory of Computation Formal Language, Automata, and Complexity”, The Bejamin/ Cummings Publishing Company, Inc, 1989

[7]

Jeffrey E.F. Friedl, “Mastering Regular Expressions”, O'Reilly & Associates Inc., Sebastopol CA, December 1998

[8]

Martin, John C., ”Introduction to Language, and Theory of Computation”, McGraw-Hill Book Co, Singapore: 1991

[9]

Marco Cantu, “Mastering Delphi 7”, Sybex, 2003

[10] Nathan Good, “Regular Expression Recipes” [11] Steven Haryanto, “Regex Kumpulan Resep Pemograman”, Dian Rakyat, Jakarta, April 2004 [12] Wahana komputer, ”Panduan Praktis Pemograman Borland Delphi 7.0”, Penerbit Andi dan Wahana Komputer, Semarang, 2003 [13] Delphi Help, “TEditMask type”, Borland Delphi 7

PDF created with FinePrint pdfFactory Pro trial version http://www.softwarelabs.com

Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org)

Program Studi S1 Teknik Informatika