7 BAB 2 LANDASAN TEORI 2.1 Teori-teori Umum 2.1.1 Sistem Manajemen Basis Data (DBMS) Data adalah sebuah sumber yang harus dikontrol dan dikelola. Data yang belum dikelola belum bisa dimanfaatkan sebagai sumber informasi (Whitten et al.2004, p522). Menurut Connolly dan Begg (2005, p15), database adalah kumpulan dari data yang terhubung secara logika, dan merupakan deskripsi dari data tersebut, yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. Menurut Turban (2003, p16), basis data merupakan kumpulan file / record yang terorganisir yang menyimpan data beserta hubungan diantara data tersebut. Menurut Hoffer (2002, p4), basis data adalah kumpulan data yang terorganisir dan secara logika berkaitan. Terorganisir maksudnya data distrukturkan sehingga mudah untuk disimpan, dimanipulasi dan diperoleh oleh pengguna. Berkaitan maksudnya data menggambarkan daerah asal (domain) kepentingan tertentu bagi kelompok pengguna dan pengguna dapat menggunakan data untuk menjawab pertanyaan seputar domain itu. 8 Sedangkan menurut Silberschatz et al.(2006, p1), database adalah kumpulan data yang menyimpan informasi-informasi yang penting bagi perusahaan. Relational database adalah kumpulan dari relasi yang sudah dinormalisasikan dengan nama relasi yang jelas. Relational Database meliputi relasi yang sudah terstruktur dengan tepat (Connolly dan Begg 2005, p74). Menurut Silberschatz et al.(2002, p1), Database Management System (DBMS) adalah kumpulan data yang saling berhubungan dan kumpulan dari program-program yang mengakses data tersebut. Tujuan utama dari adanya DBMS adalah untuk memudahkan user dalam menyimpan dan mengambil informasi. Menurut Elmasri dan Navathe (2000, p5), DBMS adalah sekumpulan program yang mengizinkan user untuk membuat dan memelihara basis data. Sedangkan menurut Connolly dan Begg (2005, p16), Database Management System (DBMS) adalah suatu sistem perangkat lunak yang memungkinkan user untuk mendefinisikan, membuat, memelihara, dan mengawasi akses terhadap database. DBMS merupakan perangkat lunak yang berinteraksi baik dengan program aplikasi maupun dengan database-nya. Beberapa fungsi yang dimiliki oleh DBMS (Connolly dan Begg, 2005, p16) yaitu : a. Memungkinkan user menspesifikasikan tipe data, struktur, dan constraint unuk disimpan dalam database, melalui Data Definition Language (DDL). 9 b. Memungkinkan user melakukan insert, update, delete, dan retrieve data dari database, melalui Data Manipulation Language (DML). c. Menyediakan akses yang terkontrol ke database. 2.1.1.1 Komponen DBMS Menurut Connolly dan Begg (2005, p18-23), ada 4 komponen utama dalam DBMS, yaitu: a. Hardware, dapat berupa komputer perorangan, maupun beberapa komputer yang terhubung dalam satu jaringan. b. Software, meliputi piranti lunak dari DBMS sendiri, program aplikasi, sistem operasi, dan piranti lunak dari jaringan yang digunakan. c. Data, merupakan komponen terpenting dari DBMS, berperan sebagai penghubung antara komponen mesin dan komponen manusia. Prosedur, meliputi petunjuk cara penggunaan sistem. d. People, terdiri dari : a. Data Administrator (DA) dan Database Administrator (DBA), Data Administrator (DA) bertanggung jawab terhadap pengaturan sumber data, mulai dari tahap perencanaan, pengembangan, pemeliharaan standar, kebijakan dan prosedur, serta desain konseptual dan desain logical database, sedangkan Database Administrator (DBA) bertanggung jawab pada realisasi fisik dari aplikasi database,yang meliputi tahap desain database secara fisik dan implementasi, pengaturan keamanan 10 dan integritas data, pengawasan performa sistem, dan pengaturan database kembali jika dipandang perlu. b. Database Designers, Ada 2 jenis Database Designers, yaitu: 1.) logical database designer yang bertanggung jawab mengidentifikasi data, relasi antar data, dan constraint data yang disimpan dalam database, dan 2) physical database designer yang merealisasikan desain logical yang telah dibuat oleh logical database designer. c. Application Developers, implementasi program bertanggung aplikasi jawab setelah terhadap database diimplementasi. d. End-Users, dapat dibedakan menjadi 2: 1.) naive user, yaitu user yang tidak mengerti mengenai DBMS dan memanfaatkan program aplikasi untuk mengakses database , 2.) sophisticated users adalah user yang sudah terbiasa dengan DBMS dan dapat menggunakan bahasa query. 11 2.1.2 Siklus Hidup Sistem Perkembangan Basis Data Perencanaan database Pendefinisian sistem Analisis dan pengumpulan kebutuhan Perancangan database Perancangan conceptual database Pemilihan DBMS Perancangan aplikasi (optional) Perancangan logical database Perancangan physical database Prototyping Implementasi (optional) Konversi dan loading data Testing Pemeliharaan Gambar 2.1 Siklus Hidup Sistem Perkembangan Basis Data Sumber (Connolly dan Begg, 2005, p284) Siklus hidup sistem perkembangan basis data (Database System Development Lifecycle) ini terdiri dari tahap-tahap sebagai berikut (Connolly dan Begg, 2005, p285): 1. Perencanaan database, merancang bagaimana tahap-tahap dalam siklus hidup dapat direalisasikan dengan efektif dan efisien. 12 2. Pendefinisian system, menentukan batasan/ruang lingkup dari aplikasi database. 3. Analisis dan pengumpulan kebutuhan, menganalisis dan mengumpulkan informasi mengenai kebutuhan user untuk sistem database yang baru. Tahap analisis dan pengumpulan kebutuhan termasuk tahap awal dari Database System Development Lifecycle. Dalam tahap ini ditentukan spesifikasi kebutuhan untuk sistem database yang baru. Informasi yang didapat dari ahap ini harus disusun dalam suatu bentuk yang terstruktur, untuk itu ada beberapa teknik yang digunakan, seperti teknik Structured Analysis and Design (SAD), Data Flow Diagram (DFD), dan Hierarchical Input Process Output (HIPO). 4. Perancangan mendukung database, merancang operasional perusahaan, desain database yang akan meliputi tahap perancangan conceptual, logical, dan physical. 5. Pemilihan DBMS, proses memilih DBMS yang sesuai dengan sistem database. 6. Perancangan aplikasi, merancang user interface dan program aplikasi yang menggunakan dan memproses database. 7. Prototyping, membuat model kerja dari sistem database, sehingga memungkinkan bagi programmer atau user untuk melihat dan memeriksa fungsi dan cara kerja sistem. 8. Implementasi, membuat bentuk nyata dari physical database dan program aplikasi. 13 9. Konversi dan loading data, memindahkan semua data yang ada ke dalam database baru dan melakukan penyesuaian terhadap aplikasi yang sudah ada agar dapat digunakan dengan database yang baru. 10. Testing, mengeksekusi program aplikasi dan melakukan pengecekan error, serta memeriksa apakah kebutuhan user terhadap sistem sudah terpenuhi. 11. Pemeliharaan operasional, melakukan pengawasan dan pemeliharaan sistem setelah peng-instal-an dilakukan. 2.1.2.1 Teknik Penemuan Fakta (Fact-Finding Techniques) Fact Finding adalah proses penggunaan teknik seperti wawancara dan kuisioner untuk mengumpulkan fakta, kebutuhan, dan menentukan pilihan-pilihan (Connolly dan Begg 2005, p314). Teknik ini dilakukan pada seluruh tahap dari Database System Development Lifecycle, tetapi teknik ini sangat penting dan perlu dilakukan terutama pada tahap awal yang meliputi perancangan database, pendefinisian sistem, serta tahap analisis dan pengumpulan kebutuhan. Tabel 2.1 Contoh data yang didapat dan dokumen yang dihasilkan untuk tiap tahap dari Database SDLC Sumber (Connolly dan Begg, 2005, p316) Tahap dari Database SDLC Contoh data yang didapat Perencanaan Database Tujuan dari proyek database Contoh dokumen yang dihasilkan Mission Statement dan Mission Objectives 14 Pendefinisian Sistem Analisis dan Pengumpulan Kebutuhan Perancangan Database Perancangan Aplikasi Pemilihan DBMS Prototyping Implementasi Konversi dan Loading Data Testing Pemeliharaan Deskripsi user views Definisi batasan dan ruang lingkup aplikasi database; definisi user views Kebutuhan user views; Spesifikasi user dan spesifikasi sistem, termasuk spesifikasi kebutuhan performa dan kebutuhan sistem keamanan Respon dari user untuk Rancangan memeriksa rancangan conceptual/logical logical database database (termasuk model ER), kamus data, dan skema relasional; rancangan physical database Respon dari user untuk Rancangan aplikasi memeriksa desain antar (termasuk deskripsi muka program dan antar muka pengguna Fungsi-fungsi yang Evaluasi dan rekomendasi disediakan oleh DBMS DBMS tujuan Respon user terhadap Memodifikasi kebutuhan prototype user dan spesifikasi sistem Fungsi-fungsi yang disediakan oleh DBMS tujuan Format data yang digunakan, kemampuan import data DBMS tujuan Hasil tes Strategi testing yang digunakan, analisis hasil tes Hasil tes performa; user Petunjuk penggunaan bagi baru atau penggantian user user; analisis hasil dan kebutuhan sistem performa; memodifikasi kebutuhan user dan spesifikasi sistem Teknik Fact-Finding yang paling sering digunakan ada empat, antara lain: 1. Menganalisis Dokumen Kajian dokumen merupakan sarana pembantu peneliti dalam mengumpulkan data atau informasi dengan cara membaca surat-surat, 15 pengumuman, ikhtisar rapat, pertanyaan tertulis kebijakan tertentu dan bahan-bahan tulisan lainnya(Sarwono, 2006, p225) Teknik ini digunakan untuk mengetahui pertumbuhan database yang diperlukan dan mengetahui bagian perusahaan yang berhubungan dengan masalah yang terjadi. Dengan menganalisis dokumen, form, laporan, dan file yang berkaitan dengan sistem yang sedang berjalan, cara kerja sistem dapat diketahui. 2. Wawancara Yang dimaksud dengan wawancara adalah proses memperoleh keterangan untuk tujuan penelitian dengan cara tanya jawab, sambil bertatap muka antara si penanya atau pewawancara dengan si penjawab atau responden dengan menggunakan alat yang dinamakan interview guide (Nazir, 2003, p193). Menurut Whitten et al.(2004, p239), wawancara adalah teknik penelusuran fakta dimana analis sistem mengumpulkan informasi dari individu-individu melalui interaksi face to face. Ada dua tipe wawacara, yaitu terstruktur dan tidak terstruktur. Wawancara terstruktur adalah wawancara dimana pewawancara mempunyai sekumpulan pertanyaan spesifik untuk ditanyakan kepada responden, pewawancara meminta responden untuk menyajikan sebuah kerangka kerja dan mengarahkan percakapan. Sedangkan wawancara tidak terstruktur adalah wawancara yang dilakukan hanya dengan satu tujuan atau topik dan dengan beberapa pertanyaan spesifik (Whitten et al, 2004, 239). pertanyaan, jika ada, 16 3. Observasi pada Perusahaan Menurut Nazir (2003, p175), pengumpulan data dengan observasi langsung atau pengamatan langsung adalah cara pengambilan data dengan menggunakan mata tanpa ada pertolongan alat standar lain untuk keperluan tersebut. Pengamatan data secara langsung dilaksanakan terhadap subjek sebagaimana adanya di lapangan atau dalam suatu percobaan baik d lapangan atau di dalam laboratorium (Nazir, 2003, p176). 4. Kuisioner Menurut Whitten et al.(2004, p237), kuisioner merupakan dokumen bertujuan khusus yang mengijinkan analis untuk mengumpulkan informasi dan pendapat dari responden. Kuisioner dapat dibuat secara massal dan dibagikan kepada para responden yang dapat mengisi kuisioner sesuai waktu mereka. 2.1.3 Diagram Aliran Data (DFD) Menurut Whitten et al.(2004, p522), DFD atau diagram aliran data adalah model proses yang digunakan untuk menggambarkan aliran data melalui sebuah sistem dan tugas atau pengolahan yang dilakukan oleh sistem tersebut. Simbol-simbol yang digunakan untuk menggambarkan DFD, yaitu (dalam bentuk Yourdon): 1. Bulat, menyatakan proses atau bagimana tugas dikerjakan Nama Proses 17 2. Kotak persegi panjang, menyatakan external entity, yaitu orang, unit organisasi, atau organisasi luar yang berinteraksi dengan sistem. External Entity 3. Kotak dengan kedua ujung terbuka, menyatakan data store, yaitu penyimpanan data yang ditujukan untuk penggunaan selanjutnya. Terkadang disebut juga file atau database Data Store 4. Panah, menyatakan aliran data, atau input dan output, yang masuk ataupun keluar dari proses tersebut Nama aliran data Tabel 2.2 Jenis Aliran Data Sumber (Whitten et al.(2004, p341) Aliran Data yang tidak diperbolehkan B1 B2 Aliran Data yang diperbolehkan B1 P1 B1 Sebuah proses dibutuhkan untuk mengubah aliran data di antara external entity B1 DS1 B1 P1 DS1 Sebuah proses dibutuhkan untuk memperbarui (atau menggunakan) sebuah data store 18 DS1 B1 DS1 P1 B1 Sebuah proses dibutuhkan untuk menyajikan data dari sebuah data store DS1 DS2 DS1 P1 DS2 Sebuah proses dibutuhkan untuk memindahkan data dari suatu data store ke data store lain 2.1.4 Perancangan Basis Data Tahap perancangan database merupakan salah satu tahap dari database System development lifecycle. Tahap ini meliputi 3 bagian (Connolly dan Begg, 2005, p437), yaitu: 2.1.4.1 Perancangan Basis Data Konseptual Perancangan basis data konseptual adalah proses pembuatan model data yang digunakan di dalam suatu perusahaan, tanpa pertimbangan fisikal. Pertimbangan fisikal contohnya program aplikasi, DBMS, bahasa pemrograman, perangkat keras. Rancangan ini didukung oleh diagram ER dan kamus data, meliputi langkah-langkah sebagai berikut: 1. Mengenali tipe entitas 2. Mengenali tipe relasi 3. Mengenali dan mengubungkan atribut dengan entitas atau tipe relasi 4. Menentukan domain atribut 5. Menentukan atribut dari candidate, primary, dan alternate key 19 6. Mempertimbangkan penggunaan konsep enhanced modeling (langkah optional) 7. Memeriksa model terhadap redundancy 8. Memvalidasi model data konseptual dengan pengguna 9. Melihat kembali keseluruhan model data dengan pengguna 2.1.4.2 Perancangan Basis Data Logikal Perancangan basis data logikal adalah proses pembuatan model data yang digunakan oleh perusahaan berdasarkan model data yang spesifik, tetapi terlepas dari DBMS dan pertimbangan fisikal lainnya, yang meliputi langkah-langkah sebagai berikut: 1. Menentukan relasi untuk model data logikal 2. Memvalidasi relasi dengan normalisasi 3. Memvalidasi relasi terhadap transaksi pengguna 4. Memeriksa integrity constraint 5. Melihat kembali model data logikal dengan pengguna 6. Menggabungkan model data logikal ke dalam model global (langkah optional) 7. Memeriksa perkembangan kedepan 8. Output dari tahap perancangan ini menjadi sumber informasi bagi tahap perancangan fisikal 20 2.1.4.3 Perancangan Basis Data Fisikal Pada perancangan basis data logical secara umum membahas mengenai apa saja yang diperlukan dalam proses, sedangkan perancangan basis data fisikal membahas bagaimana proses tersebut dapat berjalan. Perancangan basis data fisikal adalah proses membuat deskripsi implementasi dari database pada secondary storage. Proses ini menggambarkan relasi dasar dan indeks yang digunakan untuk mengakses data dengan efisien, dan masalah integritas dan keamanan data yang berkaitan dengan langkah-langkah sebagai berikut: 1. Menterjemahkan model data untuk DBMS a. Merancang relasi dasar b. Merancang representasi dari data yang diperoleh c. Merancang constraint umum 2. Merancang pengorganisasian file dan indeks a. Menganalisa transaksi b. Memilih pengorganisasian file c. Memilih indeks 3. Memperkirakan kapasitas disk yang dibutuhkan 4. Merancang user views 5. Merancang mekanisme keamanan 6. Mempertimbangkan pengenalan terhadap redundancy yang terkontrol 7. Mengawasi sistem operasional 21 2.1.5 Model Relasi Menurut Silberschatz et al.(2002, p8), model relasional menggunakan kumpulan tabel untuk menampilkan data dan relasi antar data tersebut. Struktur data relasional (Connolly dan Begg, 2005, p72) meliputi: A. Relasi, adalah tabel dengan kolom dan baris yang digunakan untuk menyimpan informasi mengenai obyek yang akan ditampilkan dalam database. B. Atribut, adalah nama kolom yang mewakili relasi antar data. C. Domain, adalah kumpulan nilai yang diperbolehkan untuk satu atribut atau lebih. D. Tuple, mewakili satu baris dari satu relasi antar data. E. Degree, mewakili jumlah atribut/kolom dalam satu tabel. F. Cardinality, mewakili jumlah tuple/baris yang terdapat dalam satu tabel. G. Database Relasional, merupakan kumpulan dari relasi yang telah dinormalisasi. 2.1.5.1 Entity-Relationship Model (E-R Model) Entity-Relationship Model adalah model data berdasarkan persepsi nyata, yang meliputi entitas dan relasi antar entitas tersebut (Silberschatz et al. 2006, p8),. ER Model digunakan untuk menampilkan rancangan conceptual database. Konsep dasar dari ER Model menurut Connolly dan Begg, (2005, p338-357), meliputi: 22 A. Entity Types Entity Types adalah kumpulan obyek yang mempunyai properti sama dan keberadaannya bersifat independen, dapat berupa obyek yang memiliki bentuk fisik (nyata) seperti produk, pelanggan, pegawai, dan dapat berupa obyek yang tidak memiliki bentuk fisik (abstrak) seperti penjualan dan pengalaman kerja. Entity type digambarkan dalam bentuk kotak yang di dalamnya terdapat nama dari entity. Dalam UML, huruf pertama dari setiap nama entity menggunakan huruf kapital. Nama entity Staff Branch Gambar 2.2 Contoh Entity Type B. Relationship Types Relationship Types adalah kumpulan relasi yang ada di antara entity types. Relationship types digambarkan sebagai suatu garis yang menghubungkan entity types, dan memiliki nama relasi. Jumlah dari entity types yang terlibat dalam suatu relasi disebut dengan degree of relationship type. Jumlah entity types yang terlibat bervariasi, ada yang dua (binary relationship), tiga (ternary relationship), dan empat (quaternary relationship). Bila jumlah entity types yang terlibat lebih dari dua, maka digambarkan dalam bentuk permata dengan nama relasi di dalamnya. 23 Nama relasi Staff Mempunyai Branch Gambar 2.3 Contoh Binary Relationship Staff Register Branch Client Gambar 2.4 Contoh Ternary Relationship Solicitor Buyer Arranges Bid Financial Institution Gambar 2.5 Contoh Quaternary Relationship C. Atribut Atribut adalah properti dari suatu entity atau relationship type, menampilkan bagian terpenting dari data yang tersimpan dalam database. Domain atribut adalah kumpulan dari nilai yang diperbolehkan untuk satu atribut atau lebih. Atribut dapat dibedakan menjadi : a. simple attribute, yaitu atribut yang tidak dapat dipecah menjadi atribut yang lebih sederhana. 24 b. composite attribute, yaitu atribut yang dapat dipecah menjadi komponen yang lebih sederhana. c. Atribut single-valued adalah atribut yang memiliki nilai tunggal untuk setiap kejadian pada entity type. d. Atribut multi-valued adalah atribut yang memiliki lebih dari satu nilai unuk setiap kejadian pada entity type. e. Derived attribute adalah atribut yang merepresentasikan sebuah nilai yang didapat dari nilai kumpulan atribut yang saling berhubungan dan tidak harus berasal dari entity type yang sama f. Keys, memberikan karakteristik yang unik untuk setiap tuple/baris. Keys dibedakan menjadi : 1. Candidate Key adalah sejumlah kecil dari atribut yang bersifat unik dan mengidentifikasi setiap kejadian di dalam entity type. Candidate key harus memiliki nilai yang berbeda untuk setiap kejadian di entity type. 2. Primary Key adalah candidate key yang terpilih untuk mengidentifikasi setiap kejadian pada entity type. Candidate key yang tidak menjadi primary key menjadi alternate key. Pemilihan primary key berdasarkan kunikan dan panjang atribut, data yang unik dan lebih panjang lebih dipilih sebagai primary key. 3. Composite Key adalah candidate key yang mengandung dua atribut atau lebih, dimana sifat unik muncul dari kombinasi atribut-atribut yang saling berhubungan itu. 25 4. Foreign Key adalah atribut yang menghubungkan primary key dengan atribut yang terdapat pada entity type yang lain Primary Key Area to list Staff staffNo {PK} name position salary / l ff Manages Has Derived Attribut Branch branchNo {PK} address street city postcode Composit e Attribute Multi-valued attribute Gambar 2.6 Contoh representasi entity dan atributnya Sumber (Connolly dan Begg, 2005, p354) D. Strong and Weak Entity Types Tipe entitas yang kuat adalah entity type yang keberadaannya tidak bergantung pada entity type yang lain. Karakteristiknya adalah setiap kejadian pada entity type dapat diidentifikasi dengan unik yaitu dengan menggunakan primary key dari entity type tersebut, sedangkan tipe entitas yang lemah adalah entity type yang keberadaannya bergantung pada entity type yang lain. Karakteristiknya adalah setiap kejadian pada entity type tidak dapat diidentifikasi dengan unik hanya dengan menggunakan atribut yang berhubungan denga entity type. 26 E. Structural Constraint Multiplicity merupakan batasan struktural yang paling utama dalam relasi (Connolly dan Begg 2005, p356), multiplicity adalah jumlah/jangkauan kejadian yang mungkin terjadi pada entity type dan berhubungan dengan kejadian tunggal dalam entity type yang saling terhubung melalui suatu relasi. Jenis-jenis multiplicity, antara lain: 1. One-to-One (1:1) Relationship Pada One-to-one relationship, satu kejadian entity tunggal hanya dapat berhubungan dengan satu kejadian entity tunggal dari entity yang lain. Staff entity type (staffNo) Manages Relationship type Branch entity type (branchNo) SG5 • • B003 r1 • r2 • SG37 • • B005 Gambar 2.7 Contoh representasi One-to-One (1:1) Relationship Tiap cabang dimanages oleh 1 staff Staff staffNo Tiap staff dapat me-manages 0 atau 1 branch Manages 1..1 0..1 Branch branchNo Multiplicity Gambar 2.8 Multiply One-to-One (1:1) Relationship 27 2. One-to-Many (1:*) Relationship Pada one-to-many relationship, satu kejadian entity tunggal dapat berhubungan dengan lebih dari satu kejadian entity tunggal dari entity yang lain. Staff entity (staffNo) Oversees relationship SG5 • PropertyForRent entity (propertyNo) r1 • r2 • r3 • SG37 • SL21 • • PG21 • PG36 • PA14 • PG4 Gambar 2.9 Contoh representasi One-to-Many (1:*) Relationship Tiap property for rent di-overseen oleh 0 atau 1 staff Staff staffNo Tiap staff dapat mengoversees 0 atau lebih property for rent Oversees 0..1 0..* PropertyForRent propertyNo Gambar 2.10 Multiply One-to-Many (1:*) Relationship 3. Many-to-Many (*:*) Relationship Pada many-to-many relationship, lebih dari satu kejadian entity tunggal dapat berhubungan dengan lebih dari satu kejadian entity tunggal dari entity yang lain. 28 Newspaper entity (newspaperName) Advertises relationship Glasgow Daily • PropertyForRent entity (propertyNo) • PG21 r1 • r2 • r3 • r4 • The West News • Aberdeen Express • • PG36 • PA14 • PG4 Gambar 2.11 Contoh representasi Many-to-Many (*:*) Relationship Tiap property for rent di-advertise-kan oleh 0 atau lebih newspaper Newspaper newspaperName Tiap newspaper dapat meng-advertise 1 atau lebih property for rent Advertises 0..* 1..* PropertyForRent propertyNo Gambar 2.12 Multiply Many-to-Many (*:*) Relationship 2.1.6 Normalisasi Normalisasi adalah suatu teknik untuk membuat kumpulan relasi dengan property yang diinginkan dan dapat memenuhi kebutuhan data dari sebuah perusahaan. Teknik normalisasi terdiri dari (Connolly dan Begg, 2005, p388-409): 29 1. Unnormalized Form (UNF) UNF adalah tabel yang memiliki satu atau lebih kelompok perulangan dan memiliki hasil perhitungan. Kelompok perulangan adalah kumpulan atribut dalam suatu tabel yang memiliki lebih dari satu nilai untuk setiap kejadian entity. 2. First Normal Form (1NF) Suatu relasi dikatakan dalam 1NF jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris. Dalam 1NF, semua repetisi/perulangan dan perhitungan harus dihilangkan. Atribut yang dapat memiliki banyak nilai dideskripsikan dengan entity terpisah. 3. Second Normal Form (2NF) Suatu relasi berada dalam 2NF jika dan hanya jika: a. Berada pada 1NF b. Semua atribut non-primary-key memiliki functional dependency (ketergantungan penuh) terhadap primary key c. Dalam 2NF, semua ketergantungan parsial harus dihilangkan. Ketergantungan parsial adalah ketergantungan antara atribut primary key yang satu dengan atribut primary key yang lain. 4. Third Normal Form (3NF) Suatu relasi dikatakan dalam 3NF jika a. Berada dalam 1NF dan 2NF b. Setiap atribut non-primary-key memiliki transitive dependency (ketergantungan transitif) terhadap primary key. Ketergantungan 30 transitif adalah ketergantungan antara atribut primary key dengan atribut non-primary-key. Sumber Data User Spesifikasi kebutuhan user Laporan yang digunakan atau dibuat oleh perusahaan Sumber yang mendeskripsikan perusahaan, seperti kamus data dan model data Memindahkan atribut ke dalam tabel UNF Menghilangkan kelompok perulangan 1NF Menghilangkan ketergantungan parsial 2NF Menghilangkan ketergantungan transitif 3NF Gambar 2.13 Diagram Proses Normalisasi 2.1.7 Structured Query Language (SQL) Menurut Silberschatz et al.(2002, p45), bahasa query adalah suatu bahasa di mana user meminta informasi dari database. SQL dirancang untuk menggunakan relasi untuk mengubah input menjadi output yang diinginkan. SQL memiliki dua komponen utama (Connolly dan Begg, 2005, p113): a. Data Definition Language (DDL): digunakan untuk menentukan struktur database dan mengontrol akses ke data. Perintah SQL-nya: 31 1. CREATE TABLE: untuk membuat tabel. 2. ALTER TABLE: untuk menambah/memindahkan kolom, menambah/menghapus table constraint, menentukan/menghapus default kolom. 3. DROP TABLE: untuk memindahkan tabel. 4. CREATE VIEW: untuk membuat view. 5. DROP VIEW: untuk memindahkan view. b. Data Manipulation Language (DML): digunakan untuk me-retrieve dan meng-update data. Perintah SQL-nya: 1. SELECT: untuk memilih data dalam database. 2. INSERT: untuk memasukkan data ke dalam tabel. 3. UPDATE: untuk memperbarui data dalam tabel. 4. DELETE: untuk menghapus data dari tabel. 2.1.7.1 Fungsi Aggregate dan Kontrol Akses Fungsi aggregate yang dimiliki SQL: a. COUNT: untuk menampilkan banyak nilai dalam suatu kolom. b. SUM: untuk menampilkan jumlah nilai dalam suatu kolom. c. AVG: menampilkan jumlah nilai rata-rata dalam suatu kolom. d. MIN: untuk menampilkan nilai terkecil dalam suatu kolom. e. MAX: untuk menampilkan nilai terbesar dalam suatu kolom. Kontrol Akses memberikan hak akses yang berbeda untuk kelompok user yang berbeda, terdiri dari: 32 1. GRANT: untuk memberikan hak akses kepada user yang lain. 2. REVOKE: untuk membatalkan pemberian hak akses kepada user. 2.1.8 State Transition Diagram (STD) Menurut Jeffrey A. Et al (1996, p364), State Transition Diagram adalah suatu diagram yang menggambarkan bagaimana suatu proses dihubungkan satu sama lain dalam waktu yang bersamaan. State Transition Diagram digambarkan dengan sebuah state yang berupa komponen sistem yang menunjukkan bagaimana kejadian-kejadian tersebut dari satu state ke state yang lain. Ada dua macam simbol yang menggambarkan proses dalam State Transition Diagram (STD), yaitu : 1. Gambar persegi panjang menunjukkan state dari sistem 2. Gambar panah menunjukkan transisi antar state. Tiap panah diberi label dengan ekspresi aturan. Label yang di atas menunjukkan kejadian yang menyebabkan transisi yang terjadi. Label yang di bawah menunjukkan aksi yang terjadi akibat dari kejadian tadi. 33 Contoh STD : Login Username dan Password Menu Utama Gambar 2.14 Contoh STD 2.2 Teori-teori Khusus 2.2.1 Manajemen dan Produksi Menurut Madura, (2001, p228), manajemen adalah pemanfaatan sumber daya manusia (karyawan) dan sumber-sumber lain (misalnya mesinmesin) dengan cara yang terbaik untuk dapat mencapai rencana-rencana dan sasaran-sasaran perusahaan(Madura, 2001, p228). Proses produksi adalah serangkaian tugas yang menggunakan sumber daya untuk memperoleh barang dan jasa (Madura 2001, p281),. Proses produksi memiliki sumber daya pokok, yaitu sumber daya manusia (karyawan), bahan baku, dan sumber daya lainnya (seperti gudang, mesin, dan perlengkapan). Proses pengawasan produksi meliputi kegiatan-kegiatan sebagai berikut (Madura, 2001, p290): a. Pembelian bahan baku, dalam pembelian bahan baku diperlukan pemilihan supplier yang tepat, dengan memperhatikan karakteristik seperti harga, kecepatan, kualitas, layanan, dan ketersediaan kredit. 34 b. Pengawasan persediaan, proses ini bertujuan mengelola persediaan yang meminimalkan biaya. Pengawasan persediaan ini meliputi: 1. Pengawasan persediaan bahan baku, cara yang paling umum dalam pengawasan bahan baku adalah sistem Just In Time (JIT), yaitu dengan sering memesan bahan baku dalam jumlah kecil. Cara ini menghemat biaya pemeliharaan namun menambah biaya pemesanan, 2. Perencanaan kebutuhan bahan baku (MRP) adalah suatu proses untuk menjamin bahwa bahan baku akan tersedia ketika diperlukan. MRP ini membantu para manajer menentukan jumlah bahan baku spesifik yang harus dibeli setiap saat. 3. Pengawasan persediaan Work-In-Process, proses ini bertujuan untuk mengawasi persediaan dari produk yang telah selesai sebagian. Jika proses ini tidak dilakukan, dapat terjadi kekurangan persediaan selama proses produksi dan mengakibatkan terhentinya proses produksi. 4. Pengawasan persediaan barang jadi, proses ini diperlukan untuk memeriksa kecocokan antara jumlah barang jadi hasil produksi dengan jumlah pesanan. c. Routing, proses ini bertujuan untuk menentukan urutan tugas yang perlu untuk menyelesaikan produksi. d. Penjadwalan, proses ini bertujuan untuk menetapkan waktu untuk mengerjakan tugas dalam proses produksi. Dari kegiatan penjadwalan ini 35 akan didapat jadwal produksi yang memuat rencana waktu dan volume tugas produksi. e. Pengawasan kualitas, proses ini bertujuan untuk menentukan apakah kualitas produk memenuhi tingkat kualitas yang diinginkan. 2.2.2 Manajemen Produksi Menurut Madura (2001, p281), manajemen produksi atau yang disebut juga dengan manajemen operasional adalah pengelolaan suatu proses di mana sumber daya (seperti karyawan dan mesin) digunakan untuk menghasilkan barang dan jasa. Manajemen produksi meliputi kegiatan pengolahan bahan baku dengan memanfaatkan sumber daya yang ada menjadi hasil produksi yang siap digunakan oleh customer.