BAB 2 LANDASAN TEORI
2.1 Teori Basisdata 2.1.1 Data Fakta yang sudah ditulis dalam bentuk catatan atau direkam ke dalam berbagai bentuk media disebut data. Ada juga yang berpendapat bahwa data merupakan aliran fakta yang mewakili kejadian yang terjadi dalam organisasi atau dalam lingkungan fisik sebelum mereka diatur menjadi sebuah bentuk yang dapat dimengerti dan digunakan oleh pengguna (Loudon, 2000, p8). Sedangkan menurut Navathe dan Elmasri (2000, p4), data adalah fakta yang dapat disimpan dan memiliki arti. Sehingga dapat disimpulkan bahwa data adalah fakta yang sudah ditulis (telah terjadi), memiliki arti, dan dapat disimpan ke dalam berbagai bentuk media serta dapat diatur sedemikian rupa sehingga dapat digunakan untuk berbagai tujuan. Secara tradisional, data diorganisasikan ke dalam suatu hirarki yang terjadi atas elemen, rekaman (record), dan berkas (file). •
Elemen data Elemen data adalah suatu data terkecil yang tidak dapat dipecah lagi menjadi unit yang bermakna. Istilah lain untuk elemen data adalah field, kolom, item, dan atribut.
•
Rekaman Rekaman adalah gabungan sejumlah elemen data yang saling terkait. Dalam sistem basisdata relasional, rekaman bisa disebut dengan istilah tuple atau baris.
9
10 •
Berkas Himpunan seluruh rekaman yang bertipe sama membentuk sebuah berkas. Berkas dapat dikatakan sebagai kumpulan rekaman data yang saling berkaitan dengan suatu subjek. Dalam sistem basisdata relasional, berkas mewakili komponen yang disebut tabel atau relasi.
2.1.2 Pengertian Basisdata Pada sistem basisdata pemakai dapat melakukan manipulasi data dan operasi file, dimulai dengan memuat file baru kedalam basisdata, memasukkan data, dan mengambil data. Sistem basisdata dapat diterapkan pada semua komputer, mulai dari komputer mikro (seperti PC) sampai pada mainframe. Basisdata adalah sekumpulan informasi yang diatur dalam cara tertentu hingga sebuah program komputer dapat dengan cepat memilih data yang diinginkan. Basisdata dapat diibaratkan sebagai sistem pengarsipan elektronis. Basisdata tradisional terdiri dari field, record dan file. Field adalah item tertentu dari informasi; record adalah sekumpulan field; dan file adalah kumpulan record. Menurut Connolly dan Begg (2002, p14), basisdata adalah kumpulan data yang terhubung secara logical, deskripsi dari data tersebut dan dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi. Basisdata merupakan sebuah tempat pengumpulan data yang sangat besar yang digunakan secara bersama-sama oleh berbagai departemen, tetapi basisdata merupakan satu kesatuan data yang dimiliki oleh organisasi dan saling berbagi antar departemen.
11 Menurut Date (2000, p10), basisdata adalah sekumpulan data yang digunakan oleh sistem aplikasi yang digunakan oleh suatu perusahaan. Dan menurut Post (2002, p2), basisdata adalah kumpulan data yang telah disimpan dalam format yang telah terstandarisasi yang didesain untuk digunakan oleh beberapa pemakai bersama. Basisdata diperlukan karena : •
Merupakan salah satu komponen penting dalam sistem informasi dalam menyediakan informasi.
•
Menentukan kualitas informasi : akurat, tepat pada waktunya dan relevan. Informasi dikatakan bernilai apabila manfaatnya lebih efektif dibanding dengan biaya mendapatkannya.
•
Mengurangi dulikasi data (data redudancy).
•
Hubungan data dapat ditingkatkan (data relatability).
•
Mengurangi pemborosan tempat simpanan luar.
2.1.3 Database Management System (DBMS) DBMS merupakan sebuah sistem yang berjalan secara automatic untuk melakukan manajemen koleksi data dan idealnya mampu memberikan solusi data yang ternormalisasi. DBMS sangatlah penting karena merupakan pusat dari aktifitas suatu menajemen data dengan menyediakan teknologi untuk mengakses data dan memanipulasi kembali data. Menurut Connolly dan Begg (2002, p3), DBMS adalah sebuah sistem perangkat lunak yang memungkinkan pemakai untuk mendefinisi, membuat, memelihara, dan mengontrol akses ke basisdata.
12 Menurut Ramakrishnan (200, p3), DBMS adalah perangkat lunak yang dirancang untuk membantu
pemeliharaan dan penggunaan sekumpulan besar dari data yang
diperlukan oleh sistem yang seiring dengan penggunaannya berkembang dengan pesat. Menurut Sliberchatz, Korth, dan Sudarshan (2002, p1), DBMS adalah sekumpulan data yang saling berhubungan dan sebuah set program yang digunakan untuk mengakses data tersebut. Pada umumnya DBMS menyediakan fasilitas berikut ini : •
Memungkinkan pemakai untuk mendefinisikan basisdata, biasanya melalui Data Definition Language (DDL).
•
Pemakai bisa memasukkan data, memperbaharui data, menghapus data, dan mengambil data dari basisdata, dan biasanya melalui Data Manipulation Language (DML). Sebagai tempat penampungan utuk semua data dan deskripsi data memungkinkan DML untuk menyediakan sebuah fasilitas untuk mengambil keterangan dari data yang disebut dengan query language. Keberadaan query language ini akan mengatasi masalah yang terjadi pada basisdata yang disebut secara tradisional. Query language yang peling umum adalah Struktured Query Language (SQL, biasanya dibaca S-Q-L atau ‘SeeQuel’) dimana sekarang secara tak langsung telah menjadi bahasa formal dan terstandarisasi untuk DBMS.
•
Menyediakan control akses untuk basisdata. Sebagai contoh : o
Keamanan, diamana mencegah orang yang tidak diijinkan untuk mengakses data.
o
Integritas, menjaga konsistensi data.
o
Concurrency control system, pembagian akses ke basisdata.
13 o
Pemulihan control sistem, memulihkan kondisi basisdata ke kondisi konsisten yang sebelumnya bila terjadi kegagalan perangkat keras atau perangkat lunak.
o
Katalog yang dapat diakses oleh pemakai, mengandung deskripsi dari data yang ada didalam basisdata.
Keuntungan dari DBMS adalah sbagai berikut : •
Kontrol terhadap pngulangan data.
•
Data konsistensi.
•
Lebih banyak informasi dari jumlah data yang sama.
•
Data dibagikan.
•
Meningkatkan integritas data.
•
Meningkatkan keamanan.
•
Mengurangi biaya.
•
Mempermudah pengoperasian data.
•
Memperbaiki pengaksesan data dan hasilnya.
Sedangkan kerugian dari pemakaian DBMS adalah : •
Kompleksitas.
•
Ukuran data yang besar.
•
Biaya dari DBMS.
•
Tambahan biaya perangkat keras.
2.1.4 Data Defenition Language (DDL) DDL adalah sebuah deskripsi bahasa yang memungkinkan seseorang Database Administrator (DBA) ataupun seorang pemakai untuk menjabarkan dan memberi nama
14 suatu entitas yang dibutuhkan untuk suatu aplikasi dan hubungan yang mungkin berada diantara entitas-entitas yang berbeda (Connolly dan Begg, 2002, p40). Sistem basisdata berisi tentang beragam definisi yang ditunjukkan sebagai arti dari bahasa khusus yang disebut DDL. DDL digunakan untuk mendefinisikan suatu skema atau untuk merubah yang sudah ada, tetapi tidak bisa digunakan untuk memanipulasi data. Hasil dari kompilasi DDL adalah semacam tabel yang disimpan secara kolektif didalam sebuah file khusus yang biasa disebut dictionary. Data dictionary diintegrasikan dengan metadata. Metadata adalah data yang mendeskripsikan objek di dalam basisdata dan membuat data itu lebih mudah untuk diakses atau dimanipulasi, metadata mengandung isi dari suatu record, jenis data dan objek lainnya yang sangat berkaitan pada pemakai atau yang dibutuhkan oleh DBMS. Pada tingkat teoritis DDL dapat dibedakan untuk setiap skema pada three level architecture, dan sebagian DDL untuk skema eksternal dan juga untuk skema konseptual, dan skema internal. Bagaimanapun juga pelaksanaannya DDL merupakan suatu aplikasi yang memungkinkan terdapatnya skema eksternal dan konseptual.
2.1.5 Data Manipulation Language (DML) DML adalah suatu bahasa yang menyediakan sekumpulan operasi yang mendukung suatu basisdata untuk memanipulasi operasi pada data yang berada dalam basisdata (Connolly, 2002, p41).
15 Operasi manipulasi data biasanya termasuk sebagai berikut : •
Menyisipkan suatu data baru kedalam suatu basisdata.
•
Perubahan data yang disimpan dalam basisdata.
•
Pencarian kembali data yang terdapat dalam suatu basisdata.
•
Penghapusan data dari suatu basisdata. Untuk itu salah satu fungsi utama dari DBMS ialah untuk mendukung DML
dimana pemakai bisa menyusun pernyataan yang bisa memanipulasi data yang telah dilakukan sebelumnya. Memanipulasi data dapat diaplikasikan pada tingkat eksternal dan konseptual sebaik tingkat internal. Bagaimanapun juga pada tingkat internal harus didefinisikan prosedur tingkat rendah yang kompleks sehingga memungkinkan utuk membuat suatu data akses yang lebih efisien. Sebagai penjelasannya, pada tingkat yang lebih tinggi menekankan pada penempatan dari suatu kasus yang akan dibuat, dan usaha yang langsung disediakan oleh pemakai dengan sistem.
2.1.6 Normalisasi Menurut Whitten, Bentley dan Dittman (2004, p558) sebuah teknik untuk mendesain data model yang memenuhi kriteria sebagai berikut : •
Data model yang simple. Sebuah data atribut yang menjelaskan sebuah entitas hanya boleh harus menjelaskan entitas tersebut.
•
Data model yang essentially nonredundan. Artinya bahwa setiap data atribut selain dari foreign key menjelaskan suatu entitas.
•
Data model harus fleksibel dan harus mampu beradaptasi dengan kebutuhan yang mungkin muncul dimasa yang akan datang.
16
Menurut Connolly dan Begg (2002, p376), normalisasi adalah teknik yang digunakan untuk menghasilkan relasi-relasi dengan sifat-sifat yang diinginkan, dengan memberi kebutuhan data dari sebuah organisasi. Normalisasi adalah langkah formal yang digunakan untuk menganalisa relasi berdasarkan primary key (atau candidate key) dan ketergantungan fungsional. Teknik ini meliputi beberapa peraturan yang bisa dites satu per satu sehingga basisdata dapat dinormalisasi hingga batas manapun. Tujuan dari normalisasi adalah sebagai berikut : •
Mengoptimalisasi redundansi (pengulangan data yang tidak perlu). Redundansi tidak bisa dihilangkan sama sekali karena berguna untuk integritas referensial, tetapi redudansi bisa dioptimalisasi. Untuk jumlah data yang tidak terlalu banyak mungkin tidak terlalu berpengaruh dalam hal penggunaan harddisk. Tetapi bayangkan jika ada ribuan, bahkan jutaan redudansi, mungkin akan sangat berpengaruh pada penggunaan ruang.
•
Menghilangkan anomaly. Anomali pada dasarnya adalah ketidak konsistenan (inkonsisten). Misalnya ada pergantian nama dari PT. Global Health menjadi PT. Global Health Indonesia sebanyak 4 record. Jika pergantian nama hanya dilakukan pada salah satu record saja, maka terjadi ketidak-konsistenan yaitu satu nomor PT berelasi dengan 2 nama PT yang berbeda.
•
Menghilangkan kumpulan relasi dari insert, update, dan delete dependency yang tidak diharapkan.
17 •
Megurangi kebutuhan restrukturisasi kumpulan relasi dan meningkatkan life span dari program aplikasi.
•
Membuat model relasional lebih informative.
Tahapan dari normalisasi terdiri dari : 1.
Normalisasi tahap pertama (1NF) utnuk menghilangkan perulangan.
2.
Normalisasi tahap kedua (2NF), syarat dari bentuk ini adalah data harus memenuhi criteria 1NF dan menghilangkan ketergantungan partial terhadap primary key.
3.
Normalisasi tahap ketiga (3NF), data harus berada dalam 2NF. Tahap ini untuk menghilangkan transitive dependency.
4.
Normalisasi tahap keempat (4NF / BCNF), suatu relasi dikatakan memenuhi BCNF apabila didalamnya berisi atribut yang berfungsi sebagai candidate key sehingga salah satu dari candidate key tersebut menjadi primary key.
2.2 Database Lifecycle Untuk merancang aplikasi sistem basisdata diperlukan tahapan-tahapan terstruktur yang harus diikuti yang dinamakan dengan Siklus Hidup Aplikasi BasisData (Database Lifecycle) atau disingkat dengan DBLC. Perlu diingat bahwa tahapan dalam DBLC tidak harus berurutan, namun juga melibatkan beberapa pengulangan ke tahapan sebelumnya melalui putaran balik (feedback loops). Tahapan-tahapan tersebut terlihat pada gambar 2.1.
18
Gambar 2.1 Database Lifecycle (Connolly dan Begg 2002, p272)
19 2.2.1 Perancangan Basisdata (Database Planning) Perancangan basisdata adalah kegiatan pengaturan yang memungkinkan tahap-tahap dalam aplikasi basisdata dapat diwujutkan secara efisien dan secara efektif mungkin (Connolly dan Begg, 2002, p273). Tahap perancangan basisdata juga harus menjelaskan : •
Mission statement dari proyek basisdata. Mission statement ini menjelaskan tujuan utama aplikasi basisdata, juga membantu menjelaskan tujuan proyek basisdata, dan menyediakan maksud yang lebih jelas dalam pembuatan aplikasi basisdata secara efektif dan efisien (Connolly dan Begg, 2002, p274). Dengan merumuskan apa sebenarnya yang menjadi tujuan dari proyek basisdata ini diharapkan dapat lebih memfokuskan pekerjaan pada tahap selanjutnya.
•
Mission objectives. Selain merumuskan tujuan dari sebuah proyek basisdata, harus diperhatikan juga mengenai tugas apa saja yang harus didukung oleh basisdata tersebut. Setiap mission objective akan menjelaskan tugas tertentu yang harus didukung oleh basisdata, dengan asumsi jika basisdata mendukung mission objective, maka mission statement-nya juga akan sesuai (Connolly dan Begg, 2002, p274).
2.2.2 Pendefinisian Sistem (System Definition) Pendefinisian sistem (system definition) menggambarkan ruang lingkup dan batasan aplikasi basisdata dan pandangan pengguna (user view) (Connolly dan Begg, 2002, p274). Hal ini sangat penting dilakukan dalam proses perancangan basisdata agar lebih terfokus pada proyek basisdata yang dibuat.
20 Pandangan pengguna sangat diperlukan untuk mendefinisikan informasi-informasi yang dibutuhkan oleh pengguna. Pandangan pengguna menggambarkan apa yang dibutuhkan oleh aplikasi basisdata dan sudut pandang jabatan tertentu, seperti manager atau pengawas, maupun dari sudut pandang area aplikasi perusahaan, seperti pemasaran, personalia, atau pengawasan persediaan, dalam hubungannya dengan data yang akan disimpan dan transaksi yang akan dijalankan terhadap data itu (Connolly dan Begg, 2002, p275).
2.2.3 Pengumpulan Kebutuhan dan Analisis (Requirements Collection and Analysis) Tahap selanjutnya yang akan dilakukan setelah pendefinisian sistem adalah tahap pengumpulan kebutuhan dan analisis. Dalam tahap ini dilakukan proses pengumpulan dan analisa informasi tentang bagian organisasi yang akan didukung oleh aplikasi basisdata, dan menggunakan informasi ini untuk mengidentifikasi kebutuhan pengguna terhadap sistem yang baru (Connolly dan Begg, 20002, p276). Suatu proses resmi dalam menggunakan teknik-teknik seperti wawancara atau kuesioner utuk mengumpulkan fakta-fakta tentang informasi sistem dan kebutuhankebutuhannya dinamakan dengan teknik fact-finding (Connolly dan Begg, 2002, p302). Ada lima kegiatan yang dipakai dalam teknik ini, yaitu : a.
Memeriksa dokumentasi Pemahaman terhadap jalannya sistem akan cepat diperoleh dengan memeriksa dokumen-dokumen, formulir, laporan, dan berkas yang terkait dengan sistem yang sedang berjalan pada perusahaan. Dengan pemeriksaan ini diharapkan dapat mengetahui data apa saja yang akan disimpan di dalam basisdata.
21 b. Wawancara Wawancara bertujuan untuk mengumpulkan fakta-fakta, memeriksa kebenaran fakta yang ada dan mengklarifikasinya, membangkitkan semangat, melibatkan pengguna akhir, mengidentifikasi kebutuhan-kebutuhan, dan mengumpulkan ide-ide dan pendapat (Connolly dan Begg, 2002, p306). Teknik ini memerlukan kemampuan komunikasi yang baik untuk menghadapi pengguna yang memiliki nilai, prioritas, pendapat, motivasi, dan kepribadian yang berbeda-beda. Keuntungan mengguanakan teknik ini menurut Thomas Connolly (2002, p306) antara lain : •
Memungkinkan orang yang diwawancara untuk menghadapi pertanyaan dengan bebas dan terbuka.
•
Memungkinkan orang yang diwawancara merasa bahwa ia merupakan bagian dari proyek.
•
Memungkinkan pewawancara untuk menindaklanjuti komentar-komentar menarik yang dibuat oleh orang yang diwawancarai.
•
Memungkinkan pewawancara untuk mengubah atau menyusun kembali pertanyaan selama kegiatan wawancara.
•
Memungkinkan pewawancara untuk mengamati bahasa tubuh orang yang diwawancara. Kerugian teknik ini menurut Thomas Connolly (2002, p306) yaitu :
•
Sangat memakan waktu dan biaya, sehingga menjadi tidak praktis.
•
Keberhasilan tergantung pada kemampuan komunikasi pewawancara.
22 •
Keberhasilan tergantung pada keinginan orang yang diwawancara untuk ikut serta dalam wawancara.
c.
Mengawasi operasional perusahaan Pengamatan ini memungkinkan untuk ikut serta atau mengamati seseorang melakukan kegiatan untuk mempelajari sistem. Salah satu faktor pengamatan dapat berhasil adalah dengan mencari informasi sebanyak mungkin tentang aktifitas yang akan diamati serta orang yang orang yang melakukan aktifitas tersebut. Keuntungan menggunakan teknik ini antara lain : •
Validitas fakta dan data dapat diperiksa.
•
Pengamat dapat melihat dengan jelas apa yang dikerjakan.
•
Pengamat juga dapat memperoleh data yang menjelaskan lingkungan fisik dari tugas yang diberikan.
•
Relative murah.
•
Pengamat dapat membuat pengukuran kerja. Kerugian teknik ini yaitu :
•
Sangat memakan waktu dan biaya, sehingga menjadi tidak praktis.
•
Dapat terlewat dalam mengamati tugas-tugas yang melibatkan tingkat kesulitan yang lain.
•
Beberapa tugas tidak selalu dilakukan dengan cara seperti pada saat pengamatan.
23 d.
Penelitian Selain melakukan penelitian yang berasal dari dalam organisasi itu sendiri, dapat juga dilakukan pengumpulan informasi yang berasal dari luar organisasi tersebut. Beberapa contoh sumber informasi tersebut antara lain jurnal komputer, buku-buku referensi, dan internet. Sumber informasi tersebut juga dapat digunakan untuk memecahkan masalah serupa. Keuntungan menggunakan teknik ini antara lain : •
Dapat menghemat waktu jika solusinya sudah tersedia.
•
Peneliti dapat mengamati cara orang lain memecahkan masalah yang sama atau menemui kebutuhan yang serupa.
•
Membuat para peneliti selalu up-to-date dengan perkembangan baru. Kerugian teknik ini yaitu :
•
Dapat menjadi sangat memakan waktu.
•
Membutuhkan akses ke sumber informasi yang tepat.
•
Dapat
saja
tidak
membantu
memecahkan
masalah
karena
tidak
didokumentasikan. e.
Kuesioner Teknik lain yang dapat digunakan untuk mengumpulkan informasi yang dibutuhkan adalah dengan menggunakan kuesioner. Kuesioner adalah suatu dokumen dengan tujuan khusus yang memungkinkan fakta-fakta dikumpulkan dari banyak orang sambil menjaga kontrol terhadap tanggapan yang diberikan (Connolly dan Begg, 2002, p308). Keuntungan menggunakan teknik ini antara lain :
24 •
Orang dapat melengkapi dan mengembalikan kuesioner pada waktu yang sebaik-baiknya.
•
Tidak mahal untuk mengumpulkan data dari banyak orang.
•
Responden lebih mudah untuk memberikan jawaban yang benar karena jawaban yang diberikan dapat dijaga kerahasiaannya.
•
Tanggapan dapat ditabulasikan dan dianalisa dengan cepat. Kerugian teknik ini yaitu :
•
Jumlah responden dapat saja rendah, sekitar 5% sampai 10%.
•
Kuesioner dapat saja dikembalikan dengan tidak lengkap.
•
Tidak menyediakan kesempatan untuk mengubah pertanyaan yang salah diartikan.
•
Tidak dapat mengamati dan menganalisa bahasa tubuh responden.
•
Memakan waktu untuk menyediakan kuesioner.
2.2.4 Perancangan Basisdata (Database Design) Database design adalah proses yang menghasilkan sesain sebuah basisdata yang dapat mendukung sebuah operasi dan misi perusahaan (Connolly dan Begg, 2002, p279). Tujuan utama adalah : •
Merepresentasikan data dan relasi antara basisdata dan yang dibutuhkan oleh seluruh area aplikasi utama dan user group.
•
Menyediakan model data yang mendukung segala transaksi yang diperlukan pada data.
25 •
Menspesifikasikan desain minimal yang secara tepat disusun untuk memenuhi kebutuhan peforma yang ditetapkan pada sistem (misal : waktu respon).
Terdapat beberapa cara untuk mendesain suatu basisdata antara lain yang paling sering digunakan adalah bottom up approach, dan juga top down approach. •
Top-down Diawali dengan pembentukan model data yang berisi beberapa entitas highlevel dan relasi, yang kemudian menggunakan pendekatan top-down secara berturutturut untuk mengidentifikasikan entitas lower level, relasi dan atribut lainnya.
•
Bottom – up Dimulai dari atribut dasar (yaitu sifat-sifat dasar entitas dan relasi), dengan analisis dari penggabungan antar atribut, yang dikelompokkan ke dalam suatu relasi yang merepresentasikan tipe dari entitas dan relasi antar entitas.
Selain dari cara yang disebutkan diatas, ada juga inside out approach yang berhubungan dengan bottom up approach, dan juga mixed strategy approach yang melakukan gabungan dari bottom up dan juga top down approach. •
Inside – out Berhubungan dengan pendekatan bottom up tetapi sedikit berbeda dengan identifikasi awal entitas utama dan kemudian menyebar ke entitas, relasi, dan atribut terkait lainnya yang lebih dulu diidentifikasi.
26 •
Mixed Menggunakan pendekatan bottom-up dan top-down untuk bagian yang berbeda sebelum pada akhirnya digabungkan.
2.2.4.1 Perancangan Basisdata Konseptual Perancangan basisdata konseptual adalah proses membangun model informasi yang digunakan organisasi, bebas dari semua pertimbangan fisik (Connolly dan Begg, 2002, p419). Pertimbangan fisik yang dimaksud meliputi DBMS yang akan digunakan, program aplikasi, bahasa pemprograman, platform perangkat keras, unjuk kerja, dan pertimbangan fisik lainnya.
Langkah-langkah
dalam
metodologi
perancangan basisdata konseptual yaitu : 1.
Mengidentifikasi Tipe Entitas Untuk mengidentifikasi entitas utama yang dibutuhkan oleh view. Mengidentifikasikan objek utama dimana pemakai mempunyai ketertarikan dengan objek tersebut. Objek-objek ini adalah tipe entitas untuk model. Salah satu metode untuk mengidentifikasi entitas adalah dengan menguji spesifikasi kebutuhan dari pemakai. Dari spesifikasi ini diidentifikasikan kata benda dan ungkapan kata benda (nouns phrases) yang disebutkan. Juga dapat dilihat objek utama seperti orang, tempat atau konsep dari ketertarikan diluar kata benda lainnya yang merupakan kualitas dari objek lain.
27 2.
Mengidentifikasi Tipe Relasi Tujuannya untuk mengidentifikasikan relasi penting yang ada antara tipe entitas yang telah diidentifikasikan. Dapat digunakan grammar dari spesifikasi kebutuhan tersebut untuk mengidentifikasi relasi, biasanya relasi dinyatakan dengan kata kerja (verb) atau ekspresi verbal. Secara langsung ekspresi tersebut adalah binary, dengan kata lain relasi tersebut berada antara dua tipe entitas. Kita pun harus berhati-hati untuk mencari relasi yang komplek yang dapat menghubungkan lebih dari dua tipe entitas. Langkah-langkah identifikasi tipe relasi : •
Gunakan Entity Relationship Diagram (ERD)
•
Cari batasan dari tipe relasi
•
Periksa fan dan chasm traps
•
Perikasa bahwa masing-masing entitas ikut serta setidaknya dalam satu relasi
• 3.
Dokumentasikan tipe relasi
Mengidentifikasi dan Menghubungkan Atribute dengan Entitas dan Relasi Tujuannya untuk menghubungkan atribut dengan entitas atau tipe relasi yang sesuai dan mendokumentasikan detail dari setiap atribut. Atribut-atribut bisa diidentifikasi dengan kata benda atau ungkapan kata benda (nouns phrases) seperti properti, kualitas, identifier, atau karakteristik dari suatu entitas atau relasi. Atribut dapat dibagi menjadi 3 yaitu :
28 •
Atribut simple atau composite Penting untuk mengetahui apakah sebuah atribut adalah simple atau composite. Composite Attribute terdiri dari simple attribute. Sebagai contoh atribut address dapat merupakan sebuah atribut simple dan menyimpan semua detail dari sebuah alamat sebagai sebuah nilai tunggal, seperti, ‘115 Dumbarton Road, Glasgow, G116YG’. Namun, atribut address juga dapat merepresentasikan sebuah composite attribute, yang teridiri dari simple attribute yang menyimpan detail alamat sebagai nilai yang terpisah di dalam atribut street (‘115 Dumbarton Road’), city (‘Glasgow’),
dan
postcode
(‘G11
6YG’).
Pilihan
untuk
merepresentasikan detail alamat sebagai atribut simple atau composite ditentukan berdasarkan kebutuhan pemakai. Dalam langkah ini, penting untuk mengidentifikasikan semua simple attribute untuk direpresentsikan ke dalam model data konseptual termasuk atribut yang membentuk sebuah composite attribute. •
Atribut Single-valued atau multi-valued Sebuah atribut juga dapat merupakan single-valued atau multivalued. Sebagian besar atribut yang dijumpai merupakan single-valued, tapi kadang-kadang akan dijumpai atribut yang muli-valued; yaitu atribut yang menyimpannilai yang banyak untuk sebuah entitas tunggal yang ada.
29 Sebagai contoh, dapat diidentifikasikan atribut telNo (nomor telepon) dari entitas Client sebagai multi-valued attribute. •
Atribut Derived Atribut yang nilainya tergantung pada nilai dari atribut yang lain dinamakan derived attribute termasuk :
4.
o
Umur seorang anggota dari staf
o
Jumlah property yang dipimpin oleh seorang anggota dari staf
o
Rental deposit (dihitung sebagai dua kali biaya sewa perbulan)
Menentukan domain attribute Tujuannya untuk menetapkan domain atribut dalam model data konseptual lokal dan mendokumentasikan setiap detail dari domain. Domain merupakan sekumpulan (pool) nilai-nilai dari satu atau lebih atribut yang menggambarkan nilainya. Model data yang dibuat menspesifikasikan domain untuk tiap-tiap atribut dan menyertakan : •
Nilai yang diizinkan untuk atribut Misalnya untuk jenis kelamin hanya boleh memakai nilai P atau L
•
Ukuran dan format atribut Misalnya untuk Kdkaryawan digunakan char(5). Artinya untuk kode karyawan harus sebanyak 5 karakter. Perbedaan antara char dan varchar adalah Tipe data char adalah tipe data karakter yang panjangnya tetap (fixed-length). Ini artinya SQL Server akan mengalokasikan memori
30 pada media penyimpanan untuk menyimpan tipe data ini sebesar ukuran maksimum yang kita minta. Contohnya deklarasi char(5) artinya SQL Server akan otomatis melakukan alokasi ukuran sebesar lima character pada media penyimpanan walaupun kita hanya mengisi data sebanyak tiga karakter misalnya.Tipe data varchar adalah tipe data karakter yang panjangnya tidak tetap (variable-length). Ini berarti SQL Server akan mengalokasikan memori pada media penyimpanan hanya sebesar atau sepanjang ukuran data aktual yang diisikan. Contohnya pada saat kita mendeklarasikan varchar(5) dan pada field tersebut kita isi 3 karakter maka pada media penyimpanan hanya akan dialokasikan sebesar 3 karakter saja. ( http://tigakomplotan.blogspot.com/) 5.
Menentukan Primary key dan Candidate key Untuk mengidentifikasikan candidate key untuk setiap entitas dan jika terdapat lebih dari satu candidate key, maka pilih satu sebagai primary key. Ketika memilih sebuah primary key diantara candidate key, perhatikan petunjuk berikut untuk membantu pemilihan : •
Candidate key dengan sekumpulan atribut yang minimal
•
Candidate key yang nilainya paling jarang berubah
•
Candidate key dengan karakter yang paling sedikit
•
Candidate key dengan nilai maksimum yang paling kecil
•
Candidate key yang paling mudah digunakan dari sudut pandang pemakai
6.
Mempertimbangkan penggunaan dari Enchanced Modeling Concepts (pilihan)
31 Maksud dari langkah ini adalah untuk menentukan specialization, generalization, aggregation, composition. Specialization merupakan suatu proses memaksimalkan perbedaanperbdaan antara anggota-anggota sebuah entitas dengan cara mengidentifikasi karakteristik yang membedakan entitas tersebut (Connolly dan Begg, 2002, p362). Generalization merupakan suatu proses meminimalkan perbedaanperbedaan antara entitas-entitas dengan cara mengidentifikasi sifat umum entitas (Connolly dan Begg, 2002, p363). Aggregation menggambarkan relationship ‘has-a’ atau ‘is-part-of’ antara tipe entitas dimana yang satunya mewakili ‘whole’ (seluruhnya) dan yang satunya lagi mewakili ‘part’ (bagian) (Connolly dan Begg, 2002, p371). 7.
Memeriksa pengulangan (Redudancy) Dalam langkah ini kita menguji model data konseptual local dengan tujuan spesifik untuk mengidentifikasikan apakah ada redundancy dalam data dan memindahkan data yang telah ada. Dua aktifitas dalam langkah ini adalah :
8.
•
Menguji ulang relasi 1:1 (one-to-one)
•
Menghilangkan relasi yang redundan
Validasi Model Konseptual Lokal Terhadap Transaksi Pemakai Tujuannya untuk memastikan model konseptual lokal mendukung transaksi mendukung transaksi yang dibutuhkan oleh view. Diuji dua pendekatan untuk memastikan model data konseptual lokal mendukung transaksi yang dibutuhkan, dengan cara :
32 •
Menggambarkan transaksi-transaksi Memeriksa seluruh informasi (entitas, relasi, dan atribut) yang dibutuhkan oleh setiap transaksi telah disediakan oleh model, dengan mendokumentasikan setiap kebutuhan transaksi.
•
Menggunakan jalur-jalur transaksi Untuk validasi model data terhadap transaksi yang dibutuhkan termasuk representasi diagram jalur yang digunakan oleh setiap transaksi langsung pada ER diagram.
9.
Memeriksa Kembali Model Data Konseptual Lokal Dengan Pemakai Tujuannya untuk me-review model data konseptual lokal dengan pemakai untuk memastikan model tersebut adalah representasi sebenarnya dari view. Model data konseptual ini termasuk ER diagram dan dokumentasi pendukung yang mendeskripsikan model data. Bila ada kejanggalan (anomali) dalam model data, maka harus dibuat perubahan yang sesuai yang mungkin membutuhkan pengulangan langkah-langkah sebelumnya.
2.2.4.2 Perancangan Basisdata Logikal Perancangan basisdata logikal adalah proses membangun model informasi yang digunakan organisasi berdasarkan model data tertentu, tetapi tidak tergantung dari Database Management System (DBMS) dan pertimbangan fisik lainnya (Connolly dan Begg, 2002, p441). Langkah-langkah dalam metodologi perancangan basisdata logikal yaitu:
33 1.
Hilangkan fitur-fitur yang tidak sesuai dengan model relasional. Tujuan utamanya adalah untuk memperbaiki model data konseptual lokal untuk menghilangkan fitur yang tidak sesuai dengan model relasional. Tujuan dari langkah ini adalah menghilangkan :
2.
•
Menghilangkan many-to-many (*:*) binary relationship type
•
Menghilangkan many-to-many (*:*) recursive relationship type
•
Menghilangkan tipe relasi yang kompleks
•
Menghilangkan multi-valued attributes
Menghasilkan relasi untuk model data logikal lokal. Tujuan dari langkah ini adalah untuk membuat hubungan antara model data logikal untuk merepresentasikan entitas, relasi, atribut yang telah diidentifikasikan. Relasi yang dihasilkan dari kemungkinan struktur yang ada didalam data model yaitu : •
Tipe strong entity
•
Tipe weak entity
•
Tipe relasi biner one-to-many (1:*)
•
Tipe relasi biner one-to-one (1:1)
•
Relasi rekursif one-to-one (1:1)
•
Tipe relasi superclass/subclass
•
Tipe relasi biner many-to-many (*:*)
34
3.
•
Tipe relasi kompleks
•
Atribut multi-valued
Validasikan relasi dengan menggunakan normalisasi. Normalisasi adalah suatu teknik untuk menghasilkan himpunan relasi dengan property yang diinginkan berdasarkan kebutuhan-kebutuhan data suatu organisasi (Connolly dan Begg, 2002, p376). Proses normalisasi dimulai dengan memindahkan data sumber ke bentuk tabel dengan format baris dan kolom. Tabel ini berbentuk tidak normal dan disebut dengan unnormalized table (Connolly, 2002, p388). Unnormalized form (UNF) adalah suatu tabel yang terdiri dari satu atau lebih kelompok yang berulang (repeating group) (Connolly, 2002, p387). Repeating group adalah sebuah atribut atau himpunan atribut di dalam tabel yang memiliki lebih dari satu nilai (multiple valued) untuk sebuah primary key pada table tersebut (Connolly, 2002, p388). Tingkat normalisasi yang digunakan sebagai landasan penulisan skripsi ada tiga tahap yaitu : a.
First Normal Form (1NF) Suatu relasi dikatakan 1NF jika titik temu tiap baris dan kolom pada relasi tersebut mangandung satu dan hanya satu nilai (Connolly, 2002, p388).
35 Suatu relasi berada akan dalam bentuk 1NF jika repeating groupnya sudah hilang. Ada dua pendekatan untuk menghilangkan repeating group pada tabel yang tidak normal, yaitu : •
Dengan memasukkan data yang sesuai ke dalam kolom yang kosong dari baris yang mengandung data berulang.
•
Dengan menempatkan data yang berulang bersama salinan atribut kunci
pada
relasi
yang
terpisah.
Sebuah
primary
key
diidentifikasikan kedalam relasi yang baru.
b.
Second Normal Form (2NF) Relasi dikatakan 2NF jika relasi tersebut berada pada 1NF dan setiap atribut yang bukan primary key bergantung penuh (fully functionally dependent) terhadap primary key (Connolly, 2002, p392). Full functional dependency terjadi jika A dan B merupakan atribut dari suatu relasi, dan B dikatakan bergantung penuh terhadap A (A→B), jika B bergantung tehadap A, namun bukan subset dari A (Connolly, 2002, p391). Untuk menghasilkan relasi bentuk 2NF melibatkan penghilangan ketergantungan sebagian (partial dependency) dan menempatkan pada relasi yang baru bersama salinan atribut penentunya (determinant attribute).
c.
Thrid Normal Form (3NF)
36 Suatu relasi dikatakan 3NF jika relasi tersebut berada dalam bentuk 1NF dan 2NF, dan tidak ada atribut bukan primary key bergantung secara transitif (transitively dependent) terhadap primary key (Connolly, 2002, p394). Trancitive dependency adalah sebuah kondisi dimana A, B, dan C merupakan atribut dari relasi yang jika A→B dan B→C maka C disebut begantung secara transitif (transitively dependency) terhadap A melalui B (A tidak functionally dependent terhadap B dan C) (Connolly, 2002, p394).
4.
Validasikan relasi terhadap transaksi pemakai. Memastikan bahwa relasi yang telah dibuat memenuhi syarat untuk mendukung transaksi yang dibutuhkan. Dalam langkah ini akan dicoba operasi basisdata secara manual, bila semua transakasi yang dibutuhkan bisa berjalan semestinya, maka model data logikal terhadap transaksi telah divalidasi.
5.
Tentukan Integrity constraint. Integrity constraint adalah batasan yang ditentukan untuk menghindari data menjadi tidak konsisten. Integrity constraint yang umum adalah : •
Required data Beberapa atribut tertentu harus memiliki data, dengan kata lain tidak boleh kosong.
•
Attribute domain constraint
37 Setiap atribut memiliki domain, batasan nilai yang legal. Misalnya pada jenis kelamin harus diisi dengan ‘laki-laki’ atau ‘perempuan’. •
Entity integrity Primary key dari suatu entitas tidak boleh kosong.
•
Referential integrity Jika suatu foreign key memiliki nilai, maka nilai tersebut harus menunjuk ke sebuah baris yang ada pada relasi ‘parent’.
•
Enterprise integrity Kegiatan update entitas dibatasi oleh peraturan atau kebijakan organisasi yang mengatur transakasi yang diwakilkan oleh update yang dilakukan.
6.
Tinjau kembali model data logikal lokal dengan paemakai. Untuk memastikan logical data model dan dokumentasi pendukung yang menjelaskan model telah merepresentasikan kebutuhan. Langkah membuat dan memvalidasikan model data logikal global : •
Gabungkan model data logikal lokal menjadi model global.
•
Validasikan model data logikal global.
•
Perikasa untuk perkembangan mendatang.
•
Tinjau kembali model data logikal global dengan pemakai.
2.2.4.3 Perancangan Basisdata Fisikal Suatu proses yang menghasilakan deskripsi implementasi basisdata pada penyimpanan skunder. Menggambarkan struktur penyimpanan dan metode akses yang
38 digunakan untuk mencapai akses yang efisien terhadap data. Dapat dikatakan juga, desain fisikal merupakan cara pembuatan menuju sistem DBMS tertentu. •
•
Menerjemahkan model data logical global target DBMS : o
Desain hubungan dasar.
o
Desain representsi dari data yang dihasilkan.
o
Desain batasan-batasan perusahaan.
Mendesain representasi fisikal : o
Analisa transaksi-transaksi.
o
Pilih organisasi file.
o
Pilih indeks-indeks.
o
Perkirakan kebutuhan penyimpanan (disk space).
•
Mendesain user view.
•
Mempertimbangkan pengenalan dari redudansi terkontrol.
•
Awasi dan atur sistem oprasional.
2.2.5 Prototyping Membangun
suatu
model
kerja
dari
aplikasi
basisdata.
Tujuan
utama
mengembangkan suatu prototype aplikasi basisdata adalah mengijinkan pemakai untuk menggunakan prototype guna mengidentifikasi corak sistem apakah bekerja dengan baik jika mungkin meningkatkan corak baru pada aplikasi basisdata. Dengan cara ini kita dapat memperjelas kebutuhan pemakai dan pengembangan sistem dalam mengevaluasi kelayakan desain sistem tertentu. Prototype perlu mempunyai keuntungan yang utama yang secara relative cepat dan murah untuk dibangun.
39 Ada dua strategi yang digunakan saat ini yaitu Requirenment Prototyping dan Evolutionary Prototyping. Requirenment Prototyping digunakan untuk menentukan kebutuhan suatu aplikasi basisdata yang diusulkan dan ketika kebutuhan terhadap suatu aplikasi basisdata tidak lengkap, maka prototype tersebut tidak digunakan lagi. Evolutionary Prototyping digunakan utnuk tujuan yang sama, perbedaan yang penting adalah bahwa prototype tidak dibung tetapi dengan pengembangan lebih lanjut, prototype tersebut bekerja sama dengan aplikasi basisdata.
2.2.6 Implementasi Implementasi adalah realistik fisik dari desain basisdata dan desain aplikasi. Dalam penyelesaian tahap desain (yang mungkin melibatkan prototype), kita sekarang berada di posisi untuk menerapkan basisdata dan program aplikasi. Penerapan basisdata dicapai dengan menggunakan Data Definition Language (DDL) dari DBMS yang dipilih atau Graphic User Interface (GUI). Implementasi basisdata menggunakan : •
DDL untuk membuat skema basisdata dan file basisdata baru yang kosong.
•
DDL untuk membuat user view yang diinginkan.
2.2.7 Konversi Data dan Loading Konversi Data dan Loading adalah mentransfer setiap data yang ada kedalam basisdata baru dan mengubah setiap aplikasi yang ada untuk dijalankan pada basisdata baru. Tahapan ini hanya diperlukan ketika sistem database baru menggantikan sistem lama. Saat ini adalah umum bagi sebuah DBMS untuk memiliki utility untuk membuat file yang
40 ada ke dalam basisdata baru. Tools ini biasanya memerlukan spesifikasi dari file sumber dan basisdata tujuan, kemudian secara otomatis mengubah kedalam format yang dibutuhkan oleh file basisdata baru.
2.2.8 Testing Suatu proses untuk mengetes aplikasi terhadap errors dan validasi terhadap kebutuhan yang dispesifikasi oleh user. Mendemostrasikan, mangecek basisdata dan program aplikasi agar berjalan seperti yang diharapkan.
2.2.9 Operational dan Maintenance Pengimplementasian basisdata dan aplikasi secara penuh. Sistem akan dimonitor dan dipelihara secara berkala. Proses monitoring berlanjut kedalam keseluruhan hidup aplikasi basisdata dan pada waktunya mungkin reorganisasi basisdata untuk memenuhi kebutuhan yang berubah.
2.3 Entity-Relationship Modelling (E-R Modeling) Model Entity-Relationship merupakan salah satu model yang dapat memastikan pemahaman yang tepat terhadap data dan bagaimana penggunaannya di dalam suatu organisasi (Connolly, 2002, p330). Model ini dimulai dengan identifikasi entitas dan relationship antar data yang harus direpresentasikan di dalam model, dan kemudian ditambahkan atribut dan setiap constraint pada entitas, relationship, dan atributnya. 2.3.1 Konsep Dasar Model E-R Beberapa konsep dasar dalam model E-R, yaitu :
41 •
Tipe Entitas Tipe entitas adalah sekumpulan objek yang memiliki properti yang sama, yang diidentifikasikan di dalam organisasi karena keberadaannya yang bebas (independent existence) (Connolly, 2002, p331). Sedangkan entity occurrence adalah sebuah objek dari satu tipe entitas yang dapat diidentifikasi secara unik (Connolly, 2002, p333). Keberadaan objek-objeknya secara fisik/nyata (physical existence), secara entitas Pegawai, Rumah, dan Pelanggan, atau secara konseptual/abstrak (conceptual existence), seperti entitas Inspeksi, Penjualan, dan Peninjauan. Setiap tipe entitas dilambangkan dengan sebuah persegi panjang yang diberi nama sesuai entitas tersebut. Nama tipe entitas biasanya adalah kata benda tunggal. Huruf pertama dari setiap kata pada nama tipe entitas ditulis dengan huruf besar. Representasi diagram tipe entitas terlihat pada gambar 2.2.
Gambar 2.2 Representasi diagram dari tipe entitas Pegawai dan Cabang (Connolly, 2002, p333)
Tipe entitas dapat diklasifikasikan menjadi : o
Tipe Entitas Kuat, yaitu tipe entitas yang keberadaannya tidak bergantung pada tipe entitas lainnya (Connolly, 2002, p342).
o
Tipe Entitas Lemah, yaitu tipe entitas yang keberadaannya bergantung pada tipe entitas lainnya (Connolly, 2002, p342).
42
Gambar 2.3 Representasi diagram tipe entitas kuat dan tipe entitas lemah (Connolly, 2002, p342)
•
Tipe Relationship Tipe relationship adalah sekumpulan hubungan antar tipe entitas yang memiliki arti (Connolly, 2002, p334). Sedangkan relationship occurrence adalah sebuah hubungan yang dapat diidentifikasikan secara unik, yang meliputi sebuah kejadian (occurrence) dari setiap tipe entitas di dalam relationship (Connolly, 2002, p334). Tipe relationship digambarkan dengan sebuah garis yang menghubungkan tipe-tipe entitas yang saling berhubungan. Garis tersebut diberi nama sesuai dengan nama hubungannya dan diberi tanda panah saru arah disamping nama hubungannya. Biasanya sebuah relationship dinamakan dengan menggunakan kata kerja, seperti mengatur, atau dengan sebuah fase singkat yang meliputi kata kerja, seperti DisewaOleh. Sedangkan tanda panah ditempatkan disamping nama relationship yang mengidentifikasikan arah bagi para pembaca untuk mengartikan nama dari suatu relationship. Huruf pertama dari setiap kata pada nama relationship ditulis dengan
43 huruf besar. Representasi diagram dari suatu tipe relationship terlihat pada gambar 2.4.
Gambar 2.4 Representasi diagram dari tipe relationship(Connolly, 2002, p335)
o
Derajat dari Tipe Relationship Derajat dari tipe relationship adalah jumlah tipe entitas yang ikut serta dalam sebuah relationship (Connolly, 2002, p335). Complex relationship type adalah sebuah relationship antara tiga atau lebih tipe entitas (Connolly, 2002, p445). Sebuah relationship yang memiliki derajat dua dinamakan binery (Connolly, 2002, p336). Gambar 2.4 juga merepresentasikan diagram relationship derajat dua. Sedangkan sebuah relationship derajat tiga dinamakan ternary, dan jika sebuah relationship memiliki derajat empat dinamakan quarternary (Connolly, 2002, p336). Lambang belah ketupat merepresentasikan relationship yang dimiliki derajat lebih dari dua. Namun dari relationship tersebut ditampilkan di dalam lambang belah ketupat. Panah yang biasanya terdapat disamping nama suatu relationship dihilangkan. Representasi diagram derajat tiga dari suatu tipe relationship terlihat pada gambar 2.5.
44
‘Pegawai mendaftarkan seorang klien pada sebuah cabang’ Gambar 2.5 Representasi diagram derajat tiga dari suatu tipe relationship (Connolly, 2002, p336).
o
Recursive Relationship Recursive relationship adalah sebuah tipe relationship dimana tipe entitas yang sama ikut serta lebih dari sekali pada peran yang berbeda (Connolly, 2002, p337). Relationship dapat diberikan nama peran untuk menentukan fungsi dari setiap entitas yang terlibat dalam relationship tersebut. Representasi diagram recursive relationship beserta nama perannya terlihat pada gambar 2.6.
Gambar 2.6 Representasi diagram recursive relationship dan nama peran (Connolly, 2002, p337)
45 Nama peran juga dapat digunakan jika dua buah entitas dihubungkan melalui lebih dari satu relationship. Representasi diagram nama peran yang digunakan pada dua buah entitas terlihat pada gambar 2.7.
Gambar 2.7 Representasi diagram entitas dengan dua relationship berbeda beserta nama peran (Connolly, 2002, p338)
o
Atribut Atribut adalah property sebuah entitas atau relationship (Connolly, 2002, p338). Menurut Jeffery L. Whitten (2004, p295), atribut merupakan properti deskriptif atau karakteristik dari sebuah entitas. Atribut menampung nilai yang menjelaskan setiap entity occurrence dan menggambarkan bagian utama dari data yang disimpan di dalam basisdata. Atribut domain adalah sekumpulan nilai yang dibolehkan bagi satu atau lebih atribut (Connolly, 2002, p338). Atribut dapat diklasifikasikan menjadi : Simple attribute adalah atribut yang terdiri dari komponen tunggal dengan keberadaannya yang bebas (Connolly, 2002, p339).
46 •
Composit attribute adalah atribut yang terdiri dari beberapa komponen, dan keberadaan setiap komponen tersebut bebas (Connolly, 2002, p339).
•
Single-valued attribute adalah atribut yang hanya memiliki sebuah nilai untuk setiap occurrence dari sebuah entitas (Connolly, 2002, p339).
•
Multi-valued attribute adalah sebuah atribut yang memiliki banyak nilai untuk setiap occurrence dari sebuah tipe entitas (Connolly, 2002, p340).
•
Derived attribute adalah atribut yang merepresentasikan sebuah nilai yang diturunkan dari atribut lain yang berhubungan atau kumpulan dari atribut (Connolly, 2002, p339).
2.3.2 Keys Candidate key adalah himpunan atribut yang minimal yang secara unik mengidentifikasikan setiap occurrence dari sebuah tipe entitas (Connolly, 2002, p340). Composite key adalah sebuah candidate key yang terdiri atas dua atau lebih atribut (Connolly, 2002, p341). Primary key adalah candidate key yang terpilih untuk mengidentifikasi secara unik setiap occurrence dari sebuah tipe entitas (Connolly, 2002, p341). Pada sebuah tipe entitas biasanya terdapat lebih dari satu candidate key yang salah satunya harus dipilih untuk menjadi primary key. Pemilihan primary key didasarkan pada panjang atribut, jumlah minimal atribut yang diperlukan, dan keunikannya. Alternatee key adalah setiap candidate key yang tidak terpilih menjadi primary key, atau biasa disebut dengan secondary key (Whitten, 2004, p298).
47 Foreign key adalah sebuah primary key pada sebuah entitas yang digunakan pada entitas lainnya untuk mengidentifikasi sebuah relationship (Whitten, 2004, p301).
Gambar 2.8 Representasi diagram entitas Pegawai dan Cabang beserta atribut dan primary key-nya (Connolly, 2002, p342).
2.3.3 Batasan Struktural (Structural Constraints) Batasan-batasan yang menggambarkan pembatasan pada relationship seperti yang ada pada ‘real world’ harus diterapkan pada tipe entitas yang ikut serta pada sebuah relationship. Jenis utama dari batasan pada suatu relationship dinamakan multiplicity (Connolly, 2002, p344). Multiplicity adalah jumlah occurrence yang mungkin terjadi pada sebuah tipe entitas yang berhubungan ke sebuah occurrence dari tipe entitas lain pada suatu relationship (Connolly, 2002, p344).
48 Derajat yang biasanya digunakan pada suatu relationship adalah binary relationship, yang terdiri atas : •
One-to-one (1:1) Relationship Setiap relationship menggambarkan hubungan antara sebuah entity occurrence pada entitas yang satu dengan sebuah entity occurrence pada entitas lainnya yang ikut serta dalam relationship tersebut.
Gambar 2.9 Semantic net menunjukkan dua occurrence dari relationship Pegawai Mengatur Cabang (Connolly, 2002, p345)
Gambar 2.10 Multiplicity dari relationship one-to-one (1:1) (Connolly, 2002, p346)
49 •
One-to-many (1:*) Relationship Setiap relationship menggambarkan hubungan antara sebuah entity occurrence pada entitas yang satu dengan satu atau lebih entity occurrence pada entitas lainnya yang ikut serta dalam relationship tersebut.
Gambar 2.11 Semantic net menunjukan tiga occurrence dari relationship Pegawai Melihat RumahSewa (Connolly, 2002, p346)
Gambar 2.12 Multiplicity dari relationship one-to-many (1:*) (Connolly, 2002, p347)
50 •
Many-to-many (*:*) Relationship Setiap relationship menggambarkan hubungan antara satu atau lebih entity occurrence pada entitas yang satu dengan satu atau lebih entity occurrence pada entitas lainnya yang ikut serta dalam relationship tersebut.
Gambar 2.13 Semantic net menunjukan empat occurrence dari relationship Koran Mengiklankan RumahSewa (Connolly, 2002, p348)
Gambar 2.14 Multiplicity dari relationship many-to-many (*:*) (Connolly, 2002, p348)
51 2.3.4 Cardinality dan Participation Constraints Multiplicity sebenarnya terdiri atas dua constraint yang berbeda, yaitu : •
Cardinality Cardinality adalah nilai maksimum dari relationship occurrence yang mungkin terjadi untuk sebuah entitas yang ikut serta pada suatu relationship (Connolly, 2002, p351).
•
Participation Participation menentukan apakah semua atau hanya beberapa entity occurrence yang ikut serta dalam sebuah relationship (Connolly, 2002, p351). Participation constraint dibagi menjadi : o
Mandatory participation Mandatory participation melibatkan semua entity occurrence pada relationship tertentu (Connolly, 2002, p351).
o
Optional participation Optional participation melibatkan beberapa entity occurrence pada relationship tertentu (Connolly, 2002, p351). Representasi diagram terhadap multiplicity sebagai cardinality dan participation constraints dapat dilihat pada gambar 2.15.
52
Gambar 2.15 Multiplicity sebagai cardinality dan participation constraints pada relationship one-to-one (1*1) Pegawai Mengatur Cabang (Connolly, 2002, p351)
2.4 Interaksi Manusia Dan Komputer Pengertian Interaksi Manusia dengan Komputer : Menurut Wikipedia(2009), pengertian interaksi manusia dan komputer adalah disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna komputer agar mudah digunakan oleh manusia..
53 2.5 Pembelian, Penjualan, dan Persediaan 2.5.1 Pembelian Pembelian adalah proses penemuan sumber dan pemesanan bahan, jasa, dan perlengkapan. Kegiatan tersebut terkadang disebut Pengadaan barang. Tujuan utamanya adalah memperoleh bahan dengan biaya serendah mungkin yang konsisten dengan kualitas dan jasa yang dipersyaratkan. Terlepas dari memastikan bahwa perusahaan mempunyai persediaan bahan tanpa henti, adalah fungsi dari pembelian untuk memastikan bahwa ada keseimbangan antara persediaan bahan dengan tingkat inventaris sehingga perusahaan dapat mempertahankan posisi labanya sepanjang menyangkut biaya bahan. Prosedur pembelian dibahas di bawah: • Tanda terima dan analisis Daftar Permintaan Pembelian (Purchase Requisition - PR) Bagian pembelian menerima dan menganalisis kebutuhan bahan atau persediaan dari bagian yang mengajukan permintaan. Permintaan seperti itu ditemukan pada formulir Daftar Permintaan Pembelian memuat perincian permintaan seperti kuantitas dan spesifikasi produk. •
Pemilihan sumber persediaan yang potensial Jika bahan atau persediaan yang sedang dimintakan bukan barang yang baru, maka karyawan pembelian akan memeriksa file atau catatan mereka tentang semua pemasok berkenaan dengan permintaan seperti itu, kalau tidak, mereka perlu memeriksa halaman kuning atau internet atau beberapa kemungkinan sumber lain untuk mencari pemasok baru.
54 •
Pengajuan Permintaan Penawaran Harga Jika tidak ada pemasok tetap untuk bahan atau persediaan yang sedang diminta dan tidak ada hasrat untuk mencari pemasok baru, maka pemasok yang ada akan dihubungi. Namun demikian, pemasok baru atau potensial akan diminta untuk mengirimkan penawaran harga untuk keperluan evaluasi oleh bagian pembelian.
•
Pemilihan Sumber yang Tepat Begitu penawaran harga diterima, para pemasok kemudian akan dievaluasi. Kriteria evaluasi
mencakup
sebagai
berikut:
Penawaran
harga,Spesifikasi,
Kemampuan
pengiriman, Sifat bisa dipercaya dan diandalkan pemasok, Reputasi pemasok, Kemungkinan potongan partai besar, Kemungkinan menjalin hubungan jangka panjang dengan pemasok.Pemilihan pemasok yang layak bergantung kepada jenis barang dan pentingnya barang yang sedang diusahakan. •
PenetapanHarga yang Tepat Begitu pemasok terpilih, maka kedua pihak perlu menyepakati harga yang tepat. Negosiasi harga atau potongan harga partai besar dan pengaturan lainnya dapat terjadi pada langkah ini.
•
Pengeluaran Pesanan Pembelian ( Purchase Order - PO ) Begitu harga telah disepakati dan disetujui, maka Pesanan Pembelian akan dikeluarkan kepada pemasok menegaskan perincian yang disajikan pada foormulir Permintaan Pembelian. Bagian pembelian berfungsi menindaklanjuti pemasok tidak hanya untuk
55 pemenuhan is Pesanan Pembelian tetapi juga untuk pelaksanaan jadwal pengiriman yang telah disepakati. •
Analisis Laporan Penerimaan dan Persetujuan Faktur Penjaja/Vendor bagi pembayaran Sebelum pembayaran dari faktur vendor disetujui, maka Bagian Pembelian bertanggung jawab melalui Bagian Penerimaannya untuk mengevaluasi muatan pengiriman sebagaimana disajikan pada Laporan Penerimaan untuk dicocokkan dengan Pesanan Pembelian (PO) dan Daftar Permintaan Pembelian (PR). Pengambilan contoh secara acak dari barang-barang bisa dilakukan untuk menentukan kejujuran muatan yang dilaporkan dalam Laporan Penerimaan. Pemantauan kualitas yang ketat adalah hal yang penting pada tahap ini. ( http://indonesia.smetoolkit.org). Retur pembelian adalah adanya pengembalian barang dagang atau barang lain yang sudah dibeli karena rusak. Sedangkan pengurangan harga adalah potongan yang diberikan kepada langganan. Biasanya kedua transaksi ini dicatat dalam satu akun yang diberi nama pembelian retur dan potongan harga. Adanya pengembalian barang atau adanya pengurangan harga dinyatakan dengan Nota Kredit(www.e-dukasi.net). Informasi yang diperlukan oleh manajemen dari sistem pembelian adalah: 1. Jenis persediaan yang telah mencapai titik pemesanan kembali 2. Order pembelian yang telah dikirim ke pemasok 3. Order pembelian yang dipenuhi pemasok 4. Total saldo utang dagang pada tanggal tertentu
56 5. Saldo utang dagang kepada pemasok tertentu 6. Tambahan kuantitas dan harga pokok persediaan dan pembelian
Fungsi yang terkait dalam sistem pembelian adalah sebagai berikut : a. Fungsi gudang Bertanggung jawab untuk mengajukan permintaan pembelian sesuai dengan posisi persediaan yang ada di gudang. b. Fungsi pembelian Bertanggung jawab untuk mengeluarkan order pembelian pada pemasok. c. Fungsi penerimaan Bertanggung jawab menerima barang yang dikirim dari pemasok dan melakukan pemeriksaan guna menentukan layak tidaknya barang untuk diterima. d. Fungsi akuntansi Fungsi yang terkait dalam hal ini adalah fungsi pencatat utang dan fungsi pencatat persediaan.
2.5.2 Penjualan Penjualan adalah suatu usaha yang terpadu untuk mengembangkan rencana-rencana strategis yang diarahkan pada usaha pemuasan kebutuhan dan keinginan pemebeli, guna mendapatkan penjualan yang menghasilkan laba . Penjualan merupakan sumber hidup suatu perusahaan, karena dari penjualan dapat diperoleh laba serta suatu usaha memikat konsumen yang diusahakan untuk mengetahui daya tarik mereka sehingga dapat
57 mengetahui hasil produk yang dihasikan.Penjualan adalah suatu transfer hak atas bendabenda. Dari penjelasan tersebut dalam memindahkan atau mentransfer barang dan jasa diperlukan orang-orang yang bekerja dibidang penjualan seperti pelaksnaan dagang, agen, wakil pelayanan dan wakil pemasaran . Adapun faktor-faktor yang mempengaruhi volume penjualan antara lain: •
Kualitas barang. Turunnya mutu barang dapat mempengaruhi volume penjualan, jika barang yang diperdagangkan mutunya menurun dapat menyebabkan pembelinya yang sudah menjadi pelanggan dapat merasakan kecewa sehingga mereka bisa berpaling kepada barang lain yang mutunya lebih baik.
•
Selera konsumen. Selera konsumen tidaklah tetap dan dia dapat berubah setiap saat, bilamana selera konsumen terhadap barang-barang yang kita perjualkan berubah maka volume penjualan akan menurun.
•
Servis terhadap pelanggan merupakan faktor penting dalam usaha memperlancar penjualan terhadap usaha dimana tingkat persaingan semakin tajam. Dengan adanya servis yang baik terhadap para pelanggan sehingga dapat meningkatkan volume penjualan.
58 •
Persaingan menurunkan harga jual. Potongan harga dapat diberikan dengan tujuan agar penjualan dan keuntungan perasahaan dapat ditingkatkan dari sebelumnya. Potongan harga tersebut dapat diberikan kepada pihak tertentu dengan syarat-syarat tertentu pula. Retur penjualan adalah barang yang dikembalikan setelah perusahaan melakukan penjualan. Jika persentasenya terhadap penjualan meningkat, maka hal tersebut merupakan sinyalemen bahwa terdapat kualitas produk yang buruk atau ketidakpuasan pelanggan. Jika masalah kualitas ini terus terjadi, maka Anda tidak hanya kehilangan penjualan saat ini, melainkan
juga
berpotensi
kehilangan
penjualan
di
masa
depan
(www.managementfile.com). Fungsi yang terkait dengan sistem penjualan adalah : 1. Fungsi penjualan Bertanggung jawab untuk menerima order, mengedit order, meminta otorisasi kredit, menentukan tanggal pengiriman, dan bertanggung jawab atas transaksi penjualan. 2. Fungsi gudang Bertanggung jawab untuk menyimpan dan menyiapkan barang yang akan dipesan dan mengirimkan ke bagian pengiriman. 3. Fungsi pengiriman Bertanggung jawab untuk menyerahkan barang ke pelanggan berdasarkan surat order pengiriman yang diterima dari bagian penjualan.
59 4. Fungsi penagihan Bertanggung jawab untuk membuat dan mengirimkan faktur penjualan kepada pelanggan, serta menyediakan copy faktur bagi kepentingan pencatatan transaksi penjualan. 2.5.3 Persediaan Persediaan adalah bahan atau barang yang disimpan untuk digunakan memenuhi tujuan tertentu. Persediaan dapat berbentuk bahan mentah, bahan penolong, barang dalam proses maupun barang jadi. Sebagai salah satu asset penting perusahaan pengelolaan persediaan pun memperoleh perhatian dari manajemen. Tanpa persediaan sama sekali adalah tidak baik dan persediaan banyak sekali juga itu tidak baik. Mengapa tidak baik? Jaabannya tidak lain biaya persediaan. Unsur biaya yang terdapat dalam perseiaan diklasifikasikan menjadi tiga. Pertama, biaya pemesanan. Yang kedua, biaya penyimpanan. Dan yang ketiga, biaya kekurangan persediaan. Biaya pemesanan dikeluarkan terkait aktifitas pemesanan bahan atau barang sejak dari penempatan pemesanan sampai tersedia di gudang. Dalam kegiatan produyksi biaya pemesanan ini disebut set up costs atau biaya untuk menyiapkan mesin-mesin proses manufaktur dari suatu rencana produksi. Selain biaya pemesanan dalam persediaan pun terkandung biaya penyimpanan. Yang termasuk dalam biaya penyimpanan diantaranya sewa gudang, biaya administrasi pergudangan, gaji pelaksana pergudangan, biaya listrik. Biaya penyimpanan dalam keberadaannya dapat sebagai persentase dari mean per tahun maupun rupiah per tahun per unit barang. Sedangkan biaya kekurangan persediaan ini timbul sebagai akibat tidak adanya persediaan pada waktu diperlukan. Biaya kekurangan persediaan ini bukan biaya riil melainkan suatu kehilangan kesempatan termasuk di dalamnya karena proses produksi terhenti dari sebab
60 tidak ada persediaan dalam proses, biaya administrasi tambahan, tertundanya permintaan, bahkan pelanggan yang kabur. Biaya pemesanan, biaya penyimpanan, biaya kekurangan persediaan terkandung di dalam persediaan.
Metode Pencatatan Persediaan 1. Metode Fisik Metode fisik adalah metode penghitungan secara langsung (stock opname) jika ingin mengetahui persediaan akhir. Setelah persediaan barang yang ada di gudang dihitung baru bisa diketahui persediaan akhirnya. Dari persediaan ini kemudian diperhitungkan harga pokoknya. Kelemahan metode fisik adalah jika ingin menyusun laporan keuangan dalam jangka pendek maka penghitungan persediaan ini akan memakan waktu yang lama. Mutasi keluar masuk persediaan tidak diketahui jadi kemungkinan ada penyimpangan persediaan tidak diketahui.
2. Metode Buku (Perpetual) Dalam metode buku setiap jenis persediaan dibuatkan rekening sendiri-sendiri. Setiap terjadi masuk dan keluar barang dicatat pada buku sehingga dengan cepat dapat diketahui persediaan akhir. Kelebihan metode buku adalah adanya kontrol terhadap persediaan barang, misalnya pada akhir tahun dilakukan stock opname jika catatan pada buku tidak sama dengan fisik yang sebenarnya maka ada kesalahan. Mungkin ada barang yang hilang atau ada kesalahan dalam pencatatan pada buku(khoirul.sidimpuan.net).
61 Berdasarkan jenisnya, persediaan dibedakan atas: a. Persediaan bahan mentah Persediaan bahan-bahan mentah yang digunakan dalam proses manufaktur. b. Persediaan barang dalam proses Persediaan barang-barang yang telah melalui beberapa tahap pada proses manufaktur, tapi masih perlu diolah lagi. c. Persediaan barang jadi Persediaan barang-barang yang telah selesai diproses dan siap untuk dijual.