6 BAB II LANDASAN TEORI 2.1. Sistem Basis Data 2.1.1 Pengertian Sistem Basis Data Sistem basis data adalah merupakan suatu kumpulan data-data yang berhubungan secara logis, dan deskripsi dari data-data tersebut serta dirancang untuk memenuhi informasi yang dibutuhkan oleh sebuah organisasi. Ini arti sistem basis data menurut Connolly dan Begg. Artinya basis data merupakan penyimpanan data yang tunggal dan besar yang dapat digunakan secara simultan oleh banyak bagian departemen dan pemakai (user). Di dalam basis data semua item diintegrasikan dengan jumlah duplikasi data yang minimum. Basis data tidak lagi dimiliki oleh suatu departemen, melainkan resource perusahaan yang dapat dishare. Basis data tidak hanya mengandung data operasional organisasi, tetapi juga deskripsi dari data tersebut. Untuk itu, sebuah basis data juga mendefinisikan integrasi record dari basis data itu sendiri (selfdescribing of integrated record). Deskripsi dari data dikenal sebagai sistem catalog (data dictionary-meta data). Deskripsi ini menciptakan kebebasan dari program aplikasi (program data independence). Pendekatan dengan sistem basis data, dimana definisi dari data adalah dipisahkan dari program aplikasi. Pemakai dalam melihat sebuah objek hanya pada definisi eksternal dan tidak mengetahui bagaimana objek didefinisikan dan objek bisa berfungsi. Pendekatan ini dikenal sebagai abstraksi data (data abstraction), di mana 7 perubahan definisi internal dari sebuah objek tanpa mempengaruhi pemakai (user) atau tidak mempengaruhi definisi eksternal. Dalam arti lainnya, pendekatan basis data memisahkan struktur dari pada data dari program aplikasi dan meyimpannya ke dalam basis data. Jika ada penambahan struktur data atau perubahan struktur data yang ada maka tidak akan mempengaruhi program aplikasi, sehingga tidak perlu bergantung langsung dengan apa yang telah dirubah. Arti lain dari basis data menurut Faried Irmansyah (2003) adalah kumpulan dari item-item data yang saling berhubungan satu dengan yang lainnya yang diorganisasikan berdasarkan sebuah skema atau struktur tertentu, tersimpan di perangkat keras komputer dan dimanipulasi dengan piranti lunak agar bisa digunakan sesuai dengan keinginan user. Tetapi menurut Petrousos (Arte,1980,p12), basis data adalah sebuah objek untuk menyimpan informasi terstruktur yang kompleks, yang diorganisir dan disimpan dalam satu cara yang mengijinkan pemakainya dapat mengambil informasi secara cepat dan efisien. Informasi dipecah ke dalam bagian-bagian kecil agar bisa dikelola dengan mudah. Basis data adalah suatu record terkomputasi yang memiliki tujuan untuk memberikan informasi yang dibutuhkan (Date,2000,p4). Pemakai dapat melakukan berbagai hal di dalam sistem basis data seperti manipulasi data dan operasi file, dimulai dari memuat file baru ke dalam basis data, memasukkan data, mengambil data, dan lain-lain sebagainya. 8 Dalam skripsi kami, kami menggunakan teori basis data yang di kemukakan oleh Thomas Connolly dalam buku nya yang berjudul Database System. Basis data merupakan sekumpulan file-file yang saling berhubungan dan hubungan tersebut biasanya dapat ditunjukkan dengan kunci dari setiap file yang ada. Satu basis data menunjukkan satu kumpulan data yang digunakan dalam suatu lingkup instansi atau perusahaan. Berikut ini kegunaan basis data dalam mengatasi masalah penyusunan data : a. Redudansi dan inkosistensi data. b. Multiple user. c. Kesulitan pengaksesan data. d. Security (keamanan). e. Kebebasan data. Pada umumnya data dalam basis data bersifat integrated dan shared. Integrated artinya adalah basis data merupakan gabungan dari beberapa file data yang saling berbeda satu dengan yang lainnya dengan membatasi pengulangan baik keseluruhan file atau sebagian. Shared maksudnya adalah data individual dalam basis data dapat digunakan secara bersama-samaan antara beberapa pengguna yang berbeda. Data adalah merupakan kumpulan fakta yang dapat diolah menjadi informasi yang bermanfaat, sehingga data yang ada dapat dintegrasi dan di-sharing dalam penggunaan basis data. Data juga merupakan nilai atau value yang turut mempresentasikan deskripsi dari suatu objek atau kejadian. 9 2.1.2 Pengertian Basisdata Terdistribusi 2.1.2.1 Definisi Basisdata Terdistribusi Basis data terdistribusi dapat diartikan juga sebagai basis data terintegrasi, sesuai dengan perkembangan teknologi informasi dewasa ini, secara umum merupakan bentuk implementasi dari konsep pengolahan terdistribuasi. Suatu basis data terdistribusi mempunyai implikasi pengertian bahwa suatu aplikasi dapat saja secara transparan beroperasi pada data yang penyimpanannya berada pada beberapa lokasi (basis data), menggunakan berbagai produk perangkat lunak DBMS, bekerja pada komputer yang berbeda, dan pada sistem operasi yang berbeda pula, serta dihubungkan satu sama lain yang dihubungkan melalui berbagai media jaringan komunikasi. Pengertian transparan diatas mengandung arti bahwa dengan berbagai bentuk fisik basisdata tersebut. Secara logikal dirasakan oleh pengguna basisdata sebagai layaknya sebuah basis data yang dioperasikan pada sebuah komputer. Definisi basis data terdistribusi dapat dituliskan sebagai berikut: Sistem basisdata terdistribusi adalah basisdata yang terdiri dari kumpulan site (instalasi), dihubungkan satu dengan yang lainnya menggunakan jaringan komunikasi, dimana: 1. Setiap site adalah merupakan basis data sendiri, atau masingmasing site merupakan betul-betul satu basisdata yang memiliki sendiri DBMS maupun perangkat lunak management transaksi 10 (termasuk locking local, logging, dan prosedur recovery), serta perangkat lunak komunikasi data. 2. Semua site setuju bekerja sama (bila perlu), sehingga pengguna pada site yang mana saja dapat mengakses tersebut berada pada lokasi pengguna itu sendiri. Secara umum suatu basis data terdistribusi dapat dilihat pada gambar 4.1 Pada gambar tersebut dapat saja antara satu lokasi basisdata dengan basisdata yang lain terpisah dengan jarak yang sangat jauh, tetapi dapat terjadi pula bahwa dua atau lebih basis data berada pada lokasi gedung yang sama bahkan pada mesin yang sama misalnya pada aplikasi jaringan area lokal (LAN) yang menggunakan multi basis data. Disebutkan, bahwa berbagai site tersebut menggunakan DBMS yang berbeda, namun untuk memudahkan pembahasan selanjutnya maka kita asumsikan bahwa berbagai site yang terlibat dalam jaringan basisdata terdiri dari sistem-sistem yang homogen. Mengapa diperlukan basis data terdistribusi? Jawaban mendasar dari pertanyaan ini adalah pada umumnya enterprise sendiri pada umumnya secara fisik sudah terdidtribusi misalnya dengan kontor pusat dan kantor-kantor cabangnya, atau secara structural terdiri dari divisi-divisi (pemasaran, personil, pembelian, penjualan dan lain-lain) dari bentuk seperti ini saja 11 sudah bisa kita bayangkan bahwa datanya pasti terdistribusi, karena setiap bagian dan cabang akan secara logical mengelola datanya sendiri untuk kepentingan operasinya. Data lokal dapat dikelola pasa masing-masing site, namun bila diperlukan suatu site dapat mengakses data yang lain, tentunya dengan pengaturan batasan wewenang akses yang berlaku. Salah satu keuntungan yang jelas dari model basis data terdistribusi adalah memungkinkan dibuat struktur yang merupakan model dari enterprise itu sendiri. Namun perlu dilihat salah satu kerugian utama dengan sistem basis data terdistribusi adalah rumit dari aspek teknis. Memang seharusnya kompleksitas tersebut hanya muncul dari sisi implementer, bukan dari sisi pengguna, namun pada kenyataannya kerumitan terjadi juga tidak terhindarkan bagi pengguna. Biasanya dari berbagai produk DBMS yang sudah ada, bila akan mengimplementasikan produknya dilingkungan aplikasi yang terdistribusi maka secara khusus akan menerbitkan produk perangkat lunak khusus yang ditempelkan pada produk yang ada.seperti misalnya R* (dibaca R star) yang merupakan versi terdistribusi dari System R yang dibuat oleh IBM (1980), Distributed ingress dari ingress (1980), DB2 Version 2 Release 2 dari IBM dan lain-lain. Yang jelas dari semua produk baru di atas menggunakan teknologi relasional sebagai basis desainnya. 12 2.1.2.2 Prinsip-prinsip dasar Pada dasar, bagi pengguna, sistem yang terdistribusi harus dirasakan sebagai sistem yang non terdistribusi. Atau dengan kata lain, bahwa pengguna pada sistem yang terdistribusi harus berperilaku seperti halnya pengguna pada sistem yang tidak terdistribusi. Semua permasalahan yang ada pada sistem terdistribusi harus dipecahkan secara internal, bukan permasalahan eksternal atau tingkat pengguna yang didalam operasi terhadap basisdata menggunakan bahasa manipulasi data (DML) seperti SELECT, INSERT, UPDATE, dan DELETE, yang secara logikal haruslah tidak berubah. Mungkin bahasa definisi (DDL) mengalami beberapa perkembangan , misalnya saja bila suatu tabel dibuat di site A, maka pembuat dapat menentukan misalnya datanya disimpan di site B. Kita namakan prinsip tersebut sebagai “ Kaidah Nol” dari sistem terdidtribusi . Prinsip-prinsip dasar dari basis data terdistribusi adalah suatu hal sangat penting agar dapat dibedakan antara basisdata terdistribusi dengan apa yang disebut akses data secata remote (yang kadangkadang disebut sistem pengolahan terdistribusi atau sistem jaringan) pada sistem ini user dapat beroperasi pada data yang letaknya berjauhan atau bahkan pada data di beberapa site secara simultan. 13 Kaidah-kaidah dari sistem terdistribusi: 1. Otonomi Lokal Suatu site dalam sistem terdistribusi harus memiliki otonomi. Otonomi lokal mempunyai arti bahwa semua operasi yang dilaksanakan pada suatu site yang sepenuhnya dikendalikan oleh site tersebut, tidak ada site yang tergantung pada site lain ataupun suatu site lokal tergantung (down) maka site yang lain masih beroperasi dengan normal. Otonomi lokal mempunyai implikasi bahwa data lokal dimiliki dan dikelola , secara lokal. Semua data benar-benar dimiliki oleh basis data lokal bersangkutan meskipun dapat diakses dari site remote. Berbagai aspek seperti keamanan, integritas dan representasi penyimpanan data lokal tetap dalam pengendalian site bersangkutan. 2. Tidak tergantung pada site pusat Otonomi lokal juga mempunyai implikasi bahwa semua site harus diperlakukan setingkat, tidak ada ketergantungan pada site induk pusat untuk mendapatkan berbagai dukungan, seperti misalnya pengolahan query terpusat atau manajemen transaksi terpusat, sehingga seluruh sistem tergantung pada site pusat. Ketergantungan pada site pusat sangat tidak diharapkan karena dua alasan berikut: 14 a. Site pusat dapat menjadi “bottleneck” b. Sistem akan menjadi sangat rawan (“vulnerable”) yaitu bila site pusat mati, maka seluruh sistem juga mati. 3. Operasi yang berlanjut Pada sistem terdistribusi seperti halnya pada sistem yang non distribusi, secara ideal tentunya sistem tidak pernah dimatikan dalam kondisi apapun. 4. Transparan Lokasi (Independensi Lokasi) Pengertian dasar dari transparan lokasi adalah bahwa pengguna tidak perlu mengetahui dimana data tersimpan secara fisik, sebaliknya pengguna harus dapat berlaku secara logikal seakan data berada di site sendiri meskipun secara fisik dapat berada dimana saja. Transparan lokal sangat diperlukan, untuk menyederhanakan program-program pengguna dan kegiatan di terminal. Secara khusus memungkinkan adanya migrasi data dari site ke site yang lain tanpa harus merubah program ataupun kegiatan tersebut. Migrasi kadang-kadang sangat diperlukan dalam rangka menyesuaikan terhadap kebutuhan unjuk kerja yang lebih baik 15 5. Transparan Fragmentasi Sistem terdistribusi melaksanakan fragmentasi data, dimana suatu tabel dapat dipecah menjadi bagian bagian atau fregmentasi dan disimpan terspisah secara fisik. Fragmentasi ini biasanya diperlukan untuk meningkatkan unjuk kerja. Data dapat disimpan pada lokasi dimana paling sering dipergunakan sehingga dengan demikian operasi terhadap data dapat dilakukan secara lokal dan mengurangi trafik jaringan. Pada dasarnya ada dua macam bentuk fragmentasi , horisontal dan vertikal yang berarti fragmentasi berdasarkan pada pengertian operasi aljabar relasional restriksi dan proyeksi. Namun secara umum, fragmentasi dapat merupakan berbagai bentuk subrelasi yang diturunkan dari operasi restriksi dikombinasikan dengan operasi proyeksi ( khususnya untuk proyeksi harus tetap memperhatikan peranan primary key dalam bentuk tabel asli). Rekonstruksi tabel asli, dapat di lakukan dengan operasi join dan union (join untuk fragmentasi vertikal,sedang union untuk fragmentasi horisontal dapat di catat di sini bahwa, fragmentasi yang mudah dan rekontruksi yang mudah pula merupakan alasan utama mengapa sistem terdistribusi haruslah relasional, karena model relasional menunjang operasi–operasi tersebut secara tepat. 16 Sistem yang mendukung fragmentasi data harus juga mempunyai kemapuan untuk mendukung transparansi fragmentasi sehingga pengguna dapat berlaku seolah data tidak difragmentasi paling tidak secara logikal. Transparansi fragmentasi diperlukan untuk memudahkan program dan kegiatan access data di terminal. Dengan cara tersebut juga memungkinkan refragmentasi tanpa harus merubah program atau kegiatan terminal, misalnya dalam mencari unjuk kerja yang lebih baik. 6. Transparan Replikasi Sistem terdistribusi juga mempunyai kemampuan menggunakan bentuk replikasi data. Replikasi data diperlukan dengan alasan utama : • Merupakan suatu cara meningkatkan unjuk kerja (aplikasi dapat beroperasi pada copy yang ada di site sehingga mengurangi beban trafik jaringan). • Merupakan suatu cara untuk meningkatkan ketersediaan data (availability) artinya object yang diaccess selalu tersedia sepanjang terdapat minimum satu copy. Namun replikasi mempunyai kerugian terutama bila kita memutakhirkan suatu fragment tabel, maka semua copy dari 17 objek tersebut harus dimutakhirkan, masalah propagasi, kesulitan juga akan muncul bila site yang menyimpan copy obyek bersangkutan tidak bisa ditemukan, misalnya karena tiba-tiba ada kerusakan di dalam jaringan pada saat terjadi replikasi. 7. Pengolahan Query terdistribusi Tujuan untuk meminimumkan trafik jaringan mempunyai implikasi proses optimasi query-nya harus didistribusikan, demikian pula proses eksekusi query-nya sendiri. Dengan demikian proses biasanya akan terdiri langkah optimisasi global, kemudian diikuti langkah optimasi lokal pada masingmasing site yang terlibat 8. Manajemen Transaksi Terdistribusi Dengan manajemen konkurensi, dalam sistem terdistribusi akan sangat tergantung pada mekanisme locking, sama halnya dalam sistem yang non distribusi. Namun pada sistem terdistribusi permintaan tes , men-set , dan pelepasan “lock” menjadi pesan. 18 9. Transparansi Perangkat Keras Perangkat keras merupakan kebutuhan dalam sistem terdistribusi dan mempunyai peran yang sama untuk dapat mengintegrasikan dalam sistem–sistem dan menyajikan pada pengguna sebagi suatu sistem. Sama halnya dengan sistem operasi sebagai platform yang berbeda pula. Maka secara jelas sistem tersebut harus bekerja pada berbagai jaringan komunikasi. 10. Transparansi Sistem Operasi Sasaran merupakan keterkaitan yang erat dengan transparansi (independensi) perangkat keras diatas sangat jelas, dengan menggunakan perangkat keras yang berbeda, tentunya juga menggunakan sistem operasi sebagai platform yang berbeda pula. Jika tidak saja kita harus dapat menjalankan DBMS pada mesin yang berbeda, tetapi juga pada sistem Operasi yang berbeda pula , misalnya pada Sistem Operasi UNIX, PC DOS, dan lain sebagainya. 11. Transparansi Jaringan Jika suatu sistem dapat bekerja pada banyak site yang terpisah–pisah lokasinya, dengan berbagai perangkat keras yang berbeda , dan dengan sistem operasi yang berbeda pula , 19 maka secara jelas sistem tersebut harus dapat bekerja pada berbagai jaringan komunikasi 12. Transparansi DBMS Berdasarkan kaidah ini, maka kita berharap bahwa lingkungan sistem terdistribusi seharusnya dapat dilaksanakan dengan kondisi yang lebih heterogen, menggunkan produkproduk DBMS yang berbeda. Hal ini agak sulit bisa dilaksanakan, mengingat satu produk DBMS dengan produk DBMS yang lain biasanya memiliki struktur perangkat lunak yang sangat berbeda, meskipun menggunkan bahasa-bahasa kueri yang standar. Namun dengan berbagai teknik interface ternyata dapat dibuktikan bahwa hal ini dimungkinkan untuk dilaksanakan sehingga pada lingkungan yang multi DBMS seorang pengguna pada satu DBMS yang lain seperti layaknya menggunakan DBMS yang pertama. 2.1.3 Komponen-komponen dari DBMS Kita dapat mengidentifikasi 5 komponen-komponen utama dalam DBMS, yaitu antara lain adalah: • Hardware, DBMS dan aplikasi membutuhkan hardware agar dapat beroperasi. Ada beberapa DBMS yang hanya 20 dapat beroperasi pada perangkat keras ataupun sistem operasi tertentu. Perangkat keras yang dibutuhkan untuk management basis data biasanya masih berupa mesin standard yang ada, dalam arti tidak ada kekhususan tertentu. Akan tetapi karena sifatnya dalam access data yang lebih sangat bervariasi (yang tentunya cenderung lebih banyak direct access) maka suatu manajemen basis data akan lebih banyak membutuhkan media penyimpanan (hardisk). • Software, merupakan komponen dari DBMS itu sendiri dan program aplikasi termasuk sistem operasi. Program aplikasi ada yang ditulis dengan bahasa pemrograman ke-tiga (3GL) seperti C, C++, Java, Visual Basic, COBOL, Fortran dan ada juga yang ditulis dengan bahasa pemrograman keempat (4GL) seperti SQL. Antara fisik basis data (tempat di mana sesungguhnya suatu basis data dapat tersimpan dalam media) dengan pengguna terdapat suatu piranti lunak yang disebut sistem manajemen basis data atau juga disebut DBMS. Semua kebutuhan akses oleh pengguna seperti pembentukan file, penambahan data, penghapusan data dan lain-lain dilakukan oleh DBMS. Satu hal lagi, bahwa DBMS juga 21 berfungsi untuk memberikan suatu batas agar sesama pengguna basis data tidak perlu memikirkan berbagai hal yang berkaitan dengan detil pada level perangkat keras (misalnya metoda akses). • Data, merupakan komponen yang penting dari basis data. Data merupakan penghubung antara mesin dan manusia. Basis data terdiri dari operational data dan metadata. Data dalam basis data merupakan data yang single user (hanya satu pengguna yang beroperasi terhadap basis data) tau multi user di mana satu atau lebih pengguna beroperasi secara bersamaan ke dalam basis data. Sehingga data dalam basis data terutama untuk sistem yang besar harus terintegrasi (integrated) dan dapat dipakai secara bersamasama (shared). • Procedur, merupakan instruksi dan aturan yang menentukan pembuatan dan penggunaan dari basis data. User membutuhkan prosedur untuk menjalankan dan menggunakan sistem. 22 • Brainware, terdiri dari empat jenis, yaitu data dan database administrator, database designer, application developer dan end user. Sebagai pengguna basis data secara umum dapat dibagi dalam tiga kelompok besar pengguna, yaitu : 1. Database Administrator Database Administrator adalah orang atau kelompok orang yang merupakan penanggung jawab pada penyelenggaraan basis data. Basis data administrator mempunyai fungsi yang meliputi berbagai kegiatan seperti tempat pengaturan data, pengamanan data, recovery procedur, backup procedur. Jadi secara lebih jelas dapat dikatakan bahwa database administrator adalah seorang atau group personil pengolahan data yang bertanggung jawab terhadap kontrol keseluruhan basis data. Berikut merupakan berbagai kegiatan pengendalian basis data: • Menentukan isi informasi basis data. • Penghubung antar pengguna. • Menentukan struktur penyimpanan. • Menentukan prosedur kewenangan dan validasi. cek otorisasi atau 23 • Memonitor penampilan memberikan respon (performance) terhadap dan permintaan perubahan oleh pengguna. • Menentukan strategi backup dan recovery. 2. Programmer Programmer merupakan tenaga ahli komputer yang berfungsi untuk mengembangkan program-program aplikasi yang diperlukan dalam manajemen basis data. Seringkali suatu aplikasi basis data memang perlu disiapkan dalam bentuk program, misalnya untuk bentuk tampilan layar dalam proses penyiapan dan pemuktahiran data, pembuatan laporan-laporan baik yang melalui printer ataupun layar monitor dan lainlain. Program aplikasi basis data dapat dikembangkan dengan menggunakan bahasa pemrograman SQL. Program aplikasi yang dikembangkan dapat juga ditempelkan pada layar web pada aplikasi internet, sehingga bagi pengguna akhir akan menjadi sangat mudah melakukan akses ke dalam basis data. 24 3. End User ( Pengguna Akhir ) Yang termasuk dalam kategori pengguna akhir adalah pemilik sistem atau enterprise, para manager, supervisor, operator, pelanggan dan sebagainya yang terlibat langsung dalam pengunaan basis data. Pengguna melakukan akses ke dalam basis data menggunakan alat bantu yang dikembangkan oleh programmer, analis ataupun browser. 2.1.4 Alasan penggunaan dari DBMS Ada beberapa keuntungan dan kerugian dalam penggunaan basis data yang diperoleh dari hasil penerapan menajemen basis data pada suatu perusahaan. Keuntungan dari Database Management system Keuntungan dari DBMS antara lain : • Kontrol terhadap redudansi data. Dengan basis data, filefile diintegrasikan sehingga data-data yang sama dapat dikontrol. • Konsistensi data, dengan terkontrolnya redudansi data, maka data menjadi konsisten. • Sharing data, dengan DBMS user dapat melakukan sharing data dengan user lainnya. 25 • Meningkatkan integritas data, integritas dari suatu basis data adalah validitas dan konsistensi dari data pada basis data tersebut. Dengan DBMS dapat diterapkan sejumlah batasan agar integritas data dapat terjaga. • Meningkatkan keamanan, data dapat diproteksi dari user yang tidak memiliki autoritas terhadap data tersebut. • Meningkatkan backup dan recovery, untuk mencegah terjadinya kerusakan atau kehilangan data, dapat dilakukan proses backup dan recovery. Kerugian dari Data Base Management Sistem Kerugian dari DBMS antara lain adalah: • Kompleksitas, keharusan untuk menghasilkan suatu DBMS yang baik membuat software DBMS menjadi semakin kompleks. Perancang dan pengembangan basis data, administrator data, dan pengguna akhir harus mengerti fungsi-fungsi dari DBMS supaya dapat memperoleh keuntungan secara maksimal. Kesalahan pemahaman dari sistem dapat menghasilkan keputusan yang salah. Karena sistem yang kompleks mengakibatkan DBMS memiliki ukuran yang semakin besar, dan berakibat banyaknya ruang disk yang dibutuhkan dan juga membutuhkan memori yang besar supaya program dapat berjalan secara efisien. 26 Kompleks, karena kemampuan perangkat lunak yang lebih besar menjadi terlihat lebih rumit dan penguasaan yang lebih tinggi, antara lain untuk kebutuhan sistem administrasi, prosedur recovery, prosedur backup, penataan keamanan data dan penataan dalam rangka proses yang konkuren. • Biaya DBMS, harga dari DBMS bervariasi tergantung dari fungsi dan kebutuhan. Kebutuhan penyimpanan untuk DBMS mengharuskan pembelian ruangan penyimpanan tambahan. Selanjutnya untuk mencapai performance yang diperlukan, mungkin perlu membeli mesin yang lebih besar, sehingga pengadaan perangkat keras tambahan mengakibatkan pembelanjaan lebih lanjut. Dalam beberapa situasi, biaya DBMS dan ekstra hardware mungkin tidak penting dibandingkan dengan biaya untuk mengkonversi aplikasi yang ada untuk dijalankan pada DBMS dan hardware yang baru. Biaya ini juga termasuk biaya untuk melatih staff untuk menggunakan sistem yang baru ini dan mungkin juga biaya untuk memperkerjakan staff spesialis untuk membantu mengkonversi dan menjalankan sistem baru. Biaya ini yang menjadi alasan utama kenapa beberapa 27 organisasi puas dengan sistem yang sekarang dan tidak ingin beralih ke sistem yang modern. • Performance, secara khusus sebuah sistem file-based ditulis untuk sebuah aplikasi spesifik seperti invoicing. Hasilnya, performance secara umum lebih baik. Bagaimanapun DBMS harus ditulis menjadi lebih umum lagi untuk menyediakan beberapa aplikasi sekaligus, tetapi akibatnya beberapa aplikasi tidak berjalan secara cepat seperti biasanya. • Dampak kegagalan dari DBMS, pemusatan dari sumber daya dapat meningkatkan kemudahan rusak dari sebuah sistem. Karena semua pemakai dan aplikasi tergantung pada ketersediaan dari DBMS, kegagalan beberapa komponen bisa membuat operasi berhenti. 2.2 Database Application Life Cycle Database life cycle merupakan komponen yang penting dalam sistem basis data karena aplikasi dari database life cycle berkaitan dengan informasi yang ada. Langkah-langkah dari database life cycle dapat dilihat pada gambar di bawah ini : 28 Database planning System definition Requirement collection and analysis Database design Conceptual database design DBMS selection (optional) Application design Logical database design Physical database design Implementation Prototyping (optional) Data conversion & loading Testing Operational maintenance Gambar 2.1 ( Connolly, 2002, p27 ) 2.2.1 Database Planning Merencanakan bagaimana tahapan dari life cycle dapat dijalankan dalam sistem basis data secara efektif dan efisien. Perencanaan basis data ( Database Planning ) harus terintegrasi dengan keseluruhan strategi sistem informasi dari organisasi. Ada tiga masalah pokok dalam merumuskan suatu strategi sistem informasi, yaitu : 29 1. Identifikasi rencana dan tujuan perusahaan dengan penentuan kebutuhan sistem informasi berikutnya. 2. Mengevaluasi sistem informasi yang ada sekarang untuk menentukan 3. Penilaian kekuatan dan kelemahan yang ada. kesempatan peluang teknologi informasi yang menghasilkan keuntungan yang kompetitif. Perencanaan basis data perlu juga meliputi pengembangan standard yang mengontrol bagaimana data akan dikumpulkan, bagaimana format harus diterapkan, dokumentasi apa saja yang diperlukan, dan bagaimana rancangan dan implementasi dapat diproses. Dalam merancang suatu standard yang baik harus menyediakan suatu basis untuk staff pelatihan dan mengukur pengendalian mutu, dan dapat memastikan bahwa pekerjaan yang ada menyesuaikan diri kepada suatu pola teladan, tanpa tergantung dengan ketrampilan dan pengalaman staff. 2.2.2 System Definition Adalah menentukan ruang lingkup dari aplikasi basis data yang akan dibuat termasuk pengguna dan tempat di mana aplikasi basis data tersebut diterapkan. Sebelum mencoba untuk merancang suatu aplikasi basis data, sangatlah penting bahwa pertama kali kita harus mengidentifikasi batasan-batasan sistem yang ada dan bagaimana sistem tersebut dapat menghubungkan dengan bagian lain yang terdapat dalam sistem informasi organisasi / perusahaan. Dan juga sangatlah penting 30 bahwa kita harus menentukan batasan-batasan sistem tidak hanya area aplikasi dan para pemakai yang sekarang, tetapi juga aplikasi para pemakai masa depan. Suatu aplikasi basis data mungkin punya satu atau lebih user views dan mengidentifikasi user views adalah suatu hal yang penting dalam mengembangkan suatu aplikasi basis data, sebab dapat membantu untuk memastikan bahwa tidak ada pengguna utama dalam basis data tersebut terlupakan ketika mengembangkan kebutuhan untuk aplikasi basis data yang baru. User views sangat membantu dalam pengembangan aplikasi basis data yang relatif kompleks karena user views dapat membuat basis data tersebut dipecah ke dalam bagian-bagian yang dapat dikendalikan. User views menggambarkan apa yang diperlukan suatu aplikasi basis data dalam kaitan dengan data yang disimpan dan transaksi untuk dilakukan atas data tersebut. Kebutuhan user views mungkin beda dengan view yang bersangkutan atau tumpang tindih dengan view yang lain. 2.2.3 Requirement Collection and Analysis Pengumpulan kebutuhan dan analisis informasi tentang bagian dari organisasi / perusahaan yang didukung oleh aplikasi basis data dan menggunakan informasi ini untuk mengidentifikasi kebutuhan user dari sistem yang baru. Pengumpulan kebutuhan dan analisis dapat dilakukan dengan cara : 31 1. Mempelajari dokumentasi bermanfaat untuk (Examining Documentation), memperoleh beberapa pengetahuan, seperti bagaimana kebutuhan akan suatu basis data yang ada. Selain itu juga dapat membantu menyediakan informasi pada bagian perusahaan yang dihubungkan dengan masalah. Jika masalah berhubungan dengan sistem yang sedang berjalan, maka pasti ada dokumentasi yang dihubungkan dengan sistem tersebut. Dengan mempelajari dokumen-dokumen, laporan dan file yang berkaitan dengan sistem yang ada maka dapat dengan cepat memperoleh beberapa pemahaman tentang sistem. 2. Wawancara (Interview), yaitu teknik yang paling sering digunakan. Dengan wawancara dapat memperoleh informasi dari individu dengan cara bertatap muka. Ada beberapa tujuan dalam menggunakan interview, antara lain seperti menemukan fakta, verifikasi, klarifikasi, menampilkan antusiasme, melibatkan pengguna akhir, identifikasi kebutuhan dan memperoleh ide atau opini. Dengan mengggunakan teknik interview membutuhkan kemampuan dan komunikasi yang baik untuk menghadapi orangorang yang mempunyai pandangan yang berbeda dalam hal prioritas pendapat, motivasi dan kepribadian. Keuntungan dari interview antara lain : 32 • Memungkinkan orang yang diwawancarai untuk menjadi bagian dari proyek. • Memungkinkan orang yang diwawancarai untuk merespon secara bebas dan terbuka terhadap suatu pertanyaan. • Memungkinkan pewawancara untuk mengamati gerak tubuh dari orang yang diwawancarai. • Memungkinkan pewawancara untuk mengadaptasi atau menyusun ulang pertanyaan selama proses interview. Kekurangan dari wawancara antara lain yaitu : • Banyak menghabiskan waktu dan biaya. • Kesuksesan dapat bergantung kepada kemauan dari orang yang diwawancara untuk berpartisipasi dalam interview. • Kesuksesan tergantung pada kemampuan komunikasi dari si pewawancara. 3. Penelitian ( Research ), berfungsi untuk meneliti aplikasi dan masalah. Majalah-majalah komputer , buku-buku petunjuk dan internet merupakan sumber informasi yang baik. Keuntungan dari Penelitian adalah : • Dapat menghemat waktu jika solusinya ada. • Peneliti dapat memperoleh informasi yang up to date. 33 • Peneliti dapat melihat orang lain dalam menyelesaikan masalah yang serupa. Kekurangan dari penelitian adalah : • Menghabiskan waktu. • Mungkin tidak dapat membantu dalam menyelesaikan masalah sebab masalahnya tidak didokumentasi. • Membutuhkan akses ke sumber informasi yang dibutuhkan. 4. Kuisioner ( Questionnaires ) adalah dokumen-dokumen yang mempunyai tujuan tertentu yang mengumpulkan fakta-fakta dari sejumlah orang ketika mempertahankan beberapa kontrol atas respon-respon mereka. Ada dua tipe dari jenis pertanyaan kuisioner, yaitu : a. Fix format questions, Membutuhkan jawaban yang lebih spesifik dari responden. Setiap pertanyaan yang diberikan sudah ada pilihan jawaban, sehingga jawaban dari respon lebih terkontrol. b. Free format questions, Membutuhkan jawaban yang lebih bebas dan lebih luas dari para responden. 34 Keuntungan dari kuisioner antara lain : • Tanggapan dapat dikumpulkan dan dianalisa dengan cepat. • Orang-orang dapat mengisi dan mengembalikan kuisioner sesuai dengan keinginan mereka. • Secara relative merupakan cara yang murah memperoleh data dari orang banyak. Kekurangan dari kuisioner adalah : • Mungkin dapat dikembalikan dengan jawaban yang tidak lengkap. • Dapat memakan waktu menyiapkan kuisioner. • Jumlah respon mungkin rendah. • Mungkin tidak menyediakan kesempatan untuk beradaptasi atau merubah pertanyaan yang salah ditafsirkan. 5. Mengamati ( Observasi ) adalah merupekan teknik fact-finding untuk mengerti sebuah sistem, teknik ini memungkinkan untuk berpartisipasi atau mengawasi seseorang melakukan aktivitas untuk mempelajari tentang sistem. Keuntungan dari mengamati adalah : • Relatif tidak mahal. 35 • Pengamat dapat melihat secara langsung apa saja yang dilakukan. • Pengamat dapat mendeskripsikan juga memperoleh data lingkungan-lingkungan dengan fisik dari suatu pekerjaan. • Memungkinkan pengecekan valid tidaknya dari suatu fakta dan data. Kekurangan dari mengamati antara lain : • Adanya kemungkinan kehilangan tugas pengamatan tergantung dari tingkat kesulitan yang berbeda. • Kurang praktis. • Seseorang dapat berubah dalam bekerja ketika tahu sedang diamati. • Beberapa tugas mungkin tidak selalu dilakukan ketika sedang perlu diamati. 2.2.4 Database Design Salah satu aplikasi yang umum dikenal dalam aplikasi basis data adalah perancangan basis data ( database design ). Perancangan basis data dimulai ketika analisis terhadap suatu kebutuhan perusahaan telah dilakukan. Di dalam perancangan basis data terdapat suatu metodologi yang membantu dalam membuat suatu basis data. Yang dimaksud dengan 36 metodologi perancangan basis data adalah sebuah pendekatan struktur yang mencakup prosedur, teknik, alat bantu dan tujuan dokumentasi untuk mendukung dan memberi sarana dalam proses perancangan basis data terdiri dari tahap-tahap yang membantu para perancang dengan teknik yang tepat dalam setiap merancang basis data. Metodologi perancangan basis data juga membantu perancang untuk merancanakan, mengatur dan mengevaluasi pengembangan dari proyek pembuatan basis data tersebut. Dalam metodologi perancangan basis data, proses perancangan dibagi menjadi 3 bagian yaitu Conceptual Database Design, Logial Database Design, dan Physical Database Design. • Conceptual Database Design, yaitu proses membangun suatu model informasi yang digunakan dalam perusahaan yang tidak bergantung pada pertimbangan fisik. Conceptual Database Design meliputi pembuatan sebuah konseptual data model sebagai bagian dari perusahaan. Data model dibangun menggunakan informasi yang didokumentasi dari user requirement. Conceptual Database Design secara keseluruhan terbebas dari detil penerapannya, seperti DBMS software, aplikasi program, programming language, hardware platform atau pertimbangan fisik lainnya. • Logical Database Design adalah proses membangun suatu model informasi yang digunakan dalam perusahaan yang berdasarkan pada sebuah model data yang spesifik, tetapi tidak bergantung pada sebuah 37 DBMS tertentu dan pertimbangan fisik lainnya. Konseptual data model yang dibuat pada tahap sebelumnya disempurnakan dan dipetakan menjadi sebuah logikal data model. • Physical Database Design dilakukan untuk memutuskan struktur logic secara fisik yang diimplementasikan ke dalam tujuan DBMS, para perancang juga harus membuat keputusan mengenai bagaimana basis data tersebut dapat diimplementasikan / diterapkan dalam perusahaan. Oleh karena itu, Physical Database Design untuk meningkatkan kinerja dari basis data tersebut dapat mempengaruhi logikal data model. Ada beberapa faktor-faktor penting dalam merancang suatu basis data antara lain yaitu : 1. Mengadakan pertemuan dengan user sesering mungkin untuk membicarakan rancangan basis data yang akan di buat. 2. Mengikuti langkah-langkah yang terdapat dalam metodologi perancangan basis data. 3. Melakukan pendekatan terhadap data-data yang akan digunakan. 4. Menggabungkan pertimbangan integrity dan struktural ke dalam model data. 5. Menggabungkan konseptual, normalisasi, dan validasi transaksi ke dalam metodologi model data. 6. Gunakan diagram untuk menjelaskan model data tersebut. 38 7. Gunakan Database Design Language ( DBDL ) untuk menjelaskan tambahan data yang tidak bisa dijelaskan dengan menggunakan diagram. 8. Buat kamus data untuk mendukung diagram dari model data dan DBDL. 9. Ulangi langkah-langkah tersebut. 2.2.5 DBMS Selection ( Optional ) Pemilihan DBMS dilakukan untuk memilih DBMS yang cocok atau sesuai dengan aplikasi basis data yang dibuat. Bagaimanapun pemilihan DBMS bisa dilakukan pada setiap waktu sebelum melakukan logical design yang menyajikan informasi cukup mengenai kebutuhan sistem seperti performance, security, dan integrity constrain. Walaupun pemilihan DBMS mungkin jarang, tetapi ketika kebutuhan perusahaan sedang diperluas atau sistem yang berjalan digantikan, mungkin menjadi perlu kadang-kadang untuk mengevaluasi produk DBMS yang baru. Suatu pendekatan sederhana dalam melakukan DBMS adalah dengan mencocokan DMS dengan kebutuhan. Secara khusus DBMS menyediakan fasilitas-fasilitas seperti : • Mengijinkan user untuk menentukan basis data, biasanya melalui Data Definition Language ( DDL ). DDL mengijinkan user untuk memspesifikasi tipe data dan struktur dan batasan-batasan data yang bisa disimpan di basis data. 39 • Mengijinkan user untuk insert, update, delete, dan retrieve data dari basis data, biasanya melalui Data Manipulation Language ( DML ) • DBMS menyediakan akses kontrol ke basis data. Contohnya antara lain : a. Security System, di mana mencegah user autorisasi untuk mengakses basis data. b. Integrity System, di mana menangani konsistensi penyimpanan data. c. Concurrency Control System, di mana mengijinkan basis data untuk diakses secara share. d. Recovery Control System, di mana basis data bisa direstore pada saat terjadi kesalahan pada hardware ataupun software. e. User-Acessible Catalog, di mana berisi deskripsi data di dalam basis data. Berikut langkah-langkah utama dalam memilih DBMS : 1. Menggambarkan cakupan tugas berdasarkan kebutuhan perusahaan. 2. Membuat perbandingan mengenai dua atau tiga produk DBMS. 3. Mengevaluasi produk-produk DBMS tersebut. 4. Merekomendasi pemilihan DBMS dan membuat laporan hasil dari evaluasi produk DBMS tersebut. 40 2.2.6 Application Design Perancangan user menghubungkan program aplikasi yang menggunakan dan memproses basis data tersebut. Mengamati desain aplikasi dan basis data itu adalah aktivitas paralel pada aplikasi basis data life cycle. Dalam banyak kasus, tidaklah mungkin untuk melengkapi atau menyudahi desain aplikasi itu sampai perancangan basis data terhadap dirinya sendiri yang sedang berlangsung. Pada sisi lain, basis data ada untuk mendukung aplikasi tersebut, dan demikian harus ada suatu informasi antar desain aplikasi dan desain basis data. Kita harus memastikan bahwa semua kemampuan menyatakan spesifikasi kebutuhan pemakai ada di dalam desain aplikasi untuk aplikasi basis data. Ini melibatkan program aplikasi mengakses basis data akan merancang transaksi tersebut ke dalam akses basis data. Sebagai tambahan terhadap perancangan bagaimana kemampuan yang diperlukan atau diharapkan untuk dapat tercapai, maka kita harus mendesain seorang user yang sesuai untuk menghubungkan ke aplikasi basis data tersebut. Alat penghubung ini menyajikan informasi yang diperlukan sehingga mudah dioperasikan. Bagaimanapun, haruslah dikenali bahwa alat penghubung mungkin adalah salah satu dari komponen yang paling utama dari sistem itu. Pada sisi lain jika alat penghubung tidak mempunyai satupun karakteristik maka sistem akan menyebabkan permasalahan. 41 2.2.7 Prototyping Prototype adalah merupakan suatu model aplikasi basis data yang mempunyai semua corak yang diperlukan dan menyediakan semua kemampuan sistem. Tujuan utama untuk mengembangkan suatu aplikasi prototype database adalah agar user dapat mengidentifikasi fitur sistem menjadi bekerja dengan baik. Jika memungkinkan, pemakai dapat memberikan saran untuk mengadakan perbaikan atau bahkan fitur baru dalam aplikasi basis data tersebut. Keuntungan prototype adalah relatif murah dan cepat dalam proses pembuatannya. Ada dua strategi prototyping, yaitu requirements prototyping dan evolutionary prototyping. Requirements Prototyping adalah prototype yang menentukan kebutuhankebutuhan yang diusulkan aplikasi basis data dan jika kebutuhankebutuhan sudah dilengkapi maka prototype tidak dipakai atau dibuang. Sedangkan Evolutionary Prototyping, adalah prototype yang sama dengan requirements prototyping, tetapi perbedaannya bisa digunakan untuk perkembangan lebih lanjut menjadi aplikasi kerja basis data. 2.2.8 Implementation Implementasi merupakan perwujudan fisik dari basis data dan desain aplikasi. Pada tahap penyelesaian desain kita dapat menerapkan basis data dan program aplikasi yang telah kita buat. Implementasi basis data dicapai dengan menggunakan Data Definition Language ( DDL ) 42 yang telah kita pilih dalam melakukan DBMS atau dengan menggunakan Graphical User Interface ( GUI ) yang menyediakan fungsional yang sama dengan pernyataan DDL yang digunakan untuk menciptakan struktur basis data tersebut. User Views juga diterapkan pada langkah implementasi. Program aplikasi diterapkan dengan menggunakan bahasa generasi keempat atau ketiga yang lebih disukai. Bagian dari program aplikasi ini adalah transaksi basis data, yang diterapkan dengan menggunakan Data Manipualtion Language ( DML ). Transaksi basis data juga dapat dibuat dalam bahasa pemrograman seperti Visual Basic, Delphi, C, C++, Java, COBOL, Fortran, Ada, atau Pascal. Kita juga menerapkan komponen lain dari desain aplikasi seperti layar menu, format masukkan data dan laporan. Pengendalian keamanan dan integritas untuk aplikasi juga telah diterapkan. Sebagian dari kendali ini telah diterapkan dengan menggunakan DDL, tetapi yang lain mungkin perlu untuk digambarkan di luar dari DDL. Sebagai contoh kegunaan yang disediakan DBMS kendali sistem operasi. 2.2.9 Data Conversion and Loading Pemindahan data yang ada ke dalam basis data yang baru dan mengubah aplikasi yang sedang berjalan agar dapat digunakan dalam basis data yang baru. Langkah ini diperlukan hanya ketika suatu sistem basis data lama digantikan dengan sistem basis data yang baru. Sekarang ini 43 suatu DBMS mempunyai kegunaan memasukkan file ke dalam basis data yang baru, dan kemudian secara otomatis mengubah data ke dalam format yang diperlukan oleh file basis data yang baru. Jika bisa diterapkan, pengembang dapat mengubah dan menggunakan program aplikasi dari sistem yang lama untuk digunakan oleh sistem yang baru. 2.2.10 Testing Testing adalah proses melaksanakan program aplikasi dengan tujuan menemukan kesalahan. Sebelum diterapkan dalam suatu sistem, basis data harus dilakukan pengujian atau testing terlebih dahulu. Dalam hal ini kita harus hati-hati dalam perencanaan strategi test dan data harus realistis sedemikian sehingga keseluruhan proses pengujian sesuai dengan metodenya dan dengan kaku dilaksanakan. Sesungguhnya, pengujian tidak bisa menunjukkan tidak adanya kesalahan, hal tersebut dapat dilakukan apabila dengan menggunakan suatu perangkat lunak. Jika pengujian diselenggarakan dengan sukses, maka akan membongkar kesalahan pada program aplikasi dan mungkin struktur basis data. Sebagai manfaat sekunder, pengujian mempertunjukkan bahwa basis data dan program aplikasi nampak seperti bekerja menurut spesifikasi mereka dan kebutuhan nampak seperti dicukupi. Seperti saat merancang suatu basis data, maka dalam melakukan testing para pemakai sistem yang baru harus dilibatkan untuk menguji proses aplikasi dan basis data tersebut. Situasi yang ideal untuk pengujian sistem 44 adalah mempunyai suatu test basis data pada suatu sistem perangkat keras, tetapi ini sering tidak tersedia. Jika data real diharapkan untuk digunakan, maka penting untuk mempunyai backup. Setelah pengujian diselesaikan, maka sistem aplikasi basis data ini telah siap untuk digunakan. 2.2.11 Operational Maintenance Dalam langkah-langkah sebelumnya, aplikasi basis data telah secara penuh diterapkan dan diuji. Sistem sekarang pindah ke suatu langkah pemeliharaan yang melibatkan aktivitas berikut ini : • Monitoring Performance dari sistem. Jika performance jatuh di bawah suatu tingkatan yang bisa diterima, maka penyetelan atau reorganisasi basis data mungkin diperlukan. • Maintaining dan meningkatkan aplikasi basis data. Kebutuhan harus disatukan ke dalam aplikasi basis data melalui tahap-tahap sebelumnya yang terdapat dalam database life cycle. Ketika aplikasi basis data sedang beroperasi, perlu dilakukan monitoring secara dekat untuk memastikan bahwa performance dalam tingkatan yang bisa diterima. Suatu DBMS secara normal menyediakan berbagai kegunaan untuk membantu administrasi basis data yang mencakup kegunaan untuk mengisi data ke dalam suatu basis data dan untuk memonitor sistem tersebut. Kegunaan yang mengijinkan sistem melakukan monitoring secara berdampingan atau berhadapan informasi sebagai contoh, pemakaian basis data untuk efisiensi dan query strategi 45 pelaksanaan. Database Administrator (DBA) dapat menggunakan informasi ini untuk men-setting sistem dan untuk memberi performance yang lebih baik, sebagai contoh, dengan menciptakan index tambahan untuk mempercepat query, dengan mengubah struktur basis data, atau dengan melakukan kombinasi terhadap tabel yang ada. Monitoring proses akan terus berlanjut sepanjang seluruh hidup suatu aplikasi basis data tersebut dan pada waktu tertentu boleh melakukan reorganisasi basis data untuk mencukupi kebutuhan sistem. Peubahan ini menyediakan informasi pada evolusi sistem dan sumber daya yang pada masa yang akan datang mungkin diperlukan. Hal ini memungkinkan DBA untuk terlibat dalam perencanaan kapasitas dan untuk melakukan penyesuaian rencana. Jika DBMS kekurangan kegunaan tertentu, DBA dapat mengembangkan kegunaan yang diperlukan atau membeli tools tambahan, jika tersedia. 2.3 Normalisasi Suatu desain basis data harus memenuhi kondisi untuk tidak mengandung anomali, yaitu suatu kejanggalan dari suatu penempatan atribut dari suatu obyek data. Untuk membedakan satu record dengan yang lainnya maka perlu dipilih atribut atau kombinasi atribut sebagai primary key. Syarat primary key adalah harus unik, jumlah kombinasi atribut minimum, dan tidak boleh mengandung nilai kosong (null). 46 Tujuan dari normalisasi antara lain : • Menghilangkan kumpulan relasi dari insertion, update, dan delete dependency yang tidak diharapkan. • Mengurangi kebutuhan restrukturisasi kumpulan relasi. • Membuat model relasional lebih informatif. Langkah-langkah normalisasi : a. Normalisasi Pertama ( 1NF ) Suatu data dikatakan un-normalized, jika didalamnya mengandung kelompok berulang (repeating group), sehingga untuk membentuk normalisasi pertama (1NF) repeating group harus dihilangkan. Untuk menjadi 1st NF maka group yang berulang dihilangkan dengan mengisi pada bagian yang kosong dengan yang seharusnya pada suatu bentuk record. b. Normalisasi Kedua ( 2NF ) Dapat dihasilkan dengan melihat apakah ada atribut bukan primary key yang merupakan fungsi dari sebagian primary key (partial dependence). Dalam normalisasi kedua ( 2NF ) setiap atribut yang tergantung parsial ini harus dipisahkan dengan mengikut sertakan determinannya. Bentuk normal diperoleh bila setiap atribut bukan bagian primary key dari suatu tabel sepenuhnya merupakan fungsi (fungsional dependence) dari primary key tersebut. 47 c. Normalisasi Ketiga ( 3NF ) Pengujian terhadap 3NF dilakukan dengan cara melihat apakah terdapat atribut bukan key tergantung fungsional terhadap atribut bukan key yang lain (disebut ketergantungan transitif atau transitive dependence). Dengan cara yang sama, maka setiap ketergantungan transitif dipisahkan. 3NF sudah cukup bagus dalam arti bahwa anomali yang dikandungnya sudah sedemikian minimum (hampir tidak ada). d. Normalisasi Keempat Boyce-Codd Normal Form ( 4 NF / BCNF ) Suatu relasi dikatakan BCNF bila di dalamnya berisi atribut yang berfungsi sebagai candidate key sehingga salah satu dari candidate key tersebut menjadi primary key. 2.4 Metodologi Perancangan Basisdata Perancangan basis data terdiri dari : 1. Perancangan Basisdata Konseptual 2. Perancangan Basisdata Logikal 3. Perancangan Basisdata Fisikal 2.4.1 Perancangan Basisdata Konseptual Tahap-tahap perancangan basis data konseptual antara lain : Tahap 1, yaitu membangun atau membuat model data konseptual untuk setiap bagian dari perusahaan untuk setiap view yang spesifik. Di dalam perancangan basis data konseptual kita perlu melakukan antara lain: 48 • Mengidentifikasikan tipe-tipe entitas utama yang dibutuhkan oleh view. Entity adalah elemen dari model yang mewakili apa yang ingin disimpan informasinya. Misalnya bila kita ingin membuat model aplikasi sumber daya manusia, karyawan, departemen, dan gaji adalah tiga contoh entit yang diperlukan dalam model. • Mengidentifikasikan tipe relationship atau obyek, tujuannya mengidentifikasikan relasi penting yang ada di antara tipe-tipe entitas yang telah diidentifikasi. • Mengidentifikasi dan menghubungkan atribut dengan tipe-tipe entity tipe-tipe relationship yang sesuai. • Menentukan atribut domain dalam data model konseptual, tujuannya adalah untuk menentukan domain-domain untuk atribut-atribut dalam local conceptual data model. • Menentukan atribut primary key dan candidate primary key, tujuannya adalah untuk mengidentifikasi candidate key untuk untuk tiap tipe entitas dan jika terdapat lebih dari satu candidate key, maka pilih salah satu untuk menjadi primary key. • Mempertimbangkan penggunaan konsep enhanced modeling (pilihan), tujuannya adalah untuk penggunaan enhanced modeling concepts. mempertimbangkan 49 2.4.2 Perancangan Basisdata Logikal Tahap 2, membangun dan memvalidasi model data logical local untuk setiap view. Membangun sebuah local logical data model dari local conceptual data model yang merepresentasikan sebuah view perusahaan tertentu dan kemudian memvalidasi model ini untuk menjamin bahwa model ini secara struktur benar untuk menjamin model mendukung transaksi-transaksi yang disyaratkan. • Menghilangkan fitur-fitur yang tidak kompatibel dengan model relational untuk menyaring model data conceptual local. Langkah ini bertujuan antara lain untuk : a. Menghilangkan tipe many to many ( *:* ) binary relationship. b. Menghilangkan relationship recursive adalah relationship. hubungan Recursive suatu entitas dengan entitas itu sendiri. c. Menghilangkan tipe complex relationship. d. Menghilangkan atribut multi value. • Mendapatkan relasi model data logical local, tujuannya menciptakan relasi-relasi untuk model data logical untuk merepresentasikan entiti, relationship, dan atribut yang telah didefinisikan. 50 • Validasikan relasi dengan menggunakan normalisasi, tujuannya adalah untuk memvalidasi relasi dalam local logical data model yang menggunakan teknik normalisasi. • Memvalidasi relasi dengan transaksi user, tujuannya adalah untuk menjamin bahwa relasi pada model data logical local mendukung transaksi yang diperlukan view. • Me-review model data logical local dengan user. Tujuannya untuk memastikan model data logical local dan mendukung dokumentasi dan menjelaskan model adalah representasi yang sebenarnya dari view. • Mendefinisikan batasan integritas, tujuannya adalah untuk mnedefinisikan batasan integritas yang diberikan oleh view. Ada lima tipe batasan untuk integritas yaitu : 1. Data yang dibutuhkan, beberapa atribut harus selalu mempunyai nilai yang valid ( tidak boleh null ). Contohnya setiap staff memiliki jabatan. Batasan ini masuk ke dalam kamus data. 2. Batasan atribut domain, tiap atribut mempunyai domain yaitu kumpulan nilai-nilai yang legal. Contohnya jenis kelamin staff dilambangkan dengan ‘F’ atau ‘M’. 3. Integritas entity, primary key tidak boleh null. Contoh setiap tuple dari relasi staff harus memiliki atribut primary key yaitu Staff No. 51 4. Integritas referential, jika foreign key memiliki nilai maka nilai tersebut harus menunjuk pada tuple yang ada pada relasi parent. Ada lima strategi untuk mempertahankan referential integrity pada saat penghapusan tuple pada relasi parent, yaitu : ¾ NO ACTION, yaitu mencegah penghapusan dari relasi parent jika terdapat tuple-tuple child yang direferensi atau ditunjuk. ¾ CASCADE, yaitu ketika tuple parent dihapus, secara otomatis juga dihapus tuple-tuple child yang direferensi atau ditunjuk. ¾ SET NULL, ketika tuple parent dihapus, maka nilai foreign key dalam semua tuple-tuple child yang berhubungan secara otomatis dijadikan null. ¾ SET DEFAULT, ketika tuple parent dihapus dihapus, maka nilai foreign key dalam semua tupletuple child yang berhubungan secara otomatis disamakan nilainya dengan default-nya. ¾ NO CHECK, ketika tuple parent dihapus, maka kita jangan melakukan apa-apa referential integrity tetap untuk terjaga. menjamin 52 5. Batasan perusahaan atau enterprise, disebut juga peraturan bisnis. Contoh Dream Home memiliki peraturan untuk mencegah anggota staff memimpin lebih dari 100 properti pada waktu yang sama. Tahap 3, adalah membangun dan memvalidasi model data logical global dan menggabungkan individual model data logical local ke dalam sebuah single model data logical local yang menggambarkan keseluruhan perusahaan. Yang antara lain adalah : • Menggabungkan model data logical ke dalam model global, tujuannya adalah untuk menggabungkan local logical data model individual ke dalam sebuah single model data logical global dari perusahaan. • Memvalidasi model data logical global, tujuannya untuk memvalidasi relasi yang diciptakan dari model data logical global dengan menggunakan teknik normalisasi dan menjamin mereka untuk mendukung transaksi yang dibutuhkan jika diperlukan. • Memeriksa untuk perkembangan di masa depan, tujuannya untuk menentukan apakah ada perubahan signifikan seperti dalam masa depan dapat diketahui dari sekarang dan menilai jika model data logical global dapat menyesuaikan perubahan-perubahan. 53 • Me-review model data logical global dengan user, tujuannya menjamin bahwa model data logical global adalah representasi yang sebenarnya dari perusahaan. 2.4.3 Perancangan Basisdata Fisikal Tahap 4, yang digolongkan dalam perancangan basis data fisikal adalah bertujuan untuk menghasilkan sebuah skema basis data relational dari model logical global yang dapat diimplementasikan dalam target DBMS. Yang antara lain adalah : • Merancang relasi-relasi dasar Tujuannya untuk memutuskan bagaimana memrepresentasikan relasi- relasi dasar yang diidentifikasikan dalam model data logical global dalam target DBMS. • Merancang representasi dari derived data. Tujuannya untuk derived memutuskan bagaimana merepresentasikan data yang ada pada data model logical global ke dalam target DBMS. • Merancang batasan perusahaan. Tujuannya tergantung pada DBMS. Ada yang menyediakan fasilitas untuk mendefinisi batasan perusahaan dan ada yang tidak. Jika tidak ada maka harus merancang batasan ke dalam aplikasi. 54 Tahap 5, adalah merancang representasi fisik. Tujuan menentukan organisasi file yang optimal untuk menyimpan relasirelasi dan indeks yang diinginkan agar mencapai performance yang bisa diterima, untuk itu aka ditentukan relasi dan tuple mana yang akan ada pada secondary storage. Langkah-langkahnya adalah : • Menganalisis transaksi, tujuannya untuk memahami fungsi dari suatu transaksi yang akan dijalankan pada basis data untuk menganalisis transaksi penting. • Memilih organisasi file, tujuannya untuk memilih organisasi file yang • efisien untuk setiap relasi dasar. Memperkirakan kebutuhan disk-space, tujuannya untuk memperkirakan ukuran disk-space yang dibutuhkan oleh basis data. Berikut ini adalah perhitungan kapasitas penyimpanan disk menurut SQL : 55 Menghitung penyimpanan data tiap table Tabel 2.1 Pengertian Penyimpanan Data Label Pengertian Num_rows Banyak record dalam satu tabel Num_cols Jumlah kolom dalam satu tabel Fix_data_size Ukuran tipe data yang tetap Num_variabel_cols Jumlah kolom tipe data variable Max_var_size Jumlah ukuran maksimum tipe data variabel Null_bitmap Menangani kemungkinan ada kolom yang kosong Variabel_data _size Menentukan banyaknya space untuk menyimpan kolom per baris Row_size Mengukur ukuran baris Row_per_page Menghitung baris per halaman Free_row_per_page Menghitung baris kosong per halaman Num_pages Menghitung jumlah halaman Table_size Mendapatkan total ukuran tabel Rumus Penyimpanan Data Tabel 2.2 Rumus Penyimpanan Data Label Rumus Null_bitmap 2 + (( Num_cols + 7 ) / 8 ) Variabel_data_size 2 + ( Num_variabel_cols x 2 ) + Max_var_size Row_size Fixed_data_size + Variabel_data_size + Null_bitmap + 4 Rows_per_page ( 8096 ) / ( Row_size + 2 ) Free_row_per_page 8096 x (( 100-fill factor ) / 100 ) / ( Row_size + 2 ) Num_pages Num_rows/(rows_per_page–ree_rows_per_page ) Table_size 8192 x Num_pages 56 Menghitung kapasitas data menggunakan clustered indeks Tabel 2.3 Pengertian Clustered Indeks Label Pengertian Num_ckey_cols Jumlah kolom key indeks Fixed_ckey_size Indeks key yang ukuran datanya tetap Num_variabel_ckey_cols Banyak kolom variabel indeks key Max_var_ckey_size Jumlah ukuran variabel indeks key C index_null_bitmap Menangani kemungkinan ada kolom indeks yang kosong Variabel_ckey_size Total jumlah kolom variabel indeks key C index_row_size Total ukuran indeks per baris C index_rows_per_page Total ukuran indeks per halaman Num_pages_clevel_n Jumlah halaman level ke-n Clustered_index_size Ukuran indeks cluster Tabel 2.4 Rumus Clustered Indeks Label Rumus Cindex_null_bitmap 2 + (( Num_c key_cols + 7 ) / 8 ) Variabel_ckey_size 2 + ( Num_variabel_ckey_cols x 2 ) + Max_var_ckey_size Cindex_row_size Fixed_ckey_size + Variabel_ckey_size + C index_row_size + 2 Cindex_rows_per_page ( 8096 ) / ( C index_row_size + 2) Num_pages_clevel_n ( Data_space_used / 8192 ) / Cindex_rows_per_page + Num_pages_clevel_0 / Cindex_row_per_page Clustered_index_size 8192 x Num_Cindex_pages 57 Menghitung kapasitas data menggunakan nonclustered indeks Tabel 2.5 Pengertian Nonclustered Indeks Label Pengertian Num_key_cols Jumlah kolom key indeks Fixed_key_size Jumlah key yang ukuran datanya tetap Num_variabel_key_cols Banyaknya kolom varibel indeks key Max_var_key_size Jumlah ukuran variable indeks key Index_null_bitmap Menangani kemungkinan ada kolom indeks yang kosong Variable_key_size Total jumlah kolom variabel indeks key NL_index_row_size Jumlah baris indeks non-leaf NL_index_row_per_page Jumlah baris indeks non-leaf per halaman Index_row_size Total ukuran indeks per baris Index_rows_per_page Total ukuran indeks per halaman Free_index_rows_per_page Menangani kemungkinan ada kolom indeks yang kosong Num_pages_level_n Jumlah halaman level ke-n Nonclustered_index_size Ukuran indeks non clustered Tabel 2.6 Rumus Nonclustered Indeks Label Rumus Index_null_bitmap 2 + (( Num_key_cols + 7 ) / 8 ) Variable_key_size 2 + ( Num_variabel_key_cols x 2 ) + Max_var_key_size NL_index_row_size Fixed_key_size + variable_key_size + index_null_bitmap + 1 + 8 ( 8096 ) / ( NL_index_row_size + 2 ) NL_index_rows_per_page Index_row_size Index_row_per_page Cindex_row_size + fixed_keys_size + variable_key_size + index_null_bitmap + 1 ( 8096 ) / ( Index_row_size + 2 ) Num_pages_level_n Nonclustered_index_size Jumlah halaman level ke-n 8192 x Num_index_pages 58 Tahap 6, adalah merancang user view. Tujuan untuk merancang user view yang diidentifikasikan selama pengumpulan kebutuhan - kebutuhan dan tahap analisis dari daur hidup aplikasi basis data relational. Tahap 7, yaitu merancang mekanisme keamanan yang mempunyai tujuan merancang mekanisme keamanan untuk basis data yang telah dispesifikasi user. Tahap 8, adalah mempertimbangkan adanya pengontrolan redudansi. Tujuan menentukan apakah redudansi dalam batasan yang terkontrol dengan cara melonggarkan aturan normalisasi akan meningkatkan kinerja sistem. Tahap 9, adalah memonitor dan menyesuaikan sistem operasional. Tujuannya untuk memonitor operasional sistem dan meningkatkan performance dari sistem untuk memperbaiki keputusan rancangan yang tidak sesuai atau merefleksikan perubahan-perubahan. 2.5 Pengertian Kamus Data Menurut Mc. Leod Jr. (2001,p582) kamus data adalah suatu penjelasan tertulis mengenai data yang berada di dalam basis data. Menurut Silberschatz dan Sudarshan (2002,p17) mengatakan bahwa “ Data dictionary, which stores 59 metadata about the structure of the database, in particular the schema of the database.”, yang diartikan Kamus data di mana terdapat meta data tentang struktur dari basis data, dalam hubungan skema dari basis data. 2.6 Fase Pengembangan Piranti Lunak Menurut Roger Pressman (2002,p30), dalam usaha untuk mengembangkan piranti lunak, terbagi dalam tiga fase umum dengan tanpa mempedulikan area aplikasi, ukuran, proyek, atau kompleksitasnya. Berikut ini adalah fase-fase dalam pengembangan piranti lunak : • Fase definisi (Definiton Phase), pada tahap ini pengembang harus mengidentifikasikan informasi yang akan diproses, fungsi dan unjuk kerja yang dibutuhkan, tingakah laku sistem yang diharapkan bentuk interface yang diharapkan, batasan desain yang ada serta criteria validasi yang dibutuhkan. • Fase pengembangan (Development Phase), pada tahap ini pengembang harus mendefinisikan konstruksi dari data, mengimplementasikan fungsi-fungsi serta detail prosedur sebagai sebuah arsitektur perangkat lunak, merancang interface (tampilan antar muka pemakai), menterjemahkan rancangan ke dalam bahasa pemrograman, dan melakukan pengujian. • Fase pemeliharaan (Maintenance Phase), tahap ini berfokus pada perubahan, perubahan setelah melakukan koreksi kesalahan, 60 penyesuaian yang dibutuhkan ketika perangkat lunak berkembang, serta perubahan karena perubahan kebutuhan. 2.7 Teori-Teori Pembelian, Penjualan dan Persediaan 2.7.1 Pembelian Menurut Mulyadi (2001,p299), pembelian merupakan proses yang digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan. Transaksi pembelian dapat digolongkan menjadi dua, yaitu pembelian lokal dan pembelian import. Pembelian lokal adalah pembelian pembelian dari pemasok dalam negeri, sedangkan pembelian import adalah pembelian dari pemasok luar negeri. 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. 2.7.2 Penjualan Menurut Futrell (1993.p6), penjualan adalah kegiatan yang membujuk pelanggan untuk membeli sesuatu seperti barang, jasa, ide atau gagasan yang bisa memuaskan kebutuhan individu. Penjualan digolongkan menjadi dua yaitu penjualan tunai dan penjualan kredit. 61 • Penjualan Tunai, yaitu penjualan yang dilakukan oleh perusahaan yang bersangkutan dengan cara mewajibkan pelanggan melakukan pembayaran harga barang terlebih dahulu sebelum barang tersebut diserahkan kepada pelanggan. Setelah barang diserahkan kepada pelanggan maka transaksi penjualan tunai akan dicatat oleh perusahaan. • Penjualan kredit, yaitu penjualan yang pembayarannya dilakukan beberapa waktu kemudian setelah pelanggan menerima barang yang dipesannya. Pembayaran dilakukan dalam jangka waktu yang telah disepakati oleh kedua belah pihak. Fungsi-fungsi yang berkaitan dengan sistem penjualan kredit antara lain adalah sebagai berikut : 1. Fungsi penjualan, fungsi ini bertanggung jawab untuk menerima surat order dari pelanggan. Mengedit order dari pelanggan untuk menambahkan informasi yang belum ada pada surat order tersebut, meminta otoritas kredit, menentukan tanggal pengiriman dan dari gudang mana barang akan dikirim dan mengisi surat order pengiriman. Fungsi ini juga bertanggung jawab untuk memenuhi order dari pelanggan 62 2. Fungsi kredit, fungsi ini bertanggung jawab untuk meneliti status kredit pelanggan dan pemberian kredit kepada pelanggan. 3. Fungsi gudang, fungsi ini bertanggung jawab untuk menyimpan barang dan menyiapkan barang yang dipesan untuk pelanggan serta menyerahkan barang ke fungsi pengiriman. 4. Fungsi pengiriman, fungsi ini bertanggung jawab untuk menyerahkan barang atas dasar surat order pengiriman yang diterimanya dari fungsi penjualan dan menjamin bahwa tidak ada barang yang keluar dari perusahaan tanpa ada otoritas yang berwenang. 5. Fungsi penagihan, fungsi ini bertanggung jawab untuk membuat dan mengirimkan faktur penjualan kepada pelanggan serta menyediakan copy faktur bagi kepentingan pencatatan transaksi penjualan oleh fungsi akutansi. 6. Fungsi akutansi, fungsi ini bertanggung jawab untuk mencatat piutang yang timbul dari transaksi penjualan kredit dan membuat laporan penjualan dan mencatat harga pokok persediaan yang dijual ke dalam kartu persediaan Tujuan dari penjualan adalah : • Untuk mencapai volume penjualan maksimal. 63 • Untuk mendapatkan laba maksimal. • Untuk mendukung pertumbuhan perusahaan Agar semua tujuan di atas dapat terwujud dengan baik maka perlu adanya kerjasama antara bagian-bagian yang terkait. 2.7.3 Persediaan Menurut Rangkuti (1995,p7), persediaan adalah merupakan salah satu unsur yang paling aktif dalam operasi perusahaan yang secara berkesinambungan diperoleh, diubah dan kemudian dijual kembali. Dalam perusahaan dagang, persediaan hanya terdiri dari satu golongan, yaitu persediaan barang dagangan yang merupakan barang yang dibeli untuk tujuan dijual kembali. Jenis-jenis persediaan menurut fungsinya dapat dibedakan sebagai berikut a. Fluctuation Stock, yaitu persediaan yang diadakan untuk menghadapi fluktuasi permintaan konsumen yang tidak dapat diprediksi. b. Batch Stock / Lot Size Inventor, yaitu persediaan yang diadakan karena kita membeli atau membuat bahan-bahan atau barangbarang dalam jumlah yang lebih besar dari jumlah yang dibutuhkan saat itu. c. Antipation Stock, yaitu persediaan yang diadakan untuk menghadapi fluktuasi permintaan yang diprediksi berdasarkan pola 64 maksimum yang terdapat dalam satu tahun dan untuk menghadapi penggunaan, penjualan atau permintaan yang meningkat. Sedangkan menurut jenis dan posisi barang, persediaan dapat dibedakan menjadi empat jenis yang antara lain yaitu : a. Persediaan bahan baku, yaitu persediaan barang-barang wujud seperti besi, kayu, serta komponen-komponen lainnya yang digunakan dalam produksi. b. Persediaan bagian produk / komponen yang dibeli, yaitu persediaan barang-barang yang terdiri dari komponen-komponen yang diperoleh dari perusahaan lain di mana secara langsung dapat dirakit menjadi suatu produk. c. Persediaan bahan-bahan pembantu, yaitu persediaan barang-barang yang diperlukan dalam proses produksi tetapi tidak merupakan bagian atau komponen barang jadi. d. Persediaan barang-barang setengah jadi, yaitu persediaan barangbarang yang merupakan keluaran dari tiap-tiap bagian dalam proses produksi atau yang telah diolah menjadi suatu bentuk tetapi masih perlu diproses atau diolah dalam pabrik dan siap untuk dijual. 65 2.8 Pengertian Syarat Penyerahan Barang Menurut buku pelajaran ekonomi, hubungan ekspor-impor merupakan hubungan dagang yang akan menghasilkan devisa bagi kedua belah pihak dan hubungan ini sering disebut juga perdagangan luar negeri. Syarat-syarat penyerahan barang ada dua macam yaitu sebagai berikut : • Franko Gudang Penjual, yaitu barang yang diperjual belikan menjadi milik pelanggan pada saat barang sudah keluar dari gudang penjual. Segala resiko selama dalam perjalanan ditanggung pelanggan, dan ongkos pengiriman menjadi tanggung jawab pelanggan. • Franko Gudang Pembeli, yaitu barang yang diperjual belikan menjadi milik pelanggan saat barang sampai di tempat pelanggan. Segala resiko selama dalam perjalanan menjadi tanggung jawab penjual, dan ongkos pengiriman menjadi tanggung jawab penjual. 2.9 Sistem Keamanan Untuk menjaga keamanan data, maka sebelum login ke site, maka setiap sistem akan meminta user name dan password yang hanya di miliki oleh setiap pegawai, sehingga membantu mencegah orang yang tidak berhak untuk masuk ke dalam sistem. User level security, membatasi akses pada level tertentu, bahwa user dapat membaca atau mengupdate. Sistem keamanan yang di terapkan adalah menggunakan firewall. Ada beberapa tipe teknik firewall : 66 2.9.1 Proxy Server Dari beberapa teknik firewall kami meninjau keamanan melalui alat dan teknologi yang dapat melihat lebih dalam ke sebuah TCP packet. Disini kami akan menjelaskan bagaimana proxy dan Application Level Protection. Stateful packet inspection firewall adalah versi penyaringan paket yang telah diperbaharui. Piranti yang digunakan disini menyediakan perbaikan tambahan dengan menganalisa paket pada layer aplikasi. Beberapa tipe atau teknologi dapat digunakan untuk mengimplementasikan proteksi ini, dan mereka dikenal dengan beberapa nama yang berbeda. Applikasi level firewall menyediakan tipe koneksi data yang paling aman karena dapat menyelidiki tiap layer pada model proses komunikasi TCP/IP. Untuk mencapai level proteksi ini, firewall-firewall ini yang juga dikenal dengan proxies menghubungkan dan mengontrol koneksi dengan menahan dan memeriksa tiap koneksi. Jika proxy menentukan bahwa koneksi ini diizinkan , maka akan membuka koneksi kedua server sesudah dia mengoneksi host semula. Bagian data dari masing-masing paket dibagi, diselidiki, dibangun kembali dan dikirim kembali ke koneksi kedua. Tipe–tipe firewall dapat digunakan untuk mengerjakan hal tersebut yaitu, • Standard Proxy Firewall, firewall proxy tidak me-route-kan paket dia biasanya meneruskan paket-paket dan mengoperasikannya di layer aplikasi model TCP/IP. Secara fungsional, firewall proxy 67 menerima paket dari sebuah interface, memeriksa paket menurut perangkat rule yang telah ditetapkan dan melewatkan paket ke inteface lain jika diizinkan. • Dinamic proxy firewall, sebenarnya dikembangkan dari konsep yang diuraikan untuk firewall proxy standard, firewall proxy dinamis didesain untuk memberikan faedah pada standar proxy dan menambah faedah pada penyaringan paket. Firewall proxy memiliki fisibilitas yang bagus pada layer aplikasi model TCP/IP, untuk dapat melihat bagian-bagian data yang lebih spesifik daripada semua tipe teknologi lain . 2.9.2 Packet Filter ( Penyaringan Paket) Semua informasi yang ada menggunakan TCP/IP dan selanjutnya informasi itu dikirim sebagai bagian–bagian kecil yang di sebut packet. Penyaringan paket sering digunakan sebagai pertahanan pertama pada sistem keamanan perusahaan dengan mengkombinasikan dengan teknologi firewall lain. Penyaring paket adalah salah satu tipe teknologi pengawasan paket yang paling umum dan paling lama. Memulai dengan memeriksa isi paket dan mengaplikasikan aturan untuk menentukan apakah paket itu ditolak atau diizinkan. Meskipun beberapa karakteristik mungkin menggunakan header dari TCP/IP paket (yaitu protocol, port, dan sebagainya ). 68 Pembahasan ini merujuk pada penyaringan berdasarkan alamat IP sumber atau tujuan. Penyaringan paket memeriksa masing-masing paket data secara tersendiri, menyelidiki alamat IP sumber dan tujuan dan port. Hanya attribut masingmasing data yang paling mendasar yang diselidiki untuk alasan ini, maka dapat memutuskan aliran paket secara cepat. Rancangan keamanan ini untuk mengidentifikasi paket, untuk memenuhi beberapa peran dalam dunia jaringan , meskipun penyaringan paket tidak terlalu aman (jika sendirian), ini merupakan salah satu teknik yang akan meningkatkan kualitas keamanan jaringan yang mana dengan menerapkan sistem keamanan secara terdistribusi juga. Gambar 2.2 dibawah ini akan menunjukkan penempatan penyaringan paket. PC Pengguna Packet Internet Router Firewall LAN Swicth Server Menempatkan Penyaringan paket masuk ditempat terdekat dengan entry Jaringan Gambar 2.2 Penempatan Penyaringan Paket 69 2.9.3 Pengendalian Konkurensi Seperti disebutkan sebelumnya, pengendalian konkurensi pada hampir semua sistem terdistribusi adalah berdasarkan pada mekanisme locking, seperti halnya sistem yang non-terdistribusi. Namun pada sistem terdistribusi permintaan tes, men-set, dan pelepasan “lock’ menjadi pesan (dengan asumsi bahwa obyek yang dicari berada pada site remote), dan pesan (message) berarti beban. Sebagai contoh , suatu transaksi yang akan memutakhirkan suatu obyek yang mempunyai replikasi pada site remote yang berada di Jakarta. Apabila semua remote bertanggung jawab atas mekanisme locking untuk setiap obyek yang disimpannya (sesuai dengan asumsi kaidah otonomi lokal), maka implementasi paling tidak yaitu permintaan lock, pemberian lock, pesan pemutakhiran, pemberitahuan, permintaan melepaskan lock. Total waktu yang dibutuhkan untuk memutakhirkan akan sangat meningkat dibandingkan sistem yang terpusat. Solusi yang biasanya dilakukan terdapat permasalahan ini adalah dengan cara mengadopsi strategi copy primer seperti pada propagasi update. Namun juga dapat diperhatikan bahwa solusi tersebut tetap menimbulkan pelanggaran kaidah otonomi lokal-transaksi akan gagal bila copy primer tidak bisa didapat, meskipun transaksi yang dilakukan hanya baca dan copy lokal obyek. permasalahan lain dengan locking dalam sistem terdistribusi adalah dapat terjadinya deadlock global. 70 Deadlock global adalah deadlock yang melibatkan lebih dari dua site. Permasalahan dengan deadlock seperti ini adalah bahwa dengan informasi yang internal di site lain maka tidak ada satu sitepun dapat mendeteksinya. Dengan kata lain untuk dapat mendeteksi adanya deadlock global maka dapat melibatkan komunikasi dengan site-site yang lain. 2.10 Kerangka berpikir menyelesaikan masalah Dalam melakukan perancangan basis data pada PT Sukanda Djaya ini, kami menerapkan beberapa teori, dimulai dari : • Fact finding yang berguna untuk mencari data-data yang dibutuhkan, dilakukan dengan membaca buku / studi kepustakaan yang berkaitan dengan apa yang akan kami analisis dan kami rancang, survey langsung ke perusahaan untuk mencari tahu kelemahan sistem yang ada sehingga didapat solusinya, dan untuk mengidentifikasi kebutuhan informasi yang dibutuhkan oleh sistem yang baru. • Pengumpulan data-data tentang perusahaan dengan wawancara langsung dengan pimpinan atau staff yang berwenang diperusahaan tersebut dan kemudian mempelajari data-data yang diberikan • Setelah data-data yang dibutuhkan terkumpul, maka dapat dimulai perancangan basis data dengan menggunakan metoda Database Life Cycle (DBLC). Perancangan ini dimulai dengan perencanaan yang bertujuan untuk menyesuaikan basis data dengan tujuan perusahaan, setelah itu menentukan ruang lingkup dari sistem yang akan dibuat 71 dan mengumpulkan data-data yang dibutuhkan. Kemudian mendisain basis data yang terdiri dari tiga tahap yaitu konseptual, logikal, dan fisikal yang dilanjutkan dengan pemilihan DBMS yang sesuai dengan apa yang telah kita rancang. Setelah semua perancangan selesai maka dimulailah pengimplementasian sistem dari sistem yang lama ke sistem yang baru, lalu dilakukan testing untuk menguji apakah sudah terintegrasi dengan baik atau belum.