BAB 2 LANDASAN TEORI 2.1 Konsep Dasar Database Definisi database adalah kumpulan data yang saling berhubungan (relasi). Istilah tersebut biasa digunakan pada sistem-sistem yang terkomputerisasi. Dalam pengertian umum, database diartikan sebagai gabungan dari elemen-elemen data yang berhubungan dan terorganisir. Relasi biasanya ditunjukan dengan kunci dari tiap file yang ada. Dalam satu file terdapat record-record yang sejenis, sama besar, sama bentuk, yang merupakan satu kumpulan entitas yang seragam. Satu record terdiri dari field yang saling berhubungan menunjukan bahwa field tersebut dalam satu pengertian yang lengkap dan direkam dalam satu record. Dari pengertian diatas dapat disimpulkan bahwa database mempunyai beberapa kriteria penting, yaitu: 1. Bersifat data oriented dan bukan program oriented. 2. Dapat digunakan oleh beberapa program aplikasi tanpa perlu mengubah database-nya. 3. Dapat dikembangkan dengan mudah, baik volume maupun strukturnya. 4. Dapat memenuhi kebutuhan sistem-sistem baru secara mudah. 5. Dapat digunakan dengan cara-cara yang berbeda. 9 2.1.1 Tujuan Database Prinsip utama database adalah pengaturan data dengan tujuan utama fleksibelitas dan kecepatan dalam pengambilan data kembali. Adapun tujuan database diantaranya adalah sebagai berikut. 1. Efisiensi meliputi speed, space dan accurancy. 2. Menangani data dalam jumlah besar. 3. Kebersamaan pemakaian (Sharebility). 4. Meniadakan duplikasi dan inkonsistensi data. 2.1.2 Kriteria Database Ada beberapa ketentuan yang harus diperhatikan pada pembuatan file database agar dapat memenuhi kriteria sebagai suatu database, yaitu : − Redudansi dan inkonsistensi data: Penyimpanan data yang sama dibeberapa tempat disebut redundansi, hal ini menyebabkan pemborosan dan menimbulkan inkonsistensi data (data tidak konsisten) karena bila terjadi perubahan terhadap data maka data harus dirubah dibeberapa tempat, hal ini tentunya tidak efisien. − Pengaksesan data: Data dalam basis data harus siap diakses oleh siapa saja yang membutuhkan dan mempunyai hak untuk mengaksesnya. Oleh karena itu perlu dibuat suatu program pengelolaan atau suatu aplikasi untuk mengakses data yang dikenal sebagai Database Management System (DBMS). − Data terisolasi untuk standarisasi: Jika data tersebar dalam beberapa file dalam bentuk format yang tidak sama, maka akan menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data, oleh karena itu data dalam satu database harus dibuat satu format sehingga mudah dibuat program aplikasinya. 10 − Masalah keamanan (security): Tidak setiap pemakai sistem database diperbolehkan untuk mengakses semua data, misalnya data mengenai gaji pegawai hanya boleh dibuka oleh bagian keuangan dan personalia, sedang bagian gudang tidak diperkenankan untuk membukanya. Keamanan dapat diatur dan disesuaikan baik ditingkat database atau aplikasinya. − Masalah integritas (Integrity): Database berisi file yang saling berhubungan, masalah utama adalah bagaimana kaitan antar file tersebut terjadi meski diketahui bahwa file A terkait dengan file B, namun secara teknis ada field yang mengaitkan kedua file tersebut oleh karena itu field kunci tidak dapat diabaikan dalam merancang suatu database. − Multiple user : Salah satu alasan database dibangun adalah karena nantinya data tersebut digunakan oleh banyak orang, baik dalam waktu berbeda maupun bersamaan sehingga kebutuhan akan database handal yang mendukung banyak pemakai perlu dipertimbangkan. − Data independence (kebebasan data) : Pada aplikasi yang dibuat dengan bahasa pemrograman, apabila program telah selesai dibuat dan ternyata terjadi perubahan terhadap struktur file maka program tersebut harus diubah, ini artinya program tersebut tidak bebas terhadap database yang ada. Berlainan dengan paket Database Management System (DBMS) apapun yang terjadi pada struktur file, setiap kali hendak melihat data cukup dengan utility LIST. Ini artinya perintah Database Management System (DBMS) bebas terhadap database karena apapun perubahan terhadap database, semua perintah akan stabil tanpa ada yang perlu diubah. 11 Data independence dapat dibagi menjadi dua bagian, yaitu : − Phisycal Data Independence: Kebolehan untuk mengubah pola fisik database tanpa mengakibatkan suatu aplikasi program ditulis kembali. Modifikasi pada level fisik biasanya hanya pada saat meningkatkan daya guna. − Logical Data Independence: Kebolehan mengubah pola konseptual tanpa mengakibatkan suatu aplikasi program ditulis kembali. Modifikasi pada level konseptual teristimewa saat struktur logika database berubah, ditambahkan atau dikurangi. 2.1.3 Abstraksi Data Kegunaan utama sistem basis data adalah agar pemakai mampu menyusun suatu pandangan abstraksi dari data. Bayangan mengenai data tidak lagi memperhatikan kondisi sesungguhnya bagaimana satu data masuk ke database disimpan dalam sektor mana, tetapi menyangkut secara menyeluruh bagaimana data tersebut dapat diabstraksikan mengenai kondisi yang dihadapi oleh pemakai sehari-hari. Sistem yang sesungguhnya, tentang teknis bagaimana data disimpan dan dipelihara seakan-akan disembunyikan kerumitannya dan kemudian diungkapkan dalam bahasa dan gambar yang mudah dimengerti oleh orang awam. Ada tiga kelompok pemakai dalam tingkatan abstraksi saat memandang suatu database, yaitu: − Level Fisik : Level ini merupakan level abstraksi paling rendah karena menggambarkan bagaimana data disimpan dalam kondisi sebenarnya. − Level Konseptual : Level ini menggambarkan data apa yang disimpan dalam database dan hubungan relasi yang terjadi antara data dari keseluruhan database. 12 Pemakai tidak memperdulikan kerumitan dalam struktur level fisik lagi, penggambaran cukup dengan memakai kotak, garis dan hubungan secukupnya. − Level Pandangan Pemakai (View level): Level ini merupakan level abstraksi data tertinggi yang menggambarkan hanya sebagian saja yang dilihat dan dipakai dari keseluruhan database, hal ini disebabkan beberapa pemakai database tidak membutuhkan semua isi database. 2.1.4 Komponen Utama Database Ada 4 komponen utama dalam database, yaitu: − Data, yang secara fisik menyimpan informasi-informasi. − Database Management System (DBMS) yaitu perangkat lunak yang mengelola database. − Data Description Languages (DDL) dan Data Manipulation Languages (DML), yaitu bahasa basis data yang berfungsi untuk mendeskripsikan data ke Database Management System (DBMS) dan juga memberi fasilitas untuk perubahan, pemeliharaan, dan pengelolaan database. − Program aplikasi yang memudahkan pengguna akhir untuk menggunakan data dan mendapatkanya sebagai informasi yang sesuai. 13 2.2 Data Warehouse Datawarehouse merupakan kumpulan data dari berbagai resource, yang disimpan dalam suatu gudang data (repository) dalam kapasitas besar. Datawarehouse biasa diartikan juga sebagai kumpulan dari data mart. Data warehouse memungkinkan user untuk memeriksa history data dan melakukan analisis terhadap data sehingga dapat mengambil keputusan berdasarkan analisa yang dibuat. Data Warehouse membantu para pekerja teknologi (manager,executive,analyst) untuk pengambilan keputusan yang lebih cepat dan mudah. Secara tradisional, gudang (warehouse) digunakan untuk menyimpan barangbarang dengan cara tertentu supaya dapat ditemukan, dikenali dan diambil kembali dengan cepat. Fungsi data warehouse hampir sama dengan gudang secara tradisional. (http//:www.techrepublic.com) Dalam sebuah perusahaan, umumnya data disimpan dalam banyak database. Masing-masing database terpisah menurut sistemnya masing-masing dan tidak terintegrasi menjadi satu. Misalkan data untuk profil customer, marketing, payroll dan sebagainya. Data warehouse digunakan untuk menggabungkan data ke pusat data dan disusun untuk membuat analisis yang lebih mudah. 2.2.1 Manfaat Data Warehouse Adapun berbagai manfaat dari data warehouse sebagai berikut. − Kemampuan mengakses data yang berskala perusahaan. − Kemampuan memiliki data yang konsisten. − Dapat melakukan analisis secara cepat. − Dapat digunakan untuk mencari redundansi usaha di perusahaan. 14 − Menemukan gap antara pengetahuan bisnis dengan proses bisnis. − Meminimalkan biaya administrasi. − Meningkatkan kinerja pegawai perusahaan untuk dapat melakukan tugasnya dengan lebih efektif. 2.2.2 Karakteristik Data Warehouse Data warehouse mempunyai karakteristik sebagai berikut. − Subject Oriented: Data warehouse berfokus pada entitas-entitas bisnis level tinggi. − Integrated: Data disimpan dalam format yang konsisten (dalam konvensi penamaan, constraint domain, atribut fisik dan pengukuran). − Time variant: Data diasosiasikan dengan suatu titik waktu. − Non-volatile: Data yang berasal dari banyak resource terbebut tidak dapat diubah karena bersifat read only. Data warehouse adalah sebagai sebagai subject-oriented, terintegrasi, tidak mudah berubah (konsisten) dan merupakan kumpulan data yang mendukung keputusan manajemen. (Connolly dan Begg, 2002, p147) 15 Istilah-istilah yang berkaitan dengan data warehouse : 1. ETL (Extract Transfer Load) adalah komponen perangkat lunak yang berfungsi untuk mengekstraksi data dari aplikasi ke dalam data mart. 2. Data Mart adalah suatu bagian pada data warehouse yang mendukung pembuatan laporan dan analisa data pada suatu unit, bagian atau operasi pada suatu perusahaan. 3. Dimension Table merupakan tabel yang berisikan kategori dengan ringkasan data detail yang dapat dilaporkan. Seperti laporan laba pada tabel fakta dapat dilaporkan sebagai dimensi waktu (berupa perbulan, perkwartal dan pertahun). 4. Fact Table merupakan tabel yang umumnya mengandung angka dan data history dimana key (kunci) yang dihasilkan sangat unik, karena key tersebut terdiri dari foreign key (kunci asing) yang merupakan primary key (kunci utama) dari beberapa dimension table yang berhubungan. 5. DSS (Decision Support Systems) merupakan sistem yang menyediakan informasi kepada pengguna yang menjelaskan bagaimana sistem ini dapat menganalisa situasi dan mendukung suatu keputusan yang baik. 2.3 OLTP (Online Transaction Processing) OLTP (Online Transaction Processing) adalah suatu proses yang menyediakan mekanisme transaksi pada suatu database. Pada proses ini, design pada database harus bersifat cepat untuk transaction (insert, update, delete). Hal ini bisa didapat dengan cara menormalisasi tabel-tabel pada database. 16 Keuntungan dari normalisasi adalah mengurangi redundansi data (penumpukan data yang sama) yang terdapat pada tabel-tabel. Hal ini mempercepat proses transaksi, karena data yang perlu di-update pada tabel menjadi lebih sedikit. Proses peng-updatean data-datanya pun bersifat real time situation. Dengan kata lain setiap ada data baru, yang bukan merupakan redudansi dari data yang pernah ada, akan di-update seketika. OLTP (Online Transaction Processing) memungkinkan banyak pengguna dapat mengakses sumber data yang sama pada saat bersamaan dan melaksanakan proses yang diperlukan. Sistem ini memungkinkan transaksi dilakukan dalam database, pada saat proses bisnis berlangsung. Dalam proses OLTP (Online Transaction Processing) menuju OLAP (Online Analytical Processing) dibutuhkan sedikitnya dua proses normalisasi yakni DTS (Data Transformation Services) dan proses data validation. 2.3.1 DTS (Data Transformation Services) Perusahaan perlu untuk memusatkan data mereka guna mendukung dalam proses pengambilan keputusan. Data tersebut dapat disimpan dalam jumlah yang besar dalam bentuk angka-angka dari sumber yang berbeda. Barisan data yang ada di dalam sumber ini harus dapat di-reconciled dan diubah ke dalam beberapa kasus sebelum disimpan ke dalam data warehouse. Data transformation services memindahkan data dari database OLTP (Online Transaction Processing) ke data warehouse sesuai dengan tujuannya. Hal ini dilakukan ketika validasi, cleaning-up, konsolidasi dan mengubah data yang diperlukan. (Vieira, Robert, 2000, p91) 17 2.3.2 Data Validation Sangatlah penting untuk melakukan validasi data sebelum data tersebut diambil dari database OLTP (Online Transaction Processing) dan dikirim ke data warehouse. Jika data tersebut tidak valid, maka keutuhan dari analisis bisnis perlu dipertanyakan. Hal penting lainnya yang harus diperhatikan adalah ketika validasi data yang dilakukan berhubungan dengan area geografis. (Vieira, et all, 2000, p92) 2.4 OLAP (Online Analytical Processing) OLAP (Online Analytical Processing) merupakan suatu istilah yang menggambarkan suatu teknologi yang menggunakan gambaran multidimensi dari sejumlah data untuk menyediakan atau memberikan akses dan analisis yang lebih cepat untuk strategi informasi. (Connolly dan Begg, 2002, p111) OLAP (Online Analytical Processing) merupakan suatu pemrosesan database yang menggunakan tabel fakta dan dimensi untuk dapat menampilkan berbagai macam bentuk laporan, analisis, query dari data yang berukuran besar. OLAP (Online Analytical Processing) juga merupakan suatu proses mekanisme untuk menganalisa data dengan menyediakan definisi, proses dan pengiriman suatu objek analisis. Jika data warehouse adalah media penyimpanan data dari suatu perusahaan, maka OLAP (Online Analytical Processing) adalah cara user untuk mengakses data tersebut. OLAP (Online Analytical Processing) bersifat natural dan intuitif, sehingga memberikan navigasi dan pengertian yang lebih baik akan data. 18 Solusi OLAP (Online Analytical Processing) yang baik harus memenuhi hal-hal berikut ini. − Fast, dimana pemakai memperoleh respond dalam hitungan detik sehingga tidak terputus rantai pemikirannya. − Analysis, dimana sistem menyediakan fungsi-fungsi analisis, lingkup intuitif dan fungsi-fungsi ini dapat mensuplai logika bisnis dan analisis statistikal yang relevan dengan aplikasi user. − Shared, dimana sistem mendukung user yang banyak secara konkurensi. − Multi-dimensional, merupakan kebutuhan utama sehingga sistem mensuplai view konseptual multidimensional dari data termasuk pendukung untuk hirarki multiple. − Information, merupakan data dan informasi yang diwariskan, dimana dibutuhkan oleh aplikasi user. 2.5 Alasan Penggunaan Data mining Suatu fakta yang kini cukup jelas terlihat pada suatu manajemen perusahaan adalah pentingnya informasi untuk dapat meningkatkan kinerja mereka. Tentunya peningkatan kinerja inilah yang diharapkan mampu membuat perusahaan tersebut bersaing dengan perusahaan lainnya ditengah iklim usaha yang ketat saat ini. Hal tersebut menjadi alasan utama penggunaan data mining yang mampu memberi solusi bagi kebutuhan di atas. Data mining sebagai tool, dapat menggali informasi tersembunyi yang mungkin terdapat pada sekumpulan database sehingga akan membawa dampak positif yang cukup signifikan bagi perusahaan. Data mining dapat dikatakan sebagai hasil dari 19 evolusi teknologi informasi. Yaitu mulai dari sistem data collection, database creation, data management (termasuk storage dan retrieval serta database transaction processing), dan data analysis and understanding. Dengan dasar tersebutlah, dapat dilihat bermacam manfaat yang dapat dilakukan oleh tools data mining tersebut secara langsung maupun tidak langsung yang dapat meningkatkan kinerja perusahaan. Kecepatan berkembangnya pengumpulan dan penyimpanan data dalam jumlah yang luar biasa banyaknya mengakibatkan data tersebut menjadi sulit untuk dianalisis oleh seorang manusia tanpa bantuan alat bantu/powerfull tools yang dapat meng-extract informasi penting yang terkubur di sejumlah besar data yang tersedia. Sebagai akibatnya, seringkali keputusan-keputusan penting yang diambil pun dibuat tidak berdasarkan informasi yang didapatkan dari data yang ada, melainkan berdasarkan intuisi pengambil keputusan semata. Hal ini sering terjadi karena para pengambil keputusan tidak memiliki tools yang memadai untuk melakukan pencarian informasi yang akurat dari data yang tersedia. Program data mining dapat melakukan analisis data dan menemukan informasi penting yang tersembunyi mengenai suatu pola data. Hal ini dapat memberikan kontribusi yang sangat besar pada strategi bisnis, knowledge base, dan penelitian serta riset medikal. Kehadiran data mining dilatar belakangi dengan problema data explosion yang dialami akhir-akhir ini dimana banyak perusahaan telah mengumpulkan data sekian tahun lamanya (data pembelian, data penjualan, data nasabah, data transaksi, dan sebagainya). Hampir semua data tersebut dimasukkan dengan menggunakan aplikasi komputer yang digunakan untuk menangani transaksi sehari-hari yang kebanyakan adalah OLTP (Online Transaction Processing). Bayangkan berapa banyak transaksi 20 yang dimasukkan dari transaksi kartu kredit dari sebuah bank dalam seharinya dan bayangkan betapa besarnya ukuran data mereka jika nanti telah berjalan beberapa tahun. Pertanyaannya sekarang, apakah data tersebut akan dibiarkan menggunung, tidak berguna lalu dibuang, ataukah dapat di‘tambang’ untuk mencari ‘emas’, ‘berlian’ berupa informasi yang berguna untuk perusahaan. Banyak perusahaan yang kebanjiran data namun miskin informasi. Sebagai cabang ilmu baru di bidang komputer, namun sudah cukup banyak penerapan yang dapat dilakukan oleh data mining. Apalagi ditunjang kekayaan dan keanekaragaman berbagai bidang ilmu (artificial intelligence, database, statistik, pemodelan matematika, pengolahan citra, dan sebagainya) membuat penerapan data mining menjadi makin luas. 2.1.1 Penerapan Data mining untuk Analisis Pasar Untuk analisis pasar, banyak sekali sumber data yang dapat digunakan seperti transaksi kartu kredit, kartu anggota club tertentu, kupon diskon, keluhan pembeli, ditambah dengan studi tentang gaya hidup masyarakat. Sebagai contoh, jika seseorang mempunyai kartu kredit, sudah pasti ia akan sering menerima surat berisi brosur penawaran barang atau jasa. Jika bank pemberi kartu kredit mempunyai 1.000.000 nasabah, dan mengirimkan sebuah surat penawaran kepada setiap nasabahnya dengan biaya pengiriman sebesar Rp. 1.000,- per buah maka biaya yang dihabiskan adalah 1 milyar rupiah. Jika bank tersebut mengirimkan penawaran sekali sebulan yang berarti 12 kali dalam setahun. Maka, anggaran yang dikeluarkan per tahunnya adalah 12 milyar rupiah. Dari dana 12 milyar rupiah yang dikeluarkan, 21 mungkin hanya 10% dari nasabah saja yang benar-benar membeli. Secara harfiah, berarti 90% dari dana tersebut terbuang sia-sia. Persoalan di atas merupakan salah satu persoalan yang dapat diatasi oleh data mining dari sekian banyak potensi permasalahan yang ada. Data mining dapat menambang data transaksi belanja kartu kredit untuk melihat manakah nasabah yang memang potensial untuk membeli produk tertentu. Mungkin tidak sampai presisi 10%, tapi bayangkan jika dapat disaring menjadi 30% saja, tentunya 70% dana dapat digunakan untuk hal lainnya. Beberapa fungsi lainnya dari data mining untuk analisis pasar adalah sebagai berikut. • Menembak target pasar Data mining dapat melakukan pengelompokan (clustering) dari modelmodel pembeli dan melakukan klasifikasi terhadap setiap pembeli sesuai dengan karakteristik yang diinginkan seperti kesukaan yang sama, tingkat penghasilan yang sama, kebiasaan membeli dan karakteristik lainnya. • Melihat pola beli pemakai dari waktu ke waktu Data mining dapat digunakan untuk melihat pola beli seseorang dari waktu ke waktu. Sebagai contoh, ketika seseorang menikah dapat saja ia kemudian memutuskan pindah dari single account ke joint account (rekening bersama) dan kemudian setelah itu pola beli-nya berbeda dari ketika ia masih bujangan. 22 • Cross-Market Analysis Data mining dapat digunakan untuk melihat hubungan antara penjualan satu produk dengan produk lainnya. Berikut ini adalah beberapa contohnya. − Cari pola penjualan Coca Cola sedemikian rupa sehingga dapat diketahui barang apa sajakah yang harus disediakan untuk meningkatkan penjualan Coca Cola. − Cari pola penjualan IndoMie sedemikian rupa sehingga dapat diketahui barang apa saja yang juga dibeli oleh pembeli IndoMie. Dengan demikian dapat diketahui dampaknya jika IndoMie tidak dijual lagi. • Profil Customer Data mining dapat membantu untuk melihat profil customer sehingga dapat diketahui kelompok customer tertentu suka membeli produk apa saja. • Identifikasi Kebutuhan Customer Data mining dapat digunakan untuk mengidentifikasi produk-produk apa saja yang terbaik untuk tiap kelompok customer dan menyusun faktor-faktor apa saja yang kira-kira dapat menarik customer baru untuk bergabung/membeli. • Menilai Loyalitas Customer VISA International Spanyol menggunakan data mining untuk melihat kesuksesan program-program customer loyalty mereka. • Informasi Summary Data mining dapat digunakan untuk membuat laporan summary yang bersifat multi-dimensi dan dilengkapi dengan informasi statistik lainnya. 23 2.1.2 Penerapan Data mining untuk Analisis Perusahaan dan Manajemen Resiko • Perencanaan Keuangan dan Evaluasi Aset Data mining dapat membantu untuk melakukan analisis dan prediksi cash flow serta melakukan contingent claim analysis untuk mengevaluasi aset. Selain itu dapat juga digunakan untuk analisis trend. • Perencanaan Sumber Daya (Resource Planning) Dengan melihat informasi ringkas (summary) serta pola pembelanjaan dan pemasukkan dari masing-masing resource, data mining dapat digunakan untuk melakukan resource planning. • Persaingan (Competition) Sekarang ini banyak perusahaan yang berupaya untuk dapat melakukan competitive intelligence. Data mining dapat membantu untuk memonitor pesaing-pesaing dan melihat market direction mereka. − Data mining dapat digunakan untuk melakukan pengelompokan customer dan memberikan variasi harga/layanan/bonus untuk masing-masing grup. − Data mining dipakai dalam menyusun strategi penetapan harga di pasar yang sangat kompetitif. Hal ini diterapkan oleh perusahaan minyak REPSOL di Spanyol dalam menetapkan harga jual gas di pasaran. • Telekomunikasi Sebuah perusahaan telekomunikasi menerapkan data mining untuk melihat jutaan data transaksi yang masuk, transaksi mana sajakah yang masih harus ditangani secara manual (dilayani oleh manusia). Tujuannya tidak lain adalah untuk menambah layanan otomatis khusus untuk transaksi-transaksi yang 24 masih dilayani secara manual. Dengan demikian jumlah operator penerima transaksi manual tetap bisa ditekan minimal. • Keuangan Financial Crimes Enforcement Network di Amerika Serikat baru-baru ini menggunakan data mining untuk menambang trilyunan dari berbagai subyek seperti property, rekening bank dan transaksi keuangan lainnya untuk mendeteksi transaksi-transaksi keuangan yang mencurigakan (seperti money laundry). Mereka menyatakan bahwa hal tersebut akan susah dilakukan jika menggunakan analisis standar. • Asuransi Australian Health Insurance Commision menggunakan data mining untuk mengidentifikasi layanan kesehatan yang sebenarnya tidak perlu tetapi tetap dilakukan oleh peserta asuransi. Dengan strategi tersebut, mereka berhasil menghemat satu juta dollar per tahunnya. Tentu saja ini tidak hanya bisa diterapkan untuk asuransi kesehatan, tetapi juga untuk berbagai jenis asuransi lainnya. • Olah Raga IBM Advanced Scout menggunakan data mining untuk menganalisis statistik permainan NBA (jumlah shots blocked, assists dan fouls) dalam rangka mencapai keunggulan bersaing (competitive advantage) untuk tim New York Knicks dan Miami Heat. 25 • Astronomi Jet Propulsion Laboratory (JPL) di Pasadena, California dan Palomar Observatory berhasil menemukan 22 quasar dengan bantuan data mining . Hal ini merupakan salah satu kesuksesan penerapan data mining di bidang astronomi dan ilmu ruang angkasa. • Internet Web Surf-Aid IBM Surf-Aid menggunakan algoritma data mining untuk mendata akses halaman Web khususnya yang berkaitan dengan pemasaran guna melihat prilaku dan minat customer serta melihat keefektifan pemasaran melalui Web. Dengan melihat beberapa aplikasi yang telah disebutkan sebelumnya, terlihat sekali potensi besar dari penerapan data mining di berbagai bidang. Bisa dikatakan bahwa data mining merupakan salah satu aktivitas di bidang perangkat lunak yang dapat memberikan ROI (return on investment) yang tinggi. Namun demikian, perlu diingat bahwa data mining hanya melihat keteraturan atau pola dari sejarah, tetapi tetap saja sejarah tidak sama dengan masa datang. Sebagai contoh, jika orang terlalu banyak minum Coca Cola bukan berarti dia pasti akan kegemukan, jika orang terlalu banyak merokok bukan berarti dia pasti akan kena kanker paru-paru atau mati muda. Bagaimanapun juga data mining tetaplah hanya alat bantu yang dapat membantu manusia untuk melihat pola, menganalisis trend, dan sebagainya dalam rangka mempercepat pembuatan keputusan. Berbagai pemaparan tersebut merupakan suatu fakta yang tidak dapat dipungkiri lagi oleh setiap perusahaan pada masa kini maupun masa mendatang. Oleh karena itu, 26 pada skripsi ini menggunakan sistem database yang menerapkan aplikasi data mining untuk clustering item. Topik utama yang disampaikan akan menggunakan bantuan metode Clustering Large Application based on Randomized Search sebagai tool untuk sistem clustering data perusahaan. Dengan begitu, manajer dapat menindaklanjuti dengan cepat dan tepat terhadap kemungkinan munculnya informasi yang tergali setelah dilakukan proses clustering pada data-data yang ada. Clustering sebenarnya merupakan teknik data mining yang digunakan untuk mencari pengelompokan data, yang tidak memiliki pengelompokan alami. Pada algoritma clustering, data akan dikelompokan menjadi cluster-cluster berdasarkan kemiripan satu data dengan data yang lain. Dalam hal ini, tidak ada patokan tertentu yang digunakan pada algoritma clustering untuk mencari pengelompokan data yang ada pada sekumpulan data tersebut. Data yang dikelompokan dalam satu cluster memiliki similaritas tinggi, sedangkan antara satu cluster dengan cluster lainnya memiliki similaritas rendah. 2.6 Definisi Data Mining Data mining merupakan proses untuk menggali (mining) pengetahuan dan informasi baru dari data yang berjumlah banyak pada data warehouse, dengan menggunakan kecerdasan buatan (Artificial Intelegence), statistik dan matematika. Data mining merupakan teknologi yang diharapkan dapat menjembatani komunikasi antara data dan pemakainya. Data mining seringkali disebut juga dengan knowledge mining from databases, knowledge extraction, data pattern analysis, data archeology, dan data dredging. 27 Selain itu data mining juga sering digunakan oleh banyak orang sebagai sinonim dari Knowledge Discovery in Databases atau KDD. Teknik analisis data mining pada umumnya diorentasikan untuk dapat mengerjakan data yang ada dalam jumlah sebanyak mungkin, dengan tujuan mining terhadap data tersebut dapat menghasilkan keputusan dan kesimpulan yang terjamin keakuratannya. Arsitektur utama dari sebuah sistem data mining, pada umumnya mengandung unsur-unsur sebagai berikut : − Database, datawarehouse, atau media penyimpanan informasi. Media dalam hal ini bisa jadi berupa database, datawarehouse, spreadsheets, atau jenis-jenis penampungan informasi lainnya. Data cleaning dan data integration dapat dilakukan pada data tersebut. − Database atau datawarehouse server. Database atau datawarehouse server bertanggung jawab untuk menyediakan data yang relevan berdasarkan permintaan dari user pengguna data mining . − Data mining engine. Bagian dari program aplikasi yang menjalankan program berdasarkan algoritma yang ada. − Pattern evaluation module Bagian dari program aplikasi yang berfungsi untuk menemukan pattern atau pola-pola yang terdapat di dalam database yang diolah sehingga nantinya proses data mining dapat menemukan knowledge yang sesuai. 28 − Graphical user interface Bagian ini merupakan sarana antara user dan sistem data mining untuk berkomunikasi, di mana user dapat berinteraksi dengan sistem melalui data mining query, untuk menyediakan informasi yang dapat membantu dalam pencarian knowledge. Lebih jauh lagi, bagian ini mengijinkan user untuk melakukan browsing pada database dan datawarehouse, mengevaluasi pattern yang telah dihasilkan, dan menampilkan pattern tersebut dengan tampilan yang berbeda-beda. Suatu sistem data mining yang baik, seharusnya dibangun dengan algoritma yang baik, terstruktur, cepat, dan juga dapat menangani data dalam jumlah besar, sehingga ketika menangani suatu database dengan ukuran besar maupun kecil, running time-nya pun akan berkembang secara proporsional. Dengan melakukan data mining, knowledge yang menarik, high level information dapat di-extract dari database atau ditampilkan dari berbagai sudut pandang. Data mining pada umumnya dapat dilakukan terhadap segala macam data yang tersimpan baik pada relational database, datawarehouse, transactional databases, dan tidak tertutup kemungkinan pada sebuah sistem database pada internet, seperti misalnya, mining informasi transaksi online. 29 2.7 Tahapan-tahapan pada Data Mining Ringkasan dari tahapan-tahapan serta proses yang dilakukan pada saat melakukan data mining dan proses untuk menemukan knowledge dapat dilihat pada Gambar 2.1. Gambar 2.1. Tahap-tahapan dalam Data mining (Sumber : Data mining : Concepts and Techniques, Jiawei Han) Sumber: http://www.cs.sfu.ca/~han/dmbook Tahap-tahapnya dimulai dari pemrosesan raw data atau data mentah sampai pada penyaringan hingga ditemukannya knowledge, dijabarkan sebagai berikut. 1. Selection, yaitu proses memilih dan memisahkan data berdasarkan beberapa kriteria, misalnya berdasarkan kota tempat tinggal konsumen. 2. Preprocessing, yaitu mempersiapkan data, dengan cara membersihkan data, informasi atau field yang tidak dibutuhkan, yang jika dibiarkan hanya akan memperlambat proses query, misalnya nama pelanggan jika sudah diketahui 30 kode pelanggannya. Selain itu juga, ditahap ini dilakukan penyeragaman format terhadap data-data yang tidak konsisten, misalnya pada suatu field dari suatu tabel, data jenis kelamin diinputkan dengan “L” atau “M”, sedangkan pada tabel yang lain, data tersebut diinputkan sebagai “P” atau “W”. 3. Transformation, data yang telah melalui proses select dan pre-processing tidak begitu saja langsung digunakan, tapi ditransformasikan terlebih dahulu ke bentuk yang lebih navigable dan useable, misalnya dengan menambahan field-field tertentu yang bersifat demografi, seperti propinsi, kota, atau informasi apapun yang biasanya digunakan pada riset pemasaran. 4. Data mining, tahap ini dipusatkan untuk mendapatkan pola dari data (extraction of data). 5. Interpretation and evaluation, dalam proses ini pattern atau pola-pola yang telah diidentifikasi oleh sistem kemudian di terjemahkan/diintepretasikan ke dalam bentuk knowledge yang lebih mudah dimengerti oleh user untuk membantu pengambilan keputusan, misalnya menunjukan item yang saling berasosiasi melalui grafik atau bentuk lain yang lebih mudah dimengerti. Pada umumnya, data mining dapat digunakan untuk menganalisis dan menemukan empat tipe relasi berikut. − Classes, data yang tersedia dapat digunakan untuk menemukan hubungan dari beberapa hal yang ingin diketahui. Sebagai contoh, sebuah restauran dapat melakukan mining terhadap data penjualannya selama periode-periode tertentu, untuk menemukan pada waktu-waktu kapan, restauran tersebut menerima kunjungan paling banyak dan kunjungan paling sedikit, setelah menemukan, 31 restoran mungkin dapat menawarkan paket-paket istimewa untuk menarik pelanggan lebih banyak lagi pada jam-jam sepi tersebut, sehingga nantinya dapat meningkatkan penjualan dari restauran tersebut secara keseluruhan. − Clusters, data item dapat dikelompokan/dipecah-pecah kedalam beberapa grup, berdasarkan algoritma yang sudah ditentukan. Misalnya, data mining dapat langsung mencari dan mengelompokan konsumen di daerah yang mana saja yang mempunyai daya beli tinggi, dan yang mana memiliki daya beli rendah. − Associations, data dapat di-mine untuk menemukan item-item apa saja, yang dibeli konsumen, yang saling berasosiasi. Misalnya; bila seorang konsumen membeli secangkir kopi, ternyata konsumen tersebut juga membeli makanan ringan seperti biskuit ataupun cake. − Sequential patterns, data dapat di-mine untuk menemukan “patterns and trends” yaitu pola belanja konsumen dan juga trend yang terjadi secara berurutan. Sebagai contoh adalah, konsumen yang membeli sebuah komputer, dapat diperkirakan konsumen tersebut akan membeli juga software-software game atau installer maupun tinta printer. 2.8 Clustering Analisis cluster adalah upaya menemukan sekelompok objek yang mewakili suatu karakter yang sama atau hampir sama (similar) antar satu objek dengan objek lainnya pada suatu kelompok dan memiliki perbedaan (not similar) dengan objek-objek pada kelompok lainnya. Tentunya persamaan dan perbedaan tersebut diperoleh berdasar informasi yang diberikan oleh objek-objek tersebut beserta hubungan (relationship) 32 antar mereka. Dalam berbagai kesempatan, clustering juga sering disebut sebagai Unsupervised Classification yaitu, pengelompokan data yang tidak memiliki pengelompokan alami. Beberapa hal yang tidak termasuk dalam analisis cluster adalah − Klasifikasi yang telah tervisikan (misal, pengelompokan hewan berdasar cara perkembangbiakannya), − Pemisahan sederhana (misal, pengelompokan nama siswa berdasar abjad), − Hasil suatu Query (misal, grouping suatu spesifikasi tertentu), − Partisi grafik, dan sebagainya. 2.8.1 Konsep dasar Clustering Konsep terpenting yang harus disadari adalah bahwa proses clustering yang baik akan menghasilkan cluster dengan kualitas tinggi bila memiliki : − Tingkat kesamaan yang tinggi dalam satu class (high intra-class similarity). − Tingkat kesamaan yang rendah antar class (low inter-class similarity). Similarity yang dimaksud merupakan pengukuran secara numerik terhadap dua buah objek. Nilai similarity ini akan semakin tinggi bila dua objek yang dibandingkan tersebut memiliki kemiripan yang tinggi pula. Tentunya, perbedaaan kualitas suatu hasil clustering ini bergantung pada metode yang dipakai untuk mengukur kesamaan (similaritas) tersebut serta implementasinya. Dalam hal ini, diperlukan kesebandingan antara data yang hendak di-cluster. Oleh karena itu, digunakan metode Min-Max Normalization untuk mengatasi hal tersebut. Rumus selengkapnya dari metode ini dapat dilihat sebagai berikut. 33 V '= V − min A * (new _ max A − new _ min A )+ new _ min A max A − min A di mana, V’ = Nilai dari data hasil Min-Max Normalization V = Nilai dari data yang akan dinormalisasi minA = Nilai minimum dari suatu field data yang sama maxA = Nilai maksimum dari suatu field data yang sama new_minA = Nilai minimum terbaru yang diinginkan new_maxA = Nilai maksimum terbaru yang diinginkan Selain itu pula, suatu metode clustering juga harus dapat diukur kemampuannya dalam usahanya untuk menemukan suatu pola tersembunyi pada data yang tersedia. Dalam mengukur nilai similarity ini, ada beberapa metode yang dapat dipakai. Namun, hanya akan dijelaskan metode yang dipakai dalam pembuatan skripsi ini, yaitu Euclidean Distance. Pada metode ini, dua buah point dapat dihitung jaraknya bila diketahui nilai dari masing-masing atribut pada kedua point tersebut. Berikut adalah rumus distance yang dipakai. n Distance = (∑ μ k | p k − q k | r )1 / r k =1 dimana, n = Jumlah record data k = Urutan field data r=2 34 μ k = Bobot field yang diberikan oleh user • (0 <= μ k <= 1) • p k , qk ε R Yang dimaksud dengan bobot field ( μ k ) adalah ukuran kemampuan suatu field ke-k dalam mempengaruhi jarak antara kedua point. Semakin besar nilai μ k , akan semakin besar pula pengaruhnya terhadap jarak antara kedua point, dan sebaliknya semakin kecil nilai μ k , akan semakin kecil pengaruhnya terhadap jarak antar kedua point. 2.8.2 Tipe Clustering Pada dasarnya terdapat 2 tipe Clustering, yaitu: − Partitional Clustering: Tipe cluster yang benar-benar terpisah antara sekelompok objek dengan sekelompok objek lainnya. Original Points A Partitional Clustering Gambar 2.2. Tipe-tipe Cluster Sumber: http://en.wikipedia.org/wiki/Cluster_analysis 35 − Hierarchical Clustering: Sekelompok cluster yang terorganisasi sebagai suatu pohon hirarki (hierarchical tree). Gambar 2.3. Traditional Hierarchical Clustering Sumber: http://en.wikipedia.org/wiki/Cluster_analysis 2.8.3 Penggunaan Aplikasi Clustering Berbagai macam aplikasi penggunaan clustering, dapat meliputi sebagai berikut : − Pengenalan pola − Analisis data spasial (Spatial Data) • Membuat Map GIS (Geographic Information System) • Mendeteksi cluster spasial dan menjelaskannya pada data mining spasial − Memroses image tertentu − Ilmu Pengetahuan Ekonomi (analisis pasar) − Meng-cluster weblog data 36 Contoh penggunaan aplikasi cluster : − Marketing: Membantu para pelaku pasar menemukan kelompok tertentu pada basis customer mereka dan menggunakan pengetahuan tersebut untuk mengembangkan program target marketing mereka. − Land use: Mengidentifikasi setiap area yang ada di permukaan bumi untuk keperluan observasi pada database. − Insurance: Mengidentifikasi sekelompok pemegang polis asuransi yang memiliki tingkat biaya klaim rata-rata tertentu. − City Planning: Mengidentifikasi sekelompok rumah berdasar tipe, nilai serta letak geografisnya. − Earth-quake Studies: mengobservasi berbagai macam titik episentrum gempa bumi yang terjadi pada berbagai benua. 2.9 Clustering Large Applications based On Randomized Search Metode ini dapat dijelaskan sebagai berikut : − Clustering Large Application based on Randomized Search menggambarkan contoh pasangan set (neighbor) secara dinamis − Proses clustering dapat menggambarkan pencarian suatu graph, di mana setiap node pada graph tersebut merupakan solusi yang potensial, yaitu sekumpulan k medoids. − Jika optimum lokal ditemukan, Clustering Large Application based on Randomized Search memulai lagi dengan memilih node baru secara random untuk menemukan optimum lokal yang baru. 37 Tahapan dalam algoritmanya adalah sebagai berikut. 1. Input parameter numlocal dan maxneighbor. Inisialisasi i = 1 dan mincos t = nilai numerik yang besar (misal : 1000). 2. Set current_node = arbitrary node pada Gn, k.( Graph ) 3. Set j = 1. 4. Tentukan random neighbor S dari current_node, dan kalkulasikan cost differential dari dua node. 5. Jika S memiliki cost yang lebih rendah, set current_node = S, dan kembali ke Step 3. 6. Jika tidak, increament j ( j = j + 1 ). Jika j _ maxneighbor, kembali ke Step 4 7. Selain itu, saat j > maxneighbor, bandingkan cost dari current dengan mincost. Jika nilai cost yang didapat dari perhitungan current_node lebih kecil dari mincost, set mincost = cost dari current_node dan set bestnode = current_node. 8. Increament i ( i = i + 1). Jika i >numlocal, output bestnode dan halt . Jika tidak, kembali ke Step 2. Gambar 2.4 Grafik Cluster 38 2.10 Flowchart Flowchart merupakan suatu cara penggambaran alur kontrol eksekusi sebuah program dengan menggunakan simbol-simbol tertentu. Tujuan penggambaran flowchart adalah untuk memudahkan orang lain dalam mempelajari alur logika sebuah program. Simbol-simbol yang digunakan dalam menggambarkan flowchart adalah sebagai berikut: a. Terminator Digunakan untuk mengawali dan mengakhiri sebuah alur flowchart. Untuk mengawali sebuah alur program digunakan kata “Start”, dan untuk mengakhiri alur tersebut digunakan kata “End”. Untuk mengawali dan mengakhiri sebuah modul atau suatu bagian dari program, digunakan kata “Enter” dan “Return”. Gambar 2.5 Terminator b. Preparation Digunakan untuk menginisialisasi nilai sebuah variabel, record, atau field lainnya yang diperlukan dalam program. Gambar 2.6 Preparation 39 c. Process Digunakan untuk menampilkan proses-proses yang terjadi dalam alur program, seperti penambahan, pengurangan, dan lain-lain. Gambar 2.7 Process d. Decision Digunakan untuk menggambarkan proses percabangan (branching) yang terjadi dalam alur program. Gambar 2.8 Decision e. Input/Output Digunakan untuk menggambarkan proses yang melibatkan input dan output data, seperti meminta input-an dan menampilkan hasil output kepada user. Gambar 2.9 Input/Output 40 f. Predefined Process Digunakan untuk menggambarkan proses pemanggilan prosedur lain yang terpisah dari alur utama program. Prosedur tersebut dijabarkan dalam flowchart lain. Gambar 2.10 Predefined Process g. Connector Digunakan untuk menghubungkan ujung-ujung percabangan dalam aprogram. Gambar 2.11 Connector h. Arrow Digunakan untuk menggambarkan arah alur program antara dua simbol. Gambar 2.12 Arrow 41 Berikut ini adalah flowchart dari algoritma Clustering Large Application based on Randomized Search. Start MinCost=1000 Count_Neighbor=0 i=1 No End Yes i<=NumLocal Count_Neighbor<=Max_Neighbor Yes No Inc(Count_Neighbor) CountMedoid(Current_Node)<=CountMedoid(Neighbor) best_count_medoid_so_far<=current_value No No Count_Neighbor=0 Current_Node=Neighbor Yes Yes best_node=current_node best_count_medoid_so_far=current_value Set Neighbor Select Arbitrary Node Set Neighbor Inc(i) Gambar 2.13 Flowchart of Data Clustering’s Procedure 42 2.11 Naive Bayes Classification Metode ini dipakai untuk mengklasifikasikan item baru yang tidak mengalami proses clustering. Jadi, setelah hasil akhir cluster terbentuk, bila ada data terbaru yang ingin di-input-kan, user dapat langsung mengetahui data baru tersebut terklasifikasikan pada cluster yang mana (tanpa harus mengulangi proses Clustering). Berikut ini adalah rumus yang dipakai : Ρ( x1,..., xk | C ) = Ρ( x1 | C ) * ... * Ρ(xk | C ) Dimana, P(xi|C) adalah perkiraan frekuensi relativitas dari sampel yang memiliki nilai xi seperti pada atribut yang ada pada class C.