BAB 2 TINJAUAN PUSTAKA 2.1 Teori Dasar Umum Berikut merupakan teori-teori dasar umum yang digunakan dalam penulisan skripsi ini: 2.1.1 IMK (Interaksi Manusia dan Komputer) Menurut Shneiderman dan Plaisant (2010:4), Interaksi Manusia dan Komputer adalah ilmu yang melibatkan perancangan dengan mengumpulkan data dan kerangka intelektual yang dikembangkan dari ilmu komputer. 2.1.1.1 Lima Faktor Manusia Terukur Shneiderman dan Plaisant (2010:32) menyatakan bahwa perancangan sebuah sistem yang user-friendly, efisien, dan dapat memenuhi kebutuhan harus memperhatikan lima faktor berikut: 1. Waktu untuk Belajar Waktu yang dibutuhkan seorang pengguna untuk mempelajari fungsi-fungsi di dalam sebuah aplikasi untuk menyelesaikan tugasnya. 2. Kecepatan Kinerja Waktu yang diperlukan untuk penyelesaian suatu tugas di dalam aplikasi. 3. Tingkat Kesalahan yang Dilakukan Pengguna Jumlah dan jenis kesalahan yang dilakukan oleh pengguna dalam melakukan serangkaian tugas dengan menggunakan aplikasi. 4. Daya Ingat Seberapa baik pengguna mempertahankan ingatan dan pengetahuannya dalam jangka waktu tertentu saat menggunakan aplikasi. 7 8 5. Kepuasan Subjektif Tingkat ketertarikan pengguna atas berbagai aspek dari suatu sistem. 2.1.1.2 Eight Golden Rules of Interface Design Shneiderman dan Plaisant (2010:88) mengemukakan delapan aturan yang dapat digunakan sebagai petunjuk dasar yang baik untuk merancang suatu user interface. Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu: 1. Konsistensi Konsistensi dilakukan pada urutan tindakan, perintah, warna, tata letak, penggunaan huruf kapital, font, dan istilah yang digunakan pada prompt, menu, serta layar bantuan. 2. Melayani kebutuhan secara universal Dengan mengenali kebutuhan pengguna yang beragam, perancangan sebuah user interface harus mampu memfasilitasi perubahan konten sesuai kebutuhan pengguna. Perbedaan tingkat pengetahuan pengguna, keterbatasan yang dimiliki pengguna, perbedaan usia pengguna, dan ragam teknologi yang ada membuat kebutuhan pengguna semakin bertambah. Perancangan user interface harus mampu memperhatikan kebutuhan tersebut. Misalnya, penambahan penjelasan ataupun panduan pada interface bagi pemula dan penambahan fasilitas, shortcut, tombol fungsi, perintah tersembunyi, dan fasilitas makro bagi pengguna yang sudah ahli untuk meningkatkan kecepatan interaksi. 3. Memberikan feedback yang informatif Untuk setiap tindakan pengguna, user interface sebaiknya disertai dengan suatu sistem feedback. Feedback berguna untuk memberitahukan akibat dari tindakan yang telah dilakukan pengguna. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, interface 9 dapat disertai feedback yang sederhana. Akan tetapi, jika tindakan merupakan hal yang penting, maka feedback sebaiknya lebih menarik perhatian, misalnya, muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya. 4. Merancang dialog untuk hasil akhir Urutan tindakan sebaiknya dikelompokkan menjadi bagian awal, tengah, dan akhir. Feedback yang informatif akan menunjukkan bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya. 5. Memberikan penanganan kesalahan yang sederhana Rancangan sistem yang telah dibuat tidak memperbolehkan pengguna melakukan kesalahan. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan. 6. Mudah kembali ke tindakan sebelumnya Aksi yang sudah dilakukan harus dapat dikembalikan. Hal ini dapat mengurangi rasa cemas karena mengetahui situasi error dapat dikembalikan pada situasi sebelum terjadi error. 7. Mendukung tempat pengendali internal (internal locus of control) Pengguna menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna. Sistem dirancang sedemikian rupa, sehingga pengguna menjadi inisiator daripada menjadi responden. 8. Mengurangi beban ingatan jangka pendek Sistem yang dirancang harus sederhana karena ingatan manusia yang terbatas. Pembuatan interface yang lebih sederhana, pelatihan yang cukup untuk memahami kode, 10 mnemonik dan urutan aksi dapat mengurangi beban ingatan jangka pendek. 2.1.2 Internet Menurut Williams dan Sawyer (2007:17), Internet adalah jaringan komputer di seluruh dunia yang menghubungkan jaringanjaringan kecil, seperti situs pendidikan, pemerintahan, komersial, organisasi, dan perorangan. Internet bekerja menggunakan konsep penting, yaitu clientserver computing, yang menunjukkan konsep hubungan dalam pertukaran informasi dengan mengirimkannya sebagai server dan menerimanya sebagai client (Hofstetter, 2003:11). Internet menghubungkan komputer-komputer untuk berkomunikasi dengan menggunakan Internet Protocol (IP). Menurut Williams dan Sawyer (2007:62), komunikasi Internet terbagi menjadi tiga: 1. Protocols Data ditransmisikan dari komputer ke Internet dengan menggunakan protokol yang memungkinkan komputer untuk mengirimkan data secara elektronik. Protokol yang digunakan adalah Transmission Control Protocol/Internet Protocol (TCP/IP). TCP/IP menentukan apakah pengirim telah selesai mengirimkan pesan atau data dan penerima telah menerima pesan atau data. 2. Packets TCP/IP memecah data yang dikirimkan ke Internet ke dalam packets. Packets adalah blok data dengan ukuran yang tetap untuk transmisi. Data akan dipecah ke dalam bagian-bagian kecil dan bagian-bagian itu dikirimkan oleh rute yang berbeda dengan tujuan yang sama. IP digunakan untuk mengirimkan packets ke tujuan dan TCP digunakan untuk mengumpulkan kembali packets ke urutan yang benar. 3. IP Addresses Setiap komputer dan perangkat yang terhubung ke Internet memiliki alamat. Internet Protocol (IP) address adalah alamat 11 yang mengidentifikasikan setiap komputer dan perangkat yang terhubung ke Internet secara unik. IP address dibagi menjadi dua, yaitu dynamic IP address dan static IP address. Dynamic IP address akan berubah setiap kali pengguna terhubung ke Internet, sedangkan static IP address akan tetap setiap kali pengguna terhubung ke Internet. Jika komputer terhubung ke Internet secara tetap, maka pengguna akan memiliki static IP address. Jika komputer sesekali terhubung ke Internet atau memiliki koneksi dial-up ke Internet, maka pengguna akan menggunakan dynamic IP address dari kumpulan IP address yang tersedia pada Internet Access Provider (IAP). Internet memiliki akses untuk layanan komunikasi di antara penggunanya. Layanan Internet (Internet Service) yang paling sering digunakan adalah electronic mail (e-mail), listserv, newsgroup, chat, videoconferencing, File Transfer Protocol (FTP), multimedia streaming, dan World Wide Web. a. File Transfer Protocol (FTP) FTP adalah protokol yang digunakan untuk mengirimkan data dari satu komputer ke komputer lain. Sebuah server FTP diakses dengan menggunakan Universal Resource Identifier (URI). FTP menggunakan protokol TCP untuk komunikasi data antara server dan client sebelum memulai pengiriman data. b. World Wide Web (WWW) Menurut Hofstetter (2003:10), World Wide Web (WWW) adalah suatu sistem jaringan hypertext yang memungkinkan dokumen disebarkan menggunakan Internet. World Wide Web merupakan layanan Internet yang paling sering digunakan dan bisa mengakses ke seluruh halaman situs yang ada. Menurut Williams dan Sawyer (2007:68-69), fondasi dari World Wide Web adalah HTML (Hypertext Markup Language) dan hypertext link. HTML adalah instruksi spesial yang digunakan untuk menspesifikasikan struktur dokumen, formatting, dan link untuk dokumen multimedia yang ada pada web. HTML menggunakan hypertext link untuk 12 menghubungkan dokumen hypertext dengan dokumen hypertext yang lain. Williams dan Sawyer (2007:64-66) mendefinisikan beberapa istilah untuk web: 1. Website Website adalah komputer yang memiliki nama domain. Misalnya, www.barnesandnoble.com merupakan sebuah website. 2. Halaman Web Halaman web adalah dokumen yang terdapat dalam World Wide Web. 3. Web Browser Web browser adalah software yang memungkinkan pengguna untuk menemukan dan melihat halaman web dan pindah dari suatu halaman web ke halaman web yang lain. 4. URL (Uniform Resource Language) URL adalah kumpulan karakter yang menunjuk pada sebuah informasi spesifik dalam web. Komponen URL terdiri dari: 1. Protokol web Protokol web atau HTTP (Hypertext Transfer Protocol) adalah suatu protokol yang memungkinkan web browser untuk berhubungan dengan web server. 2. Nama domain (nama web server) Nama domain adalah nama unik yang menunjukkan lokasi dan tipe dari alamat yang ada pada web. 3. Nama directory Nama directory adalah nama untuk directory atau folder yang diperlukan web browser untuk mengambil file. 4. Nama file dan ekstensi File adalah halaman atau dokumen yang dicari pada web. 13 2.1.3 E-Commerce Menurut Turban et al. (2010:46), electronic commerce adalah proses berkembang yang menggambarkan suatu proses pembelian, penjualan, atau pertukaran produk, layanan, dan informasi melalui jaringan komputer yang meliputi Internet. Turban et al. (2010:51) mengklasifikasikan e-commerce berdasarkan sifat dasar dari transaksi menjadi sepuluh jenis ecommerce, yakni: 1. Business-to-Business (B2B) B2B meliputi aliran informasi dan transaksi antara dua atau lebih organisasi. 2. Business-to-Consumer (B2C) B2C meliputi transaksi dengan pembeli yang bersifat perseorangan. 3. Business-to-Business-to-Customer (B2B2C) B2B2C merupakan model transaksi bisnis yang menyediakan produk atau jasa ke klien bisnis lain yang mengatur pelanggannya sendiri. 4. Consumer-to-Business (C2B) C2B merupakan kategori yang melibatkan individu yang menjual produk atau jasa kepada organisasi. Individu mencari penjual, berinterakasi dengan penjual, dan melakukan transaksi. 5. Intrabusiness E-Commerce Kategori ini meliputi semua aktivitas internal sebuah organisasi yang melibatkan pertukaran barang, jasa, dan informasi. 6. Business-to-Employees (B2E) B2E adalah model transaksi bisnis yang memungkinkan organisasi memberikan informasi, jasa, atau produk ke karyawan sendiri. B2E merupakan bagian dari Intrabusiness E-Commerce. 7. Consumer-to-Consumer (C2C) C2C merupakan kegiatan transaksi antarkonsumen. Konsumen menjual langsung ke konsumen lain. 14 8. Collaborative Commerce Model ini memungkinkan individu atau kelompok untuk berkomunikasi secara online. 9. E-Learning E-learning merupakan penyampaian informasi secara online sebagai media edukasi. 10. E-Government E-government adalah model transaksi bisnis yang melibatkan pemerintah dalam membeli atau menyediakan barang, jasa, atau informasi dari atau ke bisnis atau masyarakat. E-commerce menawarkan beberapa keuntungan untuk organisasi, individu dan masyarakat. Menurut Turban et al. (2010:77), berikut ini keuntungan penggunaan e-commerce untuk organisasi. 1. E-commerce memperluas pasar ke tingkat nasional dan internasional dengan pengeluaran modal yang minimal. Ecommerce membantu perusahaan untuk menemukan konsumen, pemasok, dan partner bisnis. 2. E-commerce menekan biaya-biaya pengeluaran sebuah perusahaan. Biaya-biaya tersebut meliputi biaya pembuatan, pemrosesan, pendistribusian, penyimpanan dan pengambilan informasi. 3. E-commerce mengurangi inventori dan ongkos tambahan. Ecommerce menyediakan fasilitas manajemen rantai pasokan pulltype. Sistem pull-type dimulai dengan pemesanan dari konsumen dan pabrik akan membuat pesanan dari konsumen. Proses pulltype memungkinkan konsumen untuk membeli produk dan jasa yang disesuaikan dengan spesifikasi yang diinginkan konsumen. Dengan cara ini, pull-type menyediakan keuntungan kompetitif untuk mengimplementasikan pull-type. 4. E-commerce menginisiasi proyek business processes reengineering. Business processes reengineering dapat membantu meningkatkan pelayanan konsumen, pengetahuan pekerja dan produktivitas dari penjual. 5. Pengurangan biaya komunikasi. 15 6. E-commerce menawarkan keuntungan lain seperti peningkatan citra organisasi, produktivitas, fleksibilitas, dan layanan konsumen, penemuan partner bisnis baru, proses yang lebih mudah, pengurangan waktu dan biaya pengiriman, dan perluasan akses informasi. Turban et al. (2010:77) menjelaskan keuntungan penggunaan ecommerce untuk konsumen. 1. E-commerce mempermudah konsumen untuk melakukan pembelanjaan dan transaksi lain dari berbagai tempat selama 24 jam dalam sehari. 2. E-commerce memberikan banyak pilihan produk dan penjual untuk konsumen. 3. E-commerce memungkinkan konsumen untuk mendapatkan jasa dan produk yang lebih murah. Konsumen dapat melakukan transaksi di banyak tempat dan melakukan perbandingan secara cepat. 4. Pengiriman produk dan jasa yang lebih cepat. 5. Konsumen dapat mengakses informasi dengan cepat. 6. Konsumen dapat mengikuti lelang virtual. 7. Konsumen dapat berinteraksi dengan konsumen lain dalam sebuah komunitas elektronik dan melakukan pertukaran ide serta pengalaman berbelanja. 8. E-commerce meningkatkan kompetisi antara penjual, sehingga menghasilkan banyak diskon. Turban et al. (2010:77) mendeskripsikan keuntungan penggunaan e-commerce untuk masyarakat sebagai berikut. 1. E-commerce mengurangi kemacetan dan polusi udara karena banyak individu memilih bekerja di rumah dan mengurangi perjalanan untuk belanja. 2. E-commerce menyediakan beberapa produk dan jasa yang murah, sehingga masyarakat dapat membeli lebih banyak produk dan jasa untuk meningkatkan standar kehidupan. 16 3. E-commerce memungkinkan masyarakat yang berada di daerah terpencil untuk menikmati produk dan jasa yang tidak tersedia di daerah mereka tinggal. 4. E-commerce menyediakan pengiriman layanan publik dengan pengurangan biaya dan peningkatan kualitas layanan. 2.1.4 Cross-Selling Menurut Li et al. (2010:683), cross-selling adalah suatu praktik menjual produk atau layanan tambahan kepada pelanggan yang sudah ada. Pada banyak industri, seperti jasa keuangan, asuransi, kesehatan, akuntansi, telekomunikasi, penerbangan, dan ritel, cross-selling dijadikan sebagai prioritas strategis atas. Cross-selling dipandang sebagai suatu teknik mapan dan berharga yang dapat meningkatkan ukuran pesanan serta mengubah pembeli tunggal produk ke pembeli multi-produk. Implementasi yang tepat dari cross-selling hanya dapat dicapai jika ada suatu infrastruktur informasi yang memungkinkan produk-produk ditawarkan kepada pelanggan yang cocok dengan keinginan mereka. 2.1.5 Waterfall Model Menurut Pressman (2010:39), waterfall model juga disebut sebagai classic life cycle yang mengembangkan software dengan pendekatan sistematis dan berurutan. Pendekatan ini diawali dengan pengumpulan kebutuhan yang selanjutnya diikuti dengan perancangan, pemodelan, pembangunan, dan implementasi dari sistem software. Metode waterfall ini digunakan dalam pengembangan web e-commerce dengan tahap-tahap yang dapat dilihat pada gambar 2.1. 17 Gambar 2.1 Waterfall Model (Sumber: Software Engineering: A Practitioner’s Approach – Pressman, 2010) 1. Communication Tahap ini merupakan tahap inisiasi proyek dengan melakukan analisis terhadap masalah yang ada dan tujuan yang ingin dicapai. Selain itu, tahap ini juga melakukan analisis terhadap kebutuhan software dan pengguna yang didapatkan melalui pengumpulan data dengan kuesioner. 2. Planning Tahap ini merupakan tahap lanjutan dari communication. Tahap ini melakukan estimasi terhadap kebutuhan-kebutuhan dalam pembuatan sistem dan membuat perencanaan terhadap jadwal pengerjaan software. 3. Modeling Tahap ini membuat pemodelan terhadap software dengan melakukan analisis dan perancangan software berdasarkan hasil dari analisis kebutuhan pengguna yang sudah didapatkan. Perancangan software tersebut berupa perancangan struktur data, arsitektur program, user interface, dan detil prosedur. 4. Construction Setelah membuat pemodelan terhadap software, tahap selanjutnya adalah membuat kode (coding) berdasarkan kebutuhan pengguna dan software tersebut. Selanjutnya, pengujian dilakukan untuk meminimalkan kesalahan-kesalahan yang mungkin terjadi dalam sistem. 18 5. Deployment Setelah proses construction selesai, tahap selanjutnya adalah mengimplementasikan software tersebut kepada pengguna untuk mendapatkan umpan balik untuk software tersebut. Software yang telah dibuat juga harus dilakukan pemeliharaan, perbaikan, dan pengembangan secara berkala agar dapat berjalan dengan baik. 2.1.6 Flowchart Menurut Romney dan Steinbart (2006:70), flowchart adalah teknik analitik yang digunakan untuk mendeskripsikan beberapa aspek dari sebuah sistem informasi secara jelas, singkat, dan logis. Ketika terdapat beberapa entitas, flowchart dibagi ke dalam kolomkolom dengan nama untuk setiap kolom. Romney dan Steinbart (2006:77) membagi flowchart ke dalam tiga kategori, yakni: a. Program flowchart, yang menggambarkan struktur dan urutan operasi oleh sebuah komputer dalam mengeksekusi program, b. System flowchart, yang menggambarkan hubungan input, proses, dan output dari sebuah sistem informasi, dan c. Document flowchart, yang menggambarkan aliran dokumen dan informasi antardepartemen dalam organisasi. Menurut Romney dan Steinbart (2006:71-73), simbol dalam flowchart terbagi menjadi empat kategori sebagai berikut: 1. Simbol input atau output Simbol input atau output merepresentasikan alat atau media yang menyediakan input ke atau mencatat output dari operasi pemrosesan. 19 Tabel 2.1 Simbol Input atau Output Simbol Nama Document Keterangan Sebuah dokumen atau laporan. Dokumen dapat disiapkan secara manual atau dicetak oleh komputer. Multiple copies of one document Digambarkan dokumen dengan yang saling tumpang tindih. Fungsi input atau output pada Input/Output; Journal/ledger sebuah program flowchart dan representasi jurnal akutansi dan buku kas dalam sebuah document flowchart. Informasi yang ditampilkan Display oleh alat output online seperti sebuah terminal, monitor, atau layar. Entri data menggunakan alat Online Keying online seperti terminal atau komputer personal. Simbol display dan online Terminal or keying digunakan bersama Personal untuk Computer terminal merepresentasikan dan komputer personal. Kontrol total yang disiapkan secara manual. Simbol ini Transmittal Tape digunakan untuk tujuan kontrol yang membandingkan dengan total yang dikerjakan komputer. 20 2. Simbol processing Simbol processing menunjukkan tipe dari alat yang digunakan untuk memproses data atau mengindikasikan pemrosesan yang dilakukan secara manual. Tabel 2.2 Simbol Processing Simbol Nama Keterangan Sebuah fungsi pemrosesan Computer Processing yang dilakukan oleh komputer. Biasanya hasilnya mengubah data atau informasi. Manual Operation Auxiliary Operation Operasi pemrosesan yang dilakukan secara manual. Sebuah fungsi pemrosesan yang dioperasikan oleh sebuah alat selain komputer. Simbol yang Off-line merepresentasikan sebuah Keying operasi yang menggunakan Operation alat entri data secara offline, seperti cash register. 3. Simbol storage Simbol storage merepresentasikan alat yang digunakan untuk menyimpan data yang sedang tidak digunakan oleh sistem. 21 Tabel 2.3 Simbol Storage Simbol Nama Keterangan Data disimpan pada sebuah disk magnetik secara Magnetic Disk permanen. Disk magnetik ini digunakan sebagai master file dan database. Magnetic Tape Diskette Data disimpan pada sebuah magnetic tape. Data disimpan dalam sebuah disket. Data disimpan dalam sebuah Online file online temporer Storage menggunakan medium akses langsung seperti disk. File atau dokumen disimpan dan diambil secara manual. Huruf N File yang tertulis mengindikasikan urutan berkas. N = numerically, A= alphabetically, dan D = by date. 4. Simbol flow dan miscellaneous Simbol flow and miscellaneous mengindikasikan aliran data dan barang. Simbol flow and miscellaneous juga merepresentasikan 22 operasi saat flowchart mulai atau berakhir, keputusan dibuat, dan penambahan penjelasan dalam flowchart. Tabel 2.4 Simbol Flow dan Miscellaneous Simbol Nama Document or Processing Flow Keterangan Arah dari aliran proses atau dokumen. Aliran yang normal adalah ke bawah dan ke kanan. Arah dari aliran data atau Data or informasi. Sering digunakan Information untuk menunjukan data yang Flow di-copy dari sebuah dokumen ke dokumen lain. Transmisi data dari sebuah Communication lokasi Link ke lokasi menggunakan lain jalur komunikasi. Menghubungkan aliran proses pada halaman yang On-page Connector sama. On-page connector digunakan untuk menghindari garis tumpang tindih pada sebuah halaman. Off-page Connector Entri dari, keluar dari, atau ke halaman lain. Permulaan, akhir, atau poin interupsi Terminal dalam sebuah proses atau program, juga digunakan mengindikasikan pihak eksternal untuk sebuah 23 Simbol Nama Keterangan Langkah pembuatan keputusan. Simbol digunakan Decision ini untuk menggambarkan percabangan alternatif ke jalan dalam program dari komentar flowchart. Tambahan Annotation deskriptif atau penjelesan sebagai klarifikasi. Gambar 2.2 Contoh Flowchart I (Sumber: Accounting Information System - Romney dan Steinbart, 2006) 24 Gambar 2.3 Contoh Flowchart II (Sumber: Accounting Information System - Romney dan Steinbart, 2006) 2.1.7 Database Menurut Connolly dan Begg (2005:15), database adalah kumpulan dari data yang berelasi secara logis dan deskripsi data yang dirancang untuk memenuhi kebutuhan informasi sebuah organisasi. Database adalah sebuah penyimpanan data yang besar dan tunggal yang dapat digunakan oleh banyak departemen dan pengguna. Database tidak lagi dimiliki oleh satu departemen melainkan merupakan sumber daya perusahaan yang terbagi. Selain itu, database memiliki data operasional dari organisasi dan deskripsi dari data tersebut. Oleh karena itu, database juga merupakan koleksi penggambaran sendiri dari record yang terintegrasi (self-describing collection of integrated records). Deskripsi data ini dikenal sebagai system catalog atau data dictionary. Saat menganalisis informasi yang dibutuhkan suatu organisasi, identifikasi dari entity, attributte, dan relationship sangat dibutuhkan. Entity adalah objek yang jelas dalam organisasi yang digambarkan dalam database seperti orang, tempat, benda, dan konsep. Attribute 25 adalah properti yang menjelaskan aspek objek yang di-record. Relationship adalah hubungan asosiasi antar-entity. Bahasa yang digunakan pada database dibagi menjadi dua kategori: 1. Data Manipulation Language (DML) Menurut Connolly dan Begg (2005:40), DML adalah suatu bahasa yang melakukan operasi-operasi standar pada data yang ada di dalam database. Pengoperasian data yang akan dimanipulasi biasanya meliputi: a. Penambahan data baru ke dalam database, b. Mengubah data yang tersimpan di database, c. Pemanggilan data yang terdapat di dalam database, dan d. Penghapusan data dari database. 2. Data Definition Language (DDL) Definisi dari Data Definition Language menurut Connolly dan Begg (2005:40) adalah suatu bahasa yang memperbolehkan Database Administrator (DBA) atau pengguna untuk mendefinisikan entity, attribute, dan relationship yang dibutuhkan oleh suatu aplikasi serta menambahkan fungsi-fungsi khusus tertentu untuk mempermudah atau meningkatkan keamanan datanya. 2.1.8 Database Management System (DBMS) 2.1.8.1 Pengertian DBMS Menurut Connolly dan Begg (2005:16), Database Management System (DBMS) adalah sebuah sistem software yang memungkinkan pengguna untuk menjelaskan, membuat, menjaga, dan memberikan kontrol akses terhadap database. Menurut Williams dan Sawyer (2007:420), DBMS adalah sebuah software yang ditulis untuk mengontrol struktur dari basis data dan mengakses data. 26 2.1.8.2 Fungsi DBMS Menurut Connolly dan Begg (2005:48), DBMS memiliki sepuluh fungsi, antara lain: 1. Data storage, retrival, and update DBMS harus dapat memungkinkan pengguna untuk menyimpan, mengambil dan meng-update data di dalam database. 2. A user-accessible catalog DBMS harus memiliki sebuah catalog yang berisi deskripsi data item dan dapat diakses oleh pengguna. 3. Transaction support DBMS harus memiliki sebuah mekanisme yang dapat menjamin baik seluruh update yang berhubungan dengan sebuah transaksi dapat dilakukan ataupun keseluruhan update tersebut tidak dilakukan. 4. Concurrency control services DBMS harus memiliki sebuah mekanisme untuk menjamin database di-update secara benar ketika banyak pengguna meng-update database secara bersamaan. 5. Recovery services DBMS harus memiliki sebuah mekanisme untuk pemulihan database apabila terjadi bencana. 6. Authorization services DBMS harus memiliki sebuah mekanisme untuk menjamin bahwa hanya pengguna yang memiliki otorisasi yang dapat mengakses database. 7. Support for data communication DBMS harus dapat berintegrasi dengan piranti lunak komunikasi dan dapat mengakses database dari lokasi yang jauh. 8. Integrity services DBMS harus memiliki sarana untuk menjamin baik data di dalam database maupun perubahan terhadap data mengikuti aturan-aturan yang telah ditetapkan. 27 9. Services to promote data independence DBMS harus menyertakan fasilitas-fasilitas untuk mendukung ketidaktergantungan piranti lunak terhadap struktur dari database. 10. Utility services DBMS harus menyediakan serangkaian layanan kegunaan seperti program analisis statistik, pengawasan fasilitas, fasilitas reorganisasi indeks dan lain-lain. 2.1.8.3 Fasilitas DBMS DBMS merupakan software yang berinteraksi dengan aplikasi pengguna dan database. DBMS menyediakan beberapa fasilitas sebagai berikut: 1. Mendefinisikan database, yaitu menentukan tipe, struktur, dan batasan data yang disimpan dalam database menggunakan Data Definition Language (DDL), 2. Mengizinkan pengguna untuk memasukkan, memperbarui, menghapus, dan mendapatkan kembali data dari database menggunakan Data Manipulation Language (DML). DML memiliki fasilitas untuk melayani pengaksesan data yang disebut sebagai query language. Query language yang paling diakui adalah Structured Query Language (SQL), yang secara de facto merupakan standar bagi DBMS, dan 3. Menyediakan akses yang terkontrol ke database, yaitu: a. Sistem keamanan (security system) Mencegah pengguna yang tidak berwenang untuk mengakses database. b. Sistem integritas (integrity system) Menjaga konsistensi dari data yang disimpan. c. Sistem kontrol konkurensi (concurrency control system) Mengizinkan data dapat dipakai bersama-sama oleh pengguna lainnya. 28 d. Sistem kontrol pengembalian (recovery control system) Memperbaiki data jika sebelumnya terjadi kesalahan pada hardware atau software. e. Katalog yang dapat diakses pengguna (user- accessible catalog) Berisi deskripsi data dalam database. 2.1.8.4 Komponen DBMS Menurut Connolly dan Begg (2005:18), DBMS memiliki lima komponen, yaitu: 1. Perangkat Keras (Hardware) DBMS membutuhkan perangkat keras untuk menjalankannya. Contohnya, single personal computer dan single mainframe. 2. Perangkat Lunak (Software) Karena seluruh kendali DBMS akan dilakukan oleh program aplikasi, DBMS harus dapat dihubungkan dengan program-program aplikasinya. 3. Data Data yang digunakan oleh suatu organisasi harus didesain sedemikian rupa sehingga mudah untuk digunakan. 4. Prosedur (Procedures) Perintah-perintah yang harus dilakukan untuk menjalankan DBMS ini. 5. Faktor Manusia (People) Ini adalah masalah keterkaitan perilaku orang yang menggunakan sistem (pengguna) dengan DBMS yang sudah didesain sebelumnya. Manusia yang terlibat dengan sistem, termasuk dalamnya adalah database administrator, perancang aplikasi, dan pemakai akhir. basis data, pengembang 29 Gambar 2.4 Komponen-komponen dalam lingkungan DBMS (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) 2.1.8.5 Keuntungan dan Kerugian DBMS Penggunaan DBMS memiliki keuntungan dan kerugian. Keuntungan DBMS antara lain: 1. Kontrol terhadap redundant data, 2. Data yang konsisten, 3. Semakin banyak informasi yang didapat dari data yang sama, 4. Shared data, 5. Menambah integritas data, 6. Menambah keamanan data, 7. Penetapan standarisasi, 8. Menyeimbangkan konflik kebutuhan, 9. Memperbaiki pengaksesan data dan hasilnya, 10. Memperbaiki produktivitas, 11. Memperbaiki pemeliharaan data independence, dan 12. Meningkatkan concurrency. Kerugian DBMS antara lain: 1. Kompleksitas, 2. Size/ukuran, 3. Biaya dari suatu DBMS, dan 4. Biaya penambahan perangkat keras. melalui data 30 2.1.9 Data Flow Diagram Menurut Whitten dan Bentley (2007:317), data flow diagram (DFD) adalah suatu model yang menggambarkan aliran data dalam suatu sistem dan proses yang berjalan pada sistem tersebut. DFD juga disebut sebagai bubble chart, transformation graph, dan process model. Gambar 2.5 Contoh Data Flow Diagram (Sumber: Systems Analysis and Design Methods - Whitten dan Bentley, 2007) DFD terdiri dari tiga simbol dan satu penghubung sebagai berikut: 1. External Agents External agent adalah orang, sistem, atau organisasi lain di luar lingkup sistem tetapi berinteraksi dengan sistem. External agent disebut juga external entity. External agent menyediakan input untuk sistem dan menerima output dari sistem. External agent mendefinisikan batasan atau lingkup dari pemodelan sistem. Jika 31 lingkupnya berubah, maka external agent dapat menjadi proses dan sebaliknya. External agent dapat berupa kantor, departemen, divisi, organisasi eksternal, bisnis lain, atau salah satu end-user sistem. External agent diberi nama dengan kata benda deksiprif dan tunggal. External agent dilambangkan dengan bentuk kotak pada DFD. Gambar 2.6 Simbol External Agent (Sumber: Systems Analysis and Design Methods - Whitten dan Bentley, 2007) 2. Data Stores Data store adalah data yang disimpan agar dapat digunakan di lain waktu. Data store juga disebut file dan database. Data flow merupakan data in motion, sedangkan data store merupakan data at rest. Data store dapat berupa orang (kelompok atau individu), tempat, objek, kejadian, atau konsep. Data store menggambarkan DFD yang menyimpan semua instance dari entitas data. Data store diberi nama dengan kata benda jamak. Data store dilambangkan dengan open-end box pada DFD. 32 Gambar 2.7 Simbol Data Store (Sumber: Systems Analysis and Design Methods - Whitten dan Bentley, 2007) 3. Process Process adalah suatu pekerjaan yang dilakukan oleh sistem sebagai respon untuk aliran data atau kondisi yang masuk. Process disebut juga sebagai transform. Process memberikan respon terhadap kondisi bisnis dan mengubah data menjadi informasi yang berguna. Pemodelan process sangat membantu dalam memahami interaksi yang terjadi dengan lingkungan sistem, sistem lain, dan proses lain. Process diberi nama dengan kata kerja aksi yang mendeskripsikan diikuti pekerjaan dengan yang klausa objek dilakukan. dilambangkan dengan rounded box pada DFD. untuk Process 33 Gambar 2.8 Simbol Process (Sumber: Systems Analysis and Design Methods - Whitten dan Bentley, 2007) 4. Data Flow Data flow adalah data yang dimasukkan atau dikeluarkan dari suatu proses. Data flow digunakan untuk menggambarkan pembuatan, pembacaan, penghapusan, atau pengubahan data dalam file atau database. Composite data flow adalah data flow yang terdiri dari data flow lain untuk menggabungkan data flow yang sama pada diagram data flow tingkat tinggi. Data flow dilambangkan dengan panah penghubung pada DFD. Gambar 2.9 Simbol Data Flow (Sumber: Systems Analysis and Design Methods - Whitten dan Bentley, 2007) Berikut ini perbedaan antara DFD dan flowchart. 1. Proses dalam DFD dapat dijalankan secara paralel pada waktu yang sama, sedangkan proses dalam flowchart hanya dapat dijalankan satu kali pada satu waktu. 2. DFD menggambarkan aliran data yang melalui sistem, sedangkan flowchart menggambarkan aliran kontrol. 34 3. Proses dalam DFD dapat memiliki waktu yang sangat berbeda, sedangkan proses dalam flowchart memiliki waktu yang konsisten. Dalam membangun suatu model proses, hal penting yang dibutuhkan adalah membuat dokumentasi ruang lingkup suatu sistem. Dokumentasi ini dapat dilakukan dengan menggunakan context data flow diagram. Menurut Whitten dan Bentley (2007:339), context data flow diagram adalah model proses yang digunakan sebagai dokumentasi terhadap ruang lingkup sistem. Langkah-langkah untuk membuat dokumentasi terhadap ruang lingkup sistem: 1. Memikirkan sistem sebagai black box, 2. Menanyakan pengguna tentang transaksi bisnis yang harus direspon oleh sistem sebagai input. Sumbernya adalah external agent, 3. Menanyakan pengguna tentang respon yang harus diberikan oleh sistem sebagi output. Tujuannya adalah external agent, 4. Mengidentifikasi data store eksternal, dan 5. Membuat context diagram. Gambar 2.10 Contoh Context Data Flow Diagram (Sumber: Systems Analysis and Design Methods - Whitten dan Bentley, 2007) 35 2.1.10 Entity Relationship Diagram (ERD) ERD adalah sebuah diagram untuk perancangan database yang dimulai dari pengidentifikasian data-data penting yang disebut entity dan relationship antara data yang digambarkan dalam sebuah model. Detil tambahan, seperti attribute dan constraint juga dapat ditambahkan pada entity dan relationship. a. Entity Entity adalah kelompok objek yang memiliki properti yang sama, yang diidentifikasi sebagai objek yang memiliki independent existence. Gambar 2.11 Contoh Entity (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) b. Relationship Relationship adalah kumpulan asosiasi bermakna yang menghubungkan satu atau lebih entity. Setiap relationship diberikan suatu nama yang menjelaskan fungsinya. 36 Gambar 2.12 Contoh Relationship (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) c. Attribute Attribute adalah properti dari entity atau relationship. Attribute terbagi menjadi simple dan composite, single-valued dan multivalued, dan derived. 1. Simple dan Composite Attribute Simple attribute adalah attribute yang tidak dapat dibagi menjadi komponen yang lebih kecil yang dapat berdiri sendiri lagi. Contoh simple attribute adalah umur dan gaji. Composite attribute adalah attribute yang dapat dibagi ke dalam komponen yang lebih kecil yang dapat berdiri sendiri. Alamat yang dapat dibagi menjadi jalan, kode pos, dan kota merupakan salah satu contoh composite attribute. 2. Single-Valued dan Multi-Valued Attribute Single-valued attribute adalah attribute yang berisi nilai tunggal untuk setiap occurrence dari entity. Contoh singlevalued attribute adalah jenis kelamin dan umur. Multi-valued attribute adalah attribute yang berisi banyak nilai untuk setiap occurrence dari entity. Contoh multi-valued attribute adalah nomor telepon, dan e-mail. 3. Derived Attribute Derived attribute adalah attribute yang berisi nilai yang diturunkan dari nilai attribute lain yang berhubungan. Contoh 37 derived attribute adalah diskon yang nilainya didapatkan dari perhitungan nilai jumlah transaksi. d. Structural Constraint Structural constraint menetapkan jumlah relasi yang terjadi antarentitas. Tipe utama dari structural constraint pada relationship adalah multiplicity. Multiplicity adalah jumlah kemungkinan cara suatu entity dapat berhubungan. Multiplicity menekankan banyaknya jumlah occurrence dari sebuah entity dapat berhubungan dengan suatu occurrence dari entity lain yang berhubungan. Multiplicity terbagi menjadi dua, yaitu cardinality dan participation. Cardinality menjelaskan kemungkinan jumlah maksimal dari rentang multiplicity pada setiap sisi relationship. Participation menentukan apakah semua (mandatory participation) atau hanya beberapa entity occurrence (optional participation) yang terjadi pada relationship tertentu. Gambar 2.13 Cardinality dan Participation (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) 38 Tabel 2.5 Cara Merepresentasikan Multiplicity Constraint Cara alternatif untuk merepresentasikan Deskripsi multiplicity constraint 0..1 Nol atau satu entity occurrence. 1..1 (atau hanya 1) Hanya satu entity occurrence. 0..* (atau hanya *) Nol sampai banyak entity occurrence. 1..* Satu sampai banyak entity occurrence. 5..10 Minimum lima sampai maksimum sepulih entity occurrence. 0, 3, 6-8 Nol, tiga, enam, tujuh, atau delapan entity occurrence. Cardinality pada relationship dapat ditentukan sebagai berikut: a. One-to-One (1..1) Relationship Gambar 2.14 Contoh One-to-One Relationship (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) Pada gambar 2.14, 0..1 menunjukkan bahwa seorang Staff dapat mengelola satu Branch atau tidak mengelola Branch sama sekali, sedangkan 1..1 menunjukkan bahwa satu Branch dikelola oleh seorang Staff. 39 b. One-to-Many (1..*) Relationship Gambar 2.15 Contoh One-to-Many Relationship (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) Pada gambar 2.15, 0..* menunjukkan bahwa seorang Staff dapat mengawasi banyak PropertyForRent atau tidak mengawasi sama sekali, sedangkan 0..1 menunjukkan bahwa PropertyForRent dapat dikelola oleh seorang Staff atau tidak dikelola sama sekali. c. Many-to-Many (*..*) Relationship Gambar 2.16 Contoh Many-to-Many Relationship (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) Pada gambar 2.16, 1..* menunjukkan bahwa satu Newspaper mengiklankan satu sampai banyak PropertyForRent, sedangkan 0..* menunjukkan bahwa satu PropertyForRent 40 diiklankan oleh banyak Newspaper atau tidak diiklankan sama sekali. 2.1.11 OLAP (On-line Analytical Processing) Menurut Connolly dan Begg (2005:1205), OLAP adalah analisis dan konsolidasi dinamis dari model data multidimensi dalam jumlah besar. OLAP memungkinkan pengguna untuk lebih memahami berbagai aspek data perusahaan secara cepat dan konsisten. OLAP juga memungkinkan pembuatan keputusan untuk tindakan di masa depan. 2.1.12 Data Warehouse 2.1.12.1 Pengertian Data Warehouse Menurut Inmon (2005:29), data warehouse adalah koleksi data yang mempunyai sifat berorientasi subjek, terintegrasi, time-variant, dan bersifat tetap dari koleksi data dalam mendukung proses pengambilan keputusan manajemen. Jadi, data warehouse merupakan metode dalam perancangan database, yang menunjang DSS (Decision Support System) dan EIS (Executive Information System). Secara fisik data warehouse adalah database, tapi perancangan data warehouse dan database sangat berbeda. 2.1.12.2 Karakteristik Data Warehouse Menurut Inmon (2005:29), karakteristik data warehouse adalah: 1. Subject-oriented Data warehouse disusun dan diatur berdasarkan subjek utama dari perusahaan dikarenakan oleh kebutuhan akan penyimpanan data pendukung keputusan daripada data yang berorientasi aplikasi. 41 2. Integrated Integrasi merupakan karakteristik yang paling penting dari data warehouse. Data warehouse memiliki sumber data dari sistem aplikasi perusahaan yang berbeda. Data yang diperoleh kemudian diubah, diformat, disusun kembali, dan diringkas. Oleh karena itu, sumber data yang terintegrasi harus konsisten dalam menyajikan tampilan data ke pengguna secara seragam. 3. Non-volatile Data tidak diperbarui secara real time, tetapi diperbarui dari sistem operasional secara berkala. Data dalam lingkungan operasional dapat dilakukan perubahan dan manipulasi, tetapi data dalam data warehouse hanya dapat dimuat dan diakses. Dengan demikian, data baru merupakan tambahan untuk database, bukan sebagai pengganti, dan data lama tetap tersimpan dalam data warehouse. 4. Time-variant Data dalam warehouse hanya bersifat akurat dan sah pada waktu tertentu atau selama interval waktu tertentu. Lingkungan yang berbeda memiliki time horizon yang berbeda pula. Time horizon adalah waktu yang menunjukkan lamanya data ditampilkan dalam suatu lingkungan. Batas waktu pada data warehouse lebih lama daripada sistem operasional. Oleh karena itu, data warehouse memiki lebih banyak history dibandingkan dengan lingkungan lain. 2.1.12.3 Arsitektur Data Warehouse Menurut Connolly dan Begg (2005:1156), arsitektur data warehouse adalah sebagai berikut: 1. Operational Data Sumber data untuk data warehouse berupa: 42 a. Data dari sistem mainframe, b. Data dari DBMS relasional, seperti Oracle dan Informix, c. Data dari server pribadi, dan d. Data dari sistem eksternal, seperti Internet atau database komersial. 2. Operational Data Store Operational Data Store (ODS) adalah tempat penyimpanan untuk data operasional saat ini dan terintegrasi yang digunakan untuk analisis. ODS membantu dan mempermudah pembuatan data warehouse karena ODS dapat menyediakan data yang telah diekstrak dan dibersihkan oleh sistem, sehingga integrasi dan restrukturisasi data menjadi lebih sederhana. 3. Load Manager Load manager bertugas melakukan semua operasi yang berhubungan dengan proses ekstraksi dan loading data ke dalam data warehouse. 4. Warehouse Manager Warehouse manager bertanggung jawab atas pengelolaan data dalam warehouse. Tugas warehouse manager meliputi: a. Analisis data untuk memastikan konsistensi, b. Transformasi dan menggabungkan sumber data dari penyimpanan sementara ke dalam tabel data warehouse, c. Membuat index dan view pada base table, d. Melakukan denormalisasi, e. Menghasilkan agregasi, dan f. Melakukan backup dan mengarsip data. 5. Query Manager Query manager bertugas melakukan semua operasi yang berhubungan dengan pengelolaan user query. 43 6. Detailed Data Detailed data adalah area dalam warehouse yang menyimpan semua detailed data dalam skema database. 7. Lightly and Highly Summarized Data Lightly and highly summarized data adalah area dalam warehouse yang menyimpan semua data yang teragregasi yang dihasilkan oleh warehouse manager. Tujuan dari informasi ini adalah untuk mempercepat kinerja query. 8. Archive/Backup Data Archive/backup data adalah area dalam warehouse yang menyimpan detailed data dan summarized data untuk pengarsipan dan backup. Data ini dipindahkan ke dalam tempat penyimpanan, seperti magnetic tape atau optical disk. 9. Metadata Metadata adalah area dalam warehouse yang menyimpan semua definisi metadata (data yang menerangkan tentang data) yang digunakan oleh semua proses dalam warehouse. Berikut ini tujuan penggunaan metadata. a. Proses ekstraksi dan load. Metadata memetakan sumber data ke tampilan informasi yang ada di warehouse. b. Proses manajemen warehouse. Metadata menghasilkan summary table secara otomastis. c. Bagian dari proses manajemen query. Metadata mengarahkan query ke sumber data yang benar. 10. End-User Access Tools Data warehouse menyediakan informasi kepada pengguna bisnis untuk membantu dalam pembuatan keputusan. Pengguna tersebut menggunakan end-user access tools untuk berinteraksi dengan data 44 warehouse. Data warehouse harus mendukung analisis rutin dan ad hoc. Kinerja yang tinggi dapat diperoleh dengan melakukan perencanaan terhadap kebutuhan joins, summation, dan laporan berkala oleh end-users. End-user access tools dikategorikan menjadi lima bagian sebagai berikut: a. Reporting and Query Tools Reporting tools terdiri dari production reporting tools dan report writer. Production reporting tools digunakan untuk menghasilkan laporan operasional reguler atau mendukung tugas batch berkapasitas tinggi, seperti pesanan pelanggan dan staf yang membayar cek. Report writter adalah desktop tools murah yang dirancang untuk end-users. Query tools dirancang untuk menghasilkan SQL statement untuk melakukan query data yang disimpan dalam warehouse. Tool ini melindungi end-users dari kompleksitas SQL dan struktur database dengan menyertakan meta-layer antara pengguna dan dataase. Salah satu query tools adalah Query-ByExample (OBE). b. Aplication Development Tools Pengguna mungkin membutuhkan pengembangan aplikasi in-house menggunakan tool akses data grafis yang dirancang untuk lingkungan clientserver apabila kebutuhan dari end-user, seperti kapasitas built-in tidak sesuai. Beberapa tool pengembangan aplikasi ini berintegrasi dengan OLAP tool dan dapat mengakses sistem database (Oracle, Sybase, dan Informix). c. Executive Information System (EIS) Tools EIS tools dirancang untuk mendukung pembuatan keputusan strategis tingkat tinggi. EIS tools yang dihubungkan dengan mainframe memungkinkan 45 pengguna untuk membangun aplikasi pembuatan keputusan untuk dapat melakukan peninjauan dari data dan akses organisasi ke sumber data eksternal. d. Online Analytical Processing (OLAP) Tools OLAP tools adalah tool yang didasarkan pada konsep database multi-dimensional dan memungkinkan pengguna untuk menganalisis data menggunakan view yang kompleks dan multidimensional. Aplikasi bisnis untuk tools ini berupa penilaian efektivitas dari kampanye pemasaran, peramalan penjualan produk, dan perencanaan kapasitas. e. Data Mining Tools Data mining adalah proses dalam menemukan hubungan, pola, dan kecenderungan baru dengan menggali banyak data menggunakan teknik intelegensia semu, statistik, maupun matematis. Data mining berpotensi memperluas kapasitas dari OLAP tools karena memiliki membangun model prediktif. tujuan untuk 46 Gambar 2.17 Arsitektur Data Warehouse (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) 2.1.12.4 Skema Bintang Menurut Connolly dan Begg (2005:1183), skema bintang adalah struktur tabel sederhana yang terdiri dari tabel fakta yang terhubung dengan beberapa tabel dimensi yang berisi data referensi yang dapat didenormalisasi. Fakta-fakta tersebut dihasilkan dari kejadian sebelumnya dan tidak mungkin berubah. Tabel fakta dapat memiliki hubungan yang besar terhadap tabel dimensi karena sebagian besar data dalam data warehouse merupakan fakta. Fakta yang paling penting dalam tabel fakta adalah numerik dan aditif karena aplikasi data warehouse dapat mengakses jutaan record dalam satu waktu. Tabel fakta merupakan tabel utama yang berisi foreign key dari masing-masing tabel dimensi. Tabel dimensi merupakan tabel minor yang berisi deskripsi lebih lanjut dari data pada 47 tabel fakta. Atribut tabel dimensi digunakan sebagai constraints dalam data warehouse queries. Gambar 2.18 Contoh Star Schema (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) 2.1.12.5 Data Mart Menurut Connolly dan Begg (2005:1171), data mart adalah suatu bagian dari data warehouse yang mendukung kebutuhan bisnis atau departemen. Menurut Inmon (2005:494), data mart adalah data yang bersumber dari data warehouse dan didenormalisasi berdasarkan kebutuhan informasi departemen. Berikut ini karakteristik data mart. 1. Data mart fokus hanya pada kebutuhan pengguna yang berhubungan dengan fungsi bisnis. 2. Data mart biasanya tidak mengandung data operasional yang rinci. 3. Data mart lebih mudah dimengerti dan dinavigasikan karena mengandung informasi yang lebih sedikit dibandingkan dengan data warehouse. 48 Alasan membangun data mart adalah: 1. Memungkinkan pengguna untuk mengakses data yang diperlukan untuk analisis, 2. Menyediakan data yang sesuai dengan tampilan kolektif data oleh sekelompok pengguna dalam suatu departemen, 3. Meningkatkan waktu respon dari end-user berhubungan dengan berkurangnya jumlah data yang diakses, 4. Menyediakan data terstruktur sesuai dengan kebutuhan end-user access tools seperti OLAP dan data mining tools, 5. Menggunakan sedikit data untuk memudahkan dalam cleansing, loading, transformasi, dan integrasi data, 6. Membutuhkan biaya yang lebih sedikit dibandingkan dengan data warehouse, dan 7. Memudahkan dalam menentukan dan menargetkan pengguna data mart untuk mendapatkan dukungan proyek. 49 Gambar 2.19 Arsitektur Data Warehouse dan Data Mart (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005) 2.1.13 Data Mining 2.1.13.1 Pengertian Data Mining Menurut Connolly dan Begg (2005:1233), data mining adalah proses penggalian informasi dari database yang besar yang bersifat valid, belum dikenal, dapat dipahami dan ditindaklanjuti yang digunakan untuk pembuatan keputusan penting. Data mining berfokus pada analisis data dan pencarian informasi berupa pola-pola tersembunyi dan hubungan dari data menggunakan teknik software tertentu. 50 2.1.13.2 Teknik Data Mining Teknik data mining terbagi menjadi empat kategori sebagai berikut: 1. Pemodelan Prediktif Pemodelan prediktif merupakan teknik data mining yang memodelkan karakteristik-karakteristik penting dari data dengan menganalisis database yang ada. Ada dua macam teknik pemodelan prediktif, yaitu klasifikasi dan prediksi nilai. a. Klasifikasi Klasifikasi adalah teknik menentukan kelas untuk setiap record dalam database dari himpunan pasti dari nilai kelas yang mungkin. Terdapat dua spesialisasi dari klasifikasi: 1) Tree Induction Gambar 2.20 Contoh Klasifikasi Menggunakan Tree Induction (Sumber: Database System: A Practical Approach to Design, Implementation, and Management Connolly dan Begg, 2005) Gambar 2.20 merupakan model prediktif menggunakan dua variabel: lamanya pelanggan telah menyewa properti dan umur 51 pelanggan. Model ini dirancang secara intuitif untuk memprediksikan bahwa pelanggan yang telah menyewa properti selama lebih dari dua tahun dan berumur lebih dari 25 tahun berkemungkinan besar tertarik untuk membeli properti. 2) Neural Induction Gambar 2.21 Contoh Klasifikasi Menggunakan Neural Induction (Sumber: Database System: A Practical Approach to Design, Implementation, and Management Connolly dan Begg, 2005) Pada gambar 2.21, klasifikasi dilakukan melalui neural network yang berisi kumpulan node dengan input, output, dan processing pada setiap node. Pada neural network setiap processing unit (circle) terhubungan dengan setiap processing unit lainnya pada layer yang berbeda melalui weighed value yang menunjukkan kekuatan hubungan dari nodenode tersebut. Jaringan ini mencoba meniru cara manusia berpikir dengan mengenali polapola yang secara aritmatik menggabungkan semua variabel yang terhubung data point yang diberikan. Teknik ini memungkinkan 52 terjadinya pengembangan model prediktif nonlinear yang dapat mempelajari kombinasi dari setiap variabel dan bagiamana kombinasi variabel yang berbeda memengaruhi himpunan data berbeda. b. Prediksi Nilai Prediksi nilai merupakan teknik untuk mengetahui atau memprediksikan nilai kontinu yang berhubungan dengan record pada database dengan menggunakan teknik statistik tradisional. 2. Segmentasi Database Segmentasi database berguna untuk melakukan partisi database dengan record yang serupa, yakni record yang memiliki property yang mirip atau homogen, menjadi beberapa segmen atau cluster. Contoh dari segmentasi database adalah pembagian wilayah tempat tinggal pelanggan. Perbedaan segmentasi dengan klasifikasi adalah segmentasi tidak dipakai ketika diketahui bagimana cara data harus dikelompokkan, sedangkan klasifikasi sebaliknya. Selain itu, pada klasifikasi penambahan jumlah kelompok tidak terjadi. 3. Analisis Link Analisis link adalah teknik data mining yang membangun asosiasi antara record individual atau kelompok record dalam database. Analisis link memiliki tiga spesialisasi, yaitu penemuan asosiasi, penemuan pola sekuensial, dan penemuan urutan waktu yang sama. Penemuan asosiasi digunakan untuk menemukan item dengan cara mengetahui keberadaan item-item lain pada saat yang sama. Penemuan pola sekuensial digunakan untuk menemukan pola-pola antarkejadian dalam database selama periode waktu tertentu. Penemuan urutan waktu yang sama digunakan untuk menemukan hubungan antara dua kelompok data 53 yang memiliki ketergantungan waktu dan didasarkan pada kesamaan pola yang ditunjukkan dari keduanya. 4. Deteksi Deviasi Deteksi deviasi adalah teknik data mining untuk mengidentifikasi outlier, yang menyatakan deviasi dari beberapa expectation dan norm. Deteksi deviasi dapat dilakukan dengan menggunakan teknik statistik dan visualisasi. Tabel 2.6 Teknik Data Mining (Sumber: Database System: A Practical Approach to Design, Implementation, and Management - Connolly dan Begg, 2005, p1234) Operasi Pemodelan prediktif Teknik Data Mining Klasifikasi Prediksi nilai Segmentasi database Demographic clustering Neural clustering Analisis link Penemuan asosiasi Penemuan pola sekuensial Penemuan urutan waktu yang sama Deteksi deviasi Statistik Visualisasi 2.1.13.3 Metode CRISP-DM (Cross Industry Standard Process for Data Mining) CRISP-DM merupakan metode standar dalam data mining yang disusun oleh tiga penggagas data mining market, yaitu Daimler Chrysler (Daimler-Benz), SPSS (ISL), dan NCR. Menurut Nisbet et al. (2009:35-36), metode CRISP-DM mendefinisikan hierarki yang terdiri 54 dari fase utama, tugas umum dan khusus, dan contoh proses. Proses data mining berdasarkan CRISP-DM terdiri dari enam fase sebagai berikut: Gambar 2.22 Proses CRISP-DM (Sumber: Handbook of Statistical Analysis and Data Mining Applications – Nisbet et al., 2009) 1. Business Understanding Tahap ini membutuhkan pemahaman yang jelas terhadap tujuan dan kebutuhan bisnis, apa yang akan dilakukan, dan hal-hal yang dapat memberikan keuntungan bagi bisnis. Tahap ini terdiri dari tiga kegiatan sebagai berikut: a. Menentukan tujuan bisnis dari model data mining Dalam kegiatan ini, latar belakang dari kebutuhan bisnis harus dipahami agar model data mining dapat berfungsi dengan baik. Tujuan bisnis adalah menemukan cara untuk mendapatkan informasi yang relevan yang akan mendukung pembuatan keputusan. Hal penting dalam menentukan tujuan bisnis adalah menyertakan individu dari seluruh unit bisnis perusahaan yang dipengaruhi oleh 55 masalah dan akan mendapatkan keuntungan dari solusinya. b. Memahami situasi bisnis untuk data mining Kegiatan ini melakukan inventarisasi terhadap integrasi data, kualitas data, dan alat analisis yang akan digunakan. Selain itu, hasil dari kegiatan ini akan didokumentasikan dengan penjelasan yang cukup sebagai referensi. c. Merumuskan tujuan data mining Kegiatan ini fokus dalam merumuskan tujuan data mining dengan menentukan model prediktif yang baik untuk memenuhi tujuan bisnis yang sudah ditetapkan. 2. Data Understanding Tahap ini merupakan tahap pengumpulan data awal untuk mendapatkan pemahaman yang mendalam tentang data. Selain itu, tahap ini juga mengindentifikasi kualitas data dan mendeteksi bagian data yang menarik untuk membuat hipotesis awal. 3. Data Preparation Tahap ini merupakan tahap persiapan data. Operasi dasar dari tahap ini adalah mengakses, mengubah, dan mengondisikan data untuk menghasilkan kumpulan data dalam format yang tepat untuk model analisis. 4. Modeling Tahap ini merupakan tahap pemodelan data. Tahap ini menentukan teknik pemodelan data mining yang digunakan, meliputi algoritma dan arsitektur pemodelan. Selain itu, tahap ini juga menyesuaikan parameter yang digunakan untuk mendapatkan nilai yang optimal. 5. Evaluation Model yang telah dibuat pada tahap sebelumnya akan dievaluasi untuk memastikan kualitas dan 56 efektivitasnya. Selain itu, tahap ini juga menentukan apakah model tersebut dapat memenuhi tujuan yang telah ditetapkan pada tahap awal. 6. Deployment Pada tahap ini, informasi yang telah diperoleh akan dipresentasikan dalam bentuk laporan sederhana dan model data yang telah dievaluasi akan diimplementasikan kepada pengguna. 2.1.13.4 Data Mining Tools Fitur penting dari data mining tools adalah: 1. Persiapan data Persiapan data merupakan aspek yang paling membutuhkan waktu yang lama dalam data mining. Tools yang dapat memberikan fasilitas terhadap proses ini akan sangat mempercepat proses pengembangan model. Fungsi-fungsi yang dapat diberikan meliputi pembersihan data (misalnya, penanganan data yang hilang), penggambaran data (misalnya, distribusi nilai), transformasi data (misalnya, melakukan perhitungan), dan pengambilan sampel data untuk validasi. 2. Pemilihan operasi (algoritma) data mining Memahami karakteristik dari operasi yang digunakan oleh data mining tool merupakan hal yang penting. Hal ini dilakukan untuk memastikan bahwa operasi tersebut dapat memenuhi kebutuhan pengguna. Tugas penting lainnya adalah menetapkan bagaimana algoritma berhubungan dengan tipe data dari variabel respon dan predictor dan seberapa cepat algoritma tersebut bekerja pada data baru. Fitur penting lainnya dari algoritma adalah kepekaan terhadap noise yang merupakan perbedaan antara model dan prediksi. 3. Skalabilitas dan kinerja produk 57 Skalabilitas dan kinerja merupakan pertimbangan penting untuk mendapatkan tool yang mampu menangani peningkatan jumlah data dalam baris dan kolom. 4. Fasilitas untuk memahami hasil Data mining tool yang baik harus dapat membantu pengguna dalam memahami hasil yang didapatkan dengan menyediakan pengukuran, seperti menjelaskan akurasi dalam matriks yang memungkinkan pengguna untuk melakukan analisis sensitivitas dan visualisasi pada hasil tersebut. 2.1.14 Market Basket Analysis (Affinity Analysis) Menurut Han dan Kamber (2006:228), market basket analysis adalah suatu proses yang menganalisis kebiasaan pembelian pelanggan dengan menemukan asosiasi antar-item yang berbeda dalam keranjang belanja pelanggan. Asosiasi ini dibutuhkan untuk mengetahui item apa saja yang mungkin dibeli pelanggan secara bersamaan. Analisis ini sangat membantu pemilik usaha dalam meningkatkan strategi pemasaran mereka. Market basket analysis dapat dianalisis dengan menggunakan association rule. Gambar 2.23 Market Basket Analysis (Sumber: Data Mining Concepts and Techniques – Han dan Kamber, 2006) 58 2.1.15 Association Rule 2.1.15.1 Pengertian Association Rule Association rule adalah salah satu teknik dalam data mining untuk mencari suatu aturan asosiatif antara suatu kombinasi item. Menurut Vivekananth (2012:79), association rule yang diperkenalkan oleh Rakesh Agrawal dan Ramakrishnan Srikant pada tahun 1993 untuk market basket analysis ini telah menjadi salah satu area riset yang terkenal pada bidang knowledge discovery. Salah satu penerapan dari association rule adalah Market basket analysis. Aplikasi association rule digunakan untuk menganalisa isi keranjang belanja pelanggan sehingga association rule juga sering disebut sebagai market memungkinkan basket analysis. pemilik usaha Association dalam rule mengatur penempatan item atau merancang kampanye pemasaran untuk kombinasi item tertentu. Association rule biasanya disertai dengan pengukuran support dan confidence dan berbentuk kalimat: JIKA antecedent (premise), MAKA consequent. Contohnya, pada Senin malam 1000 pelanggan membeli barang di suatu toko online, 200 orang membeli baju, dan dari 200 yang membeli baju tersebut, sebanyak 50 orang membeli celana. Jadi, aturan asosiasi dapat berbentuk: “JIKA membeli baju, MAKA membeli celana” dengan support 50/1000 = 5% dan confidence 50/200 = 25%. Aturan tersebut memiliki arti “25% dari transaksi di database yang memuat item baju juga memuat item celana dan 5% dari seluruh transaksi yang ada di database memuat kedua item tersebut.” Analisis asosiasi merupakan suatu proses untuk menemukan semua association rule 59 yang memenuhi syarat minimum untuk support (minimum support) dan syarat minimum untuk confidence (minimum confidence). 2.1.15.2 Interestingness Measures Associaton rule menggunakan dapat interestingness ditentukan dengan measure (ukuran ketertarikan) yang didapatkan dari hasil pengolahan data dengan perhitungan tertentu. Beberapa ukuran tersebut adalah: 1. Support Support adalah nilai penunjang atau persentase kombinasi sebuah item dalam database. Rumus support: Support(A→B) = P(A ∩ B) 2. Confidence Confidence adalah nilai kepastian yaitu kuatnya hubungan antar-item Confidence bisa dicari dalam association setelah pola rule. frekuensi munculnya sebuah item ditemukan. Rumus untuk menghitung confidence: Confidence(A→B) = = P(B|A) = = ( Support(A→B) / Support(A) ) × 100% 3. Lift (Interest) Lift adalah nilai yang mengukur besarnya hubungan antara antecedent dan consequent yang tidak saling bergantung (independent). Lift memiliki range mulai dari 0 sampai dengan ∞. Nilai yang mendekati 1 mengindikasikan bahwa antecedent dan consequent 60 tidak memiliki ketergantungan. Nilai yang jauh dari 1 mengindikasikan informasi bahwa tentang antecedent consequent. menyediakan Rumus untuk menghitung lift: Lift(A→B) = Lift(B→A) = = = = ( Support(A→B) / (Support(A) × Support(B)) ) × 100% = ( Support(B→A) / (Support(B) × Support(A)) ) × 100% 4. Conviction Conviction adalah nilai yang mengukur tingkat implikasi dari suatu aturan. Conviction sangat memperhatikan arah dari suatu association rule. Conviction mengindikasikan bahwa conviction(A→B) ≠ conviction(B→A). Rumus untuk menghitung conviction: Conviction(A→B) = = = ( (Support(A) × Support(~B)) / Support(A→~B) ) × 100% 5. Leverage Leverage adalah nilai yang mengukur banyaknya item antecedent dan consequence yang dijual secara bersamaan dalam suatu data set yang lebih dari yang diharapkan. Nilai 0 menunjukkan antecedent dan consequent independent. Leverage memiliki jangkauan nilai dari -0,25 sampai dengan 0,25. Rumus untuk menghitung leverage: 61 Leverage(A→B) = = ( Support(A→B) – (Support(A) × Support(B)) ) × 100% Tabel 2.7 Interestingness Measures Situasi Support(A→B) Independence P(A)P(B) Logical Rule P(A) Confidence(A→B) P(B) 1 Lift(A→B) 1 1/P(B) Conviction(A→B) 1 ∞ 2.1.15.3 Metode Dasar Association Rule Metode dasar association rule terbagi menjadi dua tahap sebagai berikut: 1. Analisis pola frekuensi tinggi Tahap ini digunakan untuk mencari kombinasi item yang memenuhi syarat minimum dari nilai support dalam database. Rumus untuk menghitung support: Support(A→B) = P(A ∩ B) 2. Pembentukan aturan asosiatif Setelah semua pola frekuensi tinggi ditemukan, aturan asosiatif yang memenuhi syarat minimum untuk confidence dapat dihitung. Rumus untuk menghitung confidence: Confidence(A→B) = P(B|A) Contoh penerapan association rule dari suatu database transaksi perbelanjaan sebagai berikut: 62 Tabel 2.8 Contoh Database Transaksi Perbelanjaan Kode Transaksi Item yang Dibeli T1 Roti, Susu T2 Jus, Popok, Telur T3 Jus, Roti, Biskuit, Popok, Susu T4 Jus, Roti, Popok, Susu T5 Roti, Biskuit, Popok, Susu Itemset adalah himpunan dari satu atau lebih item. Contoh dari itemset adalah {Susu, Roti, Popok}. K-itemset adalah itemset yang terdiri dari k items. Misalnya, {Susu, Roti} merupakan 2-itemset dan {Susu, Roti, Popok} merupakan 3-itemset. Frequent itemset adalah itemset yang memiliki support lebih dari atau sama dengan minimum support yang telah ditentukan (ϕ). Tabel 2.9 1-Itemset Item Count Roti 4 Biskuit 2 Susu 4 Jus 3 Popok 4 Telur 1 Misalnya, minimum support yang ditetapkan adalah 3/5 = 0.6. Calon 2-itemset dan 3-itemset yang mungkin terjadi adalah: 63 Tabel 2.10 2-Itemset Itemset Count {Roti, Susu} 4 {Roti, Jus} 2 {Roti, Popok} 3 {Susu, Jus} 2 {Susu, Popok} 3 {Jus, Popok} 3 Tabel 2.11 3-Itemset Itemset Count {Roti, Susu, Popok} 3 Berdasarkan 2-itemset dan 3-itemset tersebut, nilai support dan confidence dari association rule dapat dihitung seperti pada tabel berikut. Tabel 2.12 Association Rule dari 2-Itemset Jika Antecedent Maka Consequent Jika membeli roti, maka membeli susu Jika membeli susu, maka membeli roti Jika membeli roti, maka membeli jus Support Confidence 64 Jika Antecedent Maka Consequent Jika membeli jus, maka membeli roti Jika membeli roti, maka membeli popok Jika membeli popok, maka membeli roti Jika membeli susu, maka membeli jus Jika membeli jus, maka membeli susu Jika membeli susu, maka membeli popok Jika membeli popok, maka membeli susu Jika membeli jus, maka membeli popok Support Confidence 65 Jika Support Confidence Antecedent Maka Consequent Jika membeli popok, maka membeli jus Tabel 2.13 Association Rule dari 3-Itemset Jika Support Confidence Antecedent Maka Consequent Jika membeli roti, maka membeli susu Jika membeli roti dan susu, maka membeli popok Jika membeli susu dan popok, maka membeli roti Jika minimum confidence yang ditetapkan adalah 80%, maka aturan yang dapat terbentuk: “Jika membeli roti, maka membeli susu” “Jika membeli susu dan popok, maka membeli roti” 2.1.16 Algoritma Apriori Algoritma apriori adalah salah satu jenis aturan asosiasi dalam data mining. Menurut Han dan Kamber (2006:234), algoritma apriori 66 adalah suatu algoritma yang digunakan untuk mining frequent itemset menggunakan aturan asosiasi boolean. Barik et al. (2010:52) mengatakan bahwa Rakesh Agrawal dan Ramakrishnan Srikant dari IBM Almaden Research Center pada tahun 1993 mengembangkan suatu algoritma penghasil association rules, yang disebut Apriori. Apriori property adalah semua subset yang tidak kosong dari sebuah frequent itemset juga harus menjadi frequent (Han dan Kamber, 2006:235). Jika sebuah itemset I tidak memenuhi minimum support threshold (min_sup), maka itemset I tidak frequent. Jika sebuah item A ditambahkan pada itemset I tersebut dan hasil dari itemset itu tidak lebih frequent dari itemset I, maka juga tidak frequent. Algoritma Apriori terdiri dari dua langkah sebagai berikut: 1. Menemukan semua frequent itemsets (large itemsets) Subset dari frequent itemset juga harus menjadi frequent itemset. Jika {A, B} adalah frequent itemset, maka {A} dan {B} harus menjadi frequent itemset. Selain itu, frequent itemsets harus ditemukan secara berulang dari 1 sampai k (k-itemset). 2. Menggunakan frequent itemsets untuk menghasilkan association rules Gambar 2.24 Metode Algoritma Apriori (Sumber: Introduction to Data Mining – Tan et al., 2006) 67 Pada gambar 2.24, Ck adalah kumpulan kandidat dari k-itemset dan Fk adalah kumpulan dari frequent k-itemset. Metode algoritma Apriori dapat dijelaskan sebagai berikut: 1. Langkah 1 dan 2 merupakan inisialisasi awal dari k dan Fk untuk menemukan semua frequent 1-itemsets. 2. Langkah selanjutnya adalah menghasilkan kandidat baru kitemsets dengan perulangan menggunakan frequent (k-1)-itemsets yang didapatkan pada iterasi langkah 5. Kandidat tersebut dihasilkan dengan menggunakan fungsi apriori-gen. 3. Langkah 6 sampai dengan langkah 10 digunakan untuk menghitung support dari kandidat. Fungsi subset digunakan untuk menentukan semua kandidat itemset dalam Ck yang ada dalam setiap transaksi t. 4. Pada langkah 12, algoritma melakukan eliminasi terhadap semua kandidat itemset yang memiliki support lebih kecil dari minimum support (minsup). 5. Pada langkah 13, algoritma akan berakhir jika tidak ada frequent itemsets baru yang dihasilkan (Fk= ). Fungsi apriori-gen menghasilkan kandidat itemsets deengan melakukan dua operasi berikut: 1. Candidate Generation Operasi ini menghasilkan kandidat k-itemset berdasarkan frequent (k-1)-itemsets pada iterasi sebelumnya. 2. Candidate Pruning Operasi ini melakukan eliminasi beberapa kandidat k-itemsets menggunakan strategi support-based pruning. 2.1.17 Frequent Pattern Growth Algorithm Menurut Vivekananth (2012:79), salah satu algoritma association rule mining yang sangat berpengaruh adalah Apriori. Pengembangan Apriori telah banyak dilakukan dan FP-Growth merupakan salah satunya. FP-Growth dianggap sebagai suatu kemajuan besar dalam perbaikan kinerja dari Apriori. Algoritma ini dibuat dengan struktur data yang dikenal sebagai frequent pattern tree 68 atau FP-Tree. Barik et al. (2010:52) mengatakan bahwa algoritma ini pertama kali diperkenalkan oleh Jiawei Han, Jian Pei, dan Yiwen Yin pada tahun 2000. Menurut Han dan Kamber (2006:243), frequent patttern growth algorithm atau yang biasa disebut dengan FP-Growth Algorithm adalah suatu algoritma yang memperkecil ukuran data set yang merepresentasikan frequent item ke dalam frequent pattern tree (FPTree). 2.1.17.1 Representasi Frequent Pattern Tree Menurut Tan et al. (2006:363), frequent pattern tree adalah representasi dari database yang telah diperkecil ukurannya. FP-Tree dibangun dengan membaca kumpulan data satu transaksi pada satu waktu dan memetakan setiap transaksi ke path yang terdapat pada FP-Tree. Root node dari FP-Tree direpresentasikan dengan simbol null. Gambar 2.25 Konstruksi dari Sebuah FP-Tree (Sumber: Introduction to Data Mining – Tan et al., 2006) 69 Gambar 2.25 menunjukkan struktur dari FP-Tree setelah membaca tiga transaksi pertama dan sebuah data set yang berisi sepuluh transaksi dan lima item. Langkahlangkah untuk membangun FP-Tree sebagai berikut. 1. Data set dianalisis untuk menentukan support count dari setiap item. Infrequent item dibuang, sebaliknya frequent item diurutkan secara decreasing berdasarkan support count. Pada gambar 2.25, urutannya adalah a, b, c, d, dan e. 2. Setelah membaca transaksi pertama, {a, b}, node a dan b dibuat. Path dibuat dari null → a → b untuk melakukan encode transaksi. Setiap node yang melewati path ini mempunyai perhitungan frekuensi sebanyak satu. 3. Setelah membaca transaksi kedua, {b, c, d}, node b, c, dan d dibuat. Path dibuat dari null→b→c→d untuk melakukan encode transaksi. Setiap node yang melewati path ini mempunyai perhitungan frekuensi sebanyak satu. Walaupun node b terdapat pada transaksi pertama dan transaksi kedua, path-nya tidak tergabung karena tidak memiliki prefix yang mirip. 4. Transaksi ketiga, {a, c, d, e}, memiliki prefix yang mirip dengan transaksi pertama. Oleh karena itu, path untuk transaksi ketiga, null→a→c→d→e, tumpang tindih dengan path transaksi pertama. Perhitungan frekuensi pada node a menjadi dua, sedangkan perhitungan frekuensi node c, d, dan e adalah satu. 5. Proses ini dilanjutkan sampai semua transaksi dimapping ke dalam path. 2.1.17.2 Frequent Itemset Menurut Tan et al. (2006: 366), frequent itemset adalah hasil yang didapat dari algoritma FP-Growth dengan memeriksa FP-Tree menggunakan bottom-up. 70 Pendekatan yang digunakan algoritma FP-Growth untuk membantu menemukan frequent itemset adalah divide and conquer approach. Divide and conquer approach membagi subproblem menjadi subproblem yang lebih kecil. Gambar 2.26 Algoritma FP-Growth untuk Mencari Frequent Itemset (Sumber: Data Mining: Concept and Technique – Han dan Kamber, 2006) Gambar 2.27 Contoh Pencarian Frequent Itemset Menggunakan Algoritma FP-Growth (Sumber: Introduction to Data Mining – Tan et al., 2006) 71 Sebagai contoh, frequent itemset berakhir pada node e. Langkah-langkah untuk mencari frequent itemset adalah sebagai berikut: 1. Langkah pertama adalah mengumpulkan prefix path. Prefix path adalah path yang mengandung node akhir. Kumpulkan path yang mengandung node e. Prefix path ditunjukkan pada gambar 2.27(a). 2. Support count untuk node e didapatkan dengan menambahkan support count yang memiliki hubungan dengan node e. Asumsikan support count minimum adalah dua, maka node e adalah frequent itemset karena memiliki support count sebanyak tiga. 3. Subproblem dari pencarian frequent itemset berakhir dalam de, ce, be, dan ae karena node e adalah frequent. Ubah prefix path menjadi conditional FP-Tree. Langkah-langkah untuk mendapatkan conditional FPTree adalah: 1) Support count dan prefix path harus diubah karena beberapa support count memiliki transaksi yang tidak mengandung node e. Perhatikan gambar 2.27(a), path paling kanan null→b:2→c:2→e:1, mengandung transaksi {b, c}, yang tidak memiliki node e. Support count diubah menjadi satu untuk memberikan jumlah yang tepat dari transaksi yang mengandung {b, c, e}. 2) Lakukan truncate pada prefix path dengan menghilangkan node e. 3) Setelah melakukan perubahan pada support count dan prefix path, beberapa node tidak lagi menjadi frequent item. Sebagai contoh, node b hanya muncul sekali dan memiliki support count berjumlah satu. Node b tidak perlu dihiraukan dalam analisa subsequent karena semua itemset yang berakhir harus infrequent. 72 4) Untuk menemukan frequent itemset yang berakhir di de, kumpulkan prefix path untuk d dari conditional tree untuk e (Gambar 2.27(c)). Support count untuk de didapatkan dengan menambahkan perhitungan frekuensi yang berhubungan dengan node d. Support count untuk de adalah dua, maka {d,e} adalah frequent itemset. Conditional FP-Tree untuk de terdapat pada gambar 2.27(d). Karena conditional FP-Tree hanya mengandung a, yang support-nya sama dengan minsup, algoritma mengekstrak frequent itemset {a, d, e}. Setelah itu, algoritma akan mencari frequent itemset yang berakhir di ce. Setelah melakukan pemprosesan pada prefix path untuk c, hanya {c, e} yang ditemukan frequent. melanjutkan ke Kemudian subprogram algoritma berikutnya dan menemukan {a, e} adalah frequent itemset yang tersisa. 2.1.18 Tanimoto Coefficient Similarity Menurut Owen et al. (2012:54), Tanimoto coefficient adalah perbandingan ukuran antara intersection dua barang yang disukai pengguna dengan union kedua barang tersebut. Tanimoto coefficient similarity ini memiliki beberapa nama lain, seperti Jaccard coeffient similarity, Jaccard binary similarity measure, Jaccard-Tanimoto coeffient similarity, Jaccard-Tanimoto binary similarity measure, dan lain-lain. Tanimoto coefficient similarity memiliki nilai satu jika kedua barang memiliki kesamaan sepenuhnya dan nol jika tidak ada kesamaan antara kedua barang tersebut. Rumus yang digunakan adalah sebagai berikut: T(a, b) = Pada rumus tersebut, N merupakan jumlah atribut dari setiap objek, yaitu a dan b. C merupakan intersection set. Tanimoto 73 coefficient yang bernilai 0,5 sudah menunjukkan kesamaan yang signifikan, misalnya antara dua pembeli. Nilai 0,5 itu menunjukkan bahwa dari semua item yang dibeli oleh salah satu dari mereka, salah satunya membeli setengah dari semua item tersebut. 2.1.19 Distributed Item-Based Algorithm Menurut Owen et al. (2012:95), pendekatan terdistribusi sangat dibutuhkan untuk menghasilkan sistem rekomendasi. Algoritma tersebut diimplementasikan dengan menggunakan operasi matriks. Matriks yang digunakan adalah similarity matrix. Matriks ini juga merupakan matriks item-item (square matrix). Dalam square matrix, jumlah baris dan kolom sama dengan jumlah item dalam model data. Setiap baris dan kolom menunjukkan kesamaan antara item tertentu dan item lainnya. Matriks ini merupakan matriks yang simetris karena kesamaan antara item A dan B sama dengan kesamaan antara item B dan A. Tabel 2.14 Similarity Matrix untuk Item dalam Suatu Contoh Data Set Kode A01 A02 A03 A04 A05 A01 1 0,5 0,2 0 0,75 A02 0,5 1 0,6 0,9 0,4 A03 0,2 0.6 1 0,42 0 A04 0 0,9 0,42 1 0,5 A05 0,75 0,4 0 0,5 1 Item Similarity matrix pada tabel 2.14 merupakan contoh matriks simetris yang menggunakan lima item yang bisa dihitung dengan similarity measure, seperti Tanimoto coefficient similarity. Setelah 74 similarity matrix terbentuk, langkah selanjutnya adalah menghasilkan perkalian matriks untuk menghasilkan rekomendasi. Similarity matrix tersebut dikalikan dengan vektor dari preferensi pengguna. Nilai dalam vektor merupakan nilai preferensi pengguna terhadap item dalam suatu data set. Jika pengguna tidak memiliki preferensi terhadap suatu item, maka nilai di dalam vektor adalah 0. Sebagai contoh, vektor dari preferensi pengguna adalah [0, 1, 0, 0, 1]. Perkalian similarity matrix dengan vektor dari preferensi pengguna (U) untuk menghasilkan vektor rekomendasi (R) diperlihatkan pada tabel berikut. Tabel 2.15 Perkalian Similarity Matrix dengan Vektor Preferensi Pengguna (U) untuk Menghasilkan Vektor Rekomendasi (R) Kode A01 A02 A03 A04 A05 U R A01 1 0,5 0,2 0 0,75 0 1,25 A02 0,5 1 0,6 0,9 0,4 1 1,4 A03 0,2 0,6 1 0,42 0 A04 0 0,9 0,42 1 0,5 0 1,4 A05 0,75 0,4 0 0,5 1 1 1,4 Item × 0 = 0,6 Hasil dari perkalian similarity matrix dengan vektor didapatkan dengan cara menjumlahkan hasil perkalian nilai setiap baris item dengan nilai vektor. Sebagai contoh, perkalian item A02 dengan vektor U dapat ditunjukkan sebagai berikut. (0,5×0) + (1×1) + (0,6×0) + (0,9×0) + (0,4×1) = 1,4 Pada tabel 2.15, nilai pada baris (R) yang berhubungan dengan item A02 dan A05 dapat diabaikan (ditandai dengan warna merah) karena pengguna sudah memberikan preferensi untuk item tersebut 75 sehingga item yang tersisa adalah A01, A03 dan A04. Berdasarkan hasil perkalian tersebut, item yang menjadi rekomendasi adalah A04 karena memiliki nilai yang lebih tinggi dari item A01 (dengan nilai 1,25) dan A03 (dengan nilai 0,6), yaitu 1,4. 2.1.20 Precision dan Recall Menurut Mehta et al. (2011:237), pengukuran kualitas sistem rekomendasi dapat dilakukan dengan memperoleh dua informasi, yakni precision dan recall. Precision adalah ukuran ketepatan yang menentukan kumpulan item yang relevan dari semua item yang ditampilkan. Recall adalah ukuran kelengkapan yang menentukan kumpulan item yang relevan yang ditampilkan dari semua item yang seharusnya relevan. Tabel 2.16 Keterangan Formula Precision dan Recall Direkomendasikan Tidak Direkomendasikan Seharusnya Seharusnya Tidak Direkomendasikan Direkomendasikan tp (true positive) fp (false positive) fn (false negative) tn (true negative) Setelah itu, F1 score yang merupakan harmonic mean dari precision dan recall dapat dihitung dengan: 76 2.2 Teori Khusus Berikut merupakan teori-teori khusus yang digunakan dalam penulisan skripsi: 2.2.1 Hypertext Preprocessor (PHP) Menurut Valade (2004:15), PHP adalah bahasa scripting yang dirancang khusus untuk membuat halaman web yang dinamis. PHP merupakan singkatan dari PHP: HyperText Preprocessor. PHP memiliki kemampuan untuk berinteraksi dengan database, seperti menghubungkan ke database, melewatkan instruksi ke database, dan mengembalikan respon database. Keunggulan dari PHP menurut Valade (2004:16): 1. Cepat PHP memiliki respon yang cepat karena tertanam pada kode HTML. 2. Murah dan gratis PHP merupakan open source sehingga dapat diperoleh secara gratis. 3. Mudah digunakan PHP memiliki banyak fitur dan fungsi untuk membuat halaman web yang dinamis. 4. Dapat berjalan pada banyak sistem operasi PHP dapat berjalan pada banyak sistem operasi, seperti Windows, Linux, Mac OS, dan Unix. 5. Dukungan teknis tersedia secara luas Dukungan teknis dari pengguna melalui e-mail. 6. Aman Pengguna tidak dapat melihat kode PHP sehingga PHP aman untuk digunakan. 7. Dirancang untuk mendukung database PHP memiliki kemampuan untuk berinteraksi dengan database sehingga pengguna tidak perlu mengetahui teknis-teknis rinci untuk terhubung ke database. 77 8. Dapat disesuaikan PHP memiliki lisensi open source sehingga programmer dapat melakukan perubahan atau penambahan fitur pada software PHP sesuai kebutuhan. 2.2.2 Cascading Style Sheet (CSS) Menurut Castro (2007:14), Cascading Style Sheets adalah sistem yang dibuat untuk instruksi formatting untuk penyediaan tata letak, efek, dan pengaturan lain pada halaman web. CSS dapat digunakan untuk membuat tampilan tata letak agar terlihat lebih profesional. 2.2.3 MySQL Menurut DuBois (2008:1), MySQL adalah suatu relational database management system (RDBMS) client/server yang bersifat open-source berasal dari Skandinavia. Menurut Nugroho (2004:29), MySQL juga merupakan program pengakses database yang bersifat jaringan, sehingga dapat digunakan pada aplikasi multiusers (banyak pengguna). MySQL menggunakan bahasa query standar yang dimiliki SQL (Structured Query Language). MySQL dikenal sebagai RDMS yang cepat dan sederhana, namun, pada awalnya, banyak pihak yang menilai rendah MySQL karena kekurangan fiturnya pada dukungan akan foreign key. MySQL pun dikembangkan lebih lanjut, sehingga tidak hanya menambahkan fitur tersebut, namun kemampuan tambahan lain seperti replication, subquery, stored procedure, view, dan trigger. Hal ini menjadikan MySQL makin dipercaya sebagai pilihan RDMS untuk merancang database. MySQL dapat berjalan pada berbagai sistem operasi, seperti Mac OS X, HP-UX, dan Windows, dan pada berbagai hardware. (DuBois, 2008:1). 2.2.4 SQL Server Menurut Nielsen et al. (2009:3), SQL Server adalah sebuah software produk Microsoft yang mendukung client-server relational database (RDBMS) dengan Transact-SQL (T-SQL) sebagai bahasa 78 pemrograman utama. SQL Server digunakan sebagai database server untuk mengatur semua proses penyimpanan data dan transaksi suatu aplikasi. Berikut ini beberapa komponen dalam SQL Server (Nielsen et al., 2009:3). 1. SQL Server mendukung hubungan data dan teknologi untuk import dan export, seperti Tabular Data Stream (TDS), XML, Integration Services, bulk copy, SQL Native Connectivity, OLE DB, dan ODBC. 2. SQL Server mendukung data XML, spasial, kata tanpa teks, dan blob. 3. SQL Server memiliki berbagai komponen OLAP/BI dan alat yang bekerja dengan data multidimensi, analisis, cube, dan mining. 4. SQL Server mendukung dalam pembuatan laporan. 5. SQL Server mencakup komponen Performance Studio, SQL Trace/Profiler, dan Database Management Views and Functions. 6. SQL Server dapat dikelolah menggunakan Policy-Based Management. 7. SQL Server Management Studio merupakan UI untuk database developer dan DBA. 8. SQL Server tersedia dalam edisi 32-bit dan 64-bit. 2.2.5 Weka Menurut Witten et al. (2011:403), Weka adalah aplikasi berbasis Java yang bersifat open source untuk data mining. Waikato Environment for Knowledge Analysis (Weka) dikembangkan pertama kali di Universitas Waikato New Zealand. Weka dapat berjalan pada banyak platform dan sudah diuji pada sistem operasi Linux, Windows, dan Macintosh. Weka menyediakan implementasi dari algoritma yang dapat diterapkan pada suatu dataset, termasuk berbagai tool untuk mengubah dataset tersebut. Weka juga menyediakan metode untuk pre- dan postprocess dataset dan melakukan evaluasi terhadap hasil learning scheme dari suatu dataset. 79 2.3 Penelitian Sejenis Beberapa penelitian dengan fokus pada pengembangan e-commerce telah dilakukan sesuai dengan beragamnya kebutuhan dan karakteristik dari e-commerce yang sedang berkembang. Velpula et al. (2010:27-29) menjelaskan bahwa e-commerce telah berkembang secara pesat dan menjadi salah satu bisnis yang sangat siginifikan dan mengadakan penelitian berfokus pada bidang tersebut. Penelitiannya mencoba meneliti perilaku pembelian pelanggan dengan melakukan analisis web log untuk mengklasifikan pelanggan berdasarkan perilaku pembelian mereka. Tujuan dari penelitian itu adalah untuk mengklasifikan profil pelanggan dan perilaku mereka, seperti pelanggan pria berusia 21 sampai 31 sering membeli produk komputer dan buku. Karena penelitian berdasarkan web log, penelitian ini tidak bisa berjalan pada bisnis yang belum memiliki website tersendiri. Dakhel dan Mahdavi (2013:525-527) merancang sistem rekomendasi dengan penggunaan algoritma user-based collaborative filtering agar sistem rekomendasi lebih terpersonalisasi. Penelitian itu menggunakan data set rating setiap pengguna untuk semua item yang ada. Hal ini menyebabkan pendekatan pemecahan masalah tidak bisa diimplementasikan untuk sistem yang tidak memiliki data rating dari setiap pengguna. Selain itu, penggunaan user-based collaborative filtering menyebabkan pengguna yang baru menjadi pengguna tidak akan mendapatkan rekomendasi item karena sistem belum dapat menganalisis aktivitas pengguna tersebut untuk dibandingkan dengan pengguna yang lain sebelum sistem dapat menyajikan rekomendasi item. Menurut Laurraine dan Shanmugasundaram (2013:55), pendekatan lain selain user-based collaborative filtering adalah item-item collaborative filtering. Algoritma ini memetakan kesamaan antara item dengan rating yang telah diberikan pada item tersebut dan memprediksi rating yang akan diberikan pengguna terhadap produk yang dilihat berdasarkan rating-rating yang pengguna telah berikan pada item lain. Pendekatan ini tidak sesuai untuk diimplementasikan pada sistem yang belum memiliki rating untuk item yang ada. Market basket analysis adalah salah satu pendekatan untuk menganalisis asosiasi dari item yang ada dengan item yang lain. Apabila hasil analisis asosiasi memenuhi syarat yang diinginkan, maka item yang sesuai 80 dapat direkomendasikan. Beberapa penelitian telah dilakukan berfokus pada meneliti algoritma market basket analysis yang ada dan membandingkan algoritma yang ada berdasarkan kecepatan dalam mendapatkan hasil dan efisiensi pengolahan data. Tushar et al. (2013:6-9) membandingkan beberapa algoritma dan menjelaskan perbedaan antara masing-masing algoritma. Hasil penelitian menunjukkan algoritma FP-Growth lebih unggul dari Apriori karena memiliki kecepatan eksekusi yang lebih baik. Mishra dan Choubey (2012:4664) membandingkan FP-Growth dan Apriori dengan data set web log. Parameter pembanding pada penelitian ini adalah mininum support yang digunakan. Hasil penelitian ini juga menyatakan FP-Growth lebih baik dari Apriori. Vanitha dan Santhi (2011:102-103) menggunakan Weka 3.6.1 dengan data set supermarket untuk membandingkan kinerja Apriori dan FP-Growth dengan variasi minimum confidence dan jumlah instance. Hasil yang diperoleh menyatakan FP-Growth sebagai algoritma yang lebih baik dari Apriori.