7 BAB 2 LANDASAN TEORI 2.1 Teori Umum Berikut ini disertakan teori-teori umum yang digunakan dalam penulisan skripsi ini. 2.1.1 Data Menurut Connolly dan Begg (2005, p20), data merupakan jembatan yang menghubungkan komponen mesin dengan komponen manusia. Menurut sifatnya data terbagi atas dua bagian, yaitu: a. Data Kualitatif Data kualitatif adalah data yang dikategorikan menurut gambaran kualitas objek yang dipelajari. Misalnya kuesioner pertanyaan tentang suasana kerja, kualitas pelayanan sebuah tempat makan atau gaya kepemimpinan. b. Data Kuantitatif Data kuantitaif adalah data yang memiliki harga yang berubah-ubah atau bersifat variable. Misalnya harga saham, besarnya pendapatan. 8 Menurut sumbernya data terbagi atas: a. Data Intern Data intern adalah data yang diperoleh atau bersumber dari alam suatu instansi (lembaga atau organisasi). b. Data Ekstern Data ekstern adalah data yang diperoleh atau bersumber dari luar instansi atau instansi yang lain. Data ekstern terbagi lagi atas 2 bagian yaitu: 1. Data Primer Data primer adalah data yang langsung dikumpulkan oleh orang yang berkepentingan atau yang menggunakan data tersebut. Data yang diperoleh seperti hasil wawancara yang biasa dilakukan peneliti. Dalam metode pengumpulan data primer, peneliti / observer melakukan sendiri penelitian / observasi di lapangan. Pelaksanaannya dapat berupa survey atau percobaan (eksperimen). 2. Data Sekunder Data sekunder adalah data yang tidak secara langsung dikumpulkan oleh orang yang berkepentingan dengan data tersebut. Data sekunder pada umumnya digunakan oleh peneliti untuk memberikan gambaran tambahan, gambaran pelengkap atau diperoses lebih 9 lanjut. Data sekunder didapat dari hasil penelitian lembaga / instansi seperti BPS, media massa, lembaga pemerintahan atau swasta dan sebagainya. Yang menjadi perhatian dalam penggunaan data sekunder adalah sumber data, batasan konsep yang digunakan, serta tingkat ketelitian dalam pengumpulan data. Sedangkan menurut jenisnya data dapat dibagi menjadi dua bagian yaitu: a. Data Kontinu Data kontinu adalah data yang diperoleh dari hasil pengukuran. b. Data Diskrit Data diskrit merupakan data yang diperoleh dari hasil perhitungan. 2.1.2 Basis Data Menurut Connolly dan Begg (2005, p15), basis data adalah sekumpulan data yang saling berhubungan antara satu dengan lainnya secara logikal dan suatu deksripsi data yang dirancang untuk memenuhi kebutuhan informasi suatau perusahaan atau organisasi. 2.1.3Database Management System (DBMS) Menurut Connolly dan Begg (2005, p16), Database Management System (DBMS) adalah suatu sistem piranti lunak yang memungkinkan user untuk mendefinisikan, membuat, merawat, dan mengontrol akses ke dalam basis data. 10 Fasilitas yang disediakanoleh DBMS adalah: a. Data Definition Language(DDL) Menurut Connolly dan Begg (2005, p40), Data Definition Language (DDL) adalah bahasa pemrograman yang mengijinkan Database Administrator (DBA) atau user untuk menggambarkan nama dari entitas, atribut, serta hubungan-hubungan yang diperlukan pada aplikasi, bersamaan dengan asosiasi integritas dan keamanan data. b. Data Manipulation Language (DML) Menurut Connolly dan Begg (2005, p40), Data Manipulation Language (DML) adalah bahasa pemrograman yang menyediakan fasilitas untuk menyokong operasi manipulasi basis data yang disimpan dalam basis data. Adapun operasi manipulasi basis data meliputi: 1. Penginputan data baru kedalam basis data. 2. Modifikasi data baru yang disimpan didalam basis data. 3. Pengambilan data simpanan dari basis data. 4. Penghapusan data yang ada didalam basis data. DML memungkinkan penggunanya memasukkan, memperbaharui, menghapus, mengirim dan mengambil data dari basis data. Contohnya insert, update, delete dan select. 11 Komponen DBMS dibagi menjadi lima jenis menurut Connolly dan Begg (2005, p18-21) yaitu: a. Hardware Dalam menjalankan DBMS dan aplikasi, hardware merupakan komponen yang paling penting yang berupa komputer, mainframe atau server. b. Software Dalam menjalankan DBMS, software merupakan program penggerak atau aplikasi yang akan dijalankan. c. Data Merupakan komponen terpenting dalam DBMS karena data merupakan penghubung komputer dengan manusia. d. Procedures Merupakan instruksi dan aturan yang menentukan perancangan dan penggunaan basis data dimana pengguna sistem dan pengolahan basis data memerlukan dokumentasi untuk menjalankan dan menggunakan sistem. e. People Merupakan komponen terakhir yang juga berperan penting dalam merancang sampai dengan menggunakan DBMS tersebut. 12 DBMS memiliki keuntungan sebagai berikut: a. Mengurangi Pengulangan Data Pengulangan data terjadi disebabkan oleh data yang tersimpan terpisah pada setiap aplikasi komputer. Pada DBMS duplikasi data dibatasi hanya pada field yang memerlukan penggabungan dua table. b. Mencapai Independensi Data Spesifikasi data disimpan dan dipelihara dalam basis data itu sendiri. Perubahan dapat dibuat pada struktur data tanpa mempengaruhi program-program aplikasi untuk mengakses data. c. Mengintegrasikan Data dan Informasi Secara Cepat Hubungan logis antar data dan SQL memungkinkan pengguna mengambil data dalam hitungan detik atau menit. DBMS menyediakan sarana khusus untuk mengakses data yaitu SQL. d. Meningkatkan Keamanan DBMS dapat menerapkan beberapa lapis keamanan seperti penggunaan kata sandi, pengaturan hak akses dan enkripsi. Sedangkan kerugian DBMS adalah sebagai berikut: a. Membutuhkan perangkat lunak yang mahal. b. Membutuhkan perangkat keras dalam jumlah yang besar. c. Perlunya menyewa atau memperkerjakan Database Administrator (DBA). 13 2.1.4 Database Design Gambar 2.1 Tahapan Database System Development Lifecycle Menurut Connolly dan Begg (2005, p.320), perancangan basis data merupakan proses pembuatan suatu desain untuk sebuah basis data yang akan mendukung operasional dan sasaran suatu perusahaan. Terdapat 11 tahap dalam merancang basis data : 14 1. Database Planning Menurut Connoly dan Begg (2005, p.285), Database planning merupakan kegiatan pengelolaan yang memungkinkan tahapan dari siklus hidup sistem pengembangan basis data untuk dapat direalisasikan dengan se-efisien dan se-efektif mungkin. Pada tahapan inilah ditentukannya bagaimana metode pengumpulan datanya, bagimana format yang dibutuhkan, dokumen penting apa saja yang dibutuhkan, bagaimana desain dan implementasi yang akan dijalankan. 2. System Definition Menurut Connoly dan Begg (2005, p.286), System Definition merupakan tahapan untuk menentukan ruang lingkup dan batasanbatasan dari sistem basis data yang akan dibuat dan juga user view nya. User view didefinisikan sebagai kebutuhan database dilihat dari perspektif : • Aturan kerja secara umum (seperti manager atau supervisor). • Daerah penerapan perusahaan (seperti marketing, personnel, atau stock control). Dengan dilakukannya identifikasi user view, dapat membantu menjamin tidak ada kebutuhan yang dilupakan saat pengembangan sistem database. 15 3. Requirements Collection and Analysis Menurut Connoly dan Begg (2005, p.288), Requirements Collection and Analysis merupakan tahapan untuk mengumpulkan dan menganalisa infromasi mengenai bagian – bagian dari perusahaan yang di-support oleh sistem basis data dan menggunakan informasi ini untuk mengidentifikasikan kebutuhan – kebutuhan untuk sistem yang baru. Metode yang dilakukan untuk mengumpulkan informasi tersebut adalah dengan menggunakan teknik pencarian fakta (Fact-Finding Techniques). Informasi dikumpulkan untuk setiap user view yang ada, termasuk : • Deskripsi dari data yang dipakai atau dihasilkan. • Rincian bagaimana data tersebut akan dipakai atau dihasilkan. • Segala kebutuhan tambahan untuk sistem database yang baru. Kegiatan penting lainnya selain pengumpulan informasi adalah bagaimana cara untuk mengatasi situasi yang dimana terdapat lebih dari satu user view untuk sistem basis data. Terdapat 3 pendekatan utama untuk mengelola kebutuhan sistem basis data dengan multiple user views (user view lebih dari satu), yaitu : 16 1) Centralized Approach Kebutuhan untuk setiap user view digabungkan menjadi satu set kebutuhan untuk sistem basis data yang baru. Model data yang mengawali semua user views dibuat pada tahap desain basis data. 2) View Integration Approach Kebutuhan untuk setiap user view tetap terpisah.Model data yang mengawali setiap user view dibuat dan digabungkan nanti pada tahap desain basis data. 4. Database Design Menurut Connoly dan Begg (2005, p.291), Database Design adalah proses pembuatan suatu rancangan untuk sistem basis data yang akan mendukung kegiatan operasional dan tujuan dari perusahaan. Ada 2 pendekatan untuk merancang sebuah basis data, yaitu: • Pendekatan bottom-up Dimulai pada tingkat awal dari atribut (yaitu properti dari entity dan relationship) yang mana melalui analisis dari asosiasi antar atribut, dikelompokkan menjadi hubungan yang merepresentasikan jenis – jenis entity dan hubungan antar entity. Pendekatan ini cocok 17 untuk merancang basis data yang sederhana dengan jumlah atribut yang tidak banyak. • Pendekatan top-down Digunakan pada basis data yang lebih kompleks, yang dimulai dengan pengembangan dari model data yang mengandung beberapa entitas dan hubungan tingkat tinggi dan kemudian memakai perbaikan top-down berturut-turut untuk mengidentifikasi entitas, hubungan dan atribut berkaitan tingkat rendah. Pendekatan ini biasanya digambarkan melalu ER (Entity Relationship). Perancangan basis data terbagi ke dalam tiga komponen yang meliputi Conceptual Database Design, Logical Database Design, Physical Database Design. 1) Conceptual Database Design. Menurut Connolly dan Begg (2005, p.322), hal yang pertama dilakukan dalam membuat conceptual design adalah dengan membuat model data secara konseptual dari perusahaan yang bersangkutan. Conceptual database design seluruhnya independent dari implementasi seperti target DBMS software, program aplikasi, bahasa pemograman, atau physical consideration lainnya. Data tersebut merupakan informasi-informasi mengenai perusahaan. Dalam conceptual database design, data yang ada dikembangkan dengan representasi secara konseptual yang mencakup mengidentifikasi entity, relationship, dan atribut yang sangat penting dalam perancangan bisnis tersebut. 18 19 Langkah-langkah untuk membuat data model lokal yang konseptual untuk setiap user view dapat digambarkan sebagai berikut : a. Penentuan Jenis Entitas. Tujuannya adalah untuk mengidentifikasi dan membuat kelas-kelas dari obyek yang ada berikut penjelasannya serta menentukan entitas utama yang dibutuhkan. Salah satu metode untuk mengidentifikasi entity adalah dengan menguji spesifikasi kebutuhan dari pengguna. Dari spesifikasi ini dapat mengidentifikasikan noun dan noun phrases yang disebutkan. Selain itu juga dapat melihat objek utama seperti orang, tempat atau konsep dari ketertarikan diluar noun lainnya yang merupakan kualitas dari objek lain. b. Penentuan Jenis Hubungan Antar Entitas. Tujuannya adalah untuk mengidentifikasi hubunganhubungan yang ada antara entitas yang telah diidentifikasikan. Dalam mengidentifikasi tipe relasi yang ada dengan menggunakan Entity Relationship Diagram (ERD), mencari batasan dari tipe relationship, memeriksa fan dan chasm traps, memeriksa masing masing entity ikut serta setidaknya dalam satu relationship, dan dokumentasikan tipe relationship. c. Penentuan dan Penghubungan Atribut Dengan Entitas. 20 Tujuannya adalah untuk mengidentifikasikan dan menghubungkan atribut-tribut yang berkaitan dengan entitas atau tipe relationship yang telah sesuai. d. Penentuan Domain Terhadap Atribut. Tujuannya adalah untuk menetapkan domain untuk tiaptiap atribut dalam model data konseptual lokal dan mendokumentasikan setiap detail dari domain. Suatu domain adalah suatu kelompok nilai yang dari mana satu atau lebih atribut mengambil nilainya. e. Penentuan Atribut Candidate Key, Primary Key, dan Alternate Key. Tujuannya adalah untuk menentukan candidate key dan primary key dari kumpulan atribut-atribut yang telah ditentukan pada tiap entitas. Candidate key adalah satu atau lebih atribut dari suatu entitas yang dapat dijadikan primary key. Primary key adalah satu atribut dari suatu entitas yang dipakai sebagai ciri yang paling unik dari entitas tersebut. f. Mempertimbangkan Kegunaan Dari Konsep Enhanced Modeling (optional). Tujuannya adalah untuk mengembangkan ER model dengan menggunakan konsep enhanced modeling, seperti spesialisasi, generalisasi, penggabungan komposisi (composition). g. Pemeriksaan Model Terhadap Redudansi. (aggregation) dan 21 Tujuannya adalah untuk memeriksa konsep model data apakah masih mengandung data maupun entitas serta atribut yang berulang atau tidak. Hal pertama yang dilakukan adalah memeriksa kembali hubungan-hubungan yang ada apabila terdapat suatu hubungan yang mirip. h. Validasi Model Konseptual Lokal Terhadap Transaksi Pengguna. Tujuannya untuk memastikan model konseptual local mendukung transaksi yang dibutuhkan oleh view. Diuji dua pendekatan untuk memastikan model data konseptual lokal mendukung transaksi yang dibutuhkan, dengan cara: 1. Mendeskripsikan Transaksi- transaksi. Memeriksa seluruh informasi (entity, relationship, dan atribut) yang dibutuhkan oleh setiap transaksi yang telah disediakan oleh model, dengan mendokumentasikan setiap kebutuhan transaksi. 2. Mengunakan Jalur-jalur Transaksi. Untuk validasi model data terhadap transaksi yang dibutuhkan termasuk representasi diagram jalur yang digunakan oleh setiap transaksi langsung pada ER diagram. i. Review Model Data Konseptual Dengan Pengguna. Tujuannya untuk mengkaji ulang model data konseptual lokal dengan penggunauntuk memastikan model tersebut adalah 22 representasi sebenarnya dari view.Model data konseptual ini termasuk ER diagram dan dokumentasi pendukung yang mendeskripsikan model data.Bila ada kejanggalan (anomaly) dalam model data, maka harus dibuat perubahan yang sesuai yang mungkin membutuhkan pengulangan langkah-langkah sebelumnya. 2) Logical Database Design. Menurut Connolly dan Begg (2005, p.323), logical database design merupakan proses pembuatan model data dengan menggunakan informasi yang diperoleh dari perusahaan serta berdasarkan pada model data spesifik. Model data yang telah diperoleh dalam conceptual database design diubah dalam bentuk logical model dimana data yang ada dipengaruhi oleh model data yang menjadi tujuan database. Hal ini dilakukan untuk menerjemahkan representasi konseptual ke dalam bentuk struktur logic dalam database yang akan dijadikan sumber informasi dalam merancang physical database design serta memberikan sarana yang membantu para perancang database dalam merancang physical database. Hasil akhir dari logikal database design ini berupa sebuah kamus data yang berisi atribut-atribut beserta key-nya (primary key, alternate key, dan foreign key) dan ERD keseluruhan dengan atribut key-nya. Langkah-langkah untuk membuat logikal database design dapat digambarkan sebagai berikut : a) Menentukan relasi – relasi untuk model data logikal 23 Tujuan dari dilakukannya tahap ini adalah membuat relasi untuk model data logikal untuk merepresentasikan entitas, relasi dan atribut yang telah diidentifikasi pada tahap konseptual. Tahap ini terdiri dari 9 langkah, yaitu : 1. Identifikasi Strong Entity Menurut Connolly dan Begg (2005, p354), Strong Entity adalah entity yang dapat berdiri sendiri tanpa bergantung pada entity lainnya. Untuk setiap strongentity yang ada dalam model data, buat relasi yang berisi semua atribut yang simple dari entity tersebut. 2. Identifikasi Weak Entity Menurut Connolly dan Begg (2005, p355), Weak entity adalah entity yang tidak dapat berdiri sendiri dan memiliki ketergantungan yang tinggi pada entity lainnya. Untuk setiap weak entity yang ada dalam model data, buat relasi yang berisi semua atribut yang simple dari entity tersebut. Primary key dari weak entity baru dapat ditentukan setelah semua relasi terhadap owner entity selesai ditentukan. 3. Pembentukan Relasi biner one to many (1:*) Pada setiap relasi biner 1:*, entity pada bagian “1” dari relasinya adalah merupakan parent entity dan entity pada bagian “*” dari relasinya merupakan child entity. Untuk merepresentasikan relasi ini, atribut primary key 24 yang ada pada parent entity disalin ke child entity yang nantinya akan dijadikan sebagai foreign key pada child entity. 4. Pembentukan Relasi biner one to one (1:1) Pembentukan relasi 1:1 akan lebih sulit dari 1:* karena pada pembentukan relasi 1:1 ini cardinality dari relasi tidak dapat digunakan untuk mengidentifikasi mana yang parent entity dan mana yang child entity tetapi menggunakan participation constraint untuk menentukannya. Participation constraint terbagi menjadi 3, yaitu: • Mandatory participation pada kedua sisi dari relasi 1:1. Menurut Connolly dan Begg (2005, p466), pada kasus ini, kita harus menggabungkan setiap entity yang terlibat kedalam satu relasi dan memilih salah satu dari primary key dari setiap original entity untuk menjadi primary key dari relasi yang baru, sedangkan yang lainnya dijadikan alternate key. • Mandatory participation pada salah satu sisi dari relasi 1:1. 25 Menurut Connolly dan Begg (2005, p466), pada kasus ini entity yang mempunyai optional participation dalam relasi dianggap sebagai parent entity, dan entity yang mempunyai mandatory participation dalam relasi dianggap sebagai child entity.Seperti yang telah disebutkan diatas, salinan primary key dari parent entity ditempatkan dalam relasi yang merepresentasikan child entity. Jika ada lebih dari satu atau lebih atribut dalam suatu relasi, atribut ini harus menyertakan penyalinan primary key ke relasi child. • Optional participation pada kedua sisi dari relasi 1:1. Menurut Connolly dan Begg (2005, p467), kita dapat memilih primary key mana yang dipilih tergantung dari kasus yang ada. Participation merupakan angka minimum (angka paling kiri) dari multiplicity dalam kedua sisi dari relasi (lihat gambar 2.2).Participation dikatakan mandatory apabila angka minimum dari participation adalah 1, sedangkan dikatakan optional apabila angka minimum dari participation adalah 0. 26 Gambar 2.2Cardinality dan Participation yang diambil dari Multiplicity pada relasi 27 5. Relasi 1..1 Recursive Menurut Connolly dan Begg (2005, p467), Tahap ini sama dengan tahap yang diatas, yaitu relasi 1..1 biasa. Untuk relasi 1:1 recursive dengan mandatory participation pada kedua sisi, representasikan relasi recursive sebagai relasi tunggal dengan dua salinan primary key.Seperti sebelumnya, salah satu salinan dari primary key merepresentasikan foreign key dan harus diubah namanya untuk menandakan relasi yang direpresentasikan. Untuk relasi 1:1 recursive dengan mandatory participation pada salah satu sisi, kita mempunyai pilihan untuk menciptakan relasi tunggal dengan dua salinan primary key atau merepresentasikan menciptakan relasi. Relasi relasi baru untuk baru hanya akan mempunyai dua atribut, yang keduanya merupakan salinan dari primary key. Untuk relasi 1:1 recursive dengan optional participation pada kedua sisi, kita menciptakan relasi baru seperti yang telah diuraikan diatas. 6. Tipe Relasi Superclass / Subclass Menurut Connolly dan Begg (2005, p467), untuk setiap relasi superclass / subclass dalam model data konseptual, kita mengidentifikasikan superclass entity 28 sebagai parent entity dan subclass entity sebagai child entity.Terdapat banyak pilihan dalam merepresentasikan relasi sebagai salah satu atau lebih relasi – relasi. Pilihan yang paling sesuai tergantung dari sejumlah factor seperti disjointness dan participation constraints pada relasi superclass / subclass, apakah subclasses tersebut terlibat dalam distinct relationship dan jumlah participants dalam relasi superclass / subclass. 7. Relasi biner many to many (*:*) Menurut Connolly dan Begg (2005, p469), untuk tiap relasi biner *:* buat relasi untuk merepresentasikan relasi dan memasukkan semua atribut yang merupakan bagian dari relasi tersebut. Selanjutnya adalah menyalin salinan primary key dari entity yang berhubungan di dalam relasi kedalam relasi yang baru untuk berlaku sebagai foreign key. 8. Tipe Relasi Kompleks Menurut Connolly dan Begg (2005, p470), untuk setiap relasi kompleks, ciptakan sebuah relasi untuk merepresentasikan relasi dan memasukkan semua atribut yang merupakan bagian dari relasi tersebut. Selanjutnya adalah menyalin salinan primary key dari entity yang berhubungan di dalam relasi kompleks kedalam relasi baru untuk berlaku sebagai foreign key. 29 9. Atribut Multivalue Menurut Connolly dan Begg (2005, p471), untuk setiap atribut multi-valued dalam entity, ciptakan sebuah relasi yang merepresentasikan atribut – atribut multivalued dan menyalin salinan primary key dari owner entity kedalam relasi baru untuk menjadi foreign key. b) Validasi model dengan normalisasi Menurut Connolly dan Begg (2005, p473), tujuannya adalah untuk memvalidasi relasi – relasi dalam model data konseptual menggunakan teknik normalisasi. Menurut Connoly dan Begg (2005, p388), normalisasi adalah teknik untuk menghasilkan sekumpulan relasi – relasi dengan properti – properti yang diinginkan, sesuai dengan kebutuhan data – data yang diberikan oleh perusahaan. Tujuan dari normalisasi ini adalah untuk meminimalkan redudansi data (perulangan data) dan update anomalies, menciptakan representasi data, hubungan antar data dan constraint yang akurat, serta meningkatkan stabilitas. Untuk mencapai tujuan tersebut maka harus dilakukan identifikasi dengan benar atas relasi – relasi yang ada. Pada dasarnya, proses normalisasi ini dilakukan karena terjadinya redudansi data atau kejanggalan pengubahan (update anomaly). 30 Update anomaly ada tiga jenis, yaitu insert anomaly, delete anomaly dan modification / update anomaly. Insert anomaly adalah kejanggalan yang terjadi terhadap sebuah tabel pada saat dilakukannya penambahan suatu record, yaitu berupa pelanggaran terhadap integrity constraint. Delete anomaly adalah kejanggalan yang terjadi terhadap suatu tabel pada saat dilakukan penghapusan suatu record, penghapusan bermaksud untuk menghapus suatu data tertentu tetapi menyebabkan kehilangan informasi lain dari tabel tersebut. Modification / update anomaly adalah kejanggalan yang terjadi terhadap suatu tabel pada saat dilakukan pengubahan suatu record, pengubahan terhadap suatu nilai tertentu harus dilakukan lebih dari sekali. Hal ini amat memungkinkan terjadinya inkonsistensi data. Menurut Connolly dan Begg (2005, p401), proses normalisasi meliputi langkah – langkah sebagai berikut : - Unnormalized Form (UNF), bentuk awal sebelum proses normalisasi dilakukan yang berisi satu atau lebih repeating groups. - First Normal Form (1NF), proses pertama dari normalisasi yang bertujuan untuk menghilangkan repeating groups. - Second Normal Form (2NF), bertujuan untuk menghilangkan partial dependency dalam primary key. 31 - Third Normal Form (3NF), bertujuan untuk menghilangkan transitive dependency antara atribut non- primary key. c) Memvalidasi relasi dengan user transaction Menurut Connolly dan Begg (2005, p474), tahap ini bertujuan untuk menjamin bahwa relasi – relasi dalam model data logikal mendukung transaksi – transaksi yang dibutuhkan oleh user. d) Mendefinisikan integrity constraint Menurut Connolly dan Begg (2005, p474), tahap ini bertujuan untuk memeriksa integrity constraint yang direpresentasikan dalam model data logikal. Integrity constraint terdiri dari 5 type, yaitu : • Required Data Beberapa atribut harus selalu memiliki nilai yang valid. Dengan kata lain, tidak diperbolehkan bernilai NULL. • Attribute Domain Constraints Tiap atribut mempunyai domain, yaitu kumpulan nilai – nilai yang legal. Sebagai contoh, ada dua jenis kelamin yaitu ‘M’ dan ‘F’, jadi domain untuk atribut jenis kelamin adalah karakter string tunggal yang terdiri dari ‘M’ dan ‘F’. Batasan ini harus 32 diidentifikasikan ketika melakukan pemilihan domain atribut untuk model data. • Multiplicity Multiplicity merepresentasikan batasan yang diletakkan pada relasi antara data di dalam basis data. • Entity Integrity Primary Key dari suatu entity tidak dapat bernilai NULL. Batasan ini harus dipertimbangkan saat kita melakukan identifikasi primary key untuk setiap tipe entity. • Referential Integrity Foreign Key menghubungkan tiap tuple dalam relasi child ke tuple dalam relasi parent yang meliputi nilai candidate key yang sesuai. Referential integrity berarti bahwa jika foreign key memiliki nilai, maka nilai tersebut harus menunjuk pada tuple yang ada pada relasi parent. Terdapat lima strategi untuk mempertahankan referential integrity pada saat penghapusan tuple pada relasi parent, yaitu : - NO ACTION Mencegah penghapusan dari relasi parent jika terdapat child tuples yang ditunjuk. 33 - CASCADE Ketika parent tuple dihapus, childtuple yang ditunjuk akan secara otomatis ikut terhapus. - SET NULL\ Ketika ada parent tuple yang dihapus, nilai foreign key dalam semua child tuples yang berhubungan akan secara otomatis diubah menjadi NULL. - SET DEFAULT Saat parent tuple dihapus, nilai foreign key pada semua child tuples yang berhubungan akan secara otomatis diubah menjadi nilai awalnya. - NO CHECK Saat parent tuple dihapus, tidak melakukan apapun untuk menjamin referential integrity tetap terjaga. • General Constraints Pengubahan – pengubahan pada entities mungkin diatur oleh batasan – batasan yang memerintah transaksi pada ‘real world’ yang direpresentasikan oleh pengubahan tersebut. e) Me-review model data logikal dengan user 34 Menurut Connolly dan Begg (2005, p478), tahap ini bertujuan untuk menjamin bahwa pengguna mempertimbangkan model data logikal untuk menjadi representasi yang sebenarnya dari kebutuhan data perusahaan. f) Menggabungkan model data logikal ke dalam global model (optional). Menurut Connolly dan Begg (2005, p479), tahap ini bertujuan untuk merepresentasikan semua user views dari basis data. g) Memeriksa untuk perkembangan lebih lanjut Menurut Connolly dan Begg (2005, p473), tahap ini bertujuan untuk menentukan apakah terdapat perubahan yang signifikan pada masa depan yang dapat diramalkan dan untuk menilai apakah model data logikal dapat mengakomodasi perubahan tersebut. 3) Physical Database Design. Menurut Connolly dan Begg (2005, p.324), physical database design merupakan proses pembuatan deskripsi dari suatu implementasi basis data pada secondary storage. Hal ini mendeskripsikan base relation, organisasi data, dan indeks yang digunakan untuk mencapai efisiensi akses ke dalam data, dan associated integrity constraints yang lainnya dan security measures. Physical database design merupakan fase ketiga dan terakhir dalam desain basis data. Tujuan utama dari physical database design adalah untuk mendeskripsikan bagaimana 35 perancang bermaksud untuk mengimplementasikan secara fisik dari logical database design. Langkah-langkah dalam pembuatan physical database design adalah sebagai berikut: a) Menerjemahkan model data logikal untuk DBMS yang dipilih Menurut Connolly dan Begg (2005, p497), tahap ini bertujuan untuk menghasilkan relational database schema dari model data logikal yang nantinya dapat diimplementasikan kedalam DBMS target. Untuk dapat menyelesaikan proses ini, designer membutuhkan pengetahuan yang mendalam tentang fungsionalitas yang diberikan dari DBMS target. Sebagai contoh : - Bagaimana cara untuk menciptakan relasi dasar - Mengetahui apakah sistem tersebut dapat mensupport primary keys, foreign keys, alternate keys yang telah didefinisi. - Mengetahui apakah sistem tersebut dapat mensupport pendefinisian dari required data (yaitu, apakah sistem memperbolehkan suatu atribut didefinisikan sebagai NOT NULL). - Mengetahui apakah sistem tersebut dapat mensupport pendefinisian dari domain – domain yang telah dibuat. - Mengetahui apakah sistem tersebut dapat mensupport relational integrity constraints. 36 - Mengetahui apakah sistem tersebut dapat mensupport pendefinisian dari integrity constraints. Terdapat tiga aktifitas untuk melakukan tahap ini, yaitu : 1. Merancang Relasi – relasi Dasar Menurut Connolly dan Begg (2005, p498), tujuannya adalah merepresentasikan untuk memutuskan relasi–relasi bagaimana dasar yang diidentifikasikan dalam model data logikal dalam DBMS yang dipilih. Untuk tiap relasi yang diidentifikasi dalam model data logikal, kita mempunyai definisi yang terdiri atas : • Nama dari relasi • Daftar atribut–atribut sederhana dalam golongan–golongan. • Primary key dan alternate key dan foreign key jika ada. • Referential semua integrity foreign constraints keys yang untuk telah diidentifikasi. sedangkan dari data dictionary, tiap atribut juga memiliki : 37 • Domain-nya, yang berisi tipe data, panjang dan semua batasan dalam domain. • Nilai optional default untuk atribut • Apakah atribut dapat mempunyai nilai NULL. • Apakah atribut tersebut diturunkan, dan jika iya, maka atribut tersebut harus dikomputasi. 2. Merancangan Representasi Untuk Data Turunan Menurut Connolly dan Begg (2005, p499), tujuannya adalah untuk memutuskan bagaimana merepresentasikan semua data derived yang ada dalam model data logikal dalam DBMS yang dipilih . Atribut yang nilainya dapat dicari dengan memeriksa nilai – nilai dari atribut–atribut lainnya dikenal dengan sebutan derived atau calculated attribute. 3. Merancang General Constraint Menurut Connolly dan Begg (2005, p501), tujuannya adalah untuk merancang general constraint untuk DBMS yang dipilih. b) Merancang file organization dan indexes. Menurut Connolly dan Begg (2005, p501), tahap ini bertujuan untuk menentukan file organization yang optimal untuk 38 menyimpan relasi–relasi dasar dan indeks–indeks yang dibutuhkan untuk mencapai performa yang dapat diterima, dengan begitu, relasi dan tuple akan disimpan pada secondary storage. Menurut Connolly dan Begg (2005, p.532), Terdapat beberapa factor yang dapat digunakan untuk mengukur efisiensi, yaitu : • Transaction throughput adalah jumlah transaksi yang dapat diproses dalam jangka waktu tertentu. Diukur pada kondisi peak. • Response time, adalah waktu yang diperlukan untuk menyelesaikan satu transaksi. Dari pandangan pengguna, kita sedapat mungkin ingin meminimalkan response time. Response time ini biasanya dipengaruhi waktu untuk mengakses data yang diperlukan, system load, OS Scheduling, communication delay. • Disk storage, adalah jumlah disk space yang dibutuhkan untuk menyimpan file-file basis data. Para perancang sistem biasanya ingin meminimalkan disk storage yang digunakan. Ada 4 aktifitas dalam melakukan tahap ini, yaitu : 1. Menganalisa transaksi Menurut Connolly dan Begg (2005, p.502), tujuannya adalah untuk mengerti fungsi dari transaksi 39 yang akan diterapkan pada basis data dan untuk menganalisa semua transaksi yang penting. 2. Memilih organisasi file Menurut Connolly dan Begg (2005, p.506), tujuannya adalah untuk menentukan organisasi file yang efisien untuk setiap relasi dasar. 3. Memilih indexes Menurut Connolly dan Begg (2005, p.508), tujuannya adalah untuk mempertimbangkan apakah dengan menambahkan index akan meningkatkan performa dari sistem. 4. Estimasi kebutuhan disk space Menurut Connolly dan Begg (2005, p.514), tujuannya adalah untuk memperkirakan jumlah disk space yang dibutuhkan oleh basis data. c) Merancang user view Menurut Connolly dan Begg (2005, p.515), tahap ini bertujuan untuk merancang user view yang diidentifikasikan saat pengumpulan kebutuhan dan tahap analisis dari system development lifecycle. d) Merancang mekanisme keamanan Menurut Connolly dan Begg (2005, p.516), tahap ini bertujuan untuk merancang mekanisme keamanan untuk basis data 40 seperti yang ditentukan oleh user pada tahap pengumpulan kebutuhan dari system development lifecycle. Mekanisme keamanan yang dirancang dalam basis data yaitu mekanisme keamanan sistem dan mekanisme keamanan data. e) Mempertimbangkan pengenalan redundancy control Menurut Connolly dan Begg (2005, p.519), tahap ini bertujuan untuk menentukan apakah pengenalan redundancy yang dikontrol dengan aturan – aturan normalisasi akan meningkatkan performa sistem. f) Mengawasi dan mengendalikan sistem operasional Menurut Connolly dan Begg (2005, p.532), tahap ini bertujuan untuk mengawasi sistem operasional dan meningkatkan performa dari sistem untuk memperbaiki keputusan perancangan yang tidak sesuai atau merefleksikan perubahan kebutuhan. 5. DBMS Selection Menurut Connolly dan Begg (2005, p.295), DBMS Selection merupakan tahap pemilihan DBMS yang sesuai untuk mendukung sistem basis data yang sedang dibuat. Langkah – langkah dalam menentukan DBMS : 1. Menggambarkan cakupan tugas berdasarkan kebutuhan perusahaan. 2. Membuat perbandingan mengenai 2 atau 3 produk DBMS. 3. Mengevaluasi produk – produk DBMS tersebut. 41 4. Merekomendasikan pemilihan DBMS dan membuat laporan hasil dari evaluasi produk DBMS tersebut. Secara khusus DBMS menyediakan fasilitas – fasilitas sebagai berikut : • Mengijinkan pengguna untuk menentukan basis data, biasanya melalui DDL (Data Definition Language). DDL mengijinkan pengguna untuk menspesifikasikan tipe data, struktur dan batasan – batasan data yang bisa disimpan dalam basis data. • Mengijinkan pengguna untuk insert, update, delete atau retrieve data dari basis data, biasanya melalui DML (Data Manipulation Language). • DMBS menyediakan akses kontrol ke basis data. Sebagai contohnya DBMS menyediakan : 1. Security System, dimana mencegah autorisasi pengguna untuk mengakses basis data. 2. Integrity System, dimana menangani konsistensi penyimpanan data. 3. Concurrency Control System, dimanan mengijinkan basis data untuk diakses secara share. 6. Application Design 42 Menurut Connolly dan Begg (2005, p.299), Application Design merupakan tahap mendesain user interface dan program aplikasi yang menggunakan dan memproses basis data. Berdasarkan Gambar 2.1, dapat dilihat bahwa database design dan application design merupakan aktifitas yang paralel dalam database lifecycle. Dalam kebanyakan kasus, tidak mungkin dapat menyelesaikan application design sebelum menyelesaikan database design. Dengan kata lain basis data ada untuk mendukung aplikasi sehingga harus ada aliran informasi antara application design dan database design. 7. Prototyping (Optional) Menurut Connolly dan Begg (2005, p.303), Prototyping merupakan tahap pembuatan contoh model dari sistem basis data.Ada 2 strategi dalam membuat prototype, yaitu requirements prototyping dan evolutionary prototyping.Untuk requirements prototyping digunakan prototype untuk menentukan kebutuhan suatu aplikasi basis data yang diusulkan dan ketika kebutuhan dirasakan sudah lengkap maka prototype tersebut tidak lagi digunakan.Evolutionary prototyping digunakan untuk tujuan yang sama, perbedaannya adalah bahwa prototype-nya tidaklah dibuang tapi dikembangkan lebih lanjut sehingga menjadi sistem basis data yang siap digunakan. 8. Implementation 43 Menurut Connolly dan Begg (2005, p.304), Implementation merupakan tahap merealisasikan basis data dan desain aplikasi yang telah dibuat (dengan atau tanpa prototype). Implementasi basis data dicapai dengan menggunakan DDL (Data Definition Language) dari DMBS yang telah dipilih atau dengan menggunakan GUI (Graphical User Interface), masing – masing menyediakan fungsi ketika menyembunyikan statement DDL yang low – level. Pernyataan DDL digunakan untuk menciptakan struktur basis data dan mengosongkan file yang terdapat dalam basis data tersebut. User View juga diterapkan dalam langkah ini. Program aplikasi diterapkan dengan menggunakan bahasa generasi keempat atau ketiga (4GL atau 3GL). Bagian dari program aplikasi ini adalah transaksi basis data yang diterapkan menggunakan DDL (Data Manipulation Language). 9. Data Conversion and Loading Menurut Connolly dan Begg (2005, p.305), Data Conversion and Loading merupakan tahap pemindahan semua data yang telah dikumpulkan ke dalam sistem basis data dan mengubah semua aplikasi yang ada untuk dijalakankan pada sistem basis data yang baru. 10. Testing Menurut Connolly dan Begg (2005, p.305), Testing merupakan tahap pelaksanaan proses aplikasi dengan tujuan untuk menemukan kesalahan yang ada. Dalam melakukan testing, para 44 pengguna harus dilibatkan untuk menguji proses aplikasi dan basis data tersebut. Situasi yang ideal untuk pengujian sistem adalah mempunyai suatu tes basis data pada suatu sistem perangkat keras, tetapi ini sering tidak tersedia. Jika data real yang diharapkan untuk digunakan, maka adalah penting untuk mempunyai backup. Setelah pengujian diselesaikan, maka sistem aplikasi dan basis data ini telah siap digunakan. 11. Operational Maintenance Menurut Connolly dan Begg (2005, p.299), Operational Maintenance merupakan tahap pengawasan dan pemeliharaan yang melibatkan aktivitas – aktivitas berikut : • Monitoring performance dari sistem. Jika performa berada di suatu tingkatan yang bisa diterima, penyetelan atau menyusun kembali basis data mungkin diperlukan. • Memelihara dan meningkatkan mutu aplikasi basis data. Kebutuhan baru disatukan ke dalam aplikasi basis data dengan mengikuti langkah – langkah sebelumnya yang terdapat dalam database lifecycle. Monitoring process akan terus berlanjut sepanjang seluruh hidup suatu aplikasi basis data tesebut dan pada waktu tertentu boleh melakukan penyusunan kembali basis data untuk mencukupi kebutuhan dari sistem. Perubahan ini menyediakan informasi pada evolusi sistem dan sumber daya pada masa yang akan datang yang mungkin diperlukan. Hal ini memungkinkan seorang DBA untuk 45 terlibat dalam perencanaan kapasitas dan untuk memberitahu staff senior siaga untuk melakukan penyesuaian rencana jika DBMS kekurangan kegunaan tertentu, DBA dapat mengembangkan kegunaan yang diperlukan akan memberi tools tambahan jika tersedia. 2.1.5 Interaksi Manusia dan Komputer (IMK) Menurut Dastbaz (2003, p108), interaksi manusia komputer tidak terlepas dari istilah antar muka pemakai (user interface). Dastbaz juga menjelaskan bahwa antarmuka pemakai adalah semua saluran informasi yang memungkinkan pemakai dan komputer dapat saling berkomunikasi. Interaksi Manusia dan Komputer (IMK) atau Human-Computer Interaction (HCI) adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya. Delapan aturan emas (Shneiderman, 1998, p74-75): 1. Berusaha untuk konsisten Urutan aksi yang konsisten diperlukan pada situasi yang sama. Konsistensi juga harus digunakan pada prompt, menu, dan layar bantu. Warna, tampilan layar, kapitalisasi, huruf dan sebagainya juga harus konsisten. 2. Memungkinkan penggunaan shortcut Memungkinkan pemakai untuk mengurangi interaksi dan untuk meningkatkan kecepatan interaksi. 3. Memberikan umpan balik yang informatif jumlah 46 Untuk setiap tindakan yang dilakukan pemakai, diharapkan adanya respon dari system. 4. Merancang dialog yang memberikan penutupan (keadaan akhir) Urutan aksi harus disusun ke dalam kelompok awal, tengah, dan akhir. Suatu umpan balik yang informatif pada akhir pekerjaan sebaiknya dibuat untuk mengindikasikan bahwa pekerjaan telah selesai dan siap untuk melanjutkan ke aksi berikutnya. 5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana. Sebisa mungkin dibuat system yang tidak akan menghasilkan kesalahan yang serius jika digunakan oleh pemakai. Jika pemakai membuat kesalahan, system tersebut harus dapat mendeteksi kesalahan dan menawarkan instruksi yang sederhana, konstruktif, dan spesifikasi untuk perbaikan. 6. Memungkinkan pembalikan aksi yang mudah. Aksi yang telah dilakukan harus dapat dikembalikan ke keadaan awal. 7. Mendukung pusat kendali internal (internal locus of control). Menjadi pemakai sebagai pemberi aksi, bukan sebagai orang yang merespon aksi. 8. Mengurangi beban ingatan jangka pendek. 47 Karena keterbatasan manusia dalam pemrosesan informasi pada ingatan jangka pendek, sebaiknya tampilan dibuat sederhana, beberapa halaman dijadikan satu, frekuensi pergerakan window dikurangi, dan harus ada waktu yang cukup untuk mempelajari kode-kode, singkatan, serta urutan aksi. Informasi seperti singkatan atau kode sebaiknya juga tersedia. 2.2 Teori Khusus Teori-teori pendukung yang digunakan penulis dalam penulisan skripsi ini antara lain: 2.2.1 Penjualan Menurut Mulyadi ( 2001 , p202 ), kegiatan penjualan terdiri dari penjualan barang dan jasa, baik secara kredit maupun secara tunai. Dalam transaksi penjualan kredit, jika order dari pelanggan telah dipenuhi dengan pengiriman barang atau penyerahan jasa, untuk jangka waktu tertentu perusahaan memiliki piutang kepada pelanggannya. Dalam sistem penjulan secara tunai, barang atau jasa baru diserahkan oleh perusahaan kepada pembeli jika perusahaan telah menerima kas dari pembeli. Menurut Mulyadi ( 2001 , p219 ), sistem dan prosedur yang bersangkutan dengan sistem penjualan kredit adalah : a. Prosedur order penjualan Dalam prosedur ini, fungsi penjualan menerima order dari pembeli dan menambahkan informasi penting pada surat order dari pembeli. Fungsi penjualan kemudian membuat surat order pengiriman dan mengirimkannya kepada berbagai fungsi yang lain 48 untuk memungkinkan fungsi tersebut memberikan kontribusi dalam melayani order dari pembeli. b. Prosedur persetujuan kredit Dalam prosedur ini, fungsi penjualan meminta persetujuan penjualan kredit kepada pembeli tertentu dari fungsi kredit. c. Prosedur pengiriman Dalam prosedur ini, fungsi pengiriman mengirimkan barang kepada pembeli sesuai dengan informasi yang tercantum dalam surat order pengiriman yang diterima dari fungsi pengiriman. d. Prosedur penagihan Dalam prosedur ini, fungsi penagihan membuat faktur penjualan dan mengirimkannya kepada pembeli. Dalam metode tertentu faktur penjualan dibuat oleh fungsi penjualan sebagai tembusan pada waktu bagian ini membuat surat order pengiriman. e. Prosedur pencatatan puitang Dalam prosedur ini, fungsi akuntansi mencatat tembusan faktur penjualan ke dalam kartu piutang atau dalam metode pencatatan tertentu mengarsipkan dokumen tembusan menurut abjad yang berfungsi sebagai catatan piutang. f. Prosedur distribusi penjualan Dalam prosedur ini, fungsi akuntansi mendistribusikan data penjualan menurut informasi yang diperlukan oleh manajemen. g. Prosedur pencatatan harga pokok penjualan 49 Dalam prosedur ini, fungsi akuntansi mencatat secara periodik total harga pokok produk yang dijual dalam periode akuntansi tertentu. 2.2.2 Pembelian Menurut Mulyadi ( 2001 , p299 ), sistem akuntansi pembelian digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan. Transaksi pembelian dapat digolongkan menjadi dua : pembelian lokal dan impor. Pembelian lokal adalah pembelian dari pemasok dalam negeri, sedangkan impor adalah pembelian dari pemasok luar negeri. Menurut Mulyadi ( 2001 , p299 ), fungsi yang terkait dalam sistem akuntansipembelian adalah : 1. Fungsi Gudang Dalam sistem akuntansi pembelian, fungsi gudang bertanggung jawab untuk mengajukan permintaan pembelian sesuai dengan posisi persediaan yang ada digudang untuk menyimpan barang yang telah diterima oleh fungsi penerimaan. Untuk barang–barang yang langsung pakai (tidak diselenggarakan persediaan barang di gudang), permintaan pembelian diajukan oleh pemakai barang. 2. Fungsi Pembelian Fungsi pembelian bertanggung jawab untuk memperoleh informasi mengenai harga barang, menentukan pemasok yang dipilih 50 dalam pengadaan barang, dan mengeluarkan order pembelian kepada pemasok yang dipilih. 3. Fungsi Penerimaan Dalam sistem akuntansi pembelian, fungsi ini bertanggung jawab untuk melakukan pemeriksaan terhadap jenis, mutu, dan kuantitas barang yang diterima dari pemasok guna menentukan dapat atau tidaknya barang tersebut diterima oleh perusahaan. 4. Fungsi Akuntansi Fungsi akuntansi yang terkait dalam transaksi pembelian adalah fungsi pencatat utang dan fungsi pencatat persediaan. Dalam sistem akuntansi pembelian, fungsi pencatat utang bertanggung jawab untuk mencatat transaksi pembelian kedalam register bukti kas keluar dan untuk menyelenggarakan arsip dokumen sumber (bukti kas keluar) yang berfungsi sebagai catatan utang atau menyelenggarakan kartu utang sebagai buku pembantu utang. Dalam sistem akuntansi pembelian, fungsi pencatatan persediaan bertanggung jawab untuk mencatat harga pokok persediaan barang yang dibeli ke dalam kartu persediaan. Menurut Mulyadi ( 2001 , p301 ), sistem dan prosedur yang bersangkutan dengan sistem penjualan kredit adalah : 1. Prosedur permintaan pembelian Dalam prosedur ini fungsi gudang mengajukan permintaan pembelian dalam formulir surat permintaan pembelian kepada fungsi pembelian. Jika barang itu tidak disimpan di gudang, misalnya untuk 51 barang–barang yang langsung dipakai, fungsi yang memakai barang mengajukan permintaan pembelian langsung ke fungsi pembelian dengan menggunakan surat permintaan pembelian. 2. Prosedur permintaan penawaran harga dan pemilihan pemasok Dalam prosedur ini, fungsi pembelian mengirimkan surat permintaan penawaran harga kepada pemasok untuk memperoleh informasi mengenai harga barang dan berbagai syarat pembelian yang lain, untuk memungkinkan pemilihan pemasok yang akan ditunjuk sebagai pemasok barang yang diperlukan oleh perusahaan. 3. Prosedur order pembelian Dalam prosedur ini fungsi pembelian mengirim surat order pembelian kepada pemasok yang dipilih dan memberitahukan kepada unit - unit organisasi lain dalam perusahaan (misalnya fungsi penerimaan, fungsi yang memintabarang, dan fungsi pencatat utang) mengenai order pembelian yang sudah dikeluarkan oleh perusahaan. 4. Prosedur penerimaan barang Dalam prosedur ini, fungsi penerimaan melakukan pemeriksaan mengenai jenis, kuantitas, dan mutu barang yang diterima dari pemasok, dan kemudian membuat laporan penerimaan barang untuk menyatakan penerimaan barang dari pemasok tersebut. 5. Prosedur pencatatan utang Dalam prosedur ini fungsi akuntansi memeriksa dokumen– dokumen yang berhubungan dengan pembelian (surat order pembelian, laporan penerimaan barang, dan faktur dari pemasok) dan 52 menyelenggarakan pencatatan utang atau mengarsipkan dokumen sumber sebagai catatan utang. 6. Prosedur distribusi pembelian Prosedur ini meliputi distribusi rekening yang didebit dari transaksi pembelian untuk kepentingan pembuatan laporan manajemen. Menurut Mulyadi (2001,p335), adapun barang yang sudah diterima dari pemasok terkadang tidak sesuai dengan barang yang dipesan menurut surat order pembelian. Ketidaksesuaian itu terjadi kemungkinan karena barang yang diterima tidak cocok dengan spesifikasi yang tercantum dalam surat order pembelian, barang mengalami kerusakan dalam pengiriman, atau barang diterima melewati tanggal pengiriman yang dijanjikan oleh pemasok. 2.2.3 PHP PHP (PHP : Hypertext Preprocessor) merupakan skrip untuk membuat suatu aplikasi yang dapat diintegrasikan ke dalam halaman HTML, sehingga suatu halaman web tidak lagi bersifat statis, namun menjadi bersifat dinamis Wahyono (2005, p3). Penemu PHP (dulu Personal Home Pages) adalah Rasmus Lerdorf. Pada tahun1995, versi pertama PHP dirilis ke masyarakat umum Allen dan Hornberger ( 2002,XIX). Keunggulan dari PHP Wahyono (2005, p4) : 1. Source program tidak dapat dilihat dengan menggunakan fasilitas view HTML source yang ada pada web browser. 53 2. Script tersebut dapat memanfaatkan sumber-sumber aplikasi yang dimiliki oleh server, seperti untuk keperluan database connection. 3. Aplikasi tidak memerlukan kompatibilitas browser atau harus menggunakan browser tertentu, karena server yang akan mengerjakan skrip PHP dan hasilnya akan dikirim kembali ke web browser. 4. PHP dapat melakukan semua aplikasi program CGI, seperti mengambil nilai form, mengirimkan dan menerima cookie. 2.2.4 MySQL MySQL adalah salah satu jenis database server yang sangat terkenal. Kepopulerannya disebabkan MySQL menggunakan SQL sebagai bahan dasar untuk mengakses database-nya. Selain itu, ia bersifat freeware pada berbagai platform (kecuali pada windows, yang bersifat shareware). Perangkat lunak MySQL sendiri bisa di-download dari http://www.mysql.org atau http://www.mysql.com.MySQL termasuk jenis RDBMS (Relational Database Management System). Itulah sebabnya istilah seperti table, baris, dan kolom digunakan pada MySQL. Pada MySQL, sebuah database mengandung satu atau sejumlah table. Tabel terdiri atas sejumlah baris dan setiap baris mengandung satu atau beberapa kolom (Nugroho2004, p29) Dulu, MySQL dikenal dengan mini SQL yang dikembangkan oleh MySQL AB (Perusahaan IT Swedia) sejak tahun 1979 dibawah komando Michael Widenius Monty. MySQL release 1.0 dikeluarkan Mei 1996 secara terbatas untuk kalangan sendiri. Baru dilepas untuk publik bulan Oktober 1996 setelah muncul versi 3(Wahyono 2005, p5). 2.2.5 StateTransitionDiagram (STD) 54 Menurut Pressman ( 2001 , p302 ), State Transition Diagram merupakan suatu diagram yang menggambarkan bagaimana state dihubungkan dengan state yang lain pada satu waktu. State Transition Diagram menunjukkan bagaimana sistem bekerja sebagai akibat dari kejadian eksternal. Untuk melakukan hal itu, State Transition Diagram menampilkan model yang bermacam-macam dari tindakan sebuah sistem dan dibuat dari state ke state. Komponen dasar State Transition Diagram antara lain: State1 State Transition Menyatakan state tertentu. Menyatakan perubahan state.