BAB I PENDAHULUAN 1.1 Latar Belakang Basis data merupakan kumpulan data yang berisi informasi yang sesuai bagi sebuah institusi/perusahaan (Silberschatz, 2002). Data-data yang disimpan dalam basis data dapat memberikan informasi yang dibutuhkan bagi orang-orang dalam institusi tersebut. Untuk dapat mengakses dan mengolah basis data, dibutuhkan suatu sistem yang disebut sistem manajemen basis data atau Database Management System (DBMS). Sistem manajemen basis data diperkenalkan pada tahun 1960 dan memiliki tujuan utama untuk menyediakan cara menyimpan dan mengambil informasi basis data secara mudah dan efisien (Silberschatz, 2002). Contoh DBMS adalah dBase, Microsoft Access, LibreOffice Base. Seiring pesatnya perkembangan teknologi informasi, basis data menjadi semakin besar dan kompleks sehingga DBMS menjadi tidak cukup cepat dalam membaca data. Pada tahun 1970 diperkenalkan RDBMS, singkatan dari Relational Database Management System. Contohnya adalah MySQL, MariaDB, SQLite. RDBMS mendukung relasional antar tabel menggunakan primary key, foreign key, dan index. Hal ini menjadikan RDBMS lebih cepat dalam menyimpan dan mengambil data pada basis data. Hingga kini RDBMS paling banyak digunakan karena mampu mengolah data yang besar dan kompleks. RDBMS mengunakan bahasa standar (formal language) terstruktur untuk mengolah basis data yang disebut Structured Query Language (SQL). SQL dikembangkan oleh Donald D. Chamberlin dan Raymond F. Boyce pada pertengahan tahun 1970. Dengan menggunakan perintah-perintah (query) SQL, pengguna dapat melakukan operasi-operasi tertentu pada basis data, seperti menampilkan, menambah, mengubah, dan menghapus data. Namun, tidak banyak orang memahami sintaks query SQL dan struktur basis data dan tidak banyak orang memiliki waktu untuk mempelajarinya (Gaori Rao, 2010). Agar pengguna (khususnya end user) dapat mengakses basis data, maka digunakanlah antar muka khusus berupa form (form-based interface). Dengan antarmuka form, end user dapat mengakses basis data tanpa perlu tahu sintaks SQL atau mempelajari skema basis data di dalamnya. 1 2 Seiring kemajuan ilmu kecerdasan buatan, pengolahan bahasa alami (Natural Language Processing/NLP) mulai banyak diaplikasikan pada berbagai bidang, salah satunya adalah pada pengolahan basis data. NLP merupakan bidang ilmu kecerdasan buatan yang secara khusus mempelajari bagaimana mesin/komputer mampu “memahami” bahasa alami manusia (Bahasa Inggris, Bahasa Indonesia, dsb.) dengan memberlakukan berbagai macam pendekatan (Androutsopoulos, 1995). Dengan mengaplikasikan NLP pada pengolahan basis data, pencarian data dapat dilakukan hanya dengan menggunakan sebuah perintah tertulis dalam bahasa alami. Konsep ini dikenal dengan istilah Natural Language Interface to Database (NLIDB). NLIDB adalah suatu antarmuka yang mampu mengolah bahasa alami manusia menjadi SQL shingga dapat dieksekusi pada suatu database tertentu yang diperuntukkan (Androutsopoulos, 1995). Hadirnya NLIDB memberikan opsi lain bagi end user untuk mengakses basis data selain pengisian form pada antarmuka berbasis form. NLIDB pertama kali dikembangkan pada tahun 60 hingga 70an. NLIDB yang terkenal terbaik pada saat itu adalah LUNAR, yang merupakan antarmuka bahasa alami untuk mengakses basis data analisis kimia bebatuan di Bulan. Beberapa NLIDB lainnya yang populer diantaranya adalah: INTELLECT, LOQUI, PRECISE, MASQUE, dll. Kebanyakan NLIDB tersebut menggunakan antarmuka Bahasa Inggris ke bahasa SQL. Di Indonesia sendiri, penelitian mengenai NLIDB untuk Bahasa Indonesia telah dilakukan sejak lebih dari sedekade terakhir. Andiyani (2002) menerapkan query Bahasa Indonesia untuk basis data akademik, Hartati dan Zuliarso (2008) dan Wibisono (2013) menerapkan aturan produksi pada pengolahan bahasa alami untuk query basis data XML. Publikasi NLIDB Bahasa Indonesia dari tahun ke tahun mengalami pasang surut. Hal ini disebabkan karena kompleksnya bahasa/linguistik, seperti gramatikal, morfologi (pembentukan kata), sintaksis, semantik, pragmatik, serta ambiguitas (kerancuan) atau makna ganda dari suatu kata atau kalimat. Hingga saat ini, ambiguitas memang menjadi permasalahan utama dalam NLP yang masih sulit ditangani (Pusphak, 2010). Dengan cukup kompleksnya permasalahan dalam bidang NLP, tentu saja pengolahan NLIDB dengan menggunakan pendekatan ataupun aturan produksi 3 dengan template tertentu seperti yang telah dilakukan pada penelitian-penelitian berbahasa Indonesia sebelumnya, akan lebih sulit untuk menangani kesalahankesalahan struktural maupun makna. Oleh karena itu, penulis memberikan solusi berupa fitur pembangkitan query alternatif yang dapat memberikan opsi query yang lebih benar. Pembangkitan query alternatif ini akan mengurangi risiko kesalahan output sistem dalam mentranslasikan query Bahasa Indonesia menjadi SQL. Sebelum ditranslasikan, terlebih dahulu query input dianalisis menggunakan kaidah-kaidah sintaksis dan semantik. Analisis sintaksis memastikan struktur penulisan perintah yang diinputkan user sesuai dengan aturan gramatikal/ ketatabahasaan yang benar. Sedangkan, analisis semantik memetakan makna lain yang terkandung dalam suatu kata sehingga arah translasi SQL tidak jauh dari basis data yang digunakan. Penelitian ini mengangkat ruang lingkup (domain) basis data administrasi arsip surat yang digeneralisasi (secara umum digunakan oleh sebagian besar instansi). Basis data arsip surat ini dipilih mengingat sistem pengarsipan surat bagi instansi merupakan hal yang sangat penting. Banyak data yang tersimpan sehingga banyak informasi penting yang bisa didapatkan oleh instansi tersebut dan orang-orang di dalamnya, seperti sekretaris, pegawai administrasi surat, tata usaha, dan lainnya. 1.2 Rumusan Masalah Adapun rumusan masalah yang diangkat dalam penelitian ini adalah sebagai berikut. 1. Bagaimana tahapan dan metode pengembangan NLIDB Bahasa Indonesia dengan kaidah sintaksis dan semantik agar mampu mentranslasikan query input menjadi SQL? 2. Bagaimana peranan fitur pembangkitan query alternatif pada sistem NLIDB? 1.3 Batasan Masalah Terdapat beberapa hal yang digunakan sebagai batasan permasalahan dalam penelitian ini, yakni: 4 1. Bahasa alami yang digunakan pada penelitian ini dibatasi pada Bahasa Indonesia baku yang sesuai dengan Ejaan Yang Disempurnakan (EYD). 2. Bahasa alami yang diolah menjadi format SQL dalam penelitian ini dibatasi pada expression SELECT, FROM, dan WHERE, karena ketiga expression ini dapat menjadi fungsi yang bisa mewakili fungsi lainnya serta merupakan expression dasar yang paling sering digunakan. 3. Perintah bahasa alami yang digunakan dibatasi pada perintah untuk menampilkan/menyeleksi data karena perintah ini dapat digunakan oleh semua tingkatan user. Berbeda dengan perintah penambahan (insert), pengubahan (update), maupun penghapusan (delete) yang umumnya hanya bisa dilakukan oleh golongan user tertentu saja. 4. Bahasa alami yang akan diolah menjadi SQL berupa sebuah kalimat perintah sederhana (kalimat diawali dengan kata kerja), baik perintah bersyarat ataupun tidak, tidak berupa kalimat bertingkat/majemuk, serta berpola kalimat inversi (predikat mendahului subjek). 5. Semantik yang digunakan pada penelitian ini terbatas pada domain arsip surat. Kata-kata yang merepresentasikan data-data pada basis data surat dibuatkan daftar padanan katanya untuk dijadikan rule semantik, semisal “tanggal” dapat direpresentasikan dengan kata “pada”, alamat direpresentasikan dengan kata “dari”, “tujuan”, “pengirim”, dan lain sebagainya. 1.4 Tujuan Penelitian Tujuan dari penelitian ini adalah sebagai berikut. 1. Mengetahui tahapan dan metode pengembangan NLIDB Bahasa Indonesia menggunakan kaidah sintaksis dan semantik agar sistem mampu mentranslasikan query input menjadi SQL. 2. Mengetahui peranan fitur pembangkitan query alternatif pada sistem NLIDB. 1.5 Manfaat Penelitian Manfaat yang bisa didapatkan dari penelitian ini adalah: 5 1. Membantu end user yang awam dengan bahasa SQL untuk dapat memperoleh data surat pada basis data dengan hanya menginputkan perintah dalam Bahasa Indonesia. 1.6 Metodologi Penelitian Pada subbab metodelogi penelitian ini akan dijelaskan langkah-langkah dalam penelitian. Adapun subbab bahasan yang akan dijelaskan adalah desain penelitian, pengumpulan data, persiapan query input, dan metode yang digunakan. 1.6.1 Desain Penelitian Penelitian ini dilakukan untuk mengetahui bagaimana langkah-langkah dalam mentranslasikan suatu perintah Bahasa Indonesia menjadi query SQL sehingga dapat mengakses basis data untuk mendapatkan data-data tertentu yang diinginkan. Perintah bahasa alami yang diperlukan adalah perintah yang sesuai aturan EYD yang benar. Dalam proses pengolahan query bahasa alami tersebut akan diarahkan menuju output yang diharapkan dengan memberikan opsi query alternatif jika terdapat kesalahan baik pada pengejaan kata, struktur kalimat, maupun maknanya. Pendekatan yang digunakan adalah dengan penerapan kaidah-kaidah sintaksis dan semantik. 1.6.2 Pengumpulan Data Data-data yang diperlukan dalam penelitian ini meliputi data kearsipan surat masuk dan surat keluar, kamus kata (lexicon), daftar penggolongan kata, aturan gramatikal, dan beberapa daftar sinonim kata. Semua data ini dikumpulkan dari berbagai sumber literatur dan internet. Khusus data arsip surat diambil sampel sejumlah 60 data yang terdiri dari 30 surat masuk dan 30 surat keluar yang bersumber dari arsip surat Jurusan Ilmu Komputer Universitas Udayana pada bulan Januari, September, dan Oktober tahun 2015. Pada kata-kata tertentu, dilakukan penggolongan kata yakni sebagai kata kunci (keyword), column word, operator, stopword serta unknown word agar mempermudah proses pengolahan. Sedangkan, grammar yang disusun berupa aturan-aturan penggabungan kata/frase menjadi kelompok frase ataupun kalimat. Grammar ini dituliskan dalam format Chomsky Normal Form. Semua aturan 6 gramatikal yang digunakan dikhususkan untuk kalimat perintah, yakni dengan pola kalimat inversi. 1.6.3 Persiapan Query Input Query-query input yang akan diujikan pada sistem disusun atas dasar perintah-perintah yang lumrah digunakan untuk mencari data surat di berbagai instansi. Semua query tersebut diterjemahkan ke dalam format SQL secara manual oleh penulis untuk kemudian dijadikan sebagai output goal yang harus dipenuhi oleh sistem. Keberhasilan sistem menerjemahkan query bahasa Indonesia menjadi SQL dapat diketahui dengan mengacu pada kesesuaiannya terhadap goal SQL tersebut. 1.6.4 Metode yang Digunakan Metode-metode yang digunakan pada sistem NLIDB Bahasa Indonesia ini diantaranya: tokenizing, stemming, spell correction, CYK language understanding, syntactic parsing, semantic mapping, dan beberapa metode tertentu yang dikembangkan sendiri. Tokenizing, stemming, dan spell correction digunakan saat mengolah query input untuk kemudian di-parsing agar diketahui kesesuaian query input terhadap aturan gramatikal Bahasa Indonesia yang sudah disusun. Hasil parsing kemudian dijadikan acuan untuk mengelompokkan kata-kata dan menyusun kombinasi keyword-value sehingga membentuk logical form/logic form (pseudo SQL). Terakhir logic form akan ditranslasikan menjadi SQL dan dieksekusi pada DBMS untuk mendapatkan data dari basis data. Keluaran dari beberapa metode di atas akan ditampilkan oleh sistem sebagai informasi agar user mengetahui arah translasi query input ke SQL yang dilakukan sistem. Begitupun dengan data pada basis data yang berhasil di-retrieve akan ditampilkan juga sebagai output dari sistem dengan bentuk tabel.