BAB 2 LANDASAN TEORI 2.1 Teori Umum 2.1.1 Basis Data Dalam sebuah teknologi informasi, basis data (database) merupakan salah satu komponen yang sangat penting untuk memenuhi kebutuhan informasi dalam sebuah organisasi. Hal tersebut diperkuat oleh definisidefinisi berikut: Menurut Connolly dan Begg (2010, p65), Basis data atau database adalah sekumpulan relasi data logika dan deskripsi dari data, yang dirancang untuk memenuhi kebutuhan informasi organisasi. Basis data memungkinkan tempat penyimpanan data yang besar dan dapat digunakan secara bersamaan oleh banyak departemen dan pengguna. Dalam basis data, terdapat tiga istilah penting, yakni entitas, atribut, dan relationship. Entitas adalah sebuah objek berbeda (bisa seseorang, tempat, sesuatu, konsep, ataupun kejadian) dalam organisasi yang harus direpresentasikan dalam basis data. Atribut adalah sebuah properti yang mendeskripsikan beberapa aspek dari objek yang ingin disimpan. Relationship adalah asosiasi antar entitas. Hoffer, Prescott, & Topi (2009, p46) mendefinisikan basis data atau database sebagai sebuah kumpulan data yang ada dalam sebuah organisasi yang mana data-data tersebut saling berhubungan satu sama lain secara logis dan digunakan untuk memenuhi kebutuhan informasi organisasi. Dari pengertian-pengertian diatas dapat disimpulkan bahwa basis data merupakan sekumpulan data dimana dapat digunakan oleh berbagai pengguna atau departemen secara bersama-sama dan digunakan untuk memenuhi kebutuhan informasi sebuah organisasi. 2.1.2 Database Management System (DBMS) Dalam pengolahan basis data, dibutuhkan sebuah sistem yang dapat mengatur basis data tersebut sehingga data yang ada dapat diatur dan dimanfaatkan dengan tepat. Hal tersebut dapat dilakukan dengan penerapan sebuah DBMS. 7 8 Menurut Connolly & Begg (2010, p. 66), Database Management System (DBMS) adalah sebuah sistem perangkat lunak yang memungkinkan pengguna untuk menentukan, membuat, memelihara, dan mengontrol akses ke sebuah basis data. DBMS menyediakan beberapa fasilitas, yaitu: 1. Data Definition Languange (DDL) memungkinkan pengguna untuk menspesifikasikan tipe data dan struktur, dan pembatas antara data yang akan disimpan di dalam basis data. 2. Data Manipulation Language (DML) memungkinkan pengguna untuk menambahkan, memperbaharui, menghapus, dan memperoleh kembali data dari basis data. 3. Query Language, memiliki tempat penyimanan terpusat untuk semua data dan deskripsi data dan memberikan fasilitas kepada pengguna untuk mengakses data. Structured Query Language (SQL) adalah bahasa yang paling diakui dan merupakan standar bagi DBMS. 4. Menyediakan fasilitas untuk mengambil akses ke basis data, seperti: a. Sistem keamanan, mencegah pengguna yang tidak memiliki hak akses untuk memasuki basis data. b. Integritas basis data, yang menjaga konsistensi data yang tersimpan. c. Sistem kontrol konkurensi, yang memungkinkan akses secara bersamaan dari basis data. d. Sistem kontrol pemulihan, yang mengembalikan basis data ke keadaan yang konsisten sebelum kegagalan perangkat keras atau perangkat lunak. Katalog yang dapat diakses pengguna, yang berisi deskripsi dari data dalam basis data. Hoffer, Prescott, dan Topi (2009, p49) menjelaskan DBMS sebagai sebuah sistem perangkat lunak yang dipakai untuk membuat, menjaga, dan menyediakan akses kontrol kepada pengguna basis data. 9 2.1.2.1 Komponen DBMS Terdapat komponen-komponen penting dalam DBMS yang membuat sebuah DBMS dapat dijalankan dengan baik dan sesuai dengan yang diharapkan. Tanpa komponen-komponen ini, sebuah DBMS tidak dapat berjalan dengan semestinya. Menurut Connolly dan Begg (2010, p. 127), komponen dari sebuah DBMS adalah sebagai berikut : a. Query Processor : Merupakan komponen DBMS yang utama yang mengubah query ke dalam seperangkat instruksi tingkat rendah langsung ke database manager. b. Database Manager : Database Manager menghubungkan program aplikasi user-submitted dan query. Database Manager menerima query dan memeriksa skema eksternal dan konseptual untuk menentukan record konseptual apa yang diperlukan untuk memuaskan permintaan. c. File Manager :File Manager memanipulasi penyimpanan file dan mengatur penempatan ruang penyimpanan dalam disk. Komponen ini mendirikan dan memelihara daftar struktur dan indeks yang didefinisikan dalam skema internal. d. DML Preprocessor : Modul ini mengubah pernyataan DML yang tertanam dalam program aplikasi ke dalam penggilan fungsi standard dalam host language. Komponen ini harus berinteraksi dengan query processor untuk membuat kode yang sesuai. e. DDL Compiler : Modul ini mengubah pernyataan DDL ke dalam seperangkat tabel berisi metadata. Tabel ini kemudian disimpan dalam katalog sistem sementara itu informasi kendali disimpan dalam handler file data. f. Catalog Manager : Mengatur akses dan memelihara katalog sistem. Katalog sistem diakses oleh sebagian besar komponen DBMS. 10 2.1.2.2 Fungsi DBMS DBMS yang mengatur basis data memiliki berbagai fungsi sebagai “pengolah” basis data. Berikut akan dijabarkan berbagai fungsi detail yang harus dimiliki oleh sebuah DBMS. Menurut Connolly & Begg (2010, p. 99) fungsi DBMS adalah sebagai berikut : a. Penyimpanan, pengambilan, dan pembaharuan data. Sebuah DBMS harus menyediakan sebuah kemampuan untuk menyimpan, mengambil, dan membaharui data dalam DBMS. Ini merupakan fungsi yang mendasar dari DBMS. Dalam menyediakan fungsi ini DBMS harus menyembunyikan detail implementasi fisikal internal seperti organisasi file dan struktur penyimpanan dari pengguna. b. Katalog User-Accesible Sebuah DBMS harus menyediakan sebuah katalog yang menyimpan gambaran tentang item data dan mudah diakses oleh pengguna. Katalog sistem merupakan tempat penyimpanan informasi yang menjelaskan data dalam basis data, yaitu metadata atau data tentang data. Katalog sistem menyimpan informasi seperti berikut : 1. Nama, jenis, dan ukuran data 2. Nama relationship 3. Batasan integritas ada data 4. Nama pengguna yang berotoritas yang mempunyai akses pada data 5. Skema eksternal, konseptual, dan internal dan pemetaan antara skema. 6. Pengguna statistik, seperti frekuensi dan perhitungan sejumlah akses yang dibuat pada objek dalam basis data. c. Mendukung Transaksi Sebuah DBMS harus menyediakan mekanisme yang akan memastikan bahwa semua kegiatan update yang dilakukan sesuai dengan transaksi yang diberikan atau tidak ada kegiatan update yang dibuat bagi transaksi tersebut. Transaksi merupakan sederetan 11 tindakan yang dilakukan oleh pengguna tunggal atau program aplikasi yang mengakses atau mengubah isi basis data. d. Layanan Kendali Konkurensi Sebuah DBMS harus menyediakan sebuah mekanisme untuk memastikan bahwa basis data diperbaharui dengan benar ketika banyak pengguna memperbaharui basis data secara bersama-sama. Akses bersama relatif mudah jika semua pengguna hanya membaca data. Namun ketika dua atau lebih pengguna mengakses basis data secara serentak dan paling sedikit satu dari mereka memperbaharui data, disana dapat terjadi gangguan yang menghasilkan ketidakkonsistenan. e. Layanan Perbaikan Sebuah DBMS harus menyediakan sebuah mekanisme untuk memperbaiki basis data disaat mengalami kerusakan dalam berbagai cara. Kerusakan basis data dapat diakibatkan karena kerusakan sistem, kesalahan media, dan kesalahan software atau hardware. Atau disebabkan karena adanya kesalahan selama proses transaksi dan penyelesaian transaksi yang tidak lengkap. f. Layanan Authorisasi Sebuah DBMS harus meyediakan sebuah mekanisme untuk memastikan bahwa hanya pengguna yang berotoritas yang dapat mengakses basis data. Hal ini untuk mencegah data yang tersimpan tak terlihat oleh semua pengguna dan melindungi basis data dari akses yang tak berotoritas. g. Mendukung Komunikasi Data Sebuah DBMS harus mampu diintegrasikan dengan software komunikasi. Kebanyakan pengguna mengakses basis data dari workstation. Kadang workstation tersebut terhubung secara langsung ke komputer DBMS. Dalam kasus yang lain, workstation berada pada lokasi yang jauh dan berkomunikasi dengan komputer DBMS melalui jaringan. Dalam hal ini DBMS menerima permintaan sebagai pesan komunikasi dan menanggapi dengan cara yang sama. Semua pengiriman ini ditangani oleh Data Communication Manager. 12 h. Layanan Integritas Sebuah DBMS harus menyediakan sebuah arti untuk memastikan bahwa data di dalam basis data perubahan pada data mengikuti aturan tertentu. Integritas basis data dapat mengacu pada kebenaran dan konsistensi data yang disimpan. Integritas berhubungan dengan kualitas data yang disimpan. Integritas biasanya diekspresikan dengan istilah batasan, yaitu berupa aturan konsisten yang tidak boleh dilanggar oleh basis data. i. Layanan Peningkatan Keterbebasan Data Sebuah DBMS harus memasukkan sebuah fasilitas untuk mendukung keterbebasan program dari struktur basis data yang sebenarnya. Data independence biasanya dicapai melalui sebuah view atau mekanisme subskema. Physical atau independence lebih mudah untuk dicapai karena terdapat beberapa jenis perubahan yang dapat dibuat untuk karakteristik fisikal dari basis data tanpa mempengaruhi view. Bagaimanapun data independence logikal yang lengkap lebih susah untuk dicapai. j. Layanan Utilitas Sebuah DBMS harus menyediakan seperangkat layanan utilitas. Program utilitas membantu DBA mengelola basis data secara efektif. Beberapa utilitas bekerja pada tingkat eksternal, dan konsekuensinya dapat dibuat oleh DBA, yang lainnya bekerja pada tingkat internal dan dapat disediakan hanya dengan vendor DBMS. Contoh dari utilitas tersbut antara lain : 1. Fasilitas import, untuk memuat basis data dari flat file, dan fasilitas eksport untuk memuat basis data pada flat file. 2. Fasilitas pemantauan, untuk memantau penggunaan dan operasi basis data. 3. Program analisa statistik, untuk memeriksa kinerja dan penggunaan statistik. 4. Fasilitas penyusunan indeks, untuk menyusun kembali indeks dan overflow mereka. 13 k. Penempatan dan pengumpulan sampah, untuk menghilangkan record yang diapus secara fisik dari alat penyimpanan, untuk menggabungkan ruang yang terlepas dan untuk menempatkan kembali record tersebut dimana ia dibutuhkan. 2.1.3 Structure Query Language (SQL) Membuat, menambahkan, dan memperbaharui data merupakan kegiatan yang sering dilakukan dalam pengolahan basis data. Kegiatan pengolahan data ini dapat dilakukan dengan Structure Query Language yang dijelaskan Connolly dan Begg (2010, p221) sebagai sebuah bahasa nonprocedural yang terdiri dari kata-kata standar bahasa inggris seperti SELECT, INSERT, dan DELETE yang digunakan oleh profesional dan nonprofesional. Keduanya menggunakan standar bahasa untuk menentukan dan memanipulasi relasi basis data. 2.1.3.1 Data Definition Language SQL memungkinkan adanya pembuatan, perubahan dan penghapusan data. Kegiatan tersebut dapat dilakukan dengan menggunakan Data definition language (DDL) yang dapat diartikan sebagai sebuah jenis bahasa yang berfungsi untuk dapat mengakses data dalam sebuah basis data yang berhubungan dengan pembuatan, perubahan dan penghapusan data. Menurut Connolly dan Begg (2010, p92), data definition language (DDL) adalah sebuah bahasa yang mengijinkan DBA atau user untuk mendeskripsikan dan memberi nama entitas, atribut, dan hubungan yang diperlukan aplikasi beserta integrity yang berhubungan dan batasan keamanan. Perintah-perintah data definition language (DDL) yang digunakan diantaranya: a. Create Table, digunakan untuk membuat tabel dengan mengidentifikasikan tipe data untuk setiap kolom. b. Alter Table, digunakan untuk menambah atau membuang kolom dari konstrain. 14 c. Drop Table, digunakan untuk membuang atau menghapus tabel beserta semua data yang terkait didalamnya. d. Create Index, digunakan untuk membuat indeks pada suatu tabel. e. Drop Index, digunakan untuk membuang atau menghapus index yang telah dibuat sebelumnya. 2.1.3.2 Data Manipulation Language Pengolahan data dengan SQL tidak terbatas hanya pada pengaksesan data seperti yang bisa dilakukan dengan DDL. Dalam SQL juga dapat dilakukan manipulasi data dengan Data Manipulation Language (DML) yang merupakan sebuah bahasa yang hampir sama dengan DDL yang digunakan untuk mengakses data di dalam basis data namun bahasa ini mengarah pada manipulasi dari data yang ada. Menurut Connolly dan Begg (2010, p92), data manipulation language (DML) adalah sebuah bahasa yang menyediakan sekumpulan operasi yang mendukung suatu operasi manipulasi data yang berada dalam basis data. Pengoperasian data yang akan dimanipulasi pada umumnya meliputi: a. Penambahan data baru ke dalam basis data. b. Modifikasi data yang disimpan dalam basis data. c. Pengembalian data yang terdapat dalam basis data. d. Penghapusan data dari basis data. Perintah-perintah yang ada pada data manipulation language (DML) diantaranya: a. Select, digunakan untuk menampilkan sebagian atau seluruh isi dari suatu tabel dan menampilkan kombinasi isi dari beberapa tabel. b. Update, digunakan untuk mengubah isi satu atau beberapa atribut dari suatu tabel. c. Insert, digunakan untuk menambah satu atau beberapa baris nilai baru ke dalam suatu tabel. 15 d. Delete, digunakan untuk menghapus sebagian atau seluruh isi dari suatu tabel. DML dikategorikan menjadi dua, yaitu: 1. Procedural DML Sebuah bahasa yang memungkinkan pengguna untuk memberitahukan sistem data yang dibutuhkan dan bagaimana untuk mengambil data. 2. Non-Procedural DML Sebuah bahasa yang memungkinkan pengguna untuk menyatakan data apa yang diperlukan daripada bagaimana harus diambil. 2.1.4 Siklus Hidup Aplikasi Basis Data Sebuah aplikasi basis data tidak begitu saja tiba-tiba terbentuk. Ada sebuah proses dan pemeliharaan dibalik adanya sebuah basis data yang baik dan stabil sehingga dapat dimanfaatkan sesuai yang diharapkan. Menurut Connolly dan Begg (2010, p315), siklus hidup aplikasi basis data adalah sebagai berikut: 1. Perencanaan Basis Data (Database Planning) Aktivitas-aktivitas yang memungkinkan perancangan basis data berjalan dengan sebaik-baiknya. 2. Definisi Sistem (System Definition) Dalam proses ini ditentukan cakupan sistem dan batasan-batasan dari sistem basis data yang akan dirancang. 3. Pengumpulan dan Analisis Kebutuhan (Requirement Collection and Analysis) Langkah ketiga ini dilakukan proses pengumpulan dan analisa informasi yang ada pada organisasi serta untuk menemukan kebutuhan-kebutuhan akan basis data. 4. Perancangan Basis Data (Database Design) Pada tahap ini dilakukan perencaan perancangan basis data disesuaikan dengan misi dan kebutuhan organisasi. 16 5. Pemilihan DBMS (DBMS Selection) Melakukan pemilihan DBMS yang sesuai dengan sistem basis data yang ada. 6. Perancangan Aplikasi (Application Design) Merancang user interface dan program aplikasi 7. Prototyping Membangun sebuah model kerja dari sistem basis data 8. Implementasi (Implementation) Proses penerepan desain aplikasi secara real. 9. Data Conversion and Loading Proses pemindahan data yang ada dan dibutuhkan kedalam sistem basis data yang baru. 10. Pengujian (testing) Menjalankan sistem basis data yang ada dengan tujuan utama untuk menemukan kesalahan pada sistem. 11. Operational maintanance Tahap ini adalah tahap monitoring yang berguna untuk memelihara sistem basis data. 17 Gambar 2.1 Tahapan Siklus Hidup Aplikasi Basis Sumber : Connolly dan Begg (2010, p314) 2.1.4.1 Perencanaan Basis Data (Database Planning) Sebelum memulai perancangan basis data dalam sebuah organisasi, diperlukan sebuah tahapan perencanaan basis data terlebih dahulu agar tahapan-tahapan berikutnya dapat berjalan dengan lancar sehingga menghasilkan basis data yang baik. Menurut Connolly dan Begg (2010, p313-315), perencanaan basis data (database planning) adalah kegiatan-kegiatan manajemen yang memungkinkan tahapan-tahapan dalam siklus hidup pengembangan basis data dapat direalisasikan seefektif dan seefisien mungkin. Perencanaan basis data harus dapat di integrasikan dengan 18 keseluruhan strategi sistem informasi dari organisasi. Terdapat tiga isu utama yang dilibatkan dalam merumuskan sebuah strategi sistem informasi, yaitu: 1. Identifikasi dari rencana dan tujuan perusahaan dengan menentukan kelanjutan kebutuhan sistem informasi yang diperlukan. 2. Mengevaluasi sistem informasi yang ada saat ini untuk menentukan kekuatan-kekuatan dan kelemahan-kelemahan yang ada saat ini. 3. Penilaian terhadap peluang teknologi informasi yang dapat menghasilkan keuntungan yang kompetitif. Sebuah langkah awal yang penting dalam perencanaan basis data adalah menggambarkan dengan jelas mission statement untuk sistem basis data. Mission statement menjelaskan tujuan-tujuan utama dari basis data sistem. 2.1.4.2 Definisi Sistem (System Definition) Dalam proses definisi sistem ditentukan batasan-batasan mengenai sistem basis data yang akan dibangun dan pandangan utama dari calon penggunanya. Hal ini sangat perlu dilakukan untuk memastikan basis data yang sudah selesai dibangun dapat dijalankan sesuai dengan kebutuhan dan apa yang diharapkan pengguna. Menurut Connolly dan Begg (2010, p316), definisi sistem (system definition) menjelaskan apa yang diperlukan dari sistem basis data dan pandangan-pandangan utama pengguna. Sebelum mengusahakan untuk mendesain sebuah sistem basis data, sangat penting untuk mengidentifikasi batasan-batasan dari sistem yang akan diteliti dan bagaimana itu akan berinteraksi dengan bagian-bagian lain dari sistem informasi organisasi. Sangat penting memasukan batasanbatasan sistem tidak hanya berupa pengguna-pengguna dan area–area aplikasi yang ada saat ini, tapi juga pengguna-pengguna dan area-area yang akan ada kemudian. 19 2.1.4.3 Pengumpulan dan Analisis Kebutuhan (Requirement Collection and Analysis) Salah satu tahap dalam siklus hidup pengembangan basis data adalah mengumpulkan informasi mengenai organisasi atau kelompok pengguna dan bagian apa saja yang akan didukung oleh database nantinya. Connolly dan Begg (2010, p316-317) menjelaskan tahap ini sebagai proses pengumpulan dan analisis informasi tentang bagian dari organisasi yang didukung oleh sistem basis data, dan menggunakan informasi ini untuk mengidentifikasi kebutuhankebutuhan untuk sistem yang baru. Tahap ini melibatkan kumpulan dan analisa informasi mengenai bagian dari organisasi yang akan dilayani oleh sistem basis data. Informasi yang dikumpulkan untuk tampilan pengguna utama termasuk : a. Penjelasan mengenai penggunaan data. b. Detail-detail mengenai bagaimana data akan digunakan. c. Kebutuhan-kebutuhan tambahan untuk sistem basis data yang baru. Salah satu kegiatan penting yang berhubungan dengan tahap ini adalah memutuskan bagaimana menangani situasi dimana ada lebih dari satu pandangan pengguna untuk sistem basis data. Ada tiga pendekatan utama untuk menangani kebutuhan-kebutuhan dari sistem basis data yang memiliki lebih dari satu pandangan pengguna: 1. Pendekatan terpusat (centralized approach): Kebutuhan terhadap pandangan-pandagan pengguna disatukan dalam sebuah sistem basis data. Sebuah data model merepresentasikan semua pandangan pengguna yang dibuat pada tahap desain basis data. 2. Pendekatan pandangan terintegerasi (the view integration approach): Kebutuhan-kebutuhan untuk setiap pandangan pengguna tetap secara terpisah. Data model merepresentasian detip pandangan penguna yang dibuat dan digabungan emudian saat tahap desain basis data berlangsung. 20 3. Pendekatan dengan kombinasi keduanya (a combination of both approahes). 2.1.4.4 Perancangan Basis Data (Database Design) Setelah semua informasi mengenai perancangan basis data telah lengkap maka dapat dilakukan perancangan basis data, yaitu mendesain basis data yang akan dihasilkan dengan berbagai pendekatan. Menurut Connolly dan Begg (2010, p320-321), perancangan basis data (database design) merupakan proses pembuatan suatu desain untuk sebuah basis data yang akan mendukung operasional dan tujuan suatu perusahaan. Ada dua pendekatan untuk mendesain sebuah basis data, yaitu: 1. Pendekatan bottom-up, dimulai pada tingkat awal dari atribut (properti dari entitas dan relationship), melalui analisis dari asosiasi antar atribut, dikelompokkan menjadi hubungan yang merepresentasikan jenis-jenis entitas dan hubungan antar entitas. Pendekatan ini cocok untuk mendesain basis data yang sederhana dengan jumlah atribut yang tidak banyak 2. Pendekatan top-down, digunakan pada basis data yang lebih kompleks. Dimulai dengan pengembangan dari model data yang mengandung beberapa entitas dan hubungan tingkat tinggi, kemudian menggunakan perbaikan top-down berturut-turut untuk mengidentifikasikan entitas, hubungan dan atribut berkaitan tingkat rendah. Pendekatan ini biasanya digambarkan melalui Entity Relationship (ER). Menurut Connolly dan Begg , perancangan basis data (database design) dibagi dalam tiga tahapan, yaitu: Langkah 1: Membuat Model Data Konseptual Proses membangun suatu model berdasarkan informasi yang digunakan oleh perusahaan, tanpa pertimbangan perencanaan fisik. Model data dibangun dengan menggunakan 21 informasi dalam spesifikasi kebutuhan pengguna. Model data konseptual merupakan sumber informasi untuk tahap desain logikal. Perancangan basis data konseptual adalah proses membangun suatu model data yang digunakan dalam suatu perusahaan, dan bersifat independen dari semua pertimbangan fisik. (Connolly dan Begg, 2010, p470). Tujuannya untuk membangun suatu model data konseptual yang sesuai dengan kebutuhan dari perusahaan. Langkah 1.1: Mengidentifikasikan Tipe Entity Tujuannya untuk mengidentifikasi tipe entitas yang diperlukan. Langkah 1.2: Mengidentifikasi Tipe Relasi Tujuannya untuk mengidentifikasi tipe relasi antara beberapa tipe entitas yang telah teridentifikasi. Langkah 1.3: Mengidentifikasikan dan Mengasosiasikan Suatu Entity atau Tipe Relasi Tujuannya untuk mengidentifikasikan dan mengasosiasikan atribut dari entitas atau tipe relasi. Langkah 1.4: Menentukan Domain Atribut Tujuannya untuk menentukan domain atribut pada model data konseptual. Langkah 1.5: Menentukan Candidate Key dan Primary Key Tujuannya untuk mengidentifikasikan candidate key dari setiap tipe entitas, dan jika terdapat lebih dari satu candidate key, maka dipilih satu menjadi primary key dan sisanya menjadi alternate key. Langkah 1.6: Menggunakan Enhanced Modelling Concepts (langkah optional) Tujuannya untuk mempertimbangkan penggunaan konsep enhanced modeling concepts, seperti spesialisasi, generalisasi, aggregasi, dan komposisi. 22 Langkah 1.7: Memeriksa Redudansi Tujuannya untuk memeriksa apakah ada redudansi dalam model basis data. Apabila terdapat redudansi, maka dapat dihilangkan dengan cara menguji kembali hubungan one-toone dan menghilangkan relasi redudansi. Langkah 1.8: Memvalidasi Model Konseptual Lokal dengan Transaksi User Tujuannya untuk memastikan bahwa model data konseptual mendukung kebutuhan transaksi oleh user. Dua pendekatan untuk memastikan model data konseptual, yaitu: mendefinisikan transaksi dan menggunakan alur transaksi. Langkah 1.9: Me-review Model Data Konseptual Lokal dengan User Tujuannya untuk me-review model data konseptual bersama user untuk memastikan bahwa model yang ada sudah sesuai dengan yang diminta. Langkah 2: Membuat dan Memvalidasi Model Data Logikal Proses pembuatan suatu model informasi yang digunakan perusahaan berdasarkan pada model data yang spesifik, tetapi tidak tergantung dari Database Management System (DBMS) yang khusus dan pertimbangan fisik yang lain. Model data konseptual yang telah dibuat sebelumnya, diperbaiki dan dipetakan ke dalam model data logikal. Tujuannya untuk membuat model data logikal dari model data konseptual dan memvalidasikan model untuk memastikan strukturnya benar dan memastikan bahwa model tersebut mendukung transaksi yang diminta. Langkah 2.1: Menurunkan Relasi Untuk Model Data Logikal Tujuannya untuk membuat suatu relasi untuk model data logikal yang merepresentasikan suatu tipe entitas, relasi, dan atribut yang telah diidentifikasi. Pendeskripsian bagaimana 23 relasi dapat diturunkan dari struktur model data yang ada, antara lain: • Tipe entitas kuat • Tipe entitas lemah • Tipe relasi binary one-to-many (1:*) • Tipe relasi binary one-to-one (1:1) • Tipe relasi rekursif one-to-one (1:1) • Tipe relasi superclass/subclass • Tipe relasi binary many-to-many (*:*) • Tipe relasi kompleks • Atribut multi-valued Langkah 2.2: Memvalidasi Relasi dengan Normalisasi Tujuannya untuk memvalidasi relasi dalam model data logikal dengan menggunakan teknik normalisasi. Menurut Connolly dan Begg (2010, p416) normalisasi adalah sebuah teknik untuk menghasilkan suatu set hubungan dengan properti yang diinginkan, sesuai kebutuhan data dari suatu perusahaan. Berikut beberapa istilah yang perlu diketahui sebelum tahap-tahap dalam normalisasi dijelaskan. 1. Data Redundacy Menurut Connolly dan Begg (2010, p418) tujuan utama dari desain basis data relasional adalah untuk mengelompokkan atribut-atribut ke dalam relasi-relasi sehingga meminimalisasi redundansi data dan mengurangi penggunaan tempat penyimpanan yang dibutuhkan oleh sebuah relasi dasar. Masalah-masalah yang terkait dengan redundansi dapat dijelaskan dengan membandingkan relasi Staff dan Branch dengan relasi StaffBranch. Relasi StaffBranch memiliki data redundan, yaitu detail dari branch dituliskan berulang-ulang untuk setiap staff. Sebaliknya, informasi mengenai branch muncul hanya satu kali pada relasi Branch dan hanya branchNo saja yang diulang dalam relasi 24 Staff, untuk merepresentasikan dimana setiap staff tersebut bekerja. Tabel 2.1 Contoh Data Redundancy Sumber: Connolly dan Begg (2010, p419) 2. Update Anomalies Menurut Connolly dan Begg (2010, p419) relasi yang mengandung informasi yang redundan dapat diakibatkan oleh update anomalies. Beberapa tipe dari update anomalies, diantaranya Insertion, Deletion, dan Modification. 3. Functional Dependency Menurut Connolly dan Begg (2010, p420) merupakan konsep inti yang terkait dengan normalisasi. Functional dependency menjelaskan relationship antar atribut-atribut dalam relasi. Misalkan jika A dan B adalah atribut dari suatu relasi R, B dikatakan Functionally Dependent pada A (dinotasikan A --> B), jika setiap nilai A dihubungkan dengan tepat satu nilai B. ( A dan B masing-masing dapat terdiri atas satu atau lebih atribut). Functional dependency merupakan sifat dari arti semantik suatu atribut dalam sebuah relasi. Selanjutnya akan dijelaskan mengenai normalisasi beserta tahap-tahap didalamnnya: Empat bentuk normal yang biasa digunakan yaitu: 25 1. UNF Sebuah tabel yang berisi satu atau lebih kelompok data yang berulang. UNF biasanya didapat dengan memindahkan dari sumber informasi yang didapat seperti nota atau faktur. 2. 1NF Suatu relasi dimana setiap baris dan kolom hanya berisi satu nilai. Kelompok data yang berulang dan perhitungan akan dihilangkan dalam proses ini. 3. 2NF Suatu relasi yang ada dalam 1NF dan setiap atribut yang merupakan non-primary-key bersifat sepenuhnya bergantung fungsional pada primary key. Ketergantungan parsial akan dihilangkan dalam proses ini. 4. 3NF Suatu relasi yang ada dalam 1NF dan 2NF dan dimana tidak ada atribut non-primary-key yang bergantung transitif terhadap primary key. Terdapat bentuk fourth normal form (4NF) dan fifth normal form (5NF) untuk situasi yang jarang terjadi. Berdasarkan pada functional dependencies antar atribut dalam relasi. Sebuah relasi dapat dinormalisasi kedalam bentuk tertentu untuk mengatasi kemungkinan terjadinya pengulangan dari update yang tidak baik. Langkah 2.3: Memvalidasi Relasi dengan Transaksi User Tujuannya untuk memastikan bahwa relasi pada model data logikal mendukung transaksi yang diminta user. Langkah 2.4: Mendefinisikan Kendala Integritas Tujuannya untuk mendefinisikan batasan-batasan integritas yang ada, dimana kontrol integritas mengandung batasanbatasan yang dapat diterapkan untuk mencegah basis data menjadi tidak konsisten. Dalam hal ini ada enam tipe kendala integritas, antara lain: 26 • Required data Pada beberapa atribut-atribut harus selalu mengandung sebuah nilai yang valid; dengan kata lain atribut-atribut tersebut tidak bisa bernilai null. Dengan contoh setiap anggota staf harus diasosiasikan dengan posisi pekerjaan. • Attribute domain constraints Setiap atribut memiliki domain, yaitu sebuah set dari nilai yang diijinkan atau legal. Sebagai contoh jenis kelamin pada anggota staf antara “M” atau “F”, sehingga domain dari atribut jenis kelamin adalah sebuah karakter string tunggal antara “M” atau “F”. • Multiplicity Multiplicity mewakili batasan-batasan yang ditempatkan pada hubungan-hubungan abtara data dalam basis data. Contohnya syarat dari sebuah kantor cabang boleh memiliki banyak staf dan seorang member staf bekerja hanya disebuah kantor cabang. • Entity integrity Primary key dari sebuah entitas tidak boleh kosong atau memiliki nata dengan nilai null. Contohnya setiap tuple dari hubungan staf harus memiliki nilai dari primary key attribute, “StafNo”. • Referential integrity Sebuah foreign key menghubungkan setiap tuple dalam child relation ke tuple di parent relation yang berisi nilai kandidat key yang memiliki nilai yang sama. Referential integrity berarti setiap foreign key memuat sebuah nilai, yang mana nilai tersebut merujuk pada sebuah tuple yan eksis pada parent relation. Sebagai contoh hubungan Staf mengatur PropertyForRent. Atribut stafNo pada PropertyForRent, menghubungkan 27 PropertyForRent pada tuple dalam Staf yang memuat anggota staf yang mengatur properti tersebut. • General constraints Pembaharuan-pembaharuan terhadap entitas-entitas sehingga dapat dikontrol oleh batasan-batasan yang mewakili pembaharuan-pembaharuan tersebut. Contohnya perusahaan memiliki aturan yang mencegah seorang anggota staf mengatur lebih dari 100 properti pada waktu yang bersamaan. Langkah 2.5: Me-review Model Data Logikal dengan User Tujuannya untuk memastikan bahwa model data logikal telah merepresentasikan sesuai dengan kebutuhan data dari perusahaan. Langkah 2.6: Menggabungkan Model Data Logikal ke Model Global (langkah optional) Tujuannya untuk menggabungkan model data logikal individual menjadi sebuah model data logikal global dari suatu perusahaan. Berikut ini adalah detail mengenai langkah-langkah yang telah disebutkan diatas, antara lain: Langkah 2.6.1: Menggabungkan Model Data Logikal ke Model Global Tujuannya untuk menggabungkan model data logikal individu menjadi model data logikal global bagi sebuah perusahaan. Langkah 2.6.2: Memvalidasi Model Data Logikal Global Tujuannya untuk memvalidasi relasi yang dibuat dari model data logikal global dengan teknik normalisasi dan memastikan bahwa relasi yang dibuat mendukung transaksi. Langkah 2.6.3: Me-review Model Data Logikal Global dengan User Tujuannya untuk memastikan bahwa model data logikal global itu telah merepresentasikan kebutuhan data dari perusahaan. 28 Langkah 2.7: Menggabungkan Model Data Logikal ke Model Global (langkah optional) Tujuannya untuk menentukan apakah ada perubahan yang penting di masa yang akan datang dan juga memperhatikan agar model data logikal global dapat mengakomodasi perubahan tersebut. Langkah 3: Perancangan Fisikal Menerjemahkan Model Data Logikal ke DBMS Pilihan Proses untuk menghasilkan gambaran dari implementasi basis data pada tempat penyimpanan, menjelaskan dasar dari relasi, organisasi file, dan indeks yang akan digunakan untuk efisiensi data dan menghubungkan beberapa integrity constraints dan pengukuran keamanan. Tujuannya untuk menghasilkan skema relasional basis data dari model data logikal yang dapat diimplementasikan pada DBMS pilihan. Langkah 3.1: Merancang Relasi Dasar Tujuannya untuk memutuskan bagaimana merepresentasikan relasi dasar yang diidentifikasikan dalam model data logikal pada DBMS pilihan. Langkah 3.2: Merancang Representasi Dari Data Turunan (Derived Data) Tujuannya untuk memutuskan bagaimana merepresentasikan semua data turunan pada model data logikal pada DBMS pilihan. Langkah 3.3: Merancang Batasan Umum (General Constraints) Tujuannya untuk merancang batasan umum pada DBMS pilihan. Langkah 4: Merancang Organisasi File dan Indeks Tujuannya untuk menentukan pengorganisasian file yang optimal untuk menyimpan relasi dasar dan indeks yang 29 diperlukan untuk mencapai performance yang diharapkan, yaitu dengan cara menyimpan berbagai relasi dan tuples pada media penyimpanan sekunder. Langkah 4.1: Menganalisis Transaksi Tujuannya untuk memahami fungsi dari suatu transaksi yang dijalankan pada basis data untuk menganalisa transaksi yang penting. Langkah 4.2: Memilih Organisasi File Tujuan dari langkah ini adalah untuk menentukan organisasi file yang optimal untuk setiap relasional basis data, jika diijinkan oleh DBMS. Misalnya jika ingin mengambil datadata staf menurut ururtan alfabet nama, maka penyortiran file berdasarkan nama adalah sebuah organisasi file yang baik. Langkah 4.3: Memilih Indeks Tujuannya untuk menentukan penambahan indeks dapat meningkatkan performansi dari suatu sistem. Langkah 4.4: Memperkirakan Kapasitas Penyimpanan yang Dibutuhkan Tujuannya untuk mengestimasi ukuran kapasitas disk yang diperlukan untuk basis data. Langkah 5: Merancang User View Tujuannya untuk merancang user view yang diidentifikasi selama pengumpulan informasi dan analisis dari siklus hidup aplikasi basis data. Langkah 6: Merancang Mekanisme Keamanan Tujuannya untuk merancang ukuran keamanan untuk basis data yang telah dispesifikasikan user. 2.1.4.5 Pemilihan DBMS (DBMS Selection) Salah satu kegiatan yang penting dalam proses perancangan sistem basis data adalah pemilihan DBMS yang perlu dilakukan 30 sesuai dengan kebutuhan dari calon pengguna dan bagaimana data akan dikelolah nantinya. Menurut Connolly dan Begg (2010, p325-329), pemilihan DBMS yang sesuai untuk mendukung aplikasi basis data mencakup: 1. Mendefinisikan syarat-syarat referensi studi. Menentukan tujuan, batasan masalah dan tugas yang harus dilakukan. 2. Mendaftar dua atau tiga jenis produk Membuat daftar barang-barang, misalnya darimana barang didapat, berapa biayanya, serta bagaimana bila ingin mendapatkannya. 3. Mengevaluasikan produk. Barang-barang yang ada dalam barang diteliti lebih lanjut untuk mengetahui kelebihan dan kekurangan barang tersebut. 4. Merekomendasikan pilihan dan membuat laporan. Langkah terakhir dari DBMS, yaitu mendokumentasikan proses dan untuk menyediakan pernyataan mengenai kesimpulan dan rekomendasi terhadap salah satu produk DBMS. 2.1.4.6 Perancangan Aplikasi (Application Design) Sistem basis data yang ada sebaiknya dapat digunakan secara maksimal oleh pengguna sehingga dapat berjalan dengan sebagaimana mestinya. Karena itu interaksi antara pengguna dengan basis data harus berjalan dengan baik. Interaksi antara pengguna dengan basis data sangat penting untuk memastikan bahwa pengguna menjalankan pengelolahan basis data sesuai dengan maksud dan tujuannya sehingga menjadi penting untuk merancang sistem antar muka yang dapat dimengerti oleh pengguna. Menurut Connolly dan Begg (2010, p329), pengertian perancangan aplikasi (application design) adalah merancang antarmuka dan program aplikasi yang akan menggunakan dan memproses basis data. Dalam perancangan aplikasi harus memastikan 31 semua kebutuhan-kebutuhan dari spesifikasi kebutuhan pengguna (user requirement specification) yang menyangkut perancangan aplikasi program yang mengakses basis data dan merancang transaksi yaitu cara akses ke basis data dan perubahannya terhadap isi basis data (retrieve, update, dan kegiatan keduanya). Antarmuka yang dirancang harus memberikan informasi yang dibutuhkan, sehingga pengguna aplikasi mudah mempelajari dan mudah menggunakannya. 2.1.4.7 Prototyping Evaluasi sebelum pengimplentasian adalah langkah penting untuk mendapatkan sebuah gambaran sistem basis data yang ada melalui beberapa pemodelan. Prototyping adalah membangun sebuah model kerja dari aplikasi basis data yang mengizinkan user untuk memvisualisasikan dan mengevaluasi gambaran sistem secara menyeluruh (Connolly dan Begg, 2010, p333). Tujuan utama prototyping adalah memungkinkan pengguna menggunakan prototype untuk mengidentifikasi fitur sistem, apakah sudah bekerja dengan baik atau belum. Terdapat dua strategi dalam merancang prototype, yaitu: a. Requirements prototyping, menggunakan sebuah prototype untuk menentukan kebutuhan sistem basis data yang diusulkan dan ketika sudah terpenuhi, prototype tidak digunakan lagi. b. Evolutionary prototyping, menggunakan sebuah prototype untuk tujuan yang sama. Namun, jika kebutuhan sudah terpenuhi, prototype tersebut tidak dibuang tetapi untuk selanjutnya akan dikembangkan menjadi aplikasi basis data yang akan berjalan. 2.1.4.8 Implementasi (Implementation) Setelah semua persiapan dan perancanga dianggap telah selesai, maka sistem basis data sudah siap untuk diimplementasikan secara real dalam organisasi. Menurut Connolly dan Begg (2010, p333-334), implementasi adalah realisasi fisik basis data dan rancangan aplikasi. Dalam tahap 32 penyelesaian desain, kita dapat menerapkan basis data dan program aplikasi yang telah kita buat. Implementasi basis data menggunakan Data Definition Language (DDL) yang kita pilih dalam melakukan pemilihan DBMS atau dengan menggunakan Graphical User Interface (GUI), yang menyediakan fungsional yang sama dengan pernyataan DDL yang low level. Pandangan pengguna lainnya juga diimplementasikan. Data Manipulation Language (DML) digunakan untuk mengimplementasikan transaksi basis data di dalam bagian aplikasi program dari tujuan DBMS. 2.1.4.9 Data Conversion and Loading Pada saat implementasi telah dilakukan, maka diperlukan pemindahan data lama yang berhubungan dengan basis data yang termasuk dalam ruang lingkup sistem ke dalam sistem basis data yang baru. Sinkronisasi data lama dan baru juga dilakukan Menurut Connolly dan Begg (2010, p334), data conversion and loading adalah memindahkan data dari sistem yang lama ke sistem yang baru dan mengkonversi aplikasi yang ada untuk dijalankan di basis data yang baru. Tahapan tersebut terjadi ketika sistem basis data yang lama digantikan dengan sistem basis data yang baru. Pada saat ini, suatu DBMS biasanya memiliki kegunaan untuk memasukkan file kedalam basis data yang baru dengan tujuan agar memungkinkan pengembang dapat mengkonversi dan menggunakan program aplikasi dari sistem yang lama untuk digunakan oleh sistem yang baru. 2.1.4.10 Testing Pengujian terhadap sebuah sistem basis data yang telah diimplementasikan perlu dilakukan untuk mengetahui kekurangan atau kesalahan yang ada pada sistem bila ada yang kemudian bisa ditindaklanjuti. Testing adalah proses menjalankan aplikasi dengan tujuan untuk menemukan kesalahan yang terdapat dalam program aplikasi dan memvalidasi sesuai keinginan user (Connolly dan Begg, 2010, 33 p334). Sebelum digunakan, sistem basis data yang baru dikembangkan harus diuji secara menyeluruh. Hal ini dicapai dengan menggunakan strategi uji yang sudah direncanakan dan data yang realistis sehingga keseluruhan proses pengujian sesuai dengan metode dan dilaksanakan dengan aturan yang ada. 2.1.4.11 Operational Maintenance Perawatan dan pengawasan terhadap basis data yang ada perlu dilakukan untuk menjaga kualitas basis data berjalan dengan baik. Operational maintenance merupakan proses untuk mengawasi dan memelihara sistem yang sudah terpasang (Connolly dan Begg, 2010, p335). Pada tahap ini sistem beralih ke tahapan pemeliharaan. Yang termasuk aktivitas dari tahapan pemeliharaan diantaranya: 1. Memantau kinerja dari sistem. Jika kinerjanya menurun di bawah level yang dapat diterima, mungkin diperlukan untuk mengorganisasi kembali basis data yang ada. 2. Pemeliharaan dan pembaharuan sistem basis datanya (jika diperlukan). Ketika basis data sepenuhnya bekerja, pemantauan harus memastikan kinerjanya dapat berada dalam tingkat yang dapat diterima. Sebuah DBMS biasanya menyediakan berbagai kegunaan (utilities) untuk membantu administrasi basis data termasuk kegunaan (utilities) untuk mengisi data ke dalam basis data dan untuk memantau sistem. Kegunaan ini memperbolehkan sistem pemantauan untuk memberikan informasi seperti tentang penggunaan basis data dan strategi eksekusi query. Database administrator dapat menggunakan informasi ini untuk memperbaiki sistem agar dapat memberikan kinerja yang lebih baik. 34 2.1.5 Entity-Relationship Diagram 2.1.5.1 Entity Types Entitas adalah salah satu bagian pasti dimiliki oleh basis data. Setiap basis data memiliki entitas-entitas di dalamnya yang memiliki keberadaan dan terdiri dari berbagai objek. Entity types adalah sekumpulan objek yang telah ditentukan oleh perusahaan dengan memiliki properti yang sama dan keberadaannya yang berdiri sendiri (Connolly dan Begg, 2010, p372). Terdapat dua jenis tipe entitas (Connolly dan Begg, 2010, p383), yaitu: 1. Strong entity types, entitas yang keberadaannya tidak bergantung pada entitas lainnya. Karakteristik dari strong entity yaitu setiap entitas di identifikasikan secara unik menggunakan atribut primary key dari entitas tersebut. 2. Weak entity types, entitas yang keberadaannya bergantung pada entitas lainnya. Karakteristik dari weak entity yaitu setiap entitas tidak bisa diidentifikasikan secara unik menggunakan atribut yang terkait dengan entitas tersebut. 2.1.5.2 Relationship Types Entitas-entitas didalam basis data memiliki hubungan dengan satu atau lebih entitas yang lain dalam sebuah basis data yang terintegerasi. hubungan-hubungan antara tiap entitas tidak semuanya sama dan memiliki maknanya masing-masing yang harus dapat diartikan dengan tepat. Relationship types adalah hubungan antara satu entitas dengan entitas lain dan mempunyai arti (Connolly dan Begg, 2010, p374). 35 Gambar 2.2 Relationship Branch has Staff Sumber: Connolly dan Begg (2010, p374) Relationship occurrence adalah suatu gabungan yang dapat diidentifikasikan secara unik, termasuk suatu kejadian dari setiap entitas yang berpartisipasi (Connolly dan Begg, 2010, p375). Derajat dari tipe relasi adalah jumlah jenis entitas yang berpartisipasi dalam suatu hubungan. Entitas yang terlibat dalam jenis hubungan tertentu disebut sebagai participant, sedangkan jumlah peserta dalam suatu jenis relasi disebut derajat relasi. Oleh karena itu, derajat relasi menunjukkan jumlah entitas yang terlibat dalam suatu relasi. Relationship yang paling umum adalah binary relationship. Macam-macam binary relationship yaitu : 1. one-to-one (1:1) Gambar 2.3 ER Diagram of Staff and Branch Entities and General Constraint Sumber: Connolly dan Begg (2010, p374) 36 2. one-to-many(1:*) Gambar 2.4 ER Diagram of Staff and PropertyForRent Entities and General Constraint Sumber: Connolly dan Begg (2010, p388) 3. many-to-many(*:*) Gambar 2.5 ER Diagram of Staff and PropertyForRent Entities and General Constraint Sumber: Connolly dan Begg (2010, p389) 2.1.5.3 Attributes Karakteristik dan detail dari sebuah entiti dapat dijelaskan melalui atribut-atribut serta jenisnya yang tekandung didalam sebuah entitas. Atribut merupakan bagian dari entitas yang mana entitas tidak dapat berdiri tanpa ada atribut didalamnya. Attribute adalah sifat atau properti dari sebuah tipe entitas atau tipe relasi (Connolly dan Begg, 2010, p379). Attribute domain adalah 37 sekumpulan nilai yang mempunyai satu atau lebih atribut. Setiap atribut yang dihubungkan dengan nilai-nilai tertentu disebut domain. Terdapat berbagai macam atribut (Connolly dan Begg, 2010, p379-380), yaitu: 1) Simple Attribute, yaitu atribut yang disusun dari komponen tunggal. Simple attribute tidak bisa dibagi menjadi komponen yang lebih kecil lagi, dikenal juga sebagai atomic attributes. 2) Composite Attribute, yaitu atribut yang terdiri dari beberapa komponen, dimana masing-masing komponen memiliki keberadaan yang independen. Misalkan atribut Address dapat terdiri dari Street, City, PostCode. 3) Single-valued Attribute, yaitu atribut yang mempunyai nilai tunggal untuk setiap kejadian. Misalnya entitas Branch memiliki satu nilai untuk atribut branchNo pada setiap kejadian. 4) Multi-valued Attribute, yaitu atribut yang mempunyai beberapa nilai untuk setiap kejadian. Misal entitas Branch memiliki beberapa nilai untuk atribut telpNo pada setiap kejadian. 5) Derived Attribute, yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut lainnya dan tidak harus berasal dari satu entitas. 2.1.5.4 Keys Penggunaan key merupakan cara untuk mempertegas identitas atau membedakan sebuah entitas dengan entitas yang lain. Key dapat diartikan sebagai sebuah atribut atau gabungan beberapa atribut yang dapat membedakan sebuah entitas dengan entitas yang lain. 1) Candidate Key, yaitu jumlah minimal atribut-atribut yang dapat mengidentifikasikan setiap kejadian/record secara unik (Connolly dan Begg, 2010, p381). 2) Primary Key, yaitu candidate key yang dipilih untuk mengidentifikasikan setiap kejadian/record dari suatu entitas secara unik (Connolly dan Begg, 2010, p381). 38 3) Composite Key, yaitu candidate key yang terdiri dari dua atau lebih atribut (Connolly dan Begg, 2010, p382). 4) Alternate Key, yaitu candidate key yang tidak dipilih sebagai primary key (Connolly dan Begg, 2010, p381). 5) Foreign Key, yairu sebuah primary key pada sebuah entitas yang digunakan pada entitas lain untuk mengidentifikasi sebuah relationship (Connolly dan Begg, 2010, p381). Gambar 2.6 ER Diagram of Staff and Branch Entities and their Attributes Sumber: Connolly dan Begg (2010, p382) 2.1.6 Arsitektur ANSI-SPARC Three Level Sebuah terminologi dan arsitektur sangat diperlukan sebagai acuan untuk sebuah sistem basis data. Dalam buku Connolly dan Begg (2010, p87-90), The American National Standards Institute (ANSI) Standards Planning and Requirements Commitee (SPARC) membuat sebuah terminologi dan arsitekrur untuk sistem basis data pada tahun 1975 dengan tiga level pendekatan dengan sebuah sistem katalog. 1. Level eksternal 39 Merupakan pandangan pengguna terhadap basis data. Level ini mendeskripsikan bagian basis data yang berhubungan dengan masing-masing pengguna 2. Level konseptual Kelompok pandangan dari basis data. Level ini mendeskripsikan apa data yang disimpan dalam basis data dan apa hubungan antara data-data yang ada. 3. Level Internal Adalah representasi fisik dari basis data pada komputer. Level ini mendeskripsikan bagaimana data disimpan dalam basis data. Gambar 2.7 ANSI-SPARC Three-Level architecture 2.1.7 Integrasi Data Penyimpanan data yang terintegrasi dapat membantu proses yang berhubungan dengan pengolahan data dalam satu perusahaan menjadi lebih mudah dan dan cepat. Menurut Han, Kamber dan Pei (2012, p93), integrasi data adalah penggabungan data dari berbagai sumber data. Integrasi yang baik dapat mengurangi dan menghindari redudansi dan ketidakkonsekuenan dalam menghasilkan sebuah set data. Hal tersebut diperkuat oleh Zhao dan Cen 40 (2014, p159) yang menyatakan bahwa integrasi data menggabungkan data dari berbagai sumber kedalam penyimpanan data koheren (penyimpanan data yang logis). Berbagai sumber tersebut dapat berupa berbagai basis data, data cubes atau file-file. Dari pernyataan-pernyataan diatas dapat dikatakan bahwa integrassi data memiliki tujuan untuk menggabungkan berbagai sumber data yang kemudian dapat diambil dengan mengurangi berbagai resiko seperti redudansi dan data yang tidak sesuai. 2.2 Teori Khusus 2.2.1 Penjualan Penjualan merupakan sumber hidup suatu perusahaan, karena dari penjualan dapat diperoleh laba serta suatu usaha memikat konsumen yang diusahakan untuk mengetahui daya tarik mereka sehingga dapat mengetahui hasil produk yang dihasilkan. Pengertian penjualan dapat diperjelas dari beberapa teori-teori sebagai berikut. Menurut Reeve (2009, p255), penjualan adalah total biaya yang dibebankan kepada customer barang yang dijual termasuk penjualan tunai maupun penjualan kredit. Sedangkan, menurut Hall (2011, p335), siklus penjualan merupakan serangkaian aktivitas bisnis yang mengubah barang atau jasa untuk pelanggan menjadi kas. Penjualan dari pernyataan diatas merupakan suatu usaha yang terpadu untuk mengembangkan rencana-rencana strategis yang diarahkan pada usaha pemuasan kebutuhan dan keinginan pembeli guna mendapatkan penjualan yang menghasilkan laba. 2.2.2 Persediaan Dalam suatu perusahaan, persediaan sangat berpengaruh. Khususnya pada laporan keuangan, karena baik laporan laba/rugi maupun neraca tidak akan dapat disusun tanpa mengetahui nilai persediaan. Dari penjelasan diatas dapat diperjelas dengan beberapa teori-teori sebagai berikut. Menurut Alfredson, K., et al (2007, p342), persediaan adalah asset yang tersedia untuk dijual dalam proses bisnis biasa; atau asset yang ada 41 dalam proses produksi seperti untuk dijual; atau asset dalam bentuk material atau supplier untuk digunakan dalam proses produksi atau dalam memberikan pelayanan. Selain itu, menurut Stevenson (2009, p549), persediaan adalah stok dari barang yang disimpan. Persediaan dari pernyataan diatas merupakan jumlah barang yang tersedia didalam gudang dan untuk dijual kepada customer. 2.2.3 Pembelian Pembelian merupakan suatu proses untuk mengadakan dan menambah produk dalam persediaan sebuah perusahaan. Dalam bisnis retail pembelian dilakukan untuk memenuhi kebutuhan pelanggan. Menurut Albecht, Stice, dan Swain (2008, p 291) pembelian didefinisikan sebagai sistem perpetual yang semua pembelian ditambahkan secara langsung ke dalam persediaan. Dari pernyataan diatas, pembelian dapat diartikan sebagai sebuah proses yang mendukung proses binis yaitu pengadaan barang untuk menambah persediaan dan memenuhi kebutuhan pelanggan. 2.2.4 Komunikasi Komunikasi merupakan hal yang sangat penting dalam kehidupan manusia, karena dengan komunikasi, manusia dapat saling bertukar informasi dan pengetahuan. Hal tersebut diperkuat oleh Evertt M. Rogers & Lawrence Kincaid (Wiryanto, 2008, p 6) yang menyatakan bahwa komunikasi adalah suatu proses dimana dua orang atau lebih membentuk atau melakukan pertukaran informasi antara satu sama lain, yang pada gilirannya terjadi saling pengertian yang sangat mendalam. Shanno dan Weaver (Wiryanto, 2008, p7) mengemukakan bahwa komunikasi adalah bentuk interaksi manusia yang saling mempengaruhi satu sama lain, sengaja atau tidak sengaja dan tidak terbatas pada bentuk komunikasi verbal, tetapi juga dalam hal ekspresi muka, lukisan, seni dan sebagainya. Komunikasi adalah hal yang tidak dapat dilepaskan dari kehidupan manusia karena secara langsung maupun tidak langsung, sadar atau tidak sadar, manusia pada dasarnya selalu berkomunikasi untuk melakukan pertukaran informasi. 42 2.2.5 Telekomunikasi Telekomunikasi merupakan bagian dari komunikasi, dimana dengan adanya telekomunikasi dapat mempermudah setiap orang maupun organisasi dalam bertukar informasi dimana pun dan kapan pun.. Telekomunikasi menurut UU No. 36 Tahun 1999 adalah setiap pemancaran, pengiriman, dan atau penerimaan dari setiap informasi dalam bentuk tanda-tanda, isyarat, tulisan, gambar, suara, dan bunyi melalui sistem kawat, optik, radio, atau sistem elektromagnetik lainnya. Dengan banyaknya pengguna telekomunikasi oleh orang maupun organisasi, membuat berbagai perusahaan yang bergerak dibidang komunikasi berbondong-bondong mengeluarkan produk telekomunikasi dan juga jaringan yang memadai sehingga dapat menampung kebutuhan dari setiap orang maupun organisasi Sehingga dapat disimpulkan bahwa Telekomunikasi adalah semua komunikasi yang dilakukan oleh orang ataupun organisasi dengan menggunakan sistem elektromagnetik. 2.2.6 Pulsa Pulsa merupakan salah satu penunjang dalam tercipta nya komunikasi pada zaman sekarang ini. Hal ini disebabkan karena kemudahan yang diberikan setiap provider dalam mendapatkan serta menggunakan pulsa tersebut. Pulsa menurut KBBI (Kamus Besar Bahasa Indonesia ) adalah satuan perhitungan biaya telepon. Para provider di Indonesia pada awalnya menggunakan isitlah voucher, dimana arti dari voucher tersebut adalah prepaid kredit atau kredit prabayar untuk menggunakan layanan suatu provider. Kata voucher isi ulang digunakan karena tujuan nya mengisi kembali kredit pada nomor prabayar yang digunakan, namun lama-kelamaan masyarakat lebih mengenal istilah pulsa karena lebih familiar. Dari pernyataan diatas, maka dapat di ambil kesimpulan bahwa pulsa adalah satuan perhitungan biaya telepon yang kita bayar di depan (prabayar) untuk dapat menggunakan layanan dari suatu provider.