BAB 2 LANDASAN TEORI 2.1 Teori-teori Database 2.1.1 Pengertian Data Data adalah fakta, atau bagian dari fakta yang mengandung arti, yang dihubungkan dengan kenyataan, simbol-simbol, gambar-gambar, kata-kata, angka-angka, huruf-huruf, atau simbol-simbol yang menunjukkan suatu ide, objek, kondisi, atau situasi dan lain-lain. Data itu sendiri merupakan bentuk jamak dari datum yang berarti informasi (Febrian, 2002, p126). Data adalah representasi objek yang disimpan dan kejadiankejadian yang memiliki maksud dan penting bagi user (Hoffer, 2005, p5). 2.1.2 Pengertian Basis Data Pengertian basis data adalah kumpulan data yang terhubung satu sama lain secara logikal, dan deskripsi data itu dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi. Basis data digunakan sebagai tempat penyimpanan data yang secara simultan digunakan oleh banyak departemen dan pengguna. Semua data terintegrasi dengan jumlah duplikasi yang minimum. Basis data ini tidak hanya dipunyai oleh satu departemen saja tetapi di-share oleh beberapa sumber lainnya (Connolly, 2005, p15). 6 7 Basis data adalah kumpulan data-data yang digunakan oleh sistem aplikasi dari perusahaan (Date, 2000, p10). Basis data adalah kumpulan data-data yang disimpan dalam suatu format yang telah distandarisasi, dirancang untuk dibagikan kepada banyak user (Post, 2005, p2). Basis data adalah seperangkat file yang terinterelasi dan terkoordinasi secara terpusat (Romney, 2003, p82). Basis data diperlukan karena (www.ilmukomputer.com): • Salah satu komponen penting dalam sistem informasi, karena merupakan dasar dalam menyediakan informasi • Menentukan kualitas informasi : akurat, tepat pada waktunya dan relevan. Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkannya. 2.1.3 • Mengurangi duplikasi data (data redundancy) • Hubungan data dapat ditingkatkan (data reliability) • Mengurangi pemborosan tempat simpanan luar Database Management System Database Management System (DBMS) adalah sebuah sistem software yang memperbolehkan pengguna untuk menggambarkan, membuat, menjaga, dan mengontrol akses ke basis data (Connolly, 2005, p16). 8 Database Management Sytem (DBMS) adalah suatu kumpulan data yang terinterelasi dan seperangkat program untuk mengakses datadata tersebut (Silberschatz, 2002, p1). Database Management System (DBMS) merupakan suatu kumpulan program yang informasinya dapat disimpan, dimodifikasi, dan diekstrak dari suatu basis data (www.webopedia.com). Fasilitas yang disediakan DBMS antara lain (Connolly, 2005, p16) : ● Memperbolehkan pengguna untuk menggambarkan basis data, biasanya melalui Data Definition Language (DDL). DDL memberikan fasilitas kepada pengguna untuk menspesifikasikan tipe data dan struktur serta constraint pada data yang akan disimpan pada basis data. ● Constraint adalah peraturan konsistensi nilai pada basis data yang tidak dapat dilanggar. ● Memperbolehkan menghapus, dan pengguna untuk mengambil data memasukkan, dari basis update, data yang menggunakan Data Manipulation Language (DML). Bahasa yang umum digunakan adalah Structured Query Language (SQL). ● Menyediakan kontrol akses ke basis data : ¾ Sistem keamanan (security system), dimana mencegah pengguna yang tidak mempunyai hak akses agar tidak mengakses basis data. 9 ¾ Sistem integritas (integrity system), dimana menjaga konsistensi data yang disimpan. ¾ Sistem kontrol pada saat yang bersamaan (concurrency control), dimana memperbolehkan akses berbagi terhadap basis data. ¾ Sistem kontrol perbaikan (recovery control system), dimana mengembalikan basis data ke kondisi sebelum yang konsisten pada saat terjadi kegagalan pada perangkat keras dan perangkat lunak. ¾ Katalog pengguna yang dapat diakses (user-accessible catalog), yang berisi tentang deskripsi data pada basis data. Database Application Program adalah suatu program komputer yang berinteraksi dengan database sesuai dengan permintaan ke DBMS (Connolly, 2005, p17). Fasilitas DBMS lainnya yang dikenal dengan mekanisme view, dimana memperbolehkan setiap pengguna untuk mempunyai tampilan basis datanya sendiri-sendiri sesuai dengan kebutuhan (Connolly, 2005, p17). Keuntungan view antara lain : ● View menyediakan tingkatan keamanan. View dapat mengatur data apa saja yang dapat dilihat oleh pengguna tertentu ● View menyediakan mekanisme untuk penyesuaian tampilan basis data. 10 ● View dapat merepresentasi gambaran struktur basis data yang konsisten, walaupun basis data diubah. Komponen lingkungan DBMS antara lain (Connolly, 2005, p18) : 1. Perangkat keras (hardware) Perangkat keras dapat berupa komputer tunggal personal, mainframe tunggal, hingga jaringan komputer. Perangkat keras dapat tergantung pada kebutuhan perusahaan dan DBMS yang digunakan. 2. Perangkat lunak (software) Program aplikasi yang digunakan biasanya adalah 3rd GL (third generation language), seperti C, C++, Java, Visual Basic, COBOL, Fortran, Ada, Pascal, atau bahkan 4th GL (fourth generation language) seperti SQL yang digabungkan pada 3rd GL. 3. Data (data) Data merupakan komponen yang paling penting dari lingkungan DBMS. Data berperan sebagai penghubung antara komponen mesin dengan komponen manusia. Database mengandung data operasional dan meta-data. Struktur basis data disebut dengan schema. 4. Prosedur (procedure) Prosedur mengandung instruksi dan peraturan yang mengatur rancangan dan kegunaan basis data. 11 5. Orang-orang (people) Komponen terakhir adalah orang-orang yang terlibat dengan sistem. Gambar 2.1 Lingkungan DBMS (Sumber : Connolly, 2005, p19) Fungsi DBMS terdiri atas (Connolly, 2005, p48) : 1. Penyimpanan data, pengambilan, dan update. Sebuah DBMS harus melengkapi pengguna dengan kemampuan untuk menyimpan, restore, dan update data di dalam basis data. 2. Katalog yang dapat diakses oleh pengguna. Sebuah DBMS harus melengkapi sebuah katalog dimana deskripsi data disimpan dan dapat diakses oleh pengguna. 3. Pendukung transaksi. Sebuah DBMS harus melengkapi dengan sebuah mekanisme dimana akan memastikan bahwa semua update yang dibuat oleh transaksi telah dibuat. 4. Layanan kontrol concurrency. Sebuah DBMS harus melengkapi dengan sebuah mekanisme untuk memastikan bahwa basis data di-update secara benar ketika 12 banyak pengguna telah meng-update basis data pada saat yang bersamaan. 5. Layanan perbaikan. Sebuah DBMS harus melengkapi dengan sebuah mekanisme untuk memperbaiki basis data yang bilamana dalam sebuah kejadian rusak dengan berbagai cara. 6. Layanan autorisasi. Sebuah DBMS harus melengkapi dengan sebuah mekanisme untuk memastikan bahwa hanya pengguna yang memiliki ijin yang dapat mengakses basis data. 7. Pendukung komunikasi data. Sebuah DBMS harus mampu berintegrasi dengan perangkat lunak komunikasi. 8. Layanan integritas. Sebuah DBMS harus dilengkapi dengan pengertian untuk memastikan bahwa kedua data dalam basis data dan perubahan terhadap data mengikuti peraturan yang ada. 9. Layanan untuk independensi data. Sebuah DBMS harus meliputi fasilitas untuk mendukung independensi program dari struktur yang sebenarnya dari basis data. 13 10. Layanan kegunaan. Sebuah DBMS harus menyediakan sekumpulan layanan kegunaan, seperti : ● Fasilitas impor, untuk load database dari file flat dan fasilitas ekspor, untuk unload database ke file flat. ● Fasilitas monitoring, untuk memonitor penggunaan database dan operasi. ● Program analisis statistik, untuk menguji performance dan statistik penggunaan. ● Fasilitas reorganisasi indeks, mengatur ulang indeks dan overflow indeks. ● Garbage collection dan realokasi, untuk memindahkan rekord yang telah dihapus dari tempat penyimpanan. Keuntungan DBMS antara lain (Connolly, 2005, p26) : ● Kontrol redudansi data Pendekatan basis data berusaha menghapus redundansi dengan menggabungkan file sehingga data yang sama tidak akan disimpan kembali. Bagaimanapun, pendekatan basis data tidak menghapus redudansi secara keseluruhan, tetapi mengontrol jumlah redundansi yang terdapat pada database. Pada waktu yang berbeda, beberapa data meningkatkan performance. yang duplikat diperlukan untuk 14 ● Konsistensi data Dengan menghapus atau mengontrol redundansi, maka akan mengurangi resiko ketidakkonsistensian yang akan muncul. Jika sebuah data disimpan hanya satu kali pada basis data, update apapun terhadap nilai data tersebut hanya dilakukan satu kali dan nilai baru tersedia untuk user. ● Semakin banyak informasi yang didapat dari data yang sama Dengan integrasi dari data opersional, maka memungkinkan bagi perusahaan untuk menurunkan informasi tambahan dari data yang sama. ● Data yang berbagi File biasanya dimiliki oleh orang atau departemen yang menggunakannya. Di sisi lain, basis data adalah milik keseluruhan orgranisasi dan dapat dibagi-bagi kepada user dengan hak aksesnya. ● Meningkatkan integritas data Integritas data mewakili validitas dan konsistensi data yang disimpan. Integritas biasanya digambarkan dalam bentuk constraint, yang merupakan peraturan yang konsisten pada database yang tidak diijinkan untuk dilanggar. ● Meningkatkan keamanan Keamanan basis data adalah perlindungan basis data dari user yang tidak memiliki hak akses. Akses yang diperbolehkan oleh 15 user yang memiliki hak akses dibatasi oleh tipe operasi yaitu pengambilan, memasukkan, meng-update, dan menghapus data. ● Meningkatkan akses data dan hasilnya Sebagai hasil integrasi, data yang bersilangan dengan batasan departemen akan secara langsung diakses oleh pengguna akhir. Proses ini menyediakan sistem dengan fungsionalitas yang lebih bagus. ● Meningkatkan maintenance melalui independensi data Pada sistem berbasiskan file, deskripsi data dan logika untuk mengakses data dibangun ke dalam setiap program aplikasi, membuat program bergantung pada data. Pada DBMS, memisahkan deskripsi data dari aplikasi sehingga membuat aplikasi terpisah dari perubahan deksripsi data. Ini disebut dengan independensi data. ● Meningkatkan concurrency Pada sistem berbasiskan file, jika terdapat dua atau lebih user diperbolehkan untuk mengakses file yang sama secara simultan, maka pengaksesan akan saling mengganggu satu sama lain yang menghasilkan kehilangan informasi atau bahkan kehilangan integritas. DBMS mengatur akses basis data pada saat yang bersamaan dan memastikan masalah seperti di atas tidak muncul. 16 Kerugian DBMS antara lain (Connolly, 2005, p29): ● Kompleksitas Perancang dan pengembang basis data, data dan database administrator, serta pengguna akhir harus memahami keseluruhan fungsionalitas DBMS yang kompleks. Kegagalan untuk memahami sistem dapat membawa ke keputusan rancangan yang buruk dimana akan terdapat konsekuensi yang serius untuk perusahaan. ● Ukuran Kompleksitas dan kedalaman fungsionalitas membuat DBMS sebagai sebuah potongan perangkat lunak yang besar, memakan banyak megabyte dari tempat penyimpanan dan membutuhkan jumlah memori yang cukup untuk menjalankan. ● Biaya DBMS Biaya DBMS sangat bervariasi, tergantung pada lingkungan dan fungsionalitas yang dibutuhkan. ● Biaya tambahan perangkat keras Kebutuhan tempat penyimpanan untuk DBMS dan basis data membutuhkan pembelian tempat penyimpanan tambahan. Selanjutnya, untuk mendapatkan performance yang diinginkan, maka diperlukan untuk membeli mesin yang lebih besar, bahkan mesin yang diperuntukkan untuk menjalankan DBMS. 17 Penambahan perangkat keras baru akan menghasilkan pengeluaran biaya. ● Biaya konversi Pada beberapa situasi, biaya DBMS dan perangkat keras tambahan menjadi tidak signifikan jika dibandingkan dengan biaya konversi aplikasi yang telah ada untuk dijalankan pada DBMS dan perangkat keras baru. Biaya tambahan juga termasuk biaya pelatihan staff untuk menggunakan sistem baru dan mungkin mempekerjakan staff ahli untuk membantu melakukan konversi dan menjalankan sistem. Biaya-biaya inilah yang menjadi alasan utama mengapa beberapa perusahaan merasa tidak perlu berpindah ke teknologi basis data modern dan tetap menjalankan yang sudah ada. ● Performance Biasanya, sistem berbasis file ditulis untuk aplikasi tertentu, seperti faktur. Sebagai hasilnya, performace secara umum bagus. Bagaimanapun, DBMS ditulis lebih umum. Efeknya adalah beberapa aplikasi mungkin tidak dapat berjalan dengan cepat seperti biasanya. 2.1.4 Data Definition Language Data Definition Language (DDL) adalah sebuah bahasa yang memberikan fasilitas kepada DBA (Database Administrator) atau 18 pengguna untuk menjelaskan dan menamakan entity, attribute, dan relationship yang dibutuhkan untuk aplikasi, bersama dengan integritas yang berhubungan dan batasan-batasan keamanan. Database Administrator adalah seseorang yang bertanggung jawab terhadap realisasi fisikal basis data, termasuk rancangan fisik basis data dan implementasi, keamanan dan kontrol integritas, maintenance sistem operasional, dan memastikan kepuasan performance aplikasi kepada user (Connolly, 2005, p40). Data Definition Language (DDL) adalah perintah-perintah yang digunakan untuk mendefinisikan sebuah database, termasuk membuat, mengubah, dan menghapus tabel dan memberikan batasan-batasannya (Hoffer, 2005, p291). Data Definition Language (DDL) adalah sebuah bahasa yang digunakan oleh DBMS untuk mendefinisikan sebuah database atau pandangan dari sisi database (Whitten, 2004, p555). Data Definition Language (DDL) adalah suatu bahasa komputer yang digunakan untuk mendefinisikan data (http://en.wikipedia.org). 2.1.5 Data Manipulation Language Data Manipulation Language (DML) adalah sebuah bahasa yang menyediakan sekumpulan operasi untuk mendukung operasi manipulasi data utama pada data di dalam basis data (Connolly, 2005, p40). 19 Data Manipulation Language (DML) adalah suatu bahasa yang memungkinkan user untuk mengakses dan memanipulasi data yang telah diorganisasikan oleh model data yang tepat (Silberschatz, 2002, p12). Data Manipulation Language (DML) adalah suatu bahasa DBMS yang digunakan untuk membuat, membaca, mengubah, dan menghapus records (Whitten, 2004, p555). Data Manipulation Language (DML) adalah bahasa komputer yang digunakan oleh program-program komputer atau database user untuk mendapatkan, memasukkan, menghapus, dan mengubah data di dalam basis data (http://en.wikipedia.org). Operasi manipulasi data antara lain (Connolly, 2005, p41) : ● Mengentri data baru ke dalam basis data. ● Modifikasi data yang disimpan dalam basis data. ● Menampilkan kembali data di dalam basis data. ● Menghapus data dari basis data Terdapat dua tipe DML, yaitu (Connolly, 2005, p41) : 1. Procedural DML, yaitu sebuah bahasa yang memberikan fasilitas kepada pengguna untuk memberitahukan kepada sistem, data apa yang diperlukan dan bagaimana seharusnya data tersebut diambil. 2. Non-precedural DML, yaitu sebuah bahasa yang memberikan fasilitas kepada pengguna untuk menyatakan data apa yang diperlukan daripada tentang bagimana cara data tersebut diambil. 20 2.1.6 Normalisasi Normalisasi adalah sebuah teknik untuk menghasilkan sekumpulan relasi dengan properti yang diinginkan, yang akan memberikan kebutuhan data bagi perusahaan. Relasi adalah sebuah tabel dengan kolom dan baris (Connolly, 2005, p388). Tujuan normalisasi adalah sebagai berikut (Connolly, 2005, p388): ● Menghilangkan kumpulan relasi dari inserting, updating, dan delete dependency yang tidak diharapkan ● Mengurangi kebutuhan restrukturisasi kumpulan relasi dan meningkatkan life spam program aplikasi ● Membuat model relasional yang lebih informatif Proses normalisasi (Connolly, 2005, p401) : 1. First Normal Form (1NF) Sebelum memasuki tahap 1NF, status sebelum 1NF disebut dengan Unormalized Form (UNF), yaitu sebuah tabel yang mengandung satu atau lebih kelompok yang berulang. First Normal Form (1NF) adalah sebuah relasi dimana persimpangan dari setiap baris dan kolom yang mengandung satu dan hanya satu nilai saja. 2. Second Normal Form (2NF) Second Normal Form (2NF) adalah sebuah relasi dimana pada bentuk normal pertama dan setiap attribute yang bukan primary 21 key adalah secara fungsional tergantung dengan primary key. Primary key adalah kandidat key yang dipilih untuk mengidentifikasi tuple secara unik pada sebuah relasi. Sedangkan tuple adalah baris pada sebuah relasi. Proses normalisasi 1NF ke 2NF melibatkan penghilangan partial dependencies. Jika terdapat partial dependencies, maka atribut functionally dependent dari relasi akan dihilangkan dengan menempatkannya pada sebuah relasi baru bersama dengan copy determinant mereka. Full functional dependency adalah suatu keadaan dimana jika A dan B adalah atribut, B secara fungsional sangat tergantung pada A dan jika B secara fungsional bergantung pada A, tetapi bukan subset dari A. 3. Third Normal Form (3NF) Third Normal Form (3NF) adalah sebuah relasi dimana bentuk normal pertama dan kedua, dan dimana tidak ada attribute yang bukan primary key secara transitif bergantung pada primary key. Transitive dependency adalah sebuah kondisi dimana A, B dan C adalah atribut dari relasi dimana A → B dan B → C, maka C adalah transitive dependency pada A melalui B. 22 4. Boyce-Codd Normal Form (BCNF) Boyce-Codd Normal Form (BCNF) adalah sebuah relasi di dalam BCNF, jika dan hanya jika, setiap deteminan adalah candidate key. Candidate key adalah superkey yang bukan merupakan subset adalah superkey dalam relasi. Superkey adalah sebuah atribut, atau sekumpulan atribut yang secara unik mengidentifikasi sebuah tuple dalam sebuah relasi. 5. Fourth Normal Form (4NF) Fourth Normal Form (4NF) adalah sebuah relasi dimana normal BCNF dan tidak mengandung ketergantungan nontrivial multivalued. Multivalued dependecy menggambarkan sebuah ketergantungan antara atribut ( sebagai contoh A, B, dan C ) dalam sebuah relasi. Nilai A adalah kumpulan nilai untuk B dan kumpulan nilai untuk C. Tetapi kumpulan nilai untuk B dan C tidak saling bergantung satu sama lain. 6. Fifth Normal Form (5NF) Fifth Normal Form (5NF) adalah sebuah relasi dimana tidak ada ketergantungan join. 2.1.7 4th GL ( Generation Language ) 4th GL merupakan non-procedural, dimana pengguna menjelaskan apa yang perlu dilakukan dan bukan bagaimana yang perlu 23 dilakukan. Pengguna tidak perlu menjelaskan langkah-langkah program yang harus dilakukan, tetapi hanya memberikan parameter untuk tool lalu menggunakan tool tersebut untuk menghasilkan sebuah program aplikasi (Connolly, 2005, p42). Bahasa generasi ke-empat meliputi (Connolly, 2005, p42) : ● Bahasa presentasi seperti query language dan penghasil laporan ● Bahasa tertentu, seperti spreadsheet dan bahasa basis data. ● Bahasa aplikasi yang menjelaskan insert, update, dan mengambil data dari basis data untuk membuat aplikasi. ● Bahasa tingkat tinggi digunakan untuk menghasilkan kode aplikasi. Salah contoh 4th GL adalah SQL (Structured Query Language) (Connolly, 2005, p42). SQL adalah sebuah bahasa yang dirancang menggunakan relasi untuk mengubah input kedalam output yang diinginkan. SQL memiliki dua komponen utama yaitu : Data Definition Language dan Data Manipulation Language (Connolly, 2005, p113). Alasan SQL mudah dipelajari (Connolly, 2005, p114) : ● Bukan merupakan bahasa prosedural. ● SQL merupakan suatu bahasa berformat bebas dimana bagian dari perintahnya tidak harus diketikkan pada lokasi tertentu di layar. ● Struktur perintahnya terdiri atas standard kata-kata dalam bahasa Inggris seperti CREATE TABLE, INSERT, SELECT, dll. 24 ● SQl dapat digunakan oleh user dalam berbagai tingkat, termasuk Database Administrator (DBA), management personnel, application developers, dan pengguna akhir lainnya. Beberapa perintah SQL DML adalah (Connolly, 2005, p117) : ● SELECT – untuk query data pada basis data ● INSERT – untuk memasukkan data ke dalam tabel ● UPDATE – untuk update data dalam tabel ● DELETE – untuk menghapus data dalam tabel 2.1.8 Siklus Hidup Aplikasi Database Pengertian sistem informasi adalah sumber-sumber mengenai koleksi, manajemen, kontrol dan penyebaran informasi perusahaan (Connolly, 2005, p282). Sebuah sistem basis data adalah komponen pokok dari sebuah sistem informasi, dan perkembangan serta penggunaannya harus dilihat dari sudut pandang kebutuhan perusahaan yang lebih besar. Tahapan dalam daur hidup aplikasi basis data tidaklah harus berurutan, tetapi melibatkan beberapa perulangan dari tahapan sebelumnya melalui perulangan feedback (Connolly, 2005, p283). 25 Tahapan daur hidup aplikasi database : Gambar 2.2 Daur Hidup Aplikasi Basis Data (Sumber : Connolly, 2005, p284) 26 Berikut ini adalah keterangan dari tahapan-tahapan di atas (Connolly, 2005, p285) : ● Database Planning Database Planning adalah aktivitas manajemen dari aplikasi basis data untuk merencanakan bagaimana tahapan dari daur hidup dapat dijalankan secara efisien dan efektif. Tiga permasalahan dalam merencanakan strategi sistem informasi antara lain : ¾ Identifikasi rencana dan tujuan perusahaan dengan kebutuhan sistem yang mencukupi. ¾ Evaluasi sistem informasi yang sedang berjalan untuk menentukan kekuatan dan kelemahannya yang ada. ¾ Penilaian kesempatan IT yang menjadi lahan untuk mendapatkan keuntungan yang kompetitif. ● System Definition System Definition menjelaskan cakupan dan batasan dari aplikasi basis data, para penggunanya dan area aplikasi. ● Requirement Collection and Analysis Requirement Collection and Analysis merupakan proses mengumpulkan dan menganalisa informasi yang mendukung aplikasi basis data dan menggunakan informasi ini untuk mengidentifikasi kebutuhan pengguna terhadap sistem baru. 27 ● Database Design Database Design adalah proses membuat rancangan untuk basis data yang akan mendukung operasi perusahaan dan tujuantujuannya. Dua pendekatan perancangan basis data : Pendekatan bottom-up Pendekatan bottom-up dimulai dengan level atribut dasar dimana melalui analisis atribut yang berhubungan, yang dikelompokkan kedalam relasi yang merepresentasikan tipe entiti dan relasi antar entiti. Pendekatan top-down Pendekatan top-down dimulai dengan perkembangan model data yang mengandung beberapa entiti level tinggi dan relasi dan lalu turun untuk mengidentifikasi entiti level rendah, relasi dan atribut yang berhubungan. Kriteria untuk menghasilkan sebuah model data yang optimal : Validitas struktural, yaitu konsisten dengan cara perusahaan menggambarkan dan mengatur informasi. Kesederhanaan, yaitu kemudahan untuk dipahami oleh profesional IS dan pengguna non teknis. Expressibility, yaitu kemampuan untuk membedakan antara data yang berbeda, hubungan antar data, dan batasan. 28 Non redudansi, yaitu mengurangi data yang duplikat atau menampilkan data tepat hanya satu. Kemampuan berbagi, yaitu tidak terlalu spesifik kepada aplikasi atau teknologi tertentu dan dapat digunakan bersama. Extensibility, yaitu kemampuan untuk mendukung kebutuhan baru dengan efek minimal pada pengguna yang sudah ada. Integritas, yaitu konsistensi dengan cara perusahaan menggunakan dan mengatur informasi. Representasi diagram, yaitu kemampuan untuk merepresentasikan sebuah model menggunakan sebuah diagram yang mudah dimengerti. ● DBMS Selection (optional) DBMS Selection adalah seleksi terhadap penggunaan DBMS yang sesuai untuk mendukung aplikasi basis data. ● Application Design Application Design adalah rancangan tampilan pengguna dan program aplikasi yang menggunakan dan memproses basis data. ● Prototyping (optional) Prototyping adalah membangun sebuah model aplikasi basis data yang sudah dapat bekerja. 29 ● Implementation Implementation adalah realisasi secara fisik dari basis data dan rancangan aplikasi. ● Data conversion and Loading Data conversion and Loading merupakan sebuah proses untuk mengirim data yang telah ada ke dalam basis data yang baru dan mengkonversi aplikasi yang telah ada untuk dapat berjalan pada basis data yang baru. ● Testing Testing merupakan proses mengeksekusi program aplikasi dengan tujuan untuk mencari error. ● Operational Maintenance Operational Maintenance adalah proses memantau dan menjaga sistem termasuk instalasi. Data Administration (DA) adalah manajemen sumber data dimana termasuk perencanaan basis data, pengembangan dan maintenance standar, kebijakan dan prosedur, dan rancangan basis data konseptual dan logikal. Database Administration (DBA) adalah manajemen realisasi fisik dari sebuah aplikasi basis data, dimana termasuk rancangan basis data fisikal dan implementasi, pengaturan kontrol keamanan dan integritas, performance monitoring sistem, dan pengaturan basis data. 30 2.1.9 Desain Konseptual, Logikal dan Fisikal Database Metodologi desain adalah sebuah pendekatan terstruktur yang menggunakan prosedur, teknik, tool, dan dokumentasi yang mendukung dan memfasilitasi proses desain (Connolly, 2005, p438). Dalam metodologi desain, proses desain dibagi ke dalam tiga fase utama, yaitu (Connolly, 2005, p439) : 1. Conceptual database design, yaitu sebuah proses pembuatan sebuah model dari suatu informasi yang digunakan dalam sebuah perusahaan yang bebas dari pertimbangan fisik. 2. Logical database design, yaitu proses pembuatan sebuah model dari suatu informasi yang digunakan dalam sebuah perusahaan yang berdasarkan pada model data spesifik, tetapi bebas dari DBMS tertentu dan pertimbangan fisik lainnya. 3. Physical database design, yaitu sebuah proses yang menghasilkan deskripsi implementasi basis data pada tempat penyimpanan kedua; menjelaskan relasi dasar (base relation), file organisasi, dan indeks yang digunakan untuk mendapatkan akses ke data yang efisien, dan integrity constraint yang berhubungan serta pengukuran keamanan. Faktor sukses yang kritis di dalam rancangan basis data (Connolly, 2005, p438) : ● Bekerja secara interaktif dengan pengguna sesering mungkin. 31 ● Mengikuti metodologi yang terstruktur melalui proses data modelling. ● Menggunakan pendekatan bagaimana data didapatkan. ● Menggabungkan pertimbangan struktural dan integritas ke dalam model data. ● Menggabungkan konseptualisasi, normalisasi, dan teknik validasi transaksi ke dalam metodologi data modelling. ● Menggunakan diagram untuk menggambarkan model data sebanyak mungkin. ● Menggunakan database design language (DBDL) untuk menggambarkan semantic data tambahan yang tidak mudah digambarkan dengan diagram. ● Membangun kamus data untuk melengkapi model diagram data dan DBDL. ● Mengulangi langkah-langkah di atas. 2.1.9.1 Conceptual Database Design Langkah 1. Membangun model data konseptual lokal untuk setiap view (Connolly, 2005, p422). Tujuannya adalah membangun model data konseptual lokal dari sebuah perusahaan untuk setiap view yang spesifik. 1.1. Mengidentifkasi entity type 32 Tujuannya adalah untuk mengidentifikasi tipe entity utama yang dibutuhkan oleh view. Hasilnya adalah dokumentasi tipe entity. 1.2. Mengidentifikasi tipe relasi / relationship Tujuannya adalah untuk mengidentifikasi relationship yang penting yang ada di antara entity type yang telah diidentifikasi. Hal yang perlu diperhatikan adalah bahwa semua relationship baik secara eksplisit maupun implisit harus terdeteksi; dengan cara menggunakan ERD, menentukan multiplicity contraint dari relationship types, mengecek fan dan chasm trap serta mengecek setiap entity yang berpartisipasi setidaknya pada satu relationship. Hasilnya adalah dokumentasi tipe relationship 1.3. Mengidentifikasi dan mengasosiasikan atribut dengan entity dan tipe relationship. Tujuannya adalah untuk menghubungkan atribut dengan entity atau tipe relationship yang sesuai. 1.4. Menentukan domain atribut Tujuannya adalah menentukan domain untuk atribut pada model data konseptual lokal. Domain adalah nilai dimana satu atau banyak atribut berdasarkan nilai tersebut. Hasilnya adalah dokumentasi atribut domain 33 1.5. Menentukan candidate key dan atribut primary key Tujuannya adalah mengidentifikasi candidate key untuk setiap tipe entiti dan jika ada lebih dari satu candidate key maka harus memilih satu untuk menjadi primary key. Candidate key adalah minimal set atribut dari tipe entiti yang untuk yang mengidentifikasi setiap occurance entity. Hasilnya adalah dokumentasi primary dan alternate key di data dictionary. 1.6. Mempertimbangkan penggunaan konsep enhanced modeling (langkah pilihan) Tujuannya adalah mempertimbangkan penggunaan konsep modeling enhanced seperti spesialisasi/generalisasi, agregasi, dan komposisi. 1.7. Mengecek model untuk redudansi Tujuannya adalah untuk mengecek adanya redudansi di dalam model dengan cara : ● memeriksa ulang relasi one-to-one (1:1) ● menghilangkan relationship yang berulang 1.8. Validasi model konseptual lokal terhadap transaksi user. Tujuannya adalah memastikan model konseptual lokal mendukung transaksi yang dibutuhkan view. 1.9. Review model data konseptual lokal dengan user. 34 Untuk me-review model data konseptual data dengan pengguna untuk memastikan bahwa model tersebut adalah benar merepresentasikan view. 2.1.9.2 Logical Database Design untuk Model Relational Langkah 2. Membangun dan validasi model data logikal lokal untuk setiap view (Connolly, 2005, p462). Tujuannya adalah membangun model data logikal lokal dari sebuah model konseptual lokal yang mewakili sudut pandang tertentu dari perusahaan dan memvalidasi model untuk memastikan bahwa struktur tersebut benar (menggunakan teknik normalisasi) dan memastikan model tersebut mendukung transaksi yang diperlukan. 2.1. Menurunkan relation untuk model data logikal lokal Tujuannya adalah membuat relasi untuk model data logikal lokal untuk mewakili entiti, relationship, dan atribut yang telah diidentifikasi. 2.2. Validasi relation menggunakan normalisasi. Tujuannya adalah untuk mevalidasi relation pada model data logikal lokal menggunakan teknik normalisasi. 2.3. Validasi relation terhadap transaksi pengguna 35 Tujuannya adalah untuk memastikan relation pada model data logikal lokal yang mendukung transaksi yang dibutuhkan oleh view. 2.4. Menentukan integrity contraint Tujuannya adalah untuk menentukan integrity constraint yang diberikan pada view. Integrity constraint adalah constraint yang digunakan untuk memproteksi database dari menjadi tidak konsisten. Tipe intergrity constraint : ● data yang dibutuhkan, haruslah mengandung nilai valid (tidak boleh null). ● atribut domain constraint (setiap atribut mempunyai domain) ● entity integrity (primary key tidak boleh null) ● referential integrity (foreign key yang berhubungan dengan setiap tuple pada relasi child terhadap parent relation mengandung nilai candidate yang cocok) Referential integrity terdiri atas : ¾ NO ACTION (mencegah parent dihapus) ¾ CASCADE (jika parent dihapus maka child juga akan dihapus secara otomatis) ¾ SET NULL (jika parent dihapus, foreign key pada semua child akan di-set null) 36 ¾ SET DEFAULT (jika parent dihapus, foreign key pada semua child akan di-set default) ¾ NO CHECK (jika parent dihapus, maka tidak akan melakukan apa-apa untuk memastikan referential integrity dijaga) ● enterprise constraint (sama dengan peraturan bisnis) 2.5. Review model data logikal lokal dengan pengguna. Tujuannya adalah untuk memastikan bahwa model data logikal lokal dan mendukung dokumentasi yang menjelaskan model tersebut adalah benar mewakili pengguna. 2.6. Menggabungkan model data logikal lokal ke dalam model global (langkah pilihan) Tujuannya adalah untuk menggabungkan model data logikal lokal ke dalam sebuah model data logikal global suatu perusahaan. Tugas-tugasnya antara lain : ● review nama dan isi entiti/relation serta candidate key ● review nama dan isi relationship/foreign key ● menggabungkan entiti/relation dari model data lokal ● memasukkan entiti/relation unik ke setiap model lokal data 37 ● menggabungkan relationship/foreign key dari model data lokal ● memasukkan relationship/foreign key unik ke setiap model data lokal ● cek terhadap kehilangan entiti/relation dan relationship/foreign key ● cek foreign key ● cek intergrity constraint ● gambar ER/relation diagram global ● meng-update dokumentasi 2.7. Cek untuk pertumbuhan di masa mendatang Tujuannya adalah untuk menentukan apakah terdapat perubahan yang signifikan pada masa mendatang dan apakah akses model data logikal global dapat mengakomodasi perubahan tersebut. 2.1.9.3 Physical Database Design untuk Database Relational Langkah 3. Menerjemahkan model data logikal global untuk target DBMS (Connoly, 2005, p496). Tujuannya adalah untuk menghasilkan relational database schema dari model data diimplementasikan target DBMS 3.1. Merancang base relation logikal global yang dapat 38 Tujuannya adalah untuk menentukan bagaimana menampilkan base relation yang diidentifikasi pada model data logikal global pada target DBMS. Hasilnya adalah dokumentasi design base relation. 3.2. Merancang representasi dari data yang diturunkan Tujuannya adalah memilih bagaimana untuk merepresentasikan derived data yang muncul di dalam model data logikal global pada DBMS. Hasilnya adalah dokumentasi desain derived data. 3.3. Merancang enetrprise constraint. Tujuannya adalah untuk merancang enterprise constraint untuk DBMS. Hasilnya adalah dokumentasi desain enterprise constraint Langkah 4. Merancang organisasi dan indeks file (Connolly, 2005, p501) Tujuannya adalah untuk menentukan organisasi file yang optimal untuk menyimpan base relation dan indeks yang dibutuhkan untuk mencapai performance yang dapat diterima, yaitu cara dimana relation dan penyimpanan kedua. tuple yang akan digunakan pada 39 4.1. Menganalisa transaksi Tujuannya adalah untuk memahami fungsionalitas transaksi yang akan dijalankan pada database dan untuk menganalisis transaksi yang penting. 4.2. Memilih organisasi file Tujuannya adalah untuk menentukan organisasi file yang efisien untuk setiap base relation. Hasilnya adalah dokumentasi pilihan file organisasi. 4.3. Memilih indeks Tujuannya adalah untuk menentukan apakah dengan menambah indeks dapat meningkatkan performa sistem. 4.4. Memperkirakan kebutuhan disk space Tujuannya adalah untuk memperkirakan jumlah tempat penyimpanan yang akan dibutuhkan basis data. Langkah 5. Merancang user view (Connolly, 2005, p515) Tujuannya adalah untuk merancang user view yang diidentifikasi selama pengumpulan kebutuhan dan tahap analisis dari siklus aplikasi basis data relational. Hasilnya adalah dokumentasi desain dari view pengguna. Langkah 6. Merancang mekanisme keamanan (Connolly, 2005, p516) Tujuannya adalah merancang perhitungan keamanan untuk basis data pengguna. 40 Langkah 7. Mempertimbangkan redudansi yang terkontrol (Connolly, 2005, p519) Tujuannya adalah untuk menentukan apakah memperkenalkan redudansi dalam pelonggaran aturan normalisasi yang terkontrol dapat meningkatkan performa sistem. 7.1. Mengkombinasikan hubungan 1:1 7.2. Menduplikasi atribut non-key dalam hubungan 1:* untuk mengurangi join 7.3. Menduplikasi atribut foreign key dalam hubungan 1:* untuk mengurangi join 7.4. Menduplikasikan atribut dalam hubungan *:* untuk mengurangi join 7.5. Memperkenalkan kelompok yang berulang 7.6. Membuat tabel ekstrak 7.7. Hubungan partisi Langkah 8. Memantau dan tuning sistem operasi (Connolly, 2005, p532) Tujuannya adalah untuk memantau sistem operasi dan meningkatkan performance sistem untuk memperbaiki keputusan rancangan yang tidak sesuai atau merepresentasikan terhadap perubahan kebutuhan. Ukuran efisiensi merancang database fisikal dalam menyimpan data antara lain : 41 ● Transaction throughput (jumlah transaksi yang dapat diproses dalam jangka waktu tertentu) ● Waktu respon (waktu yang melengkapi transaksi tunggal) ● Tempat penyimpanan (jumlah tempat penyimpanan yang dibutuhkan untuk menyimpan file database) 2.2 Teori-teori Pembelian, Persediaan dan Penjualan 2.2.1 Pembelian 2.2.1.1 Pengertian Pembelian Pembelian berarti perolehan barang dan jasa. (Render, 2001, p414). Tujuan dari kegiatan pembelian adalah (Render, 2001, p414) : 1. Membantu identifikasi produk dan jasa yang dapat diperoleh secara eksternal. 2. Mengembangkan, mengevaluasi, dan menentukan pemasok, harga, dan pengiriman yang terbaik bagi barang dan jasa tersebut. Sistem pembelian digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan (Mulyadi, 2001, p299). 42 2.2.1.2 Jenis-jenis Pembelian Transaksi pembelian dapat digolongkan menjadi dua (Mulyadi, 2001, p299) : 1. Pembelian lokal Pembelian lokal adalah pembelian dari pemasok dalam negeri. 2. Pembelian impor Pembelian impor adalah pembelian dari pemasok luar negeri. Berdasarkan jenis transaksi pembayaran, pembelian dapat dibedakan menjadi dua, yaitu : 1. Pembelian tunai Pembelian tunai adalah pembelian dimana transaksi pembayarannya langsung dilakukan pada saat penerimaan barang. 2. Pembelian kredit Pembelian kredit pembayarannya adalah tidak pembelian langsung dimana dilakukan transaksi pada saat penerimaan barang tetapi dilakukan dalam batas yang tertentu sesuai dengan perjanjian yang disepakati. 2.2.1.3 Fungsi yang Terkait dalam Pembelian Fungsi yang terkait dalam sistem akuntansi pembelian adalah (Mulyadi, 2001, p299) : 43 1. Fungsi gudang Dalam sistem akuntansi pembelian, fungsi gudang bertanggung jawab untuk mengajukan permintaan pembelian sesuai dengan posisi persediaan yang ada di gudang dan untuk menyimpan barang yang telah diterima oleh fungsi penerimaan. 2. Fungsi pembelian Fungsi pembelian bertanggung jawab untuk memperoleh informasi mengenai harga barang, menentukan pemasok yang dipilih dalam pengadaan barang, dan mengeluarkan order pembelian kepada pemasok yang dipilih. 3. Fungsi penerimaan Dalam sistem akuntansi pembelian, fungsi ini bertanggung jawab untuk melakukan pemeriksaan terhadap jenis, mutu, dan kuantitas barang yang diterima dari pemasok guna menentukan dapat atau tidaknya barang tersebut diterima oleh perusahaan. 4. Fungsi akuntansi Fungsi akuntansi yang terkait dalam transaksi pembelian adalah fungsi pencatat uang dan fungsi pencatat persediaan. 44 2.2.2 Persediaan 2.2.2.1 Pengertian Persediaan Pengertian dari persediaan adalah sebagai suatu aktiva yang meliputi barang-barang milik perusahaan dengan maksud untuk dijual dalam suatu periode usaha yang normal, atau persediaan barang-barang yang masih dalam pengerjaan/proses produksi, ataupun persediaan bahan baku yang menunggu penggunaannya dalam suatu proses produksi (Mulyadi, 2001, p299). 2.2.2.2 Jenis-jenis Persediaan Jenis-jenis persediaan dapat dibedakan menjadi 4 (Render, 2001, p314) : 1. Persediaan bahan mentah Persediaan bahan mentah telah dibeli, namun belum diproses. Bahan mentahnya dapat digunakan dari proses produksi untuk pemasok yang berbeda-beda. 2. Persediaan barang-dalam-proses (Work-in-process -- WIP) Persediaan barang-dalam-proses telah mengalami beberapa perubahan, tetapi belum selesai. WIP ini ada karena untuk membuat produk diperlukan waktu (disebut waktu silkus). 3. Persediaan MRO pemeliharaan/perbaikan/operasi) (Perlengkapan 45 MRO merupakan persediaan yang dikhususkan untuk perlengkapan pemeliharaan/perbaikan/operasi. MRO ini ada karena waktu dan kebutuhan untuk pemeliharaan dan perbaikan dari beberapa peralatan tidak dapat diketahui. 4. Persediaan barang jadi Persediaan barang jadi selesai dan menunggu untuk dikirimkan. Barang jadi dimasukkan ke dalam persediaan karena permintaan konsumen untuk jangka waktu tertentu mungkin tidak diketahui. 2.2.2.3 Fungsi yang Terkait dalam Persediaan Fungsi yang terkait dalam sistem perhitungan fisik persediaan adalah (Mulyadi, 2001, p579): 1. Panitia perhitungan fisik persediaan Fungsi ini berfungsi untuk melaksanakan perhitungan fisik persediaan dan meyerahkan hasil perhitungan tersebut kepada bagian kartu persediaan untuk digunakan sebagai dasar adjustment terhadap catatan persediaan dalam kartu persediaan. 2. Fungsi akuntansi Dalam sistem perhitungan fisik persediaan, fungsi ini bertanggung jawab untuk : 46 • Mencantumkan harga pokok satuan persediaan yang dihitung ke dalam daftar hasil perhitungan fisik. • Mengalihkan kuantitas dan harga pokok persatuan yang tercantum dalam daftar hasil perhitungan fisik. • Mencantumkan harga pokok total dalam daftar hasil perhitungan fisik. • Melakukan adjustment terhadap kartu persediaan berdasar data hasil perhitungan fisik persediaan. • Membuat bukti memorial untuk mencatat adjustment data persediaan dalam jurnal umum berdasarkan hitungan fisik persediaan. 3. Fungsi gudang Dalam sistem perhitungan fisik persediaan, fungsi gudang bertanggung jawab untuk melakukan adjustment data kuantitas persediaan yang dicatat dalam kartu gudang berdasarkan hasil perhitungan fisik persediaan. 2.2.3 Penjualan 2.2.3.1 Pengertian Penjualan Kegiatan penjualan terdiri dari transaksi penjualan barang atau jasa, baik secara kredit maupun secara tunai. Dalam transaksi penjualan kredit, jika order dari pelanggan telah dipenuhi dengan pengiriman barang atau penyerahan jasa, untuk jangka waktu 47 tertentu perusahaan memiliki piutang kepada pelanggannya. Kegiatan penjualan secara kredit ini ditangani oleh perusahaan melalui sistem penjualan kredit. Dalam transaksi penjualan tunai, barang atau jasa baru diserahkan oleh perusahaan kepada pembeli jika perusahaan telah menerima kas dari pembeli. Kegiatan penjualan secara tunai ini ditangani oleh perusahaan melalui sistem penjualan tunai (Mulyadi, 2001, p202). 2.2.3.2 Fungsi yang Terkait dalam Penjualan Fungsi yang terkait dalam sistem penjualan kredit adalah (Mulyadi, 2001, p211) : 1. Fungsi penjualan Dalam transaksi penjualan kredit, fungsi ini bertanggung jawab untuk menerima surat order dari pembeli, meng-edit order dari pelanggan untuk menambahkan informasi yang belum ada pada surat order tersebut, meminta otorisasi kredit, menentukan tanggal pengiriman dan dari gudang mana barang akan dikirim, dan mengisi surat order pengiriman. 2. Fungsi kredit Fungsi ini berada di bawah fungsi keuangan yang dalam transaksi penjualan kredit, bertanggung jawab untuk meneliti status kredit pelanggan dan memberikan otorisasi pemberian kredit kepada pelanggan. 48 3. Fungsi gudang Dalam transaksi penjualan kredit, fungsi ini bertanggung jawab untuk menyimpan barang dan menyiapkan barang yang dipesan oleh pelanggan, serta menyerahkan barang ke fungsi pengiriman. 4. Fungsi pengiriman Dalam transaksi penjualan kredit, fungsi ini bertanggung jawab untuk menyerahkan barang atas dasar surat order pengiriman yang diterimanya dari fungsi penjualan. 5. Fungsi penagihan Dalam transaksi penjualan kredit, fungsi ini bertanggung jawab untuk mencatat piutang yang timbul dari transaksi penjualan kredit dan membuat serta mengirimkan pernyataan piutang kepada para debitur, serta membuat laporan penjualan. Di samping itu, fungsi ini juga bertanggung jawab untuk mencatat harga pokok persediaan yang dijual ke dalam kartu persediaan. 6. Fungsi akuntansi Dalam transaksi penjualan kredit, fungsi ini bertanggung jawab untuk membuat dan megirimkan faktur penjualan kepada pelanggan, serta menyediakan copy faktur bagi kepentingan pencatatan transaksi penjualan oleh fungsi akuntansi.