BAB 2 TINJAUAN PUSTAKA Bab ini berisikan penjelasan singkat tentang hal-hal yang berkaitan dengan analisis dan perancangan aplikasi sistem basis data yang dilakukan. 2.1 Hal Umum Sub Bab ini berisikan penjelasan singkat tentang hal-hal yang berhubungan dengan Basis Data (Database), diantaranya: Data, Entitas (Entity), Basis Data, Sistem Basis Data, Sistem Manajemen Basis Data (Database Management SystemDBMS), Permodelan Hubungan Entitas (Entity Relational Modelling), Siklus Hidup Pengembangan Sistem Basis Data (Database System Development Lifecycle), Normalisasi (Normalization). 2.1.1 Pengertian Data Di dalam sebuah perusahaan atau organisasi, data merupakan hal yang tidak dapat dipisahkan dari semua kegiatan perusahaan atau organisasi tersebut. Menurut Hoffer, et al (2007, p6), data merupakan representasi objek yang disimpan dan halhal yang memiliki makna yang penting dalam lingkup pengguna (user). Berbeda dengan penjelasan sebelumnya, menurut O’brien dan Marakas (2010, p34), data merupakan fakta dan observasi mentah yang mengenai fenomena fisik atau transaksi bisnis. Lebih terperinci, data adalah pengukuran objektif dari atribut (karakteristik) dan entitas. Sedangkan menurut Elmasri dan Navathe (2011, p4), data merupakan fakta yang dapat disimpan dan memiliki makna implisit. 2.1.2 Pengertian Entitas Menurut Connolly dan Begg (2010, p65), entitas merupakan objek yang berbeda, seperti: orang, tempat, benda, konsep, atau kejadian didalam oraganisasi yang dihadirkan dalam database. Sedangkan atribut adalah properti yang menjelaskan beberapa aspek dari objek yang dicatat, dan hubungan (relationship) adalah asosiasi diantara entitas. 2.1.3 Pengertian Basis Data Menurut Connolly dan Begg (2010, p65), basis data merupakan kumpulan dari data yang terhubung secara logis dan merupakan deskripsi dari data yang 6 7 dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. Sebuah basis data yang mempunyai banyak data dapat digunakan secara bersamaan oleh departemen dan pengguna. Dengan demikian basis data bukanlah lagi menjadi milik satu departemen tetapi dapat dihubungkan ke semua sumber daya perusahaan. Basis data juga tidak hanya dapat menyimpan data operasional perusahaan bahkan dapat menyimpan deskripsi dari data tersebut, deskripsi dari data tersebut dinamakan data directory. Dengan alasan itu maka basis data dapat didefinisikan sebagai sebuah selfdescribing of integrated records. Menurut Connolly dan Begg (2010, p91 – 93), terdapat dua bahasa dalam basis data: 1. Data Definition Language (DDL) Bahasa yang memperbolehkan administrator basis data atau pengguna untuk mendeskripsi dan menamai entitas, atribut, dan hubungan yang dibutuhkan untuk aplikasi dan kemanan data. 2. Data Manipulation Language (DML) Bahasa yang menyediakan seperangkat operasi untuk mendukung manipulasi data yang berada pada basis data. Pengoperasian data yang akan dimanipulasi biasanya meliputi: a. Penambahan data baru kedalam basis data (insertion) b. Modifikasi data yang disimpan kedalam basis data (modify) c. Pengambilan data yang terdapat dalambasis data (retrieve) d. Penghapusan data dari basis data (delete) 2.1.4 Pengertian Sistem Basis Data Basis data tidak akan mungkin berjalan tanpa adanya sebuah sistem. Menurut O’ Brien dan Marakas (2010, p26), sistem adalah sekelompok komponen yang saling berhubungan, bekerjasama untuk mencapai tujuan bersama dengan menerima input serta menghasilkan output dalam proses transformasi yang teratur. Berbeda dengan penjelasan O’ Brien dan Marakas, menurut Connolly dan Begg (2010, p53), sistem basis data adalah sekumpulan aplikasi program yang berinteraksi dengan basis data melalui DBMS dan basis data itu sendiri. 2.1.5 Sistem Manajemen Basis Data (DBMS) Menurut Silbertschatz, et al (2011, p1), DBMS merupakan kumpulan data yang saling terkait dan sebuat set program untuk mengakses data tersebut. Kumpulan 8 data tersebut sering dimaksud sebaga basis data yang mengandung informasi yang relevan untuk perusahaan. Menurut Connolly and Begg (2010, p66), DBMS merupakan sistem perangkat lunak yang memungkinkan pengguna untuk menetapkan, membuat, memelihara, dan akses kontrol ke basis data. 2.1.5.1 Komponen DBMS Menurut Connolly dan Begg (2010, p68 - 71), DBMS memiliki lima komponen penting, yaitu: 1. Perangkat Keras (Hardware) Dalam menjalankan aplikasi dan DBMS diperlukan perangkat keras. Perangkat keras dapat berupa single personal computer, single mainframe, sampai jaringan komputer. 2. Perangkat Lunak (Software) Komponen perangkat lunak terdiri dari perangkat lunak DBMS dan program aplikasi beserta sistem operasi, termasuk perangkat lunak jaringan jika DBMS sedang digunakan pada jaringan. 3. Data Data merupakan komponen terpenting dari DBMS dan juga merupakan penghubung antara komponen mesin (perangkat keras dan perangkat lunak) dan komponen human (prosedur dan orang). 4. Prosedur (Procedures) Prosedur merupakan panduan dan instruksi dalam membuat desain dan menggunakan basis data. Penggunaan dari sistem dan staf dalam mengelola basis data membutuhkan prosedur dalam menjalankan sistem dan mengelola basis data itu sendiri. Demikian prosedur di dalam basis data berupa: login di dalam basis data, penggunaan sebagian fasilitas DBMS, cara menjalankan dan memberhentikan DBMS, membuat salinan basis data, memeriksa perangkat keras dan perangkat lunak yang sedang berjalan, mengubah struktur basis data, meningkatkan kinerja atau membuat arsip data pada media penyimpanan sekunder. 9 5. Manusia (People) Komponen terakhir adalah manusia yang terlibat dalam sistem tersebut. Komponen ini meliputi administrator data, administrator basis data, perancang basis data, pengembang aplikasi, dan pengguna akhir. 2.1.5.2 Kelebihan dan Kekurangan DBMS Menurut Connolly and Begg (2010, p77 - 80), DBMS memiliki kelebihankelebihan, diantaranya: 1. Mengontrol redudansi data (Control data redundancy) Pendekatan basis data berupaya mengeliminasi redudansi dengan mengintegrasikan file sehingga beberapa salinan dari data yang sama tidak disimpan. 2. Konsistensi data (Data consistency) Dengan mengeliminasi atau mengontrol redudansi dapat mengurangi resiko ketidak konsistenan yang terjadi. 3. Banyaknya informasi dari data yang sama jumlahnya (More information from the same amount of data) Dengan adanya integrasi pada data operational memungkinkan organisasi untuk memperoleh informasi tambahan dari data yang sama. 4. Berbagi data (Sharing of data) Basis data yang dimiliki organisasi dapat di bagikan oleh seluruh pengguna yang berwenang. 5. Meningkatkan integritas data (Improved data integrity) Integritas basis data mengacu pada validitas dan konsistensi data yang tersimpan. Integrasi memungkinkan administrator basis data menetapkan integritas konstrain dan DBMS yang menegakkannya. 6. Meningkatkan keamanan (Improved security) Keamanan basis data merupakan proteksi basis data dari pengguna yang tidak berwenang. Integrasi memungkinkan administrator basis data untuk menetapkan keamanan basis data dan DBMS yang menegakkannya. 7. Penegakan Standar (Enforcement of standards) Integrasi memungkinkan administrator basis data untuk menetapkan standar yang diperlukan dan DBMS yang menegakkannya. Standar tersebut mencakup departemen, ogranisasi, nasional, atau internasional untuk hal-hal 10 seperti format data untuk memfasilitasi pertukaran data antar sistem, konvensi penamaan, standar dokumentasi, prosedur pembaruan, dan aturan pengaksesan. 8. Skala ekonomi (Economy of scale) Menggabungkan seluruh data operasional organisasi kedalam satu basis data dan membuat sebuah aplikasi yang bekerja di satu sumber data yang dapat menghasilkan penghematan biaya. 9. Keseimbangan ketentuan konflik (Balance of conflicting requirement) Setiap kebutuhan pengguna mungkin terjadi konflik dengan kebutuhan pengguna lainnya. Administrator basis data dapat membuat keputusan tentang perancangan dan penggunaan operasional basis data dengan menyediakan penggunaan sumber yang terbaik untuk organisasi secara keseluruhan.Keputusan tersebut dapat meningkatkan performa aplikasiaplikasi penting. 10. Meningkatkan aksesabilitas dan respon data (Improved data accessibility and responsiveness) Hasil dari integrasi berupa data yang melintasi batasan departemental secara langsung dapat diakses pengguna. Hal ini menghasilkan sistem yang lebih fungsional, sehingga dapat dipakai untuk menyediakan pelayanan yang lebih baik untuk pengguna atau klien organisasi. 11. Meningkatkan produktivitas (Increase productivity) DBMS menyediakan seluruh penanganan file tingkat rendah secara rutin yang ada di program aplikasi. Sehingga memungkinkan programmer untuk berkonsentrasi pada fungsi spesifik yang dibutuhkan oleh pengguna tanpa mengkhawatirkan rincian implementasi tingkat rendah. Beberapa DBMS juga menyediakan alat untuk menyederhanakan pengembangan aplikasi basis data, sehingga dapat meningkatkan produktivitas programmer dan menurunkan waktu pengembangan. 12. Meningkatkan pemeliharaan melalui independensi data (Improved maintenance through data independence) DBMS memisahkan deskripsi data dari aplikasi, hal ini dikenal dengan independensi data. Penyediaan independensi data dapat menyederhanakan pemeliharaan basis data. 11 13. Meningkatkan konkurensi (Increased concurrency) DBMS mengatur konkurensi akses basis data untuk menanggulangi pengaksesan berkas yang sama secara simultan oleh pengguna yang mengakibatkan hilangnya informasi dan integritas. 14. Meningkatkan pengembalian dan pemulihan pelayanan (Improved backup and recovery secvices) DBMS menyediakan fasilitas untuk meminimalisasi jumlah proses yang hilang akibat kegagalan. Menurut Connolly and Begg (2010, p80 - 81), DBMS memiliki kekurangankekurangan , diantaranya: 1. Kompleksitas (Complexity) Perancang dan pengembang basis data, administrator data dan basis data, dan pengguna harus mengerti fungsionalitas DBMS agar mendapatkan keuntungan secara penuh. Apabila terjadi kesalahan dalam pemahaman sistem dapat menyebabkan rancangan keputusan yang buruk, yang dapat berakibat seruis untuk organisasi. 2. Ukuran (Size) Fungsionalitas yang kompleks membuat DBMS menjadi perangkat lunak yang berukuran besar, sehingga membutuhkan tempat yang besar pada disk space dan memori agar dapat berjalan secara efisien. 3. Biaya DBMS (Cost of DBMS) Biaya DBMS bervariasi secara signifikan, tergantung dari cakupan dan fungsionalitas yang disediakan. Selain itu biaya pemeliharaan tahunan yang berupa persentase dari daftar harga. 4. Tambahan biaya perangkat keras(Additional hardware cost) Kebutuhan tempat penyimpanan untuk DBMS dan basis data memungkinkan untuk pembelian tempat penyimpanan tambahan. Pembelian tempat penyimpanan tambahan mengakibatkan pengeluaran yang lebih besar. 5. Biaya konversi (Cost of conversion) Dalam beberapa situasi, biaya DBMS dan perangkat keras tambahan tidak sebanding dengan biaya konversi aplikasi yang sedang berjalan untuk dijalankan di DBMS dan perangkat keras yang baru. Biaya tersebut termasuk biaya pelatihan karyawan untuk memakai sistem yang baru, dan 12 kemungkinan mempekerjakan karyawan ahli untuk membantu konversi dan menjalanan sistem. 6. Kinerja (Performance) DBMS dibuat lebih umum untuk dapat melayani banyak aplikasi dibanding hanya satu aplikasi. Hasilnya beberapa aplikasi yang mungkin tidak berjalan secepat sebelumnya. 7. Dampak yang lebih hebat dari sebuah kegagalan (Greater impact of failure) Pemusatan sumber daya menimbulkan kerentanan sistem. Karena semua pengguna dan aplikasi bergantung pada ketersediaan DBMS, jika terjadi kesalahan menyebabkan operasi menjadi terhenti. 2.1.5.3 Fungsi DBMS Menurut Connolly and Begg (2010, p100 - 104), DBMS memiliki fungsifungsi, diantaranya: 1. Penyimpanan, pengambilan, dan pembaruan data (Data storage, retreival, and update) DBMS harus melengkapi pengguna dengan kemampuan untuk menyimpan, mengambil, dan memperbarui data pada basis data. 2. Katalog yang dapat diakses pengguna (A user-accessible catalog) DBMS harus memberikan katalog yang berisikan deskripsi data yang disimpan dan dapat diakses pengguna. 3. Dukungan transaksi (Transaction support) DBMS harus menyediakan mekanisme yang memastikan semua pembaruan sesuai dengan transaksi yang dibuat atau transaksi yang tidak dibuat. 4. Layanan kontrol konkurensi (Concurrency control services) DBMS harus menyediakan mekanisme yang meyakinkan bahwa basis data diperbarui secara benar ketika banyak pengguna memperbarui basis data secara bersamaan. 5. Layanan perbaikan (Recovery services) DBMS harus menyediakan mekanisme untuk memperbaiki basis data saat terjadi kerusakan dengan cara apapun. 6. Layanan autorisasi (Autorization services) DBMS harus menyediakan mekanisme untuk meyakinkan bahwa hanya pengguna yang terautorisasi yang dapat mengakses basis data. 13 7. Dukungan komunikasi data (Support for data communication) DBMS harus dapat berintegrasi dengan komunikasi perangkat lunak, dapat mengakses basis data dari lokasi yang jauh. 8. Layanan integritas (Integrity services) DBMS harus menyediakan cara untuk meyakinkan bahwa data ada dalam basis data dan perubahan pada data mengikuti aturan tertentu. 9. Layanan untuk meningkatkan independensi data (Services to promote data independence) DBMS harus memiliki fasilitas untuk mendukung kemandirian program dari struktur basis data yang sebenarnya. 10. Layanan utilitas(Utility services) DBMS harus menyediakan sebuah set layanan utilitas, seperti program analisis statistik, pengawasan fasilitas, fasilitas reorganisasi indeks, dan lainlain. 2.1.6 Permodelan Hubungan Entitas (Entity Relational Modelling) Menurut Connolly dan Begg (2010, p371), permodelan hubungan entitas merupakan model untuk memastikan pemahaman yang tepat terhadap data dan bagaimana penggunaannya di dalam suatu perusahaan. 2.1.6.1 Entity Types Menurut Connolly dan Begg (2010, p372), Entity Types merupakan sekumpulan objek dengan sifat yang sama yang diidentifikasikan oleh perusahaan dan keberadaanya independent. Sedangkan entity occurance merupakan objek dari tipe entitas yang diidentifikasikan secara unik. Menurut Connolly dan Begg (2010, p383 – p384), entitas dapat diklasifikasikan menjadi dua tipe, yakni: 1. Strong Entity Entitas yang tidak bergantung pada entitas lain karena entitas tersebut diidentifikasikan dengan menggunakan primary key. 2. Weak Entity Type Entitas yang bergantung pada entitas lain karena entitas tersebut diidentifikasikan dengan menggunakan primary key. 14 2.1.6.2 Relationship Types Menurut Connolly dan Begg (2010, p374), relationship types merupakan sekumpulan hubungan antara satu atau lebih entitas yang ada dan mempunyai arti. Setiap relationship types diberi nama sesuai dengan fungsinya. Sedangkan relationship occurance merupakan suatu hubungan unik antara satu atau lebih entitas yang teridentifikasi dalam entity types. 2.1.6.3 Atribut Menurut Connolly dan Begg (2010, p379 - 381), atribut merupakan sifat-sifat dari sebuah entity types atau relationship types. Atribut domain adalah kumpulan nilai yang diperbolehkan untuk salah satu atau lebih atribut. Atribut dapat dibagi menjadi tiga, yakni: 1. Simple / Composite Attributess Simple attribute merupakan atribut yang terdiri dari satu komponen tunggal yang keberadaaanya berdiri sendiri. Simple attributed disebut juga denga atomic atribute. Composite attribute merupakan atribut yang terdiri dari beberapa komponen yang keberadaanya berdiri sendiri. 2. Single / Multi-Valued Attributes Single Attributes merupakan atribut yang mempunyai nilai tungal untuk setiap kejadian atau sebuah entity types. Multi-Valued Attributes merupakan artibut yang mempunyai beberapa nilai untuk setiap kejadian atau sebuah entity types. 3. Derived Attribute Derived attribute merupakan atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut lainnya, dan tidak harus berasal dari entitas yang sama. 2.1.6.4 Keys Menurut Connolly dan Begg (2010, p381), Candidate keys merupakan sejumlah kecil atribut yang mengidentifikasi setiap kejadian dari entitas tersebut secara unik. Primary key adalah candidate key yang dipilih sebagai kunci primer untuk mengidentifikasikan setiap entitas secara unik. Alternate key merupakan candidate key yang tidak dipilih menjadi primary key. 15 2.1.6.5 Structural Constraint Menurut Connolly dan Begg (2010, p356 - 392), Constraint merupakan gambaran batasan dari relationship sebagai suatu tanggapan dalam dunia nyata. Tipe utama dari constraint dalam sebuah relationship adalah multiplicity. 2.1.6.5.1 Multiplicity Multiplicity merupakan sejumlah kejadian yang mungkin terjadi pada sebuah tipe entitas yang berhubungan ke sebuah kejadian dari tipe entitas lain pada suatu relationship. Jenis yang biasa digunakan dalam suatu relationship adalah binary relationship, yang terdiri atas: 1. One-to-One (1:1) Relationship Kondisi saat setiap anggota entitas A hanya boleh berpasangan dengan satu anggota dari entitas B, dan sebalikanya setiap anggota entitas B hanya boleh berpasangan dengan satu anggota dari entitas A. 2. One-to-Many (1:*) Relationship Kondisi saat setiap anggota entitas A boleh berpasangan dengan lebih dari satu anggota entitas B, dan sebalikanya setiap anggota entitas B boleh berpasangan dengan lebih dari satu anggota entitas A. 3. Many-to-Many (*:*) Relationship Kondisi saat banyak anggota entitas A boleh berpasangan dengan lebih dari satu anggota entitas B, dan sebalikanya banyak anggota entitas B boleh berpasangan dengan lebih dari satu anggota entitas A. Multiplicity terdiri dari dua constrain yang berbeda, yakni: 1. Cardinality, menggambarkan jumlah maksimum dari kemungkinan batasan sebuah entitas yang ikut berpartisipasi dalam sebuah relasi. 2. Participant, menentukan apakah semua atau beberapa entity occurance yang ikut serta dalam sebuah relationship. 2.1.7 Siklus Hidup Pengembangan Sistem Basis Data (Database System Development Lifecycle-DBLC) Menurut Connolly dan Begg (2010, p313), sistem database adalah komponen fundamental dari sistem informasi organisasi, siklus hidup pengembangan sistem basis data secara inheren diasosiasikan dengan siklus hidup sistem informasi. 16 Gambar 2.1 Tahap-tahap siklus hidup database. 2.1.7.1 Perencanaan basis data (Database Planning) Menurut Connolly dan Begg (2010, p313), perencanaan basis data merupakan aktivitas manajemen yang memperbolehkan tahapan-tahapan siklus hidup pengembangan sistem basis data direalisasikan seefisien dan seefektif mungkin. Perencanaan basis data harus terintegrasi dengan strategi sistem informasi dari organisasi. Ada tiga hal utama yang perlu diperhatikan dalam memformulasikan strategi sistem informasi, yaitu: 1. Identifikasi rencana dan sasaran perusahaan dengan ketentuan selanjutnya dari kebutuhan sistem informasi; 2. Evaluasi sistem informasi yang sedang berjalan untuk menentukan kelebihan dan kekurangan yang ada; 3. Penilaian kesempatan teknologi informasi yang mungkin memberikan keuntungan yang kompetitif. 17 Menurut Connolly dan Begg (2010, p320 - 325), terdapat tiga pendekatan dalam perencanaan basis data, yakni: 1. Bottom-Up Pendekatan Bottom-Up dimulai dari atribut dasar, dengan menganalisa hububungan antar atribut, yang dikelompokkan ke dalam suatu relasi yang merepresentasikan tipe entitas dan relationship antara entitasentitas. 2. Top-Down Pendekatan Top-Down dimulai dengan pengembangan model data yang berisi beberapa entitas tingkat tinggi dan relationship dan kemudian menggunakan pendekatan top-down secara berurutan untuk mengidentifikasi entitas tingkat rendah. 3. Insisde-Out Pendekatan inside-out berhubungan dengan pendekatan bottom-up, perbedaannya adalah pendekatan ini mengidentifikasikan sekumpulan entitas utama dan kemudian menyebar ke entitas yang lain, relationship, dan atribut yang berkaitan dengan hal-hal yang sudah diidentifikasikan sebelumnya. 4. Mixed Strategy Pendekatan mixed strategy menggunakan pendekatan bottom-up dan topdown untuk bagian model yang berbeda sebelum akhirnya menggabungkan semua bagian. 2.1.7.2 Pendefinisian sistem (System Definition) Menurut Connolly dan Begg (2010, p313), tahap ini mendefinisikan cakupan dan batasan sistem basis data, termasuk pandangan pengguna (user view), penggunapenggunanya, dan area-area aplikasi. User view bertujuan untuk mendefinisikan apa yang dibutuhkan sistem basis data dari perspektif beberapa peran pekerjaan (seperti manajer atau pengawas) atau area aplikasi perusahaan (seperti bagian penjualan, personalia, ataupun stock control). 2.1.7.3 Analisis dan pengumpulan kebutuhan (Requirements collection and analysis) Menurut Connolly dan Begg (2010, p313), Analisis dan pengumpulan kebutuhan merupakan proses mengumpulkan dan menganalisis informasi tentang 18 bagian dari organisasi yang akan didukung oleh sistem basis data, dan informasi tersebut digunakan untuk identifikasi kebutuhan-kebutuhan untuk sistem yang baru. Informasi tersebut dikumpulkan untuk setiap user view, termasuk: a. Deskripsi data yang digunakan atau dihasilkan; b. Detail bagaimana data digunakan dan dihasilkan; c. Persyaratan tambahan untuk sistem basis data baru. 2.1.7.4 Perancangan basis data (Database design) Menurut Connolly dan Begg (2010, p320), Perancangan basis data merupakan proses membuat rancangan yang akan mendukung misi laporan dan misi objektif perusahaan untuk kebutuhan sistem basis data. 2.1.7.4.1 Perancangan basis data konseptual (Conceptual database design) Menurut Connolly dan Begg (2010, p322), Perancangan basis data konseptual merupakan proses membangun sebuah model dari data yang digunakan di perusahaan, independen dari semua pertimbangan-pertimbangan fisik. Tahap 1 : Membangun model data konseptual Menurut Connolly dan Begg (2010, p470), tahap ini bertujuan untuk membangun satu atau lebih model data konseptual yang sesuai dengan kebutuhan data dari perusahaan. 1.1 Mengidentifikasi tipe entitas Menurut Connolly dan Begg (2010, p471), langkah pertama membangun model data konseptual dengan mendefinisikan objekobjek utama pengguna. Objek-objek ini merupakan tipe-tipe entitas untuk model tersebut. Salah satu metode untuk mengidentifikasi entitas adalah dengan memeriksa spesifikasi kebutuhan pengguna dengan mengidentifikasi kata benda. Contohnya adalah staff number, staff name, property number, property room dan sebagainya. 1.2 Mengidentifikasi tipe relasi Menurut Connolly dan Begg (2010, p472 - 474), langkah kedua membangun model data konseptual dengan mengidentifikasikan semua relasi-relasi penting yang ada diantara tipe entitas yang telah diidentifikasikan. Setelah mengidentifikasikan relasi, langkah selanjutnya yaitu menentukan multiplicity dari setiap relasi. Batasan 19 multiply digunakan untuk memeriksa dan memelihara kualitas data, misalnya: One-to-One (1:1), One-to-Many (1:*), Many-to-Many (*.*). 1.3 Mengidentifikasi dan menghubungkan atribut dengan entitas atau tipe relasi Menurut Connolly dan Begg (2010, p379), langkah ketiga membangun model data konseptual dengan mengidentifikasi atributatribut yang terdapat dalam suatu entitas. Biasanya berupa kata benda atau frasa kata benda dari spesifikasi kebutuhan pengguna. Atribut dapat diklasifikasikan menjadi: simple atau composite, single-valued atau multi-valued, dan derived. 1.4 Menentukan domain atribut Menurut Connolly dan Begg (2010, p478), langkah keempat membangun model data konseptual dengan menentukan domain atribut di model data konseptual lokal. Sebuah model data yang baik menentukan domain untuk setiap atribut dan termasuk memperbolehkan sekumpulan nilai-nilai untuk atribut juga ukuran dan format dari atribut. 1.5 Menentukan atribut candidate key , primary key, dan alternate key Menurut Connolly dan Begg (2010, p479 - 480), Langkah kelima ini bertujuan untuk mengidentifikasi candidate key untuk setiap tipe entitas, jika terdapat lebih dari satu candidate key kemudian pilih salah satunya menjadi primary key. Candidate key adalah kunci yang unik atau tidak mungkin sama atau berbeda dengan yang lain, dapat dipakai untuk mengidentifikasi satu baris dalam tipe entitas. Primary key adalah candidate key yang dipilih sebagai kunci primer untuk mengidentifikasikan setiap entitas. Alternate key merupakan candidate key yang tidak dipilih menjadi primary key. 1.6 Mempertimbangkan penggunaan enhanced modeling concepts (optional) Menurut Connolly dan Begg (2010, p480 - 481), Langkah keenam ini bertujuan untuk mempertimbangkan penggunaan enhanced modeling aggregation, concepts dan seperti composition. specialization/generalization, Jika memilih pendekatan specialization, usahakan untuk memperhatikan perbedaan antara 20 entitas dengan mendefinisikan satu atau lebih subclass dari sebuah entitas superclass. Jika memilih menggunakan pendekatan generalization, usahakan untuk mengidentifikasikan fitur-fitur umum antara entitas untuk mendefinisikan generalisasi entitas superclass. Pendekatan aggregation digunakan untuk mempresentasikan hubungan “mempunyai sesuatu” atau “bagian dari” relasi antara mempresentasikan “bagiannya”. tipe-tipe entitas, “keseluruhan” Pendekatan dan composition dimana yang yang lain digunakan satu sebagai untuk mempresentasikan sebuah asosiasi antara tipe-tipe entitas dimana terdapat kepemilikan yang kuat dan keterhubungan antara “keseluruhan” dan “bagiannya”. 1.7 Mengecek redudansi pada model Menurut Connolly dan Begg (2010, p482 - 483), Langkah ketujuh ini bertujuan untuk memeriksa model data konseptual lokal, apakah masih ada redudansi pada model.Ada 3 aktivitas pada tahap ini yaitu: a. Memeriksa kembali hubungan one-to-one (1:1) Pada saat mengidentifikasi entitas, kemungkinan akan teridentifikasi 2 entitas yang merepresentasi objek yang sama dalam perusahaan. Untuk itu, kedua entitas tersebut harus digabung bersama. Jika primary key kedua entitas berbeda, pilih salah satu untuk dijadikan primary key dan yang lainnya sebagai alternate key. b. Menghilangkan hubungan redundansi Suatu relasi dikatakan redudansi jika informasi yang sama dapat diperbolehkan melalui relasi yang lain. Data model yang baik seminimal mungkin tidak memiliki relasi yang redundan. c. Mempertimbangkan dimensi waktu Dimensi waktu adalah hal yang paling penting dalam menilai redundasi. 1.8 Memvalidasi model data konseptual dengan transakasi pengguna Menurut Connolly dan Begg (2010, p483 - 485), Langkah kedelapan ini bertujuan untuk memastikan model data konseptual telah mendukung transaksi yang dibutuhkan oleh perusahaan. Berikut ini 21 dua macam pendekatan untuk memastikan bahwa model data konseptual benar-benar mendukung transaksi, yaitu: 1.9 a. Mendeskripsikan transaksi-transaksi; b. Menggunakan jalur-jalur transaksi. Meninjau kembali model data konseptual dengan pengguna Menurut Connolly dan Begg (2010, p485), Langkah kesembilan ini bertujuan untuk meninjau ulang kembali model data konseptual dengan pengguna untuk meyakinkan bahwa model tersebut sesuai dengan kebutuhan data perusahaan. Proses ini akan terus diulang sampai model data tersebut benar-benar menjadi representasi aktual dari perusahaan. 2.1.7.4.2 Perancangan basis data logikal (Logical database design) Menurut Connolly dan Begg (2010, p323), perancangan basis data logikal merupakan proses membangun sebuah model dari data yang digunakan perusahaan berdasarkan pada model data yang spesifik, tetapi independen dari DBMS tertentu dan pertimbangan fisik lain. Hampir sama dengan penjelasan Connoly dan Begg, menurut Indrajani (2010, p206), Perancangan basis data logikal adalah proses membangun suatu model dari informasi yang digunakan dalam sebuah perusahaan berdasarkan sebuah model data yang spesifik tetapi terbebas dari DBMS tertentu dan pertimbangan fisikal lainnya. Tahap 2 : Membangun model data logikal Menurut Connolly dan Begg (2010, p490), tahap ini bertujuan untuk menerjemahkan model data konseptual menjadi model data logikal dan kemudian memvalidasi model ini untuk mengecek apakah model ini terstruktur secara benar dan dapat untuk mendukung kebutuhan transaksi. 2.1 Menurunkan relasi untuk model data logikal Menurut Connolly dan Begg (2010, p492), langkah pertama ini bertujuan untuk membuat relasi untuk model data logikal untuk merepresentasikan entitas, hubungan (relationship), dan atribut yang teridentifikasi. Berikut ini adalah cara bagaimana relasi diturunkan untuk mengikuti struktur yang ada pada model data konseptual: a. Tipe entitas kuat; b. Tipe entitas lemah; 22 2.2 c. Tipe relasi biner one-to-many(1:*); d. Tipe relasi biner one-to-one(1:1); e. Tipe relasi rekursif one-to-one(1:1); f. Tipe relasi superclas/subclass; g. Tipe relasi biner many-to-many(*:*); h. Tipe relasi kompleks; i. Atribut Multi-Valued. Validasi menggunakan normalisasi Menurut Connolly dan Begg (2010, p501), langkah kedua ini bertujuan untuk memvalidasi kumpulan atribut pada masing-masing relasi menggunakan aturan normalisasi. Normalisasi digunakan untuk memastikan relasi dan atribut yang mendukung kebutuhan dari perusahaan. Juga relasi harus memiliki redudansi data yang minimal untuk menghindari masalah yang mungkin terjadi. 2.3 Validasi relasi untuk transaksi pengguna Menurut Connolly dan Begg (2010, p502), langkah ketiga ini bertujuan untuk meyakinkan bahwa relasi pada data model logikal mendukung kebutuhan transaksi. Validasi transaksi ini sudah dilakukan pada langkah 1.8, namun kembali dilakukan untuk memeriksa relasi-relasi yang telah dibuat pada langkah sebelumnya juga mendukung transaksi ini. Juga untuk memastikan tidak terdapat kesalahan dalam pembuatan relasi-relasi. 2.4 Memeriksa integrity constraints Menurut Connolly dan Begg (2010, p502 - 505), langkah keempat ini bertujuan untuk memeriksa apakah integrity constraints ada dalam model data logikal. Integrity constraints adalah batasan-batasan yang digunakan untuk menjaga basis data agar tetap konsisten. Berikut adalah tipe-tipe integrity constraints: a. Required data Beberapa atribut harus mengandung sebuah nilai yang benar, atribut-atribut tersebut tidak diperbolehkan kosong (null). b. Batasan domain atribut Setiap atribut memiliki sebuah domain, yaitu sekumpulan nilai yang sah. 23 c. Multiplicity Multiplicity menyediakan batasan-batasan yang ditempatkan pada relationship diantara data pada basis data. d. Entity integrity Primary key dari sebuah entitas tidak boleh bernilai kosong (null). Setiap baris harus mempunyai sebuah primary key. e. Referential integrity Jika suatu foreign key memiliki nilai, maka nilai tersebut harus menunjukkan ke sebuah baris yang ada pada relasi induk(parent). f. General constraints Perubahan entitas mungkin diatur oleh batasan yang mengatur transaksi “dunia-nyata”. 2.5 Meninjau kembali model data logikal dengan pengguna Menurut Connolly dan Begg (2010, p506), langkah kelima ini bertujuan untuk meyakinkan pengguna apakah model tersebut sesuai dengan kebutuhan data dari perusahaan. 2.6 Menggabungkan model data logikal ke dalam model global (optional) Menurut Connolly dan Begg (2010, p506 - 507), langkah keenam ini bertujuan untuk menggabungkan model data logikal lokal ke dalam data model global logikal yang mewakili semua sudut pandang pengguna pada basis data. Aktivitas dalam tahap ini, yaitu : a. Menggabungkan model data logikal lokal ke dalam model global; 2.7 b. Validasi model data logikal global; c. Meninjau kembali model data logikal global dengan user. Memeriksa perkembangan masa mendatang Menurut Connolly dan Begg (2010, p517), langkah ketujuh ini bertujuan untuk menentukan apakah ada perubahan yang signifikan di masa mendatang dan untuk memperkirakan apakah model data logikal bisa mengakomodasi perubahan tersebut. 24 2.1.7.4.3 Perancangan basis data fisikal (Physical database design) Menurut Connolly dan Begg (2010, p324), perancangan basis data fisikal merupakan proses memproduksi deskripsi dari pengimplementasian basis data pada penyimpanan sekunder, juga menjelaskan relasi dasar, pengaturan berkas dan indeks yang digunakan untuk mencapai akses data yang efisien, dan terkait integrity constraint dan keamanan. Tahap 3 : Membangun model data fisikal Menurut Connolly dan Begg (2010, p524), tahap ini bertujuan untuk memproduksi skema basis data relasional dari model data logikal yang dapat diterapkan pada DBMS pilihan. 3.1 Merancang relasi dasar Menurut Connolly dan Begg (2010, p525), langkah pertama ini bertujuan untuk menentukan bagaimana membuat relasi dasar diidentifikasi dalam model data logikal pada DBMS pilihan. 3.2 Merancang data turunan Menurut Connolly dan Begg (2010, p525), langkah kedua ini bertujuan untuk menentukan bagaimana membuat data turunan ada didalam model data logikal pada DBMS pilihan. 3.3 Merancang batasan umum Menurut Connolly dan Begg (2010, p525), perubahan dapat terjadi pada relasi. Pada langkah ketiga ini perubahan tersebut dapat dibatasi oleh integrity constraints yang mengatur transaksi dalam “dunia- nyata”. Perancangan batasan ini tergantung pada pemilihan DBMS yang akan digunakan. Tahap 4 : Merancang organisasi file dan indeks Menurut Connolly dan Begg (2010, p528), tahap ini bertujuan untuk menentukan organisasi file yang optimal untuk menyimpan relasi dasar dan indeks yang dibutuhkan untuk dapat memperoleh pencapaian terbaik, yaitu dengan cara dimana relasi dan baris (tuple) disimpan dalam penyimpanan sekunder. 4.1 Analisis transaksi Menurut Connolly dan Begg (2010, p529), langkah pertama ini bertujuan untuk mengerti fungsionalitas dari transaksi yang akan dijalankan pada basis data dan untuk menganalisis transaksi penting. 25 4.2 Memilih organisasi file Menurut Connolly dan Begg (2010, p534), langkah kedua ini bertujuan untuk menentukan organisasi file yang efisien untuk masing-masing relasi dasar. 4.3 Memilih indeks Menurut Connolly dan Begg (2010, p535), langkah ketiga ini bertujuan untuk menentukan apakah indeks tambahan akan meningkatkan kemampuan sistem. 4.4 Memperkirakan kebutuhan tempat penyimpanan Menurut Connolly dan Begg (2010, p541), langkah ketiga ini bertujuan untuk memperkirakan besaran tempat penyimpanan yang akan dibutuhkan oleh basis data. Tahap 5 : Merancang user views Menurut Connolly dan Begg (2010, p542), tahap ini bertujuan untuk merancang user view yang diidentifikasi selama pengumpulan kebutuhan dan tahapan analisis siklus hidup pengembangan sistem basis data. Tahap 6 : Merancang mekanisme keamanan Menurut Connolly dan Begg (2010, p542 - 543), tahap ini bertujuan untuk merancang mekanisme keamanan yang diidentifikasi selama pengumpulan kebutuhan dan tahapan analisis siklus hidup pengembangan sistem basis data. Membatasi pengaksesan basis data oleh penguna yang tidak berhak dan menspesifikasikan basis data yang dapat diakses oleh pengguna. Tahap 7 : Mempertimbangkan petunjuk controlled redudancy Menurut Connolly dan Begg (2010, p545 - 546), tahap ini bertujuan untuk menentukan apakah petunjuk redundansi pada aturan normalisasi akan meningkatkan kemampuan sistem. Tahap 8 : Memantau dan memperbaiki sistem operasional Menurut Connolly dan Begg (2010, p558), tahap ini bertujuan untuk memantau sistem operasional dan meningkatkan kemampuan sistem dengan memperbaiki rancangan yang tidak sesuai atau perubahan kebutuhan. 26 2.1.7.5 Pemilihan DBMS (DBMS selection) Menurut Connolly dan Begg (2010, p325), pada tahapan ini terjadi pemilihan DBMS yang sesusai untuk mendukung sistem basis data. Pemilihan DBMS ini terjadi antara fase perancangan konseptual dan logikal basis data. Menurut Connolly dan Begg (2010, p325 - 329), langkah utama dalam memilih DBMS adalah: a. Menggambarkan kerangka acuan pembelajaran; b. Mendaftar dua atau tiga produk; c. Mengevaluasi produk; d. Merekomendasikan pilihan dan memproduksi laporan. 2.1.7.6 Perancangan aplikasi (Application design) Menurut Connolly dan Begg (2010, p329), perancangan aplikasi merupakan perancangan antarmuka pengguna dan program aplikasi yang menggunakan dan memproses basis data. Perancangan aplikasi dilakukan secara paralel dengan perancangan basis data. Ada 2 aspek dalam perancangan aplikasi, yaitu: 1. Perancangan transaksi (transaction design) Menurut Connolly dan Begg (2010, p330), Transaksi adalah sebuah tindakan atau serangkaian tindakan yang dilakukan oleh seorang penguna atau program aplikasi yang mengakses atau mengubah isi dari basis data. Fungsi dari perancangan transaksi adalah untuk menetapkan dan mendokumentasikan karakteristik high-level dari suatu transaksi yang dibutuhkan pada basis data, yaitu: 2. a. Data yang akan digunakan oleh transaksi; b. Karakteristik fungsional dari transaksi; c. Output dari transaksi; d. Kepentingannya bagi pengguna; e. Tingkat pemakaian yang diharapkan. Pedoman perancangan antarmuka pengguna (User interface design guidelines) Menurut Connolly dan Begg (2010, p331–333), sebelum mengimplementasikan suatu form atau report, sangat penting untuk 27 merancang tata letaknya terlebih dahulu. Beberapa pedoman untuk merancang form atau report, yaitu: a. Judul yang bermakna. b. Instruksi yang dapat dipahami. c. Pengelompokan logikal dan field yang berurutan. d. Tampilan layout form atau report menarik. e. Nama field mudah dikenali. f. Terminologi dan penggunaan singkatan yang konsisten. g. Penggunaan warna yang konsisten. h. Ruang dan batasan tempat untuk data-entry terlihat. i. Pergerakan kursor yang mudah. j. Koreksi kesalahan untuk satu karakter atau seluruh field. k. Pesan kesalahan ditampilkan untuk nilai yang tidak dapat diterima. l. Field yang bersifat opsional diberi tanda yang jelas. m. Penjelasan pesan untuk setiap field. n. Pemberian suatu tanda jika proses telah selesai. 2.1.7.7 Prototyping Menurut Connoly dan Begg (2010, p333), prototyping merupakan proses membangun sebuah model pekerja dalam sistem basis data. Sedangkan prototype adalah model kerja yang tidak secara normal memiliki seluruh fitur yang diperlukan dan memberikan seluruh fungsionalitas dari sistem akhir. Ada dua macam strategi prototyping yang digunakan sekarang ini, yaitu: Requirements prototypingdan Evolutionary prototyping. Requirements prototyping menggunakan prototype untuk menentukan kebutuhan dari sistem basis data yang diinginkan dan ketika kebutuhan itu terpenuhi maka prototype akan dibuang. Evolutionary prototyping digunakan untuk tujuan yang sama dengan requirement prototyping, perbedaannya yaitu prototype yang digunakan tidak dibuang melainkan dikembangkan lebih lanjut menjadi sistem basis data yang digunakan. 2.1.7.8 Implementasi (Implementation) Menurut Connoly dan Begg (2010, p333 - 334), implementation merupakan perwujudan fisikal dari perancangan basis data dan aplikasi. Implementasi basis data dapat dicapai menggunakan DDL dari DBMS yang dipilih atau Graphical User 28 Interface (GUI). Pernyataan DDL digunakan untuk menciptakan struktur-struktur basis data dan file basis data yang kosong. Semua spesifikasi tampilan pengguna juga diimplementasikan pada tahap ini. Selain itu, Implementasi program aplikasi dicapai menggunakan 3GL atau 4GL. Bagian dari program aplikasi adalah basis data transaksi yang diimplementasikan dengan menggunakan DML atau ditambahkan pada bahasa pemrograman lain. 2.1.7.9 Konversi dan pemuatan data(Data convertion and loading) Menurut Connoly dan Begg (2010, p334), konversi dan pemuatan data merupakan sebuah proses memindahkan data yang ada kedalam basis data baru dan merubah aplikasi yang ada untuk dijalankan pada basis data yang baru. Tahap ini dibutuhkan hanya ketika sebuah databse baru menggantikan database lama. 2.1.7.10 Pengujian (Testing) Menurut Connoly dan Begg (2010, p334 - 335), tahap pengujian merupakan proses menjalankan sistem basis data dengan maksud untuk mencari kesalahan (error). Sebenarnya, tahap ini tidak dapat menunjukkan adanya kesalahan, melainkan hanya dapat menampilkan kesalahan perangkat lunak yang terjadi. Tahap ini menunjukkan bahwa basis data dan program aplikasi muncul untuk bisa bekerja sesuai dengan spesifikasi dan persyaratan bahwa kinerja sesuai yang diharapkan. 2.1.7.11 Pemeliharaan operasional (Operational Maintenance) Menurut Connoly dan Begg (2010, p335 - 336), Pemeliharaan operasional proses memantau dan memelihara sistem basis data setelah instalasi. Berikut ini adalah aktivitas yang dilakukan pada tahap pemeliharaan operasional: a. Pengawasan kinerja sistem, jika kinerja menurun maka memerlukan perbaikan atau pengaturan ulang basis data. b. Pemeliharaan dan pembaharuan sistem basis data (jika dibutuhkan). Kebutuhan yang baru tergabung ke dalam sistem basis data melalui tahapan dari siklus sebelumnya. 2.1.8 Normalisasi (Normalization) Menurut Connolly dan Begg (2010, p416), normalisasi merupakan suatu teknik untuk memproduksi suatu set hubungan dengan sifat yang diinginkan, memberikan kebutuhan data perusahaan. Tujuan dari normalisasi adalah 29 mengidentifikasi suatu set kecocokkan antara hubungan yang mendukung dengan persyaratan perusahaan dan menghilangkan redudansi data. Menurut Indrajani(2011, p77), karakteristik hubungan tersebut mencakup minimal jumlah atribut yang diperlukan untuk mendukung kebutuhan perusahaan, atribut dengan hubungan logika yang menjelaskan mengenai ketergantunan fungsional, dan minimal duplikasi untuk setiap atribut. Berikut adalah tahapan-tahapan proses normalisasi: 1. Unnormalized Form (UNF) Menurut Connolly dan Begg (2010, p430), UNF merupakan sebuah tabel yang mempunyai satu atau lebih kelompok data yang berulang. 2. First Normalized Form (1NF) Menurut Connolly dan Begg (2010, p. 430), 1NF merupakan sebuah hubungan dimana setiap baris dan kolom berisi satu dan hanya satu nilai. 3. Second Normalized Form (2NF) Menurut Connolly dan Begg (2010, p434), 2NF merupakan sebuah hubungan yang terdapat di dalam bentuk normalisasi pertama dan setiap atribut yang bukan primary key sepenuhnya secara fungsional bergantung pada primary key. 4. Third Normalized Form (3NF) Menurut Connolly dan Begg (2010, p. 436), 3NF merupakan sebuah hubungan yang terdapat di dalam bentuk normalisasi pertama dan kedua dimana atribut yang bukan primary key memliki ketergantungan transitif pada primary key. 5. Boyce-Codd Normal Form (BCNF) Menurut Connolly dan Begg (2010, p. 447), suatu relasi disebut memenuhi BCNF jika dan hanya jika setiap determinan yang ada pada relasi tersebut adalah candidate key. 6. Fourth Normal Form (4NF) Menurut Connolly dan Begg (2010, p455 - 457), 4NF adalah suatu hubungan yang terdapat di dalam bentuk normalisasi boyce-codd dan tidak mengandung ketergantungan nontrivial multi-valued, dimana ketergantugan multi-valued mewakili ketergantungan antar atribut di dalam suatu relasi. 30 7. Fifth Normal Form (5NF) Menurut Connolly dan Begg (2010, p458), suatu relasi dikatakan sebagai bentuk normalisasi kelima jika dan hanya jika suatu relasi sudah tidak memiliki ketergantungan bersama. 2.2 Hal Khusus Pada sub bab ini juga akan dijelaskan secara singkat tentang hal-hal khusus sebagai pendukung analisis dan perancangan sistem basis data, diantaranya: Structured Query Language(SQL), Internet,World Wide Web(WWW), Hypertext Markup Language (HTML), JavaScript,Cascading Style Sheet PHP: Hypertext Prepocessor (PHP), (CSS), MySQL, Adobe Dreamwaver CS5, Apache,Procurement, Data Flow Diagram (DFD), Flowchart Diagram, State Diagram (STD). 2.2.1 Structured Query Language (SQL) Menurut Connolly dan Begg(2010, p183), Structured Query Language atau biasa disebut SQL merupakan suatu bahasa khusus yang muncul dari pengembangan model relasional.Berikut ini adalah tujuan dari SQL: a. Membuat basis data dan sturktur hubungannya. b. Melakukan pekerjaan dasar manajemen data, seperti memasukkan data, modifikasi dan penghapusan data dari relasi entitas. c. 2.2.2 Melakukan query sederhana maupun kompleks. Internet Menurut Connolly dan Begg (2010, p1024), internet kumpulan jaringan komputer yang saling terhubung di seluruh dunia. Internet terdiri dari banyak jaringan yang terpisah tetapi saling berhubungan untuk kegiatan perdagangan, pendidikan, dan organisasi pemerintahan dan juga Internet Service Provider (ISP). Pelayanan yang diberikan internet termasuk surat elektronik (email), pelayanan pertemuan dan kolaborasi, maupun kemampuan untuk mengakses komputer yang berjauhan dan mengirim dan menerima file. 2.2.3 World Wide Web (WWW) Menurut Connolly dan Begg (2010, p1025), World Wide Web atau biasa disingkat web merupakan sistem yang berbasis pada banyak media yang 31 menyediakan sarana pencarian informasi pada internet secara tidak berurutan menggunakan hyperlink. 2.2.4 Hypertext Transfer Protocol (HTTP) Menurut Connolly dan Begg (2010, p.1029), HTTP adalah sebuah protocol yang digunakan untuk mentransfer halaman web melalui internet. Transaksi dalam HTTP terdiri dari beberapa tahap yaitu : 1. Koneksi. Pengguna terkoneksi dengan web server. 2. Permintaan. Pengguna mengirim sebuah pesan permintaan ke web server. 3. Response. Web server mengirim respon ke pengguna. 4. Close. Koneksi ditutup oleh web server. 2.2.5 Hyper Text Markup Language (HTML) Menurut Connolly dan Begg (2010, p.1031), HTML merupakan bahasa format dukumen yang digunkan untuk merancang halaman web. HTML merupakan sistem untuk menandai sebuah dokumen sehingga bisa dipublikasikan di web. HTML mendefinisikan apa yang secara umum ditransfer antara node dalam sebuat jaringan. 2.2.6 PHP: Hypertext Prepocessor (PHP) Menurut Connolly dan Begg (2010, p.1043), PHP merupakan bahasa script open source HTML embedded yang mendukung banyak web server, seperti Apache HTTP server dan Microsoft’s Internet Information Server. Bertujuan agar pengembang web mampu untuk menulis banyak halaman dinamis secara cepat. 2.2.7 Cascading Style Sheet (CSS) Menurut Saputra (2013, p1), CSS merupakan bahasa pemrograman Web (skrip) yang didesain khusus untuk mengendalikan dan membangun berbagai komponen dalam web sehingga tampilan web menjadi lebih rapih, terstruktur, dan seragam. Dengan CSS, webmaster bisa memisahkan konten utama dengan dokumen lainnya (HTML dan sejenisnya) yang akan memberikan sangat banyak keuntungan. 2.2.8 Javascript Javascript merupakan bahasa script yang dikembangkan oleh Netscape, untuk membuat dokuman yang dinamis. Menurut Nugroho dan Anwar (2008, p105), javascript merupakan nama implementasi Netscape Communication Corporation 32 untuk ECMAScript standar, suatu bahasa script yang didasarkan pada konsep pemrograman berbasis prototype. Bahasa ini terutama terkenal dalam penggunaanya di situs web (sebagai script disisi klien) dan juga digunakan untuk menyediakan akses script untuk objek yang dibenamkan (embeded) di aplikasi lain. 2.2.9 Adobe Dreamwaver CS5 Dreamwaver merupakan perngkat lunak yang digunakan dalam pembuatan website. Dreamewaver menyediakan halama untuk JavaScript, ActionScript, JSP, PHP, HTML, CSS dan lain-lain. 2.2.10 Apache Menurut Boronczyk, et al (2009, p6), sebagai web server, pekerjaan utama Apache adalah mendengarkan permintaan yang dikirimkan dari browser dan merespon kembali dengan cepat. Apache cukup kuat untuk menyelesaikan tugas apapun yang web master butuhkan. Menurut Boronczyk, et al (2009, p779), Apache bertanggung jawab melayani halaman web yang dihasilkan oleh PHP. 2.2.11 MySQL Menurut Boronczyk, et al (2009, p13), MySQL merupakan kontruksi database yang memungkinkan PHP dan Apache bekerja bersama untuk mengakses dan menampilkan data pada format yang dapat dibaca untuk browser. Sebagai manajemen sistem basis data relasional, MySQL memperbolehkan banyak entitas yang berbeda digabungkan bersama untuk meingkatkan efisiensi dan kecepatan. Menurut Boronczyk, et al (2009, p125), keuntungan dari MySQL adalah MySQL merupakan basis data relasional, yang mendukung pembuatan hubungan antar entitas. 2.2.12 Web Browser Dalam pemakaian internet, salah satu yang tidak boleh dilupakan adalah web browser. Menurut William dan Sawyer (2010, p64), web browser adalah perangkat lunak yang memungkinkan kita untuk mencari dan mengakses berbagai macam bagian web. Macam-macam web browser yang sedang berkembang saat ini misalnya seperti google chrome, mozilla firefox, dan internet explorer. 33 2.2.13 Procurement Pengadaan barang (procurement) merupakan salah satu bagian dari supply chain management. Menurut Bower (2003, p1) procurement merupakan proses memperoleh jasa baru atau barang dan termasuk strategi kontrak, dokumentasi kontrak, dan pemilihan kontraktor/vendor. Procurement merupakan perluasan dari seluruh anggota supply chain, termasuk mereka yang bertanggung jawab atas operasi dan pemeliharaan. Menurut Turban, et al (2010, p253), proses procurement dalam SAP terdiri dari: 1. Determination of requirement User dari departemen yang bersangkutan dapat menyerahkan data kebutuhan bahan kepada bagian pembelian dalam bentuk Purchase Requisiton (PR). 2. Determinatin of source supply Departemen pembelian membuat Request for Quotation (RFQ). 3. Vendor selection Sistem menyeleksi pemasok dengan membuat perbandingan harga dari berbagai quotation yang ada. 4. Purchase order handling Membuat Purchase Order (PO) baik secara manual atau secara otomatis dengan menggunakan sistem. 5. Purchase order monitoring User dapat memonitor status pemrosesan dari purchase order dalam sistem. 6. Good receipt Ketika terjadi incoming deliveries dalam sistem, user dapat langsung menemukan PO yang sesuai sehingga dapat menghemat waktu entry dan dapat mengecek apakah barang yang dikirim dan jumlahnya sudah sesuai dengan PO. 7. Invoice verification Ketika masuk ke dalam invoice, dapat mengecek perhitungan dan akurasi dari invoice. 8. Payment processing Pembayaran dijalankan dalam modul Financial Acounting. 34 Menurut Turban (2010, p251), ada beberapa metode procurement yang dapat digunakan oleh perusahaan dalam memperoleh barang dan jasa, antara lain: 1. Membuat sistem penawaran dimana supplier/vendor akan berkompetisi antara satu dan lainnya. Biasanya metode ini digunakan dalam pengadaan yang kuantitasnya besar. 2. Membeli langsung dari pabrik, wholesaler, dan pengecer, baik dari katalog yang telah disediakan, maupun metode negosiasi. 3. Membeli dari lelang, baik yang bersifat pribadi maupun umum, dimana perusahaan berpartisipasi sebagai pembeli. 4. Membeli dari Katalog perantara yang menggabungkan katalog-katalog penjual lainnya. 5. Membeli dari katalog pembelian internal, dimana katalog vendor yang telah disetujui oleh perusahaan, termasuk harga yang telah disepakati bersama, tergabung didalamnya. Pendekatan ini diunakan untuk implementasi dari desktop purchasing, yang memungkinkan peminta dapat memesan langsung kepada vendor, tanpa melalui bagian pengadaan. 6. Bergabung dengan suatu grup sistem pembelian yang menggabungkan permintaan anggota-anggotanya dan mengumpulkan menjadi jumlah yang besar. Kemudian grup tersebut akan melakukan negosiasi harga atau memulai proses penawaran. 7. Membeli pada industrial mall. 8. Berkolaborasi dengan supplier / vendor untuk berbagi informasi mengenai penjualan dan persediaan, sehingga ketika persediaan berkurang dan mengalami stock-out, perusahaan dapat melakukan justin-time delivery. 2.2.13.1 Prinsip-Prinsip Pengadaan Barang dan Jasa Menurut Asliana (2012, p16), Prinsip-prinsip yang harus diterapkan dalam pengadaan barang/jasa adalah sebagai berikut: 1. Efisien Efisien pengadaan diukur terhadap seberapa besar upaya yang dilakukan untuk memperoleh barang/jasa dengan spesifikasi yang sudah ditetapkan. 35 Upaya yang dimaksud mencakup dana dan daya yang dikeluarkan untuk memperoleh barang/jasa. 2. Efektif Efektifitas pengadaan diukur terhadap seberapa jauh barang/jasa yang diperoleh dari proses pengadaan dapat mencapai spesifikasi yang sudah ditetapkan. 3. Transparan Bagaimana proses pengadaan barang/jasa yang dilakukan dapat diketahui secara luas. Proses yang dimaksud meliputi dasar hukum, ketentuanketentuan, tata cara, mekanisme, aturan main,spesifikasi barang/jasa, dan semua hal yang terkait dengan bagaimana proses pengadaan barang/jasa dilakukan. Dapat diketahui secara luas berarti semua informasi tentang proses tersebut mudah diperoleh dan mudah diakses oleh masyarakat umum, terutama penyedia barang/jasa yang berminat. 4. Terbuka Pengadaan barang/jasa dapat diikuti oleh semua penyedia barang/jasa yang memenuhi persyaratan/kriteria yang ditetapkan sesuai ketentuan yang berlaku. 5. Bersaing Proses pengadaan barang dapat menciptakan iklim atau suasana persaingan yang sehat diantara para penyedia barang/jasa, tidak ada intervensi yang dapat mengganggu mekanisme, sehingga dapat menarik minat sebanyak mungkin penyedia barang/jasa untuk mengikuti lelang/seleksi yang pada gilirannya dapat diharapkan untuk memperoleh barang/jasa dengan kualitas yang maksimal. 6. Adil/tidak diskriminatif Berarti proses pengadaan dapat memberikan perlakuan yang sama bagi semua calon penyedia barang/jasa dan tidak mengarah untuk memberikan keuntungan pada pihak tertentu, kecuali diatur dalam peraturan ini. Sebagai usaha bahwa dalam peraturan ini mengatur agar melibatkan sebanyak mungkin usaha kecil, usaha menengah dan koperasi kecil. Disamping itu juga mengutamakan produksi dalam negeri. 7. Akuntabel 36 Berarti harus sesuai dengan aturan dan ketentuan yang terkait dengan pengadaan barang/jasa sehingga dapat dipertanggungjawabkan. 2.2.13.2 Pemilihan dan Penilaian Vendor Salah satu aktivitas penting dalam procurement adalah pemilihan vendor. Menurut Pujawan (2005, p137), memilih supplier / vendor merupakan kegiatan strategis, terutama apabila vendor tersebut akan memasok item yang penting dan/atau akan digunakan dalam jangka panjang sebagai vendor/supplier penting. Kriteria pemilihan merupakan salah satu hal terpenting dalam pemilihan vendor. Kriteria tersebut harus mencerminkan strategi supply chain maupun karakteristik dari barang / jasa yang akan dipesan. Ada beberapa kriteria penting dalam pemilihan vendor yang digunakan oleh perusahaan, yakni: kualitas barang / jasa yang ditawarkan, harga, dan ketepatan waktu pelaksanaan pengerjaan barang / jasa dan hal-hal lain yang berkaitan dengan berkaitan dengan barang / jasa yang ditawarkan. Pemilihan vendor berkaitan erat dengan perhitungan performa vendor. Dengan hasil evaluasi performa vendor, maka akan digunakan sebagai data dalam pemilihan vendor yang akan datang. Menurut Gordon (2008, p21), terdapat beberapa alasan mengapa harus melakuakan evaluasi performa vendor, yakni: 1. You can’t manage, when you don’t measure. Perusahaan tidak akan dapat mengelola seluruh kegiatan procurement dan mengelola hubungan vendor. 2. If you measure supplier, they will improve. Jika perusahaan melakukan evaluasi performa vendor, maka supplier / vendor akan menerima laporannya. 3. You can uncover and remove hidden waste and cost driver in the supply chain. Tidak akan ada lagi produk yang terbuang dan dapat mengendalikan biaya dari proses supply chain. 4. You can facilitate supplier performance improvement. Dapat memfasilitasi supplier / vendor untuk meningkatkan performanya. 5. You can increase competitiveness by shrinking order cycle times and inventory levels. Menyusutkan waktu siklus pemesanan dan persediaan untuk meningkatkan persaingan antar supplier / vendor agar saling berusaha untuk meningkatkan kinerjanya. 37 6. You can make informed business decision that impact the enterprise. Hasil evaluasi dapat dijadikan bahan pembuat keputusan oleh perusahaan. Menurut Tunggal (2010, p62), proses evaluasi performa vendor meliputi 10 tahapan, yakni: 1. Identifikasi kebutuhan. 2. Membuat spesifikasi. 3. Mencari alternatif. 4. Membangun koneksi. 5. Mengatur kriteria dan penggunaan. 6. Anggran yang tersedia. 7. Bernegosiasi dengan vendor. 8. Memberi evaluasi pasca pembelian. 9. Menggunakan evaluasi pasca pembelian. 10. Menyalurkan evaluasi pasca pembelian. 2.2.14 Flowchart Menurut Indrajani (2011, p22), Flowchart merupakan suatu pengembangan secara grafik dari langkah-langkah dan urutan prosedur suatu program. Tujuan dari pembuatan flowchart adalah untuk mempermudah penyelesaian masalah khususnya yang perlu dipelajari dan dievaluasi lebih lanjut. Berdasarkan jenisnya, flowchart dibagi menjadi lima bagian, yakni: 1. System Flowchart 2. Dokument Flowchart 3. Schematic Flowchart 4. Program Flowchart 5. Process Flowchart Berikut adalah notasi dalam Flowchart: 38 Gambar 2.2 Notasi pada System Flowchart. 2.2.15 Data Flow Diagram (DFD) Menurut Whitten dan bentley (2009, p317), DFD merupakan alat yang menggambarkan aliran data melalui sistem dan pekerjaannya atau proses yang dilakukan oleh sistem. Sedangkan menurut Indrajani (2011, p11), DFD merupakan sebuah alat yang menggambarkan aliran data sampai sebuah sistem selesai, dan kerja atau proses dilakukan dalam sistem tersebut. 39 Berikut adalah notasi yang digunakan pada DFD: Tabel 2.1 Notasi Dalam DFD. Notasi Yourdon & DeMarco Notasi Gane & Sarson Eksternal Agents Process Data Store Data Flow 1. Eksternal Agents, mendefinisikan orang atau sebuah unit organisasi, sistem lain, atau organisasi yang berada diluar sistem proyek tetapi dapat mempengaruhi sistem kerja. 2. Process, penyelenggaraan kerja atau jawaban, datangnya aliran data atau kondisinya. 3. Data Store, menunjukkan tempat data disimpan. 4. Data Flow, menunjukkan sebuah input data kedalam sebuah proses atau output dari data pada sebuah proses. Dalam pembuatan DFD, terdapat beberapa tingkatan yang bertujuan untuk menghindari aliran data yang rumit. Tingkatan tersebut yakni: 1. Diagram konteks (Level-0 Diagram) Merupakan sebuah model proses yang digunakan untuk mendokumentasikan ruang lingkup dari sebuah sistem. 2. Diagram nol (Level-1 Diagram) Merupakan diagram aliran data yang menggambarkan sebuah major processes, data flow, dan data stores dari sebuah sistem yang berada pada tingkatan tertinggi untuk detailnya. 40 3. Diagram rinci (Level-2 Diagram) Diagram ini menggambarkan rincian dari proses yang terdapat pada tingkatan sebelumnya. 2.2.16 State Transition Diagram (STD) Menurut Indrajani (2011, p17), STD adalah suatu kondisi yang menunjukkan keadaan tertentu, dimana suatu sistem dapat ada dan transisi menghasilkan keadaan tertentu yang baru. Biasa digunakan dalam sistem yang real time. Menurut Indrajani (2011, p17), berikut adalah hal-hal yang ada pada STD: 1. System State, berbentuk persegi panjang yang menggambarkan suatu keadaan sistem dari sistem secara keseluruhan. 2. Change of state State 1 State 2 State 3 Gambar 2.3 Change of State. 3. Conditions and Actions State 1 Conditions Actions State 2 Gambar 2.4 Condition dan Actions. 41 2.2.17 Delapan Aturan Emas Menurut Shneiderman dan Plaisant (2010, p88 - 89), terdapat delapan aturan emas (8 golden rules) yang dapat digunakan sebagai pedoman dalam perancangan antarmuka pemakai, yaitu: 1. Berusaha untuk konsisten Urutan tindakan yang konsisten dibutuhkan dalam situasi yang mirip. Konsistensi dilakukan pada urutan tindakan, perintah, penempatan, warna, layout dan istilah yang digunakan pada prompt, menu, serta layar bantuan. Contoh: Peletakan button login yang tidak berubah tempat. 2. Usability universal Adanya kebutuhan dari pengguna yang sudah berpengalaman untuk meningkatkan kecepatan interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas makro. Contoh: Pada yahoo mail, pengguna cukup menekan tombol “N” di keyboard untuk menulis email, sehingga pengguna tidak perlu mencari-cari tombol new/compose/write di webpage. 3. Memberikan umpan balik yang informatif Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, maka dapat diberikan umpan balik yang sederhana, tetapi ketika tindakan tersebut merupakan hal yang penting, maka umpan balik sebaiknya lebih banyak dan lebih rinci. Contoh: Jika pengguna memasukkan username atau password yang salah di yahoo, maka akan tampil feedback yang memberikan alasan mengapa pengguna tidak bisa login. 4. Merancang dialog untuk menghasilkan suatu penutupan (keadaan akhir) Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya. Contoh: Sistem memberikan feedback yang menjelaskan bahwa langkah yang dilakukan sudah benar, dan pengguna dapat melanjutkan ke tahap selanjutnya. 5. Adanya pencegahan kesalahan dan penanganan kesalahan Sedapat mungkin, sistem dirancang untuk mencegah pengguna melakukan kesalahan fatal. Jika kesalahan terjadi, maka sistem harus dapat mendeteksi 42 kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan. Contoh: Saat pengguna baru akan sign up di yahoo, jika nama email yang dimasukkan pengguna telah dipakai oleh pengguna lainnya, maka sistem akan memberitahukan hal tersebut kepada pengguna yang baru dan menawarkan nama yang lain. 6. Memungkinkan pembalikan aksi yang mudah Hal ini dapat mengurangi kekhawatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan, sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan. Contoh: Terdapat menu “undo” atau “back” pada browser. 7. Mendukung pusat kendali internal (internal locus of control) Pengguna ingin menjadi pengontrol sistem dan sistem akan merespons tindakan yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna dapat mengontrol program-program yang terdapat pada sistem. Contoh: Pengguna Binusmaya bebas memilih menu-menu yang telah disediakan. 8. Mengurangi beban ingatan jangka pendek Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan.