BAB 1 PENDAHULUAN 1.1 Latar Belakang Pada era sekarang ini, teknologi penerapan sistem basis data sudah berkembang dengan sangat pesat. Sistem basis data merupakan salah satu komponen yang penting dan digunakan di hampir setiap area dari keseluruhan cabang ilmu komputer. Sudah menjadi kegiatan yang umum dijumpai di masyarakat untuk menggunakan fasilitas-fasilitas komunikasi yang ada menggunakan media Internet seperti menulis e-mail, posting pada forum diskusi di web, hingga bahkan menggunakan telepon genggam untuk chatting menggunakan instant messenger yang sebenarnya secara tidak langsung menggunakan sistem basis data. Sejarah sistem basis data sangat kaya. Bahkan sudah ada sejak dahulu pada jaman kuno, pasti selalu ada kebutuhan akan kemampuan untuk menyimpan, memperoleh maupun mengolah informasi. Sistem basis data modern dimulai sekitar tahun 1960-an, ketika komputer pertama ditemukan. Pada 1970, Edgar Frank Codd mempublikasikan paper-nya yang berjudul “A Relational Model of Data for Large Shared Data Banks”, yang menjadi titik balik yang besar bagi teori basis data. Codd menawarkan aljabar sebagai dasar dari bahasa query basis data. Selayaknya pada setiap aljabar, ada beberapa operator primitif dan ada juga yang merupakan operator turunan. Ada 6 operator primitif dari aljabar Codd, yaitu Selection, Projection, Cartesian product, Union, Set difference dan Rename. Sedangkan operator turunannya adalah Intersection, Division, dan Natural join. 1 2 Structured Query Language (SQL), dengan berdasarkan pada metode aljabar relasional yang didefinisikan oleh E. F. Codd tersebut, dengan cepat menjadi bahasa standar untuk query dan manajemen basis data. SQL merupakan salah satu pakem standar yang mendukung banyak Relational Database Management Systems (RDBMS) yang umum dijumpai sekarang ini. SQL sebagai bahasa yang berbasiskan dari teori aljabar relasional tersebut juga mewarisi beberapa fungsi dari operator-operator yang ada. Namun untuk penggunaan operator Division, belum ada sebuah solusi yang diberikan oleh pihak SQL standarts committee (pihak pengembang yang bertanggung jawab atas standarstandar bagi SQL) untuk menggunakan sebuah format sintaksis yang sudah terstandarisasi, baik dari segi metode penggunaan maupun algoritma yang ada untuk menjawab permasalahan tersebut. Kasus-kasus operasi Division sangat umum dijumpai dan sering kali muncul pada query-query yang digunakan untuk menyelesaikan permasalahan sehari-hari. Namun, penyelesaian yang ada sekarang ini atau solusi sementara yang digunakan adalah dengan menggunakan kombinasi dari berbagai operator-operator yang sudah ada sebelumnya dengan metode masing-masing yang berbeda-beda. Penyelesaian dengan metode yang berbeda-beda tersebut sangat riskan untuk diterapkan pada beberapa kasus-kasus tertentu karena mungkin saja mengembalikan hasil yang justru tidak sesuai. Dari segi kinerja pun juga dinilai sangat buruk karena kebanyakan metode yang ada tersebut memerlukan waktu proses yang lama, terlebih lagi akan masalah dari kompleksitas query yang dihasilkan sehingga membuat penyelesaian untuk masalah relational Division ini menjadi tidak efektif dan efisien. 3 1.2 Ruang Lingkup Untuk memfokuskan karya ilmiah ini akan dibatasi pada hal-hal berikut ini: 1. Kajian yang akan dilakukan adalah penggunaan operator Division pada SQL. 2. Algoritma yang akan dirancang untuk mendapatkan hasil yang sesuai dengan yang diharapkan pada operator Division. 3. Mengimplementasikan atau menerapkan algoritma tersebut kepada salah satu engine RDBMS, yaitu SQLite yang menggunakan bahasa pemrograman C. 1.3 Perumusan Masalah Operator Division belum didukung di SQL standar, oleh karena itu operasi Division harus dilakukan dengan membuat query SQL yang mengandung subquery. 1.4 Tujuan dan Manfaat Tujuan dari penelitian ini adalah: 1. Menganalisis operator Division pada aljabar relasional dan solusi-solusi yang telah dibuat para peneliti atau praktisi yang telah ada. 2. Merancang algoritma operator Division pada SQL. 3. Menerapkan rancangan algoritma dengan menggunakan yang telah dirancang dan mengujinya. 4. Membuat rekomendasi terhadap organisasi SQL (SQL.org) untuk menerapkan rancangan tersebut. 4 Manfaat dari penelitian ini adalah: 1. Mempersingkat statement SQL untuk mendapatkan hasil operasi Aljabar Relasional untuk operator Division. 2. Mendapatkan alternatif lain query SQL yang dapat menghasilkan operasi Division. 3. Memperkaya standar query SQL (Structure Query Language) 1.5 Metodologi Penelitian Metodologi yang digunakan untuk penulisan ini adalah : • Pengumpulan Data Melakukan pengumpulan data dengan cara mencari informasi melalui studi pustaka, internet atau website, dan forum-forum mengenai topik yang dibahas. Informasi tersebut dapat menjadi sumber referensi bagi pembuatan skripsi sesuai topik yang dibahas. • Analisis Algoritma Operator Division Melakukan analisis mengenai algoritma operator Division berdasarkan data-data yang telah dikumpulkan pada tahap pengumpulan data. • Perancangan Solusi Perancangan query SQL untuk operator Division dengan menambahkan sintaks baru di SQL berdasarkan rancangan algoritma yang dibuat untuk menyelesaikan masalah pada operasi Division. 5 • Implementasi dan Pengujian Solusi ¾ Melakukan kodifikasi operator Division pada SQLite yang menggunakan bahasa pemrograman C dan melakukan pengujian terhadap hasil kodifikasi. ¾ Membandingkan performa query dari solusi yang sudah ada dengan solusi yang ditawarkan. 1.6 Sistematika Penulisan • BAB 1 PENDAHULUAN Bab ini menjelaskan latar belakang permasalahan, ruang lingkup penelitian, perumusan masalah, tujuan dan manfaat yang akan diperoleh dari penelitian, metodologi penelitian yang digunakan, serta gambaran umum dari tiap bab. • BAB 2 LANDASAN TEORI Bab ini berisi penjelasan tentang teori dasar dan teori pendukung yang berhubungan dengan topik yang dibahas. • BAB 3 PERUMUSAN OBYEK PENELITIAN Bab ini berisi analisa dari masalah yang ada, cara kerja dari operator yang akan dirancang, serta algoritma dari operator tersebut. • BAB 4 PERANCANGAN DAN IMPLEMENTASI Bab ini berisi tentang perancangan, implementasi, dan evaluasi dari operator yang telah dibuat pada bab sebelumnya. • BAB 5 SIMPULAN DAN SARAN Bab ini berisi simpulan dari semua bab yang ada dan saran yang dapat diberikan.