BAB 2 TINJAUAN PUSTAKA 2.1 Teori yang berkaitan dengan Database 2.1.1 Sistem Menurut Kendall (2010:563) sistem adalah koleksi dari subsistem yang saling berkait dan bergantung, bekerja sama untuk mencapai tujuan dan sasaran yang telah ditentukan. Semua sistem mempunyai input, proses, output dan umpan balik. 2.1.2 Basis data Menurut Connolly & Begg (2010:65) basis data adalah sebuah koleksi bersama dari data yang berhubungan secara logis dan deskripsi dari data yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi, selain itu basis data dapat diartikan sebagai satu tempat besar untuk menyimpan data yang dapat digunakan oleh sejumlah departemen dan pengguna secara bersamaan. Bukan sebagai file yang berhubungan dengan redundan, melainkan seluruh data terintegrasi dengan jumlah duplikasi minimum. Basis data tidak lagi dipunyai oleh satu departemen, melainkan merupakan sumber daya perusahaan bersama. Menurut Elmasri-Navathe (2010:6) basis data adalah koleksi dari data yang terkait dengan makna implisit. Sebuah basis data mempunyai sifat implisit sebagai berikut : 1. Basis data merepresentasikan sejumlah aspek dari dunia nyata. 2. Basis data adalah kumpulan data yang logis dengan beberapa makna yang melekat. 3. Basis data dirancang, dibangun, dan diisi dengan data untuk tujuan tertentu. 2.1.3 Database Management System (DBMS) 2.1.3.1 DBMS Menurut pendapat Ramakrishnan-Gehrke (2005:76) Database Management System (DBMS) adalah perangkat lunak yang dirancang untuk membantu dalam memelihara 7 8 dan menggunakan koleksi data yang besar. Kebutuhan untuk sistem adalah sama dengan penggunaannya yang berkembang dengan sangat cepat sehingga sebagai alternatif adalah dengan menggunakan DBMS untuk menyimpan data di dalam file dan menulis kode spesifik dari aplikasi untuk menanganinya. Menurut Connolly & Begg (2010:66) Database Management perangkat System lunak (DBMS) yang adalah sebuah memperbolehkan sistem user untuk mendefinisikan, membuat, memelihara dan mengendalikan akses ke dalam basis data. Database Management System (DBMS) menyediakan sejumlah fasilitas yaitu : 1. Data Definition Language (DDL) Data Definition Language (DDL) memperbolehkan user untuk mendefinisikan basis data selain itu memperbolehkan user untuk menentukan tipe data, struktur dan batasan pada data untuk disimpan di dalam basis data. 2. Data Manipulation Language (DML) Data Manipulation Language (DML) memperbolehkan user untuk melakukan insert, update, delete, dan retrieve data dari basis data. Sebagai tempat penyimpanan pusat untuk data dan deskripsinya memperbolehkan DML untuk menyediakan fasilitas yaitu bahasa query. 3. Query Language Query language adalah bahasa yang digunakan oleh user untuk mengakses data pada basis data. DBMS menyediakan kontrol akses ke dalam basis data, sebagai contoh : a. Sistem keamanan (Security system), yang mana mencegah users yang tidak mempunyai wewenang untuk mengakses basis data. b. Sistem integritas (Integrity system), yang mana menjaga konsistensi dari data yang disimpan. 9 c. Sistem kontrol konkurensi (Concurrency control system) yang mana memperbolehkan shared access terhadap basis data. d. Sistem kontrol perbaikan (Recovery control system) yang mana memperbaiki basis data ke kondisi sebelumnya apabila terjadi kerusakan pada hardware atau software. e. Katalog yang dapat diakses user (User-accessible catalog) yang mana berisi deskripsi data di dalam basis data. f. Mekanisme view (View mechanism) yang mana memungkinkan setiap user memiliki tampilannya sendiri pada basis data. 2.1.3.2 Komponen dari lingkungan DBMS Komponen utama dari lingkungan DBMS menurut Connolly & Begg (2010:68-71) yaitu : 1. Hardware DBMS dan aplikasi membutuhkan hardware untuk dijalankan. Hardware dapat berupa personal computer (PC), mainframe atau jaringan komputer. Pada umumnya hardware dapat bergantung kepada kebutuhan organisasi atau penggunaan DBMS. 2. Software Komponen software terdiri dari software DBMS itu sendiri, program aplikasi, sistem operasi dan termasuk software jaringan apabila DBMS sedang digunakan melalui jaringan. 3. Data Data merupakan komponen terpenting di lingkungan DBMS. Data berperan sebagai jembatan di antara komponen manusia dan komponen mesin. 4. Prosedur Prosedur merujuk pada instruksi dan aturan yang mengatur rancangan dan penggunaan basis data. User dari 10 sistem dan pegawai membutuhkan menangani prosedur basis terdokumentasi data yang mengenai bagaimana cara untuk menggunakan dan menjalankan sistem. Hal ini dapat terdiri dari log on ke dalam DBMS, menggunakan fasilitas DBMS, start dan stop DBMS, membuat backup dari basis data, menangani kesalahan software atau hardware. 5. People Komponen terakhir dari DBMS adalah orang yang terlibat dengan sistem, seperti Data Administrator (DA), Database Administrator (DBA), database designer, application developer, dan pengguna akhir (end-users). 2.1.3.3 Keuntungan dan Kerugian DBMS Database Management System (DBMS) memiliki keuntungan potensial yang menjanjikan, tetapi terdapat juga kekurangan. Keuntungan - keuntungan DBMS menurut Connolly & Begg (2010:77-80) yaitu : 1. Kontrol terhadap data yang kelebihan 2. Konsistensi data 3. Informasi tambahan dari data yang sama 4. Jumlah data 5. Berbagi Data 6. Meningkatkan integritas data 7. Meningkatkan keamanan 8. Penetapan standardisasi 9. Skala ekonomi 10. Keseimbangan dari kebutuhan data yang berbeda 11. Meningkatkan produktivitas 12. Meningkatkan konkurensi 13. Meningkatkan layanan backup dan recovery 11 Kerugian-kerugian DBMS menurut Connolly & Begg (2010:80-81) yaitu : 1. Kompleksitas 2. Ukuran 3. Biaya DBMS 4. Biaya tambahan hardware 5. Biaya konversi 6. Kinerja 7. Dampak tinggi dari kegagalan 2.1.3.4 Fungsi DBMS Menurut Connolly & Begg (2010:99-104) fungsifungsi DBMS adalah : 1. Data Storage, Retrieval and Update DBMS melengkapi users dengan kemampuan untuk store, retrieve, dan update data di dalam basis data. 2. An User-accessible catalog DBMS harus menyediakan mendeskripsikan memberikan data akses catalog item disimpan kepada yang dan dapat users untuk menggunakannya. 3. Transaction Support DBMS harus menyediakan suatu mekanisme yang memastikan semua perubahan berkoresponden untuk transaksi yang diberikan dan dibuat atau salah satu dari itu tidak dibuat. 4. Concurrency control services DBMS harus menyediakan mekanisme untuk memastikan basis data dapat diatur secara tepat ketika sejumlah user mengubah basis data secara bersamaan. 5. Recovery services DBMS harus menyediakan mekanisme untuk memperbaiki basis data yang pada suatu waktu dapat rusak karena suatu hal. 6. Authorization services 12 DBMS harus menyediakan untuk memastikan hanya user yang mempunyai wewenang dapat mengakses ke dalam basis data. 7. Support for data communication DBMS harus dapat berintegrasi dengan aplikasi lain untuk melakukan komunikasi data. 8. Integrity services DBMS harus menyediakan cara untuk memastikan datadi dalam basis data dan perubahan pada data mengikuti sejumlah aturan yang telah ditetapkan. 9. Services to promote data independence DBMS harus mencakup fasilitas untuk membantu kemandirian program dari struktur basis data sebenarnya. 10. Utility services DBMS menyediakan satu set fasilitas pelayanan yang terdiri dari organisasi index, monitoring, atau garbage collection. 13 2.1.4 Siklus Hidup Sistem Basis Data Database planning System definition Requirement collection and analysis Database design Conceptual database design DBMS selection Application design (optional) Logical database design Physical database desgin Prototyping (optional) Implementation Data conversion and loading Testing Operational maintenance Gambar 2.1 Siklus Hidup Sistem Basis Data 14 2.1.4.1 Database Planning Menurut Connolly & Begg (2010:313) Database planning merupakan aktivitas pengaturan yang memperbolehkan setiap tahap dari pengembangan siklus hidup basis data untuk dapat direalisasikan secara efisien dan efektif. Database planning harus terintegrasi dengan strategi Information Services (IS) dari organisasi. Terdapat 3 isu utama yang berkembang dalam mengatur strategi Information Services, yaitu : 1. Identifikasi rencana dan tujuan dengan determinasi berikutnya dari kebutuhan sistem informasi 2. Evaluasi sistem informasi yang sekarang digunakan untuk menentukan kekuatan dan kelemahannya 3. Penilaian dari peluang IT mungkin dapat menjadi keuntungan untuk bersaing selanjutnya Terdapat sejumlah metodologi untuk mengatasi isu yang berkembang seperti yang telah disebutkan sebelumnya yaitu dengan menentukan Mission Statement untuk sistem basis data dan identifikasi Mission Objectives berupa tugas-tugas yang harus didukung oleh sistem basis data tersebut. 2.1.4.2 System Definition Menurut Connolly & Begg (2010:316) System definition menjelaskan ruang lingkup dan batasan dari aplikasi basis data dan User Views. User Views mendefinisikan apa yang dibutuhkan dari sistem basis data, dilihat dari perspektif peran pekerjaan tertentu (seperti manajer atau supervisor) atau wilayah aplikasi perusahaan (seperti pemasaran, personalia, atau kontrol stok). 15 Gambar 2.2 Representasi dari Sistem Basis Data dengan Sejumlah User Views Sistem basis data dapat memiliki satu atau lebih user views. Identifikasi pandangan pengguna merupakan hal penting dalam mengembangkan sistem basis data karena membantu untuk memastikan bahwa tidak ada pengguna basis data dilupakan ketika mengembangkan persyaratan untuk basis data yang baru. Pandangan pengguna sangat membantu dalam pengembangan yang relatif kompleks sehingga memungkinkan permintaan-permintaan dipecah ke dalam bagian yang sederhana. 2.1.4.3 Requirement Collection and Analysis Menurut Connolly & Begg (2010:316-318) Requirement Collection and Analysis merupakan proses mengumpulkan dan menganalisis informasi tentang pengumpulan dan bagian dari organisasi yang didukung 16 oleh analisis sistem basis data dan menggunakan informasi ini untuk mengidentifikasi persyaratan sistem baru. Untuk mendapatkan informasi, dapat digunakan teknik yang disebut dengan Fact Finding Technique. Terdapat lima Fact Finding Technique yang umum digunakan, yaitu : 1. Evaluasi dokumen 2. Wawancara 3. Mengamati jalannya kegiatan di perusahaan (observasi) 4. Penelitian 5. Kuisioner Informasi dikumpulkan untuk setiap tampilan pengguna utama yaitu : 1. Deskripsi data yang digunakan atau dihasilkan 2. Detail mengenai bagaimana data yang akan digunakan atau dihasilkan 3. Persyaratan tambahan untuk sistem basis data yang baru 2.1.4.4 Database Design Menurut Connolly & Begg (2010:320) Database design merupakan proses membuat desain yang membantu pernyataan misi desain aplikasi dan tujuan untuk sistem basis data yang diperlukan. Database design terdiri dari 3 yaitu desain konseptual, desain logikal dan desain fisikal dari basis data. 2.1.4.4.1 Data Modelling Menurut Connolly & Begg (2010:322) terdapat dua tujuan utama dari pemodelan data adalah untuk membantu dan memahami makna (semantik) dari data dan untuk memfasilitasi komunikasi tentang persyaratan informasi. Membangun model data memerlukan jawaban dari pertanyaan mengenai entitas, hubungan dan atribut. 17 2.1.4.5 DBMS Selection Menurut Connolly & Begg (2010:325-329) DBMS selection merupakan pemilihan DBMS yang sesuai untuk mendukung sistem basis data yang dibutuhkan. Langkahlangkah utama dalam pemilihan DBMS antara lain : 1. Menggambarkan tujuan sistem basis data berdasarkan kebutuhan 2. Membuat daftar perbandingan dari dua atau tiga produk DBMS 3. Mengevaluasi produk-produk DBMS tersebut 4. Merekomendasikan pemilihan DBMS dan menghasilkan laporan dari evaluasi produk DBMS tersebut 2.1.4.6 Application Design Menurut Connolly & Begg (2010:329-333) application design mencakup mengenai desain dari tampilan antarmuka, aplikasi program dan proses ke dalam basis data. Dalam sejumlah kasus, tidak mungkin untuk menyelesaikan desain aplikasi program sebelum desain basis data diselesaikan. Perancangan basis data dan aplikasi merupakan aktivitas paralel yang meliputi dua aktivitas penting, yaitu : 1. Transaction Design Transaksi adalah suatu tindakan, atau serangkaian tindakan yang dilakukan oleh single user atau program aplikasi, yang mengakses atau mengubah isi basis data. Transaksi dapat membuat sejumlah operasi seperti pengiriman money bagaimanapun dari dilihat suatu dari akun perspektif ke lainnya, user ini merupakan tugas tunggal tetapi apabila dilihat dari perspektif DBMS, proses transaksi pengiriman dapat merupakan satu state yang konsisten ke lainnya. Tugas DBMS adalah memastikan konsistensi dari basis data walaupun terjadi kesalahan. Kegunaan dari desain 18 transaksi adalah untuk mengartikan dan mencatat karakteristik high level yang dibutuhkan oleh basis data diantaranya : a. Data yang digunakan oleh transaksi b. Karakteristik fungsional dari suatu transaksi c. Output transaksi d. Keuntungan bagi user e. Tingkat kegunaan yang diharapkan. Terdapat tiga tipe utama dari transaksi yaitu : a. Retrieval Transactions b. Update Transactions c. Mixed Transactions. 2. User Interface Design Beberapa panduan dalam pembuatan antar muka pengguna, yaitu: a. Meaningful title b. Comprehensible instructions c. Logical grouping and sequencing of field d. Visually appealling layout of the form/report e. Familiar field labels f. Consistent terminology and abbreviation g. Consistent use of color h. Visiblespace and boundaries for data-entity fields i. Convinient Cursor Movement j. Error correction for individual characters and entire fields k. Error messages for unacceptable values l. Optional fields marked clearly m. Explanatory message for fields n. Completion signal 19 2.1.4.7 Prototyping Menurut Connolly & Begg (2010:333) prototyping dapat diartikan sebagai membangun sebuah model dari sistem basis data.Prototype adalah model kerja yang secara normal tidak mempunyai semua fitur yang dibutuhkan atau menyediakan semua fungsionalitas untuk sistem. Terdapat dua strategi prototyping yang sering digunakan yaitu : 1. Requirement Prototyping Menggunakan prototype untuk menentukan kebutuhan sistem basis data yang dibutuhkan dan ketika kebutuhan telah terpenuhi maka prototype tersebut tidak digunakan lagi. 2. Evolutionary Prototyping Digunakan untuk tujuan sama, perbedaannya adalah bahwa prototype tidaklah dibuang tetapi dengan pengembangan selanjutnya dapat menjadi sistem basis data yang bekerja. 2.1.4.8 Implementation Menurut Connolly & Begg (2010:333-334) implementation merupakan realisasi fisikal dari basis data dan desain aplikasi. Implementasi basis data dicapai dengan menggunakan Data Definition Language (DDL) dari DBMS yang telah dipilih atau dengan menggunakan Graphical User menyediakan Interface fungsi ketika (GUI), yang menyimpan mana secara tersembunyi pernyataan DDL yang low-level. Pernyataan (statement) DDL digunakan untuk menciptakan struktur basis data dan mengosongkan file yang terdapat dalam basis data tersebut. User view juga diterapkan pada langkah implementasi. Program aplikasi diimplementasikan menggunakan bahasa generasi ketiga atau keempat. 20 2.1.4.9 Data Conversion and Loading Menurut Connolly & Begg (2010:334) data convertion and loading dapat berarti pemindahan data yang telah ada ke dalam basis data baru dan mengubah setiap aplikasi yang telah ada untuk menjalankan basis data yang baru. Proses ini diperlukan hanya ketika sistem basis data yang baru akan menggantikan sistem yang lama 2.1.4.10 Testing Menurut Connolly & Begg (2010:334-335) testing merupakan proses dari menjalankan sistem basis data dengan tujuan untuk menemukan kesalahan. Testing harus dapat melindungi penggunaan dari sistem basis data. Secara ideal, sebuah evaluasi harus digunakan terhadap spesifikasi penggunaan. 2.1.4.11 Operational Maintenance Menurut Connolly & Begg (2010:335) operational maintenance meliputi proses dari memantau dan memelihara sistem basis data berdasarkan instalasi. Pada tahap pemeliharaan (maintenance) melibatkan aktivitas berikut: 1. Monitoring Performance dari sistem. Jika performance jatuh dibawah suatu tingkatan yang bisa diterima, penyetelan atau reorganisasi basis data mungkin diperlukan. 2. Maintaining dan meningkatkan mutu aplikasi basis data (apabila diperlukan). Kebutuhan baru disatukan dalam aplikasi basis data dengan mengikuti langkah sebelumnya yang terdapat dalam lifecycle. Ketika suatu sistem basis data sudah berjalan secara seluruhnya, proses monitoring mengambil tempat untuk memastikan perfoma berjalan dengan level yang dapat diterima. 21 2.1.5 Tahap-tahap Perancangan Basis Data 2.1.5.1 Perancangan Konseptual Basis Data Menurut Connolly & Begg (2010:467) perancangan konseptual basis data adalah suatu proses perancangan model dari data yang digunakan di dalam perusahaan, independen dari semua perkiraan fisikal. Perancangan konseptual dimulai dengan perancangan data model yang tidak bergantung pada detail implementasi seperti DBMS yang dituju, aplikasi program, bahasa pemrograman, hardware platform, isu performa, atau pertimbangan fisikal lainnya. Menurut Connolly & Begg (2010:468) tahap perancangan konseptual basis data dibagi menjadi sembilan bagian, yaitu : Langkah 1. Bangun data model konseptual : Langkah 1.1 Identifikasi tipe entitas Langkah 1.2 Identifikasi tipe relasi Langkah 1.3 Identifikasi dan hubungkan atribut dengan entitas atau relasi Langkah 1.4 Tentukan domain atribut Langkah 1.5 Tentukan atribut candidate, primary, dan alternate key Langkah 1.6 Pertimbangkan kegunaan dari Enhanced Modeling Concept (opsional) Langkah 1.7 Periksa redundansi terhadap model Langkah 1.8 Validasi data model konseptual terhadap transaksi pengguna Langkah 1.9 Periksa ulang data model dengan pengguna 2.1.5.2 Perancangan Logikal Basis Data Menurut Connolly dan Begg (2010:467) perancangan logikal basis data adalah suatu proses membangun data model yang digunakan perusahaan berdasarkan data model yang spesifik tetapi independen terhadap DBMS yang ada atau perkiraan fisikal lainnya.Perancangan logikal desain basis data memetakan model konseptual menjadi model logikal, yang 22 mana dipengaruhi oleh model data untuk basis data yang dituju. Tahap-tahap perancangan logikal basis data dibagi menjadi tujuh bagian (Connoly & Begg, 2010:468), yaitu: Langkah 2 Langkah 2.1 Bangun data model logikal : Turunkan relasi untuk data model logikal. Langkah 2.2 Validasi relasi menggunakan normalisasi Langkah 2.3 Validasi relasi terhadap transaksi pengguna Langkah 2.4 Periksa integritas constraint Langkah 2.5 Periksa ulang data model logikal dengan pengguna Langkah 2.6 Gabung data model logikal ke model global (opsional) Langkah 2.7 Periksa untuk perkembangan lebihlanjut 2.1.5.3 Perancangan Fisikal Basis Data Menurut Connolly dan Begg (2010:467) perancangan fisikal basis data adalah suatu proses dalam memproduksi deskripsi dari implementasi basis data di tahap kedua. Hal ini menjelaskan hubungan dasar, organisasi file, dan index-index yang digunakan untuk mencapai cara akses data yang efisien dan terhubung dengan batasan integritas dan keamanan. Perancangan fisikal basis data memperbolehkan perancang untuk membuat keputusan mengenai bagaimana basis data tersebut diimplementasikan sehingga perancangan fisikal basis data disesuaikan dengan DBMS. Terdapat umpan balik diantara fisikal dan desain logikal karena keputusan diambil selama desain fisikal untuk meningkatkan perfoma yang dapat mempengaruhi data model logikal. Menurut Connolly & Begg (2010:468) tahap-tahap perancangan fisikal basis data dibagi menjadi sebelas bagian,yaitu : 23 Langkah 3. Menerjemahkan data model logikal untuk DBMS target: Langkah 3.1 Desain relasi dasar Langkah 3.2 Desain representasi dari data turunan Langkah 3.3 Desain batasan umum Langkah 4. Desain organisasi file dan indeks: Langkah 4.1 Analisa transaksi Langkah 4.2 Pilih organisasi file Langkah 4.3 Pilih indeks Langkah 4.4 Perkirakan kebutuhan disk space Langkah 5. Desain tampilan pengguna Langkah 6. Desain mekanisme keamanan Langkah 7. Pertimbangkan tentang pengenalan redundan terkontrol Langkah 8. Pantau dan tune sistem operasional 2.1.6 Entity Relationship Modelling Menurut Connolly dan Begg (2010:371) Entity Relationship Modelling adalah pendekatan secara top-down terhadap desain basis data yang dimulai dengan mengidentifikasi data yang penting yang disebut dengan entities dan relationships di antara data yang ingin direpresentasikan di dalam model. Entity Relationship Modeling adalah teknik penting untuk setiap database designer untuk master dan form dari basis metodologi yang dipresentasikan. 2.1.6.1 Tipe Entitas Menurut Connolly dan Begg (2010:372) tipe entitas adalah kumpulan obyek dengan properti yang sama, yang mana diidentifikasi perusahaan sebagai yang mempunyai eksistensi independen. Konsep dasar dari Entity Relationship model adalah tipe entitasyang mana merepresentasikan kumpulan dari obyek di dunia nyata dengan sifat yang sama. 2.1.6.2 Tipe Relasi Menurut Connolly & Begg (2010:374) tipe relasi adalah kumpulan keterhubunganantara satu atau lebih tipe entitas. Sebagai tipe entitas dan entitasnya, diperlukan hal 24 untuk membedakan antara aturan ‘jenis hubungan’ dan ‘hubungan kejadian’. Hubungan kejadian mengindikasikan kejadian entitas tertentu yang terkait. Berdasarkan pendapat Connolly dan Begg (2010:376) derajat relasi adalah jumlah tipe entitas yang berpartisipasi di dalam relasi. Entitas yang terlibat dalam jenis hubungan tertentu yang disebut sebagai peserta dalam hubungan. Jumlah partisipan di dalam tipe hubungan disebut dengan derajat dari hubungan tersebut. Derajat relasi dibagi menjadi tiga bagian yaitu: 1. Binary Relationship: relasi dengan derajat dua tipe entitas. 2. Ternary Relationship: relasi derajat tiga tipe entitas 3. Quarternary Relationship: relasi derajat empat tipe entitas 2.1.6.2.1 Recursive Relationship Recursive Relationship adalah tipe relasi yang menggambarkan tipe entitas yang sama berpartisipasi lebih dari satu tujuan yang berbeda. Recursive Relationship sering disebut dengan Unary Relationship. Hubungan dapat diberikan nama peran untuk mengindikasikan tujuan dari setiap yang berpartisipasi. Nama peran dapat menjadi penting bagi hubungan rekursif untuk menentukan fungsi dari masingmasing peserta. 25 Gambar 2.3 Contoh Recursive Relationship 2.1.6.3 Atribut Menurut Connolly & Begg (2010:379) atribut adalah sifat dari tipe entitas atau tipe relasi. Atribut domain adalah kumpulan nilai yang diperbolehkan untuk satu atau lebih atribut. Menurut Connolly dan Begg (2010:379) macammacam atribut terbagi dapat diklasifikasikan, yaitu : 1. Simple Attribute or Composite Attribute Simple Attribute adalah atribut yang terdiri dari satu komponen dengan independen.Simple Attribute keberadaan tidak dapat yang dibagi menjadi komponen yang lebih kecil. Simple Attribute sering disebut sebagai Atomic Attribute. Composite Attribute adalah atribut yang terdiri dari banyak komponen dengan keberadaan yang independen terhadap setiap komponen. 2. Single-valued Attribute or Multi-valued Attribute Single-valued Attribute adalah atribut yang memiliki satu nilai setiap kejadian dari tipe entitas. Multi-valued Attribute adalah atribut yang memiliki banyak nilai setiap kejadian dari tipe entitas. 26 3. Derived Attribute Derived Attribute adalah atribut yang merepresentasikan suatu nilai yang diturunkan dari suatu atribut atau kumpulan atribut yang berhubungan tetapi tidak harus dalam tipe entitas yang sama. 2.1.6.4 Key Berdasarkan pendapat Connolly & Begg (2010:381), tipe-tipe keydapat dikelompokkan, yaitu : 1. Candidate Key Candidate key adalah kumpulan atribut yang minimal yang secara unik mengidentifikasi kejadian dari tipe entitas yang sama. 2. Primary Key Primary key adalah candidate key yang secara unik mengidentifikasi setiap kejadian dari tipe entitas Suatu tipe entitas dapat mempunyai lebih dari satu candidate key. 3. Composite Key Composite key adalah candidate key yang memiliki dua atau banyak attribute. Dalam sejumlah kasus, kunci dari suatu entitas terdiri dari beberapa atribut yang nilainya sama-sama unik untuk setiap kejadian entitas tetapi tidak terpisah. 4. Alternate Key Alternate key adalah candidate key yang tidak terpilih menjadi primary key. 5. Foreign Key Foreign key menurut Connolly & Begg (2010:380) adalah sebuah atribut atau kumpulan atribut, dalam satu relasi yang cocok dengan kunci candidate key dari beberapa hubungan yang mungkin sama. 27 2.1.6.5 Tipe Entitas Kuat dan Lemah Menurut Connolly dan Begg (2010:384) tipe entitas kuat (strong entity type) adalah sebuah entitas yang keberadaannya tidak bergantung pada entitas lainnya. Karakteristik dari entitas ini adalah bahwa setiap kejadian entitas secara unik dapat diidentifikasi menggunakan atribut primary key dari tipe entitas tersebut. Sedangkan tipe entitas lemah (weak entity type) adalah sebuah entitas yang keberadaanya bergantung kepada entitas lainnya. Karakteristik dari entitas ini adalah bahwa setiap kejadian entitas tidak dapat secara unik diidentifikasi hanya menggunakan atribut yang digabungkan dengan tipe entitas itu. 2.1.6.6 Struktural Constraint Menurut Connolly dan Begg (2010:385) constraint harus merefleksikan batasan di dalam hubungan seperti yang diterima di dunia nyata. Salah satu tipe utama dari batasan pada hubungan yaitu multiplicity. Multiplicity dapat diartikan jumlah kemungkinan kejadian dari suatu entitas yang mungkin berhubungan dengan kejadian tunggal dari jenis entitas terkait melalui hubungan tertentu. Tipe hubungan yang paling sering digunakan adalah hubungan binary. Jenis-jenis hubungan binary sebagai berikut : 1. One-to-One Relationships (1:1) Gambar 2.4 Contoh One-to-One Relationship Setiap branch diatur oleh satu staff manager dan setiap member staff dapat mengatur nol atau satu branch. 2. One-to-Many Relationships (1:*) 28 Gambar 2.5 Contoh One-to-Many Relationship Setiap property rent diawasi oleh nol atau satu member staff dan setiap member staff mengawasi satu atau banyak property rent. 3. Many-to-Many Relationships (*:*) Gambar 2.6 Contoh Many-to-Many Relationship Setiap property rent ditawarkan oleh nol atau banyak Newspaper dan setiap Newspaper menawarkan satu atau banyak property rent. Tabel 2.1 Kesimpulan dari Multiplicity Constraint Alternatif Multiplicity Constraint 0...1 Arti Kosong atau satu entity occurence 1…1 (or just 1) Hanya satu entity occurence 0…* (or just *) Kosong atau banyak entity occurence 1…* Satu atau banyak entity occurence 5…10 Minimal lima atau lebih entity occurence 0, 3, 6-8 Kosong, tiga, enam, tujuh, delapan entity occurrence 29 2.1.6.6.1 Multiplicity for Complex Relationship Berdasarkan pendapat Connolly dan Begg (2010:389) Multiplicity untuk Complex Relationship adalah angka dari kejadian yang mungkin di setiap tipe entitas pada sebuah hubungan n-ary ketika nilai lain (n-1) adalah sama. 2.1.6.6.2 Cardinality and Participation Menurut Connolly & Begg (2010:390) Cardinality menjelaskan angka maksimal dari hubungan kejadian yang mungkin untuk setiap entitas yang hubungan berpartisipasi yang dengan diberikan jenis sedangkan Participation menjelaskan semua atau sejumlah entitas kejadian yang berpartisipasi di dalam hubungan. 2.1.7 Normalisasi 2.1.7.1 Pengertian Normalisasi Menurut Connolly dan Begg (2010:415) normalisasi adalah teknik untuk menghasilkan kumpulan dari relasi dengan kebutuhan yang diinginkan dan memberikan kebutuhan data dari sistem. Tujuan dari normalisasi untuk mengidentifikasi kumpulan dari relasi yang sesuai untuk mendukung kebutuhan data dari sistem. Menurut Hoffer, Prescott & McFadden (2007:211) terdapat sejumlah tujuan utama dari melakukan proses normalisasi pada basis data 1. Meminimalkan redundansi data sehingga menghindari anomali dan melestarikan ruang penyimpanan 2. Menyederhanakan peraturan dari batasan integritas referensial 3. Membuat lebih mudah dalam pemeliharaan data (insert, update, delete) 30 4. Menyediakan desain yang lebih baik sehingga meningkatkan representasi dari dunia sebenarnya dan membuat basis yang lebih kuat untuk pertumbuhan kedepannya 2.1.7.2 Proses Normalisasi Menurut Connolly & Begg (2010:428) normalisasi merupakan teknik formal untuk menganalisa relasi berdasarkan dari primary key (atau candidate key) dan ketergantungan fungsional (Codd, 1972b). Teknik tersebut meliputi beberapa peraturan yang digunakan untuk menguji relasi individual sehingga basis data dapat dinormalisasi menjadi derajat apapun. Tiga bentuk normal yang pernah diajukan adalah First Normal Form (1NF), Second Normal Form (2NF), dan Third Normal Form (3NF). E.F. Codd menemukan definisi yang lebih kuat dari 3NF yakni Boyce-Codd Normal Form (BCNF). Bentuk normal yang lebih kuat dari BCNF ditemukan yaitu Fourth Normal Form (4NF) dan Fifth Normal Form (5NF). Proses normalisasi meliputi langkah sebagai berikut : 1. Unnormalized Form (UNF) Tahap awal sebelum memulai 1NF adalah unnormalized form. Bentuk UNF merupakan tabel yang masih memiliki satu atau lebih grup berulang (repeating groups). 2. First Normal Form (1NF) Pada tahap ini primary key telah ditentukan, proses perhitungan telah dihilangkan, setiap baris dan kolom berisi atribut yang bernilai tunggal, dan atribut dengan multi value telah dihilangkan. 3. Second Normal Form (2NF) Second Normal Form adalah bentuk relasi pada 1NF dimana setiap atribut yang bukan merupakan primary key bergantung secara fungsional pada primary key. Normalisasi pada tahap 2NF meliputi penghapusan partial dependencies. Menurut Connolly & Begg (2010:421) 31 partial dependencies adalah ketergantungan antara atribut primary key yang satu dengan primary key yang lain. Atribut yang memiliki partial dependencies dihilangkan dengan cara menempatkan atribut tersebut ke relasi yang baru. 4. Third Normal Form (3NF) Third Normal Form adalah relasi dalam 1NF dan dimana tidak ada atribut non-primary key yang memiliki hubungan transitively dependent dengan primary key. Menurut Connolly & Begg (2010:424) transitively dependent adalah ketergantungan atribut non-primary key pada atribut primary key. Gambar 2.7 Langkah-langkah Melakukan Normalisasi 32 2.1.8 Data Flow Diagram (DFD) Menurut Kendall & Kendall (2010:558) data flow diagram adalah penggambaran proses data, arus data, dan menyimpan data dalam suatu sistem bisnis. 2.1.8.1 Diagram Konteks Menurut Kendall & Kendall (2010:558) diagram konteks adalah data flow diagram yang paling dasar dari sebuah organisasi yang menunjukkan bagaimana proses mengubah data menjadi informasi. Diagram konteks disebut juga sebagai environment model. 2.1.8.2 Diagram Nol Menurut Kendall & Kendall (2010:561) diagram nol adalah penguraian dari diagram konteks yang menunjukkan tiga hingga delapan proses utama, data flows yang penting, dan data stores dari sistem yang sedang dipelajari. 2.1.9 State Transition Diagram (STD) Menurut Whitten & Bentley (2007:635) State Transition Diagram adalah alat yang digunakan untuk menggambarkan urutan dan variasi dari layar yang dapat terjadi pada sesi user. STD terdiri dari segiempat panjang yang menggambarkan tampilan layar dan panah yang menggambarkan flow of control. Panah berguna untuk mengaktifkan event yang mengakibatkan layar menjadi aktif atau menerima fokus. 2.2 Teori yang terkait tema penelitian (tematik) 2.2.1 HTTP HTTP adalah sebuah protokol yang digunakan untuk melakukan pengiriman halaman web melalui internet. Menurut Connolly dan Begg (2010:1029) HTTP mendefinisikan bagaimana klien dan server berkomunikasi. HTTP didasarkan pada paradigma request-response. Transaksi dalam HTTP terdiri dari beberapa tahap 1. Connection adalah tahap dimana client menetapkan koneksi dengan web server. 33 2. Request adalah tahap dimana klien mengirimkan pesan request ke web server. 3. Response adalah tahap dimana web server mengirimkan response ke client. 4. Close adalah tahap dimana koneksi diakhiri oleh web server. 2.2.2 Servlet Servlet adalah suatu teknologi Java yang diintegrasikan di dalam Web-Server untuk melakukan fungsi-fungsi server-side. Menurut Schildt, Herbert (2005:889) servlet adalah sebuah program kecil yang dijalankan pada sisi server (server-side). Siklus hidup dari servlet terbagi atas tiga metode utama, yaitu init(), service() dan destroy(). Metode init() dijalankan ketika servlet pertama kali di load ke memory. Ini merupakan cara untuk mengirimkan parameter inisialisasi ke servlet agar servlet dapat dikonfigurasi. Selanjutnya, metode service() dipanggil untuk memproses HTTP request. Hal ini digunakan servlet untuk membaca data yang telah disediakan dalam HTTP request. Selain itu, hal ini juga dapat digunakan untuk menyusun HTTP response untuk klien. Dan untuk metode destroy() dipanggil oleh server untuk mengembalikan sumber daya seperti file handles yang dialokasikan untuk servlet. 2.2.3 Apache Struts 2 Struts merupakan sebuah framework open-source yang digunakan untuk membuat aplikasi web berbasis bahasa pemrograman Java. Struts menggunakan arsitektur berbasis Model-View-Controller (MVC) dimana MVC sendiri sudah menjadi salah satu standardisasi dalam pembuatan aplikasi berbasis web. Menurut Ted Husted (2003:11) Struts 2 merupakan framework untuk pembuatan aplikasi web generasi kedua (sebelumnyaStruts 1) yang mengimplementasikan pola desain Model-View-Controller. Dalam implementasinya, Struts 2 memanfaatkan Java Bean sebagai Model, Servlet sebagai Controller dan JSP sebagai View. 2.2.4 Hibernate Hibernate adalah alat pemetaan relasional database untuk Java yang bersifat open source atau bebas diunduh di internet. Hibernate 34 memetakan obyek dari suatu basis data menjadi sebuah obyek yang disebut persistence. Persistence inilah yang digunakan oleh Java sebagaiobyek pengganti untuk melakukanquery kedatabase.Menurut Joe Walnes (2004:4) hibernate merupakan relasional persistence yang transparan dan powerful untuk melakukan suatu layanan query. Dengan kata lain, hibernate merupakan penghubung antara Javadengan relasional database yang berguna untuk mempermudah meringankan pekerjaan developer aplikasi dalam melakukan CRUD (Create, Read, Update, Delete) dalam database. 2.2.5 JavaServer Pages (JSP) Menurut Deitel (2005:1281) JavaServer Pages atau yang biasa disebut JSP adalah sebuah perluasan dari teknologi servlet. JSP adalah suatu cara yang mudah untuk mengimplementasikan mekanisme request/response pada web. JavaServer Pages memudahkan pengiriman dari konten web yang dinamis. Tujuan dari JSP adalah untuk menyederhanakan pembuatan dan manajemen halaman web dinamis dengan memisahkan konten dan presentasi. JSP pada dasarnya merupakan file yang menggabungkan bahasa pemrograman web biasa dengan tag scripting JSP sehingga tampak menyerupai HTML, tetapi JSP diterjemahkan ke dalam Java servlets pertama kali ketika dipanggil oleh klien. Yang dihasilkan servlet adalah kombinasi dari HTML dari file JSP dan konten dinamis yang ditentukan oleh tag baru. Kelebihan dari penggunaan JSP yang utama adalah dari segi keamanannya. JSP memisahkan antara logic process (proses logika suatu aplikasi) dengan interface process (proses penampilan data dari suatu aplikasi) yang membuat JSP cenderung lebih amandibandingkan dengan bahasa pemrograman web lainnya seperti PHP ataupun ASP. 2.2.6 JavaScript JavaScript adalah bahasa scripting yang dirancang untuk menambahkan fitur interaksi ke halaman Web. Bahasa ini pertama kali diimplementasikan oleh Netscape Communications Corp di Netscape Navigator 2 beta (1995). JavaScript dapat digunakan pada saat terjadinya suatu event di halaman Web, contohnya adalah ketika 35 pengguna membuka halaman web, klik suatu elemen di halaman web dengan mouse, melakukan pengetikan dengan menggunakan keyboard, atau meninggalkan halaman. JavaScript merupakan bahasa pemrograman berorientasi obyek seperti C, C++ dan java dimana dimungkinkan terdapat fungsifungsi yang terdapat pada class seperti inheritance (penurunan sifat) dan polymorphism. Sintaks-sintaks yang terdapat pada JavaScript banyak yang mirip dengan bahasa pemrograman C. Namun, untuk penamaannya lebih mirip dengan bahasa Java. 2.2.7 Cascading Style Sheet (CSS) Cascading Style Sheet atau yang biasa disebut dengan CSS merupakan sebuah sekumpulan kode pemrograman web yang berfungsi untuk mengendalikan beberapa komponen didalam web sehingga menjadi tampak seragam, berstruktur dan teratur. Menurut tim dari Wahana Komputer (2013:2) CSS adalah singkatan dari Cascading Style Sheet atau dalam bahasa yang lebih mudah, yaitu salah satu dokumen website yang bertujuan untuk mengatur gaya (style) tampilan website. Dengan menggunakan CSS, sebuah tampilan website akan lebih mudah untuk diatur tampilannya karena CSS memisahkan antara bagian presentasi dan isi dari web yang dibuat. Berikut adalah kegunaan CSS dalam pembuatan web menurut tim dari Wahana Komputer (2013:2) : 1. Kode HTML menjadi lebih sederhana dan lebih mudah diatur 2. Ukuran file menjadi lebih kecil sehingga load file lebih cepat. 3. Mudah untuk mengubah tampilan, hanya dengan mengubah file CSS saja. 4. Dapat berkolaborasi dengan JavaScript dan merupakan pasangan setia HTML. 5. Digunakan dalam hampir semua web browser. 2.2.8 BIRT Birt adalah sebuah aplikasi open-source yang digunakan untuk membuat report atau laporan dari sebuah aplikasi berbasis web, terutama yang menggunakan bahasa pemrograman Java atau Java EE. 36 BIRT memiliki dua komponen utama yaitu sebuah desainer untuk laporan berbasis Eclipse, dan komponen runtime yang dapat ditambahkan ke server aplikasi yang telah dibuat sebelumnya. Dengan menggunakan BIRT, sebuah aplikasi dapat memuat beragam jenis laporan diantaranya : • Daftar atau List - Merupakan daftar data yang biasa digunakan dalam pembuatan laporan. • Charts - Merupakan jenis laporan yang memuat grafik, dimana data numerik jauh lebih mudah untuk memahami ketika disajikan sebagai grafik. BIRT menyediakan diagram lingkaran, garis &bar-chart dan banyak lagi. • Crosstabs - Tabulasi Frekuensi atau yang biasa disebut dengan tabulasi silang atau matriks. Jenis laporan ini menunjukkan data dalam dua dimensi, yaitu penjualan per kuartal atau penemuan per halamanweb. 2.2.9 Model View Controller (MVC) Model View Controller atau MVC adalah sebuah pola perancangan untuk mengembangkan aplikasi web. Menurut Sebesta (2011:460) Arsitektur MVC adalah cara untuk menguraikan suatu aplikasi menjadi 3 bagian: model, view dan controller. Arsitektur ini bertujuan untuk mengurangi coupling yang mungkin terjadi pada aplikasi serta membuat aplikasi lebih mudah untuk dikembangkan dan dipelihara. 2.2.9.1 Model Menurut Sebesta (2011:460) Model menggambarkan suatu data aplikasi yang memuat logika untuk mengakses dan memanipulasi data. Setiap data yang merupakan bagian dari aplikasi harus terletak di dalam model. 2.2.9.2 View Menurut Sebesta (2011:460) view adalah bagian dari aplikasi yang menyediakan dan menampilkan hasil kepada user. View menerjemahkan isi dari model dan menentukan bagaimana model ditampilkan kepada user. 37 2.2.9.3 Controller Menurut Sebesta (2011:460) controller sesuai dengan namanya berfungsi untuk mengontrol interaksi antara user dan aplikasi.Sebagai tambahan controller juga menampilkan berbagai komputasi yang diperlukan. 2.2.10 Oracle Database Oracle Database adalah basis data relasional dalam suatu sistem manajemen RDBMS (Relational Database Management System). Sebuah RDBMS yang mengimplementasikan fitur yang berorientasi obyek seperti tipe-tipe yang user defined, inheritance dan polymorphism disebut sebagai ORDMS (Object Oriented Database Management System). Oracle Database telah memperluas model relasional ke model object-relational sehingga memungkinkan untuk penyimpanan model bisnis yang kompleks di dalam basis data relasional. Kelebihan database oracle: 1. Oracle lebih efisien dalam mengontrol penggunaan penyimpanan disk. 2. Oracle mampu menangani data dalam jumlah yang besar. 3. Oracle mengolah data dalam ukuran yang besar dan mengolahnya dengan cepat untuk mendapatkan informasi yang akurat sesuai dengan permintaan user. 4. Oracle memiliki kemampuan fleksibilitas yang dapat menyesuaikan dengan berbagai kebutuhan dan kondisi tertentu yang dapat berubah-ubah. 5. Oracle memiliki kemampuan skalabilitas yang dapat memenuhi tuntutan akan data dan informasi yang bervolume besar dan terusmenerus bertambah besar. 2.2.11 Customer Loyalty Program Menurut Peelen (2003:175) Customer Loyalty Program adalah kumpulan atau gabungan dari skema skema penyimpanan yang terhubung dengan sebuah basis data yang mengandung informasi mengenai data, tingkah laku, serta latar belakang informasi dari pelanggan. Kesuksesan dari program ini terletak pada penyediaan 38 suatu reward tertentu kepada pelanggan. Tujuannya adalah untuk memberi reward kepada pelanggan yang loyal dan telah melakukan pembelian secara berkala. 2.2.12 Model Waterfall Menurut Pressman (2010:39) model waterfall adalah model klasik yang sistematis dan berurutan. Tahap-tahap dalam model waterfall meliputi: 1. Communication Tahap ini merupakan analisis terhadap kebutuhan software dan tahap untuk melakukan pengumpulan data baik dengan melakukan pertemuan dengan user maupun dengan mengumpulkan data-data tambahan. 2. Planning Tahap ini merupakan lanjutan dari tahap communication. Tahapan ini menghasilkan dokumen user requirement atau data yang sesuai dengan keinginan user. 3. Modeling Tahapan ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan sebagai perkiraan sebelum coding. Proses ini berfokus pada struktur data, arsitektur software, tampilan interface dan detail prosedural. 4. Construction Tahap ini merupakan proses membuat kode. Coding merupakan proses pengkodean sehingga menjadi bahasa yang bisa dikenali komputer. Setelah pengkodean selesai maka akan dilakukan testing untuk menemukan kesalahan-kesalahan terhadap sistem untuk bisa diperbaiki. 39 5. Deployment Tahap ini adalah tahap final dalam pembuatan sistem. Setelah melakukan analisis, desain dan coding maka sistem sudah jadi dan siap digunakan oleh user. 2.2.13 Delapan Aturan Emas Menurut Shneiderman (2010:88-89) untuk merancang suatu user interface yang baik terdapat delapan aturan emas yang dapat digunakan. Hal yang perlu diperhatikan, yaitu: 1. Berusaha untuk konsisten. Seluruh desain antarmuka harus konsisten mulai dari jenis tulisan, warna tulisan, bentuk menu yang digunakan, peletakan menu dalam aplikasi dan sebagainya. Terminologi yang ada dalam prompt, menu dan layar bantuan harus identik. 2. Memberikan penggunaan yang universal. Untuk memenuhi kebutuhan user yang beragam maka perancangan user interface harus mempertimbangkan hal-hal berikut yang meliputi perbedaan umur, keterbatasan fisik dan keberagaman teknologi. 3. Memberikan umpan balik yang informatif. Untuk setiap aksi yang dilakukan, seharusnya ada suatu sistem yang memberikan umpan balik yang interaktif kepada user. Tujuan dari umpan balik tersebut juga berfungsi agar user mengetahui apakah aksi yang diberikan sudah benar dan diterima dengan baik oleh sistem. 4. Merancang dialog untuk menghasilkan keadaan akhir. Dalam merancang komunikasi yang baik dengan pengguna, urutan tindakan harus diatur menjadi bagian awal, tengah dan akhir. Feedback yang informatif dapat memberikan kepuasan kepada user dan memberikan suatu indikasi untuk mempersiapkan aksi selanjutnya. 40 5. Menyediakan pencegahan kesalahan. Apabila user melakukan kesalahan, user interface harus mendeteksi kesalahan dan memberikan instruksi yang sederhana serta spesifik kepada user bagaimana memperbaiki kesalahan tersebut. 6. Memungkinkan pembalikan aksi yang mudah. Perancancangan user interface harus dapat mengembalikan aksi yang dilakukan sebelumnya. Aksi ini dapat menghilangkan kekhawatiran user. Contohnya user tidak sengaja melakukan aksi yang tidak diinginkan, maka user dapat melakukan pembatalan aksi dengan mengembalikan user interface sebelumnya. Selain itu, aksi ini dapat mendorong user untuk melakukan aksi-aksi yang belum pernah dijelajahi. 7. Menyediakan internal locus of control. Pengguna mempunyai kemampuan untuk mengatur program yang ada di dalam sistem atau user interface. 8. Mengurangi beban ingatan jangka pendek. User interface harus dibuat sederhana karena keterbatasan manusia untuk mengingat informasi dalam jangka pendek. User Interface yang sederhana dapat membuat user tidak perlu banyak mengingat dalam penggunaanya. 2.3 Hasil Penelitian atau Produk Sebelumnya Penelitian mengenai Customer Loyalty Program telah dimuat di beberapa jurnal lokal maupun internasional. Penelitian yang dimuat pada jurnal dengan judul “Loyalty Programmes: Practices, Avenues and Challenges“ yang dilakukan oleh Preeta H. Vyas & Piyush K. Sinha (Desember 2008) menerapkan Customer Loyalty Program dalam bentuk Loyalty Card. Menurut Preeta H. Vyas & Piyush K. Sinha, Loyalty Card adalah cara termudah dan termurah dalam menjalankan Loyalty Program. 41 Dengan menerapkan prinsip yang sama seperti kartu debit / kredit atau kartu spesial yang dapat dibaca scanner dalam penjualan, kartu ini merupakan alat yang digunakan dalam mekanisme untuk mengidentifikasi dan menghargai pelanggan yang setia. Kartu ini terdiri dari sejumlah variasi tipe seperti point cards, coalition/multi retailer cards, co-branded cards, store cards dan lainnya. Pengoperasian loyalty card adalah dengan memberikan poin kepada pengeluaran pelanggan pada setiap transaksi. Hal ini akan digunakan untuk memberikan diskon kepada pembelian saat ini atau yang akan datang untuk melakukan transaksi, pemberian hadiah, promo untuk pelanggan yang terdaftar dan memberikan kesempatan untuk pelanggan memenangkan lucky draw. Penelitian dengan topik sama pernah dibahas oleh Yulia, Shinta Wijaya, dan Oviliani Y. Yuliana. Penelitian yang diangkat dalam jurnal dengan judul“Aplikasi Customer Relationship Management pada H2O Boutique” (Juni 2013) menerapkan Customer Loyalty Program dalam bentuk sebuah sistem informasi. Sistem ini mencatat pemberian point reward kepada pelanggan yang telah memenuhi nominal transaksi. Selain itu sistem juga memberikan informasi mengenai promo-promo pada H2O Boutique dan memberikan hadiah kepada pelanggan yang sedang ulang tahun. Penelitian yang dibahas oleh Syarifuddin Baco dimuat dalam Jurnal dengan judul “Perancangan Aplikasi CRM Pada Sunshine Cafe” (April 2013) menerapkan Customer Loyalty Program dalam bentuk pembuatan aplikasi web. Kehadiran aplikasi tersebut memberikan kontribusi dalam meningkatkan dan mempertahankan loyalitas pelanggan. Aplikasi ini dapat digunakan oleh pelanggan yang telah menjadi member untuk melihat produk yang ditawarkan dan poin yang dimiliki. Dengan menggunakan aplikasi ini, dapat dihasilkan laporan mengenai loyalitas pelanggan yang diukur dengan poin yang dimiliki oleh member. Pemberian poin merupakan cara untuk mempererat hubungan antara pihak restoran dengan pihak customernya. Penelitian ini menunjukkan bahwa Customer Loyalty Program dalam bentuk aplikasi web dapat meningkatkan pertumbuhan jangka panjang dan profitabilitas perusahaan selain dari hasil pemasaran produk yang ditawarkan. Perbedaan Penelitian “Analisis dan perancangan aplikasi basis data berbasis web untuk sistem Customer Loyalty Program pada PT. XYZ melalui 42 PT. Adicipta Inovasi Teknologi” dengan tiga penelitian sebelumnya adalah metode pemberian reward kepada pelanggan. Pada aplikasi ini, pemberian reward ditentukan oleh pelanggan sendiri. Pelanggan yang memiliki poin dengan jumlah yang banyak tentu dapat memilih reward yang lebih baik. Hal ini membuat pelanggan akan termotivasi untuk meningkatkan jumlah transaksi sehingga dapat memperoleh reward yang lebih baik.