1 SISTEM PENDUKUNG KEPUTUSAN ANALISIS POLA PEMBELIAN PRODUK DENGAN METODE ALGORITMA APRIORI SKRIPSI Skripsi ini sebagai salah satu syaraat untuk memperoleh gelar sarjana Teknik Informatika Universitas Pembangunan Nasional “Veteran” Yogyakarta Disusun oleh: Denny Henrry Bonai 123070008 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”YOGYAKARTA 2011 2 KATA PENGANTAR Puji syukur Penulis panjatkan kepada Tuhan Yesus Kristus, karena dengan pertolonganNya penulis dapat menyelesaikan skripsi ini sesuai dengan waktu yang diharapkan.Pembuatan skripsi ini adalah suatu syarat untuk menyelesaikan tugas akhir di Universitas Pembangunan Nasional Veteran Yogyakarta.Dalam penyusunan skripsi ini telah banyak pihak yang turut membantu sehingga skripsi ini dapat terselesaikan dengan baik. Untuk itu penulis ingin menyampaikan terimakasih kepada: 1. Ibu Willis Kaswidjanti,S.si.,M.Kom selaku dosen pembimbing I dan Bapak Frans Richard Kodong,ST.,M.Kom selaku dosen pembimbing II yang telah memberikan bimbingan,nasehat dan arahan kepada penulis. 2. Ibu Juwairiah,S.Si.,MT selaku koordinator Skripsi. 3. Bapak Herry Sofyan,ST.,M.Kom selaku Ketua Jurusan Teknik Informatika UPN ‘V’Yogyakarta beserta para dosen dan seluruh karyawan Tata usaha atas bantuan yang diberikan selama penulis mengikuti studi. 4. Secara khusus penulis ingin mengucapkan terima kasih kepada kedua orang tua dan kedua saudara yaitu aqnes dan oky yang selalu mendukung dalam bentuk moril maupun materil sehingga penulis dapat menyelesaikan studi dengan baik. 5. Buat Serdadu 07 terima kasih atas semua dukungan yang di berikan,salam kompak selalu. Akhirnya semua penulis kembalikan kepada Tuhan Yang Maha Esa, karena atas rahmatNya penulis dapat membuat skripsi ini. Semoga skripsi ini dapat bermanfaat dan menjadi sesuatu karya yang memberi dampak positif. Yogyakarta,20 September Penulis 3 DAFTAR ISI BAB I PENDAHULUAN......................................................................................................1 1.1 Latar Belakang Masalah................................................................................................. 1 1.2 Rumusan Masalah........................................................................................................... 2 1.3 Batasan Masalah.............................................................................................................. 2 1.4 Tujuan Penelitian................................................................................................. ........... 2 1.5 Manfaat penelitian........................................................................................................... 3 1.6 Metedologi Penelitian...................................................................................................... 3 1.7 Sistematika Penulisan...................................................................................................... 3 BAB II DASAR TEORI........................................................................................................ 5 2.1 Konsep Sistem Pendukung Keputusan............................................................................ 5 2.2 Komponen Sistem Pendukung Keputusan...................................................................... 9 2.3 Algoritma Apriori............................................................................................................ 10 2.3.1 Konsep Aturan Asosiasi Dengan Algoritma Apriori........................................ ........... 10 2.3.2 Analisis Asosiasi Dengan Algoritma Apriori............................................................... 12 2.4 Data Flow Diagram (DFD ............................................................................................. 18 2.5 Basis Data........................................................................................................................ 19 2.5.1 Konsep Data Base dan Terminologi..... ....................................................................... 21 2.5.1.1 Entitas Dan Relationship........................................................................................... 21 2.6 Waterfall.......................................................................................................................... 22 2.7 Microsoft visual Basic..................................................................................................... 23 2.7.1 Microsoft SQL Server................................................................................................... 25 2.7.1.1 SQL query.................................................................................................................. 25 2.7.1.2 DDL (data definition languange).............................................................................. 26 2.7.1.3 DML (data manipulation languange)........................................................................ 26 2.8 Studi Pustaka................................................................................................................... 27 BAB III ANALISIS DAN PERANCANGAN...................................................................... 28 3.1 Perancangan Sistem......................................................................................................... 28 3.1.1 Arsitektur Sistem Pendukung Keputusan.................................................................... 28 3.1.2 Rancangan Proses........................................................................................................ 29 3.2 Flowchart ....................................................................................................................... 33 3.3 Rancangan Basis Data..................................................................................................... 34 3.3.1 ERD (entity relationship diagram)................................................................... ........... 34 3.3.2 Struktur Tabel............................................................................................................... 36 3.3.3 Relasi Antar Tabel........................................................................................................ 38 3.4 Rancangan Struktur Menu............................................................................................... 39 3.5 Rancangan Antar Muka(uses interface).......................................................................... 39 3.5.1 Rancangan Halaman Login.......................................................................................... 39 3.5.2 Rancangan Halaman Home karyawan.............................................................. ........... 40 3.5.3 Rancangan Halaman Home Pemilik Swalayan............................................................ 41 3.5.4 Rancangan Halaman Data Barang.................................................................... ........... 41 3.5.5 Rancangan Halaman Data Penjualan................................................................ ........... 43 3.5.6 Rancangan Halaman Data Kategori............................................................................. 44 4 3.5.7 Rancangan Halaman Perhitungan (DSS).......................................................... ........... 45 3.5.8 Rancangan Halaman Lihat Sketsa............................................................................... 46 3.5.9 Rancangan Halaman Alternatif.................................................................................... 47 BAB IV IMPLEMENTASI....................................................................................... ........... 48 4.1 Spesifikasi Perangkat Keras............................................................................................ 48 4.2 Spesifikasi Perangkat Lunak .......................................................................................... 48 4.3.1 Implementasi Aplikasi Program................................................................................... 48 4.3.2 Halaman Utama Menu.................................................................................................. 50 4.3.3 Halaman Data kategori................................................................................................. 54 4.3.4 Halaman Halaman Data Barang................................................................................... 57 4.3.5 Halaman Data Penjualan.............................................................................................. 66 4.3.6 Halaman Data user....................................................................................................... 48 4.3.7 Halaman Data Perhitungan........................................................................................... 69 4.3.8 Halaman Data Alternatif............................................................................................... 74 4.3.9 Halaman Data Pendukung Keputusan.......................................................................... 76 BAB V PENUTUP................................................................................................................ 77 5 DAFTAR GAMBAR Gambar 3.1 Arsitektur SPK................................................................................................... 29 Gambar 3.2 DFD level O........................................................................................... ........... 31 Gambar 3.3 DFD level 1....................................................................................................... 30 Gambar 3.4 DFD level 2 Proses 3......................................................................................... 32 Gambar 3.5 Flowchart........................................................................................................... 33 Gambar 3.6 Rancangan ERD................................................................................................ 35 Gambar 3.7 Relasi Antar Tabel............................................................................................ 38 Gambar 3.8 Rancangan Struktur Menu................................................................................. 39 Gambar 3.9 Rancangan Halaman Login................................................................................40 Gambar 3.10 Rancangan Halaman Menu Utama Karyawan.................................................40 Gambar 3.11 Rancangan Halaman Menu Utama Pemilik swalayan............. ....................... 41 Gambar 3.12 Rancangan Halaman Data Barang................................................................... 42 Gambar 3.13 Rancangan Halaman Data penjualan............................................................... 43 Gambar 3.14 Rancangan Halaman Data Kategori................................................................ 44 Gambar 3.15 Rancangan Halaman Perhitungan (DSS.......................................................... 45 Gambar 3.16 Rancangan Halaman Data User....................................................................... 46 Gambar 4.1 Halaman Login.................................................................................................. 49 Gambar 4.2 Halaman Menu Utama Pemilik swalayan.......................................................... 51 Gambar 4.3 Halaman Menu utama Karyawan...................................................................... 51 Gambar 4.4 Halaman Data Kategori..................................................................................... 54 Gambar 4.5 Halaman Data barang........................................................................................ 58 Gambar 4.6 Halaman Data Penjualan....................................................................................62 Gambar 4.7 Halaman Data user.............................................................................................66 Gambar 4.8 Halaman Data Perhitungan................................................................................ 70 Gambar 4.9 Halaman Data Alternatif.................................................................................... 74 Gambar 4.10 Halaman Data Pendukung keputusan.............................................................. 76 6 DAFTAR TABEL Tabel 2.1 Tabel Transaksi......................................................................................... 14 Tabel 2.2 Tabel Representasi data transaksi dalam data base Transaksional............ 14 Tabel 2.3 Tabel Format Tabular dan data Transaksi................................................. 14 Tabel 2.4 Lanjutan Tabel Format Tabular dan data Transaksi.................................. 15 Tabel 2.5 Tabel calon 2 item set................................................................................ 16 Tabel 2.6 Tabel Calon 3 item set............................................................................... 17 Tabel 2.7 Tabel Calon Aturan Asosiasi dari f3......................................................... 17 Tabel 2.8 Tabel Calon Aturan Asosiasi dari F2........................................................ 18 Tabel 2.9 Tabel Aturan asosiasi final........................................................................ 18 Tabel 2.11 Tabel Notasi Dasar DFD......................................................................... 19 Tabel 3.1 Tabel Kategori........................................................................................... 36 Tabel 3.2 Tabel Tabel Barang................................................................................... 36 Tabel 3.3 Tabel Penjualan......................................................................................... 36 Tabel 3.4 Tabel Detil Penjualan................................................................................ 37 Tabel 3.5 Tabel Perhitungan...................................................................................... 37 Tabel 3.6 Tabel Alternatif......................................................................................... 37 Tabel 3.7 Tabel User................................................................................................. 38 7 DAFTAR Modul Modul 4.1 Halaman Login........................................................................................ 49 Modul 4.2 Lanjutan Login......................................................................................... 50 Modul 4.3 Menu Utama............................................................................................ 52 Modul 4.4 Lanjutan Menu Utama............................................................................. 53 Modul 4.5 Halaman Kategoriori ................................................................... ........... 54 Modul 4.6 Lanjutan Kategori.................................................................................... 55 Modul 4.7 Lanjutan Kategori.................................................................................... 56 Modul 4.8 Lanjutan Kategori.................................................................................... 57 Modul 4.9 Halaman Data Barang.................................................................. ........... 58 Modul 4.10 lanjutan Data Barang............................................................................. 59 Modul 4.11 Lanjutan Data Barang............................................................................ 60 Modul 4.12 Lanjutan Data Barang.............................................................................61 Modul 4.13 Lanjutan Data Barang............................................................................ 62 Modul 4.14 Halaman Penjualan................................................................................ 63 Modul 4.15 Lanjutan Penjualan................................................................................ 64 Modul 4.16 Lanjutan Penjualan.................................................................................65 Modul 4.17 Halaman Data user..................................................................... ........... 66 Modul 4.18 Lanjutan Data User................................................................................ 67 Modul 4.19 Lanjutan Data User.................................................................................68 Modul 4.20 Lanjutan Data User.................................................................................69 Modul 4.21 Halaman Data Perhitungan.....................................................................70 Modul 4.22 Lanjutan Data Perhitung.........................................................................68 Modul 4.23 Lanjutan Data Perhitungan.....................................................................68 Modul 4.24 Lanjutan Data Perhitung........................................................................ 68 Modul 4.25 Halaman Data Alternatif........................................................................ 68 Modul 4.26 Lanjutan Data Alternatif.........................................................................68 8 ABSTRAK Analisis asosiasi adalah teknik data mining untuk menemukan aturan asosiatif antara suatu kombinasi item.Aturan asosiatif dari analisis pembelian di suatu pasar swalayan adalah mengetahui besarnya kemungkinan seorang pelanggan untuk membeli suatu barang bersamaan dengan barang yang lain.Dengan pengetahuan tersebut pemilik pasar swalayan dapat mengatur penempatan barangnya atau merancang kampanye pemasaran menggunakan kupon diskon untuk kombinasi barang tertentu .Adapun teknik yang digunakan dalam penelitian ini adalah algoritma apriori menggunakan 2 nilai analisis 2 nilai penting yaitu minimum support dan confidence.Dua nilai tersebut digunakan dengan proses iterasi untuk menemukan setiap kombinasi item barang yang disebut proses join dan proses untuk mengeliminasi pengelompokan barang yang tidak memenuhi minimum support yang disebut proses prune.Dari teknik-teknik yang disebutkan diatas didapatkan frekuensi dan item barang yang paling sering muncul bersamaan yang membantu management untuk menata dan mengelompokan barang dan mengoptimalkan persediaan produk. Untuk membangun sistem pendukung keputusan berbasis desktop ini dibutuhkan perangkat lunak Microsoft Visual Basic dan SQL Server sebagai datebase server. Hasil akhir kesimpulan menggunakan nilai confidence yang menggambarkan secara umum hubungan atau keterkaitan antara barang dan implementasi algoritma apriori dapat digunakan untuk menganalisis data transaksi secara keseluruhan atau pada periode tertentu saja.Dari hasil perhitungan algoritma juga dapat dianalisis bahwa proses yang membutuhkan sumber daya yang sangat besar dan waktu analisis yang lama adalah proses join antar item barang.Dengan proses kombinasi item barang yang semakin banyak menyebabkan kombinasi antar item juga semakin banyak. 9 BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Pasar swalayan merupakan sarana atau tempat penyedia barang kebutuhan sehari-hari mulai dari sembilan bahan pokok sampai kebutuhan rumah tangga lainnya. Setiap harinya di pasar swalayan tersebut terjadi beberapa transaksi penjualan. Data transaksi penjualan akan terus bertambah setiap harinya. Semakin banyak data transaksi yang tersimpan menyebabkan penyimpanan data yang sangat besar. Biasanya data-data transaksi penjualan tersebut hanya digunakan sebagai arsip dan tidak diketahui apa manfaat dari data tersebut untuk selanjutnya. Di dalam kumpulan data yang sangat besar tersebut, memiliki informasi – informasi yang tersembunyi.Kumpulan data tersebut bisa diolah untuk menghasilkan informasiinformasi yang bermanfaat yang bisa digunakan untuk pengambilan suatu keputusan dan untuk memperoleh pengetahuan. Pengolahan data tersebut bisa dilakukan dengan menggunakan teknik-teknik tertentu. Salah satu teknik yang digunakan dalam pengolahan data tersebut adalah dengan menggunakan metode algoritma apriori. Algoritma apriori adalah algoritma market basket analysis yang digunakan untuk menghasilkan association rule, dengan pola “if then ”.Market basket analysis merupakan salah satu teknik dari data mining yang mempelajari tentang perilaku kebiasaan konsumen dalam membeli barang secara bersamaan dalam satu waktu. Teknik tersebut bisa diterapkan dalam data yang sangat besar seperti data transaksi penjualan(marsela dan veronica, 2004). Dalam teknik data mining terdapat beberapa algoritma untuk menyelesaikannya.Beberapa algoritma tersebut antara lain algoritma hash-based, algoritma 10 apriori,dan algoritma FP-Growth. Sedangkan dalam penelitian ini akan menggunakan algoritma apriori. Dalam penelitian ini akan dibuat suatu sistem pendukung keputusan analisa pola pembelian produk dengan metode algoritma apriori dengan menggunakan Visual Basic dan SQL server yang dapat membantu pemilik swalayan atau manager dalam pengambilan keputusan. 1.2 Rumusan Masalah Rumusan masalah yang terdapat dalam penelitian ini yaitu bagaimana membuat suatu sistem pendukung keputusan analisa pola pembelian produk dengan metode algoritma apriori. 1.3 Batasan Masalah Agar penelitian ini mencapai sasaran dan tujuan yang diharapkan maka, penelitian ini diberikan batasan masalah sebagai berikut: 1. Pengguna dalam sistem ini yaitu pemilik swalayan dan karyawan 2. Konsumen tidak dapat mengakses sistem ini 3. Hasil dari Sistem pendukung keputusan ini yaitu gambaran hubungan atau keterkaitan antar barang untuk menganalisis data dan pengambilan keputusan 4. Hasil dari sistem pendukung keputusan ini berupa 2 –itemse dan 3item set 1.4 Tujuan Penelitian Tujuan dari penelitian ini adalah untuk menghasilkan suatu sistem pendukung keputusan untuk suatu pasar swalayan dimana sistem ini dapat membantu manager dalam pemesanan barang dan juga masalah peletakan barang. 11 1.5 Manfaat Penelitian Manfaat penelitian adalah sebagai berikut: 1. Sebagai bahan pertimbangan dalam perbaikan sistem yang sekarang diterapkan 2 .Sebagai alat bantu yang dapat meminimalisasi kesalahan, memungkinkan perusahaan mempunyai sistem pendukung keputusan,karena diharapkan sistem ini akan diimplementasikan secara langsung. 1.6 Metodologi Penelitian Metode penelitian yang akan digunakan dalam pembuatan sistem pendukung keputusan ini adalah metode prancangan perangkat lunak Waterfall.Pengembangan metode Waterfall sendiri melalui beberapa tahapan yaitu: 1. Analisa kebutuhan 2. Desain 3. Implementasi 4. Pengujian 5. Pemeliharaan Pada skripsi ini hanya akan dibahas sampai dengan tahapan pengujian. 1.7 Sistematika Penulisan Sistematika penulisan yang akan digunakan adalah sebagai berikut: BAB I PENDAHULUAN Bab ini akan menjelaskan latar belakang,perumusan masalah,batasan masalah,tujuan penelitian,manfaat penelitian,metodolgi penelitian dan sistematika penulisan 12 BAB II DASAR TEORI Bab ini akan menjelaskan dasar-dasar teori tentang sistem dan aplikasi yang akan dipergunakan sebagai landasan utama penelitian dan pembuatan aplikasi BAB III ANALISA DAN PERANCANGAN Bab ini membahas teknik analisis dan desain yang digunakan dalam pembangunan sistem BAB IV IMPLEMENTASI Bab ini berisi tentang implementasi dari sistem yang akan dibangun BAB V PENUTUP Bab ini berisi tentang kesimpulan-kesimpulan dan saran yang diberikan untuk perbaikan sistem sehingga menjadi lebih baik dan bermanfaat. 13 BAB II DASAR TEORI 2.1 Konsep Sistem Pendukung Keputusan Sistem pendukung keputusan atau DSS (Decision Support System) merupakan sistem informasi interaktif yang menyediakan informasi, pemodelan, dan pemanipulasian data. Sistem itu digunakan untuk membantu pengambilan keputusan dalam situasi yang semiterstruktur dan situasi yang tidak terstruktur, di mana tak seorang pun tahu secara pasti bagaimana keputusan seharusnya dibuat(Kusrini ,2007) DSS biasanya dibangun untuk mendukung solusi atau suatu masalah atau untuk mengevaluasi suatu peluang. DSS yang seperti itu disebut aplikasi DSS. Aplikasi DSS digunakan dalam pengambilan keputusan. Aplikasi DSS menggunakan CBIS (Computer Based Information Systems) yang fleksibel, interaktif, dan dapat diadaptasi, yang dikembangkan untuk mendukung solusi atau masalah manajemen spesifik yang tidak terstruktur. Aplikasi DSS menggunakan data, memberikan antarmuka pengguna yang mudah, dan dapat menggabungkan pemikiran pengambil keputusan. DSS lebih ditujukan untuk mendukung manajemen dalam melakukan pekerjaan yang bersifat analitis dalam situasi yang kurang terstruktur dan dengan kriteria yang kurang jelas. DSS tidak dimaksudkan untuk mengotomatisasikan pengambilan keputusan, tetapi memberikan perangkat interaktif yang memungkinkan pengambil keputusan untuk melakukan berbagai analisis menggunakan model-model yang tersedia. Tujuan dari DSS adalah :(Turban,2005) 14 1. Membantu manajer dalam pengambilan keputusan atas masalah semiterstruktur. 2. Memberikan dukungan atas pertimbangan manajer dan bukannya dimaksudkan untuk menggantikan fungsi manajer. 3. Meningkatkan efektivitas keputusan yang diambil manajer lebih daripada perbaikan efisiensinya. 4. Kecepatan komputasi. 5. Peningkatan produktivitas. 6. Dukungan kualitas. 7. Berdaya saing. 8. Mengatasi keterbatasan kognitif dalam pemrosesan dan penyimpanan. Ditinjau dari tingkat teknologinya, DSS dibagi menjadi 3, yaitu : 1. SPK spesifik Bertujuan membantu memecahkan suatu masalah dengan karakteristik tertentu. Misal, SPK penentuan harga satuan barang. 2. Pembangkit SPK Suatu software yang khusus digunakan untuk membangun dan mengembangkan SPK. 3. Perlengkapan SPK Berupa software dan hardware yang digunakan atau mendukung pembangunan SPK spesifik maupun pembangkit SPK. Berdasarkan tingkat dukungannya, DSS dibagi menjadi 6, yaitu : 1. Retrieve Information Elements 15 Inilah dukungan terendah yang bisa diberikan oleh DSS, yakni berupa akses selektif terhadap informasi. 2. Analyze Entire File Dalam tahapan ini, para manajer diberi akses untuk melihat dan menganalisis file secara lengkap. 3. Prepare Reports from Multiple Files Dukungan seperti ini cenderung dibutuhkan, mengingat para manajer berhubungan dengan banyak aktivitas dalam satu momen tertentu. 4. Estimate Decision Consequences Dalam tahapan ini, manajer dimungkinkan untuk melihat dampak dari setiap keputusan yang mungkin diambil. 5. Propose Decision Dukungan di tahapan ini sedikit lebih maju lagi. Suatu alternatif keputusan bisa disodorkan ke hadapan manajer untuk dipertimbangkan. 6. Make Decision Ini adalah jenis dukungan yang sangat diharapkan dari DSS. Tahapan ini akan memberikan sebuah keputusan yang tinggal menunggu legitimasi dari manajer untuk dijalankan. Keputusan yang diambil untuk menyelesaikan keterstrukturannya yang bisa dibagi menjadi : 1. Keputusan Terstruktur (Structured Decision) suatu masalah dilihat dari 16 Merupakan keputusan yang dilakukan secara berulang-ulang dan bersifat rutin. Biasanya dilakukan pada manajemen tingkat bawah. 2. Keputusan Semiterstruktur (Semistructured Decision) Merupakan keputusan yang memiliki dua sifat. Keputusan ini diambil oleh manajer level menengah dalam suatu organisasi. 3. Keputusan Tak Terstruktur (Unstructured Decision) Merupakan keputusan yang penanganannya rumit karena tidak terjadi berulang-ulang atau tidak selalu terjadi. Keputusan tersebut umumnya tejadi pada manajemen tingkat atas. Oleh karena tidak ada konsensus mengenai apa sebenarnya DSS, jelas tidak ada kesepakatan mengenai karakteristik standar DSS. Berikut karakteristik yang diharapkan ada di DSS (Turban, 2005). 1. Dukungan kepada pengambil keputusan, terutama pada situasi semiterstruktur dan tak terstruktur, dengan menyertakan penilaian manusia dan informasi terkomputerisasi. 2. Dukungan untuk semua level manajerial, dari eksekutif puncak sampai manajer lini. 3. Dukungan untuk individu dan kelompok, 4. Dukungan untuk keputusan independen dan atau sekuensial. 5. Dukungan di semua fase proses pengambilan keputusan : inteligensi, desain, pilihan, dan implementasi. 6. Dukungan di berbagai proses dan gaya pengambilan keputusan. 7. Adaptivitas sepanjang waktu. 17 8. Pengguna merasa seperti di rumah. Ramah-pengguna, kapabilitas grafis yang sangat kuat, dan antarmuka manusia-mesin yang interaktif dengan satu bahasa alami bisa sangat meningkatkan efektivitas DSS. 9. Peningkatan efektivitas pengambilan keputusan (akurasi, timelines, kualitas) ketimbang pada efisiensinya (biaya pengambilan keputusan). 10. Kontrol penuh oleh pengambil keputusan terhadap semua langkah proses pengambilan keputusan dalam memecahkan suatu masalah. 11. Pengguna akhir bisa mengembangkan dan memodifikasi sendiri sistem sederhana. 12. Biasanya, model-model digunakan untuk menganalisis situasi pengambilan keputusan. 13. Akses disediakan untuk berbagai sumber data, format, dan tipe, mulai dari sistem informasi geografis (GIS) sampai sistem berorientasi objek. 14. Dapat digunakan sebagai alat standalone oleh seorang pengambil keputusan pada satu lokasi atau didistribusikan di suatu organisasi secara keseluruhan dan di beberapa organisasi sepanjang rantai persediaan. Karakteristik dari DSS tersebut memungkinkan para pengambil keputusan untuk membuat keputusan yang lebih baik dan lebih konsisten dalam satu cara yang dibatasi oleh waktu. 2.2 Komponen Sistem Pendukung Keputusan Turban (1998) mengemukakan bahwa sebuah sistem pendukung keputusan dibangun dari beberapa komponen subsistem,antara lain: a.Subsistem manajemen data, meliputi basis data yang mengandung data yang relevan dengan keadaan yang ada dan dikelola oleh sebuah sistem yang dikenal sebagai database 18 management system (DBMS). Subsistem manajeman data dibangun dari elemen-elemen antara lain basis data SPK, DBMS (Database Management System), direktori data dan fasilitas query. b.Subsistem manajemen model, yaitu sebuah paket perangkat lunak yang berisi modelmodel finansial , statistik, management science, atau model kuantitatif yang lain yang menyediakan kemampuan analisis sistem dan management software yang terkait. Salah satu keunggulan dari SPK adalah kemempuan untuk mengintegrasikan akses data dan modelmodel keputusan c.Subsistem manajemen pengetahuan (knowledge) yaitu subsistem yang mampu mendukung subsistem yang lain atau berlaku sebagai sebuah komponen yang berdiri sendiri (independen) . Permasalahan yang dihadapi oleh SPK akan bertambah kompleks dan rumit sehingga diperlukan expertise untuk memberikan solusi yang baik di luar kemampuan SPK biasa d.Subsistem antarmuka pengguna (user Interface), yang merupakan media tempat komunikasi antara pengguna dan sistem pendukung keputusan serta tempat pengguna memberikan perintah kepada sistem pendukung keputusan. Komponen antarmuka suatu SPK (Management of the User Interface Subsytem) adalah perangkat keras dan perangkat lunak yang memberi antarmuka antara pemakai dan SPK Komponen antarmuka menyajikan keluaran (output) SPK pada pemakai dan mengumpulkan masukan (input) ke dalam SPK. 2.3 Algoritma Apriori Algoritma ini diajukan oleh R. Agrawal dan R. Srikant tahun 1994. Apriori melakukan pendekatan iterative yang dikenal dengan pencarian level-wise, dimana k-itemset digunakan 19 untuk mengeksplorasi (k+1)-itemset. Pertama, kumpulan 1-itemset ditemukan dengan memeriksa basis data untuk mengakumulasi penghitungan tiap barang, dan catat barang tersebut. Hasilnya dilambangkan dengan L1. Selanjutnya, L1 digunakan untuk mencari L2, kumpulan 2-itemset yang digunakan untuk mencari L3, dan seterusnya sampai tidak ada kitemset yang dapat ditemukan 2.3.1 Konsep Aturan Asosiasi Dengan Algoritma Apriori Asosiasi merupakan pengidentifikasian hubungan antara berbagai peristiwa yang terjadi pada satu waktu. Pendekatan asosiasi tersebut menekankan sebuah kelas masalah yang dicirikan dengan analisis keranjang pasar. Dalam bidang eceran, ada suatu usaha untuk mengidentifikasi produk-produk apa yang terjual dan pada tingkat seperti apa. Data yang dimiliki oleh suatu organisasi merupakan salah satu aset dari organisasi tersebut. Adanya kegiatan operasional sehari-hari akan semakin memperbanyak jumlah data. Jumlah data yang begitu besar justru bisa menjadi masalah bila organisasi tersebut tidak bisa memanfaatkannya. Semakin banyak data, akan semakin diperlukan usaha untuk memilah data mana yang bisa diolah menjadi informasi. Jika data dibiarkan saja, maka data tersebut hanya akan menjadi sampah yang tidak berarti lagi bagi organisasi tersebut. Oleh karena itu, diperlukan sebuah aplikasi yang mampu memilah dan memilih data yang besar, sehingga bisa diperoleh informasi yang berguna bagi penggunanya. Peneliti akan menjelaskan cara membangun aplikasi untuk mengelompokkan data barang berdasarkan kecenderungannya yang muncul bersamaan dalam suatu transaksi menggunakan algoritma apriori. Algoritma apriori termasuk jenis aturan asosiasi pada data 20 mining. Selain apriori, yang termasuk dalam golongan adalah metode Generalized Rule Induction dan Algoritma Hash Based. Aturan yang menyatakan asosiasi antara beberapa atribut sering disebut affinity analysis atau market basket analysis. Penerapan algoritma apriori dalam penelitian ini diharapkan akan menemukan pola berupa produk yang sering dibeli bersamaan. Pola tersebut bisa digunakan untuk menempatkan produk yang sering dibeli bersamaan dalam sebuah area yang saling berdekatan, merancang tampilan produk di katalog, merancang kupon diskon (untuk diberikan kepada pelanggan yang membeli produk tertentu), merancang penjualan paket, dan lain-lain(Kusrini, 2007). 2.3.2 Analisis Asosiasi Dengan Algoritma Apriori Analisis asosiasi atau association rule mining adalah teknik data mining untuk menemukan aturan asosiatif antara suatu kombinasi item. Contoh dari aturan asosiatif dari analisis pembelian di suatu pasar swalayan adalah mengetahui besarnya kemungkinan seorang pelanggan untuk membeli roti bersamaan dengan susu. Dengan pengetahuan tersebut, pemilik pasar swalayan bisa mengatur penempatan barangnya atau merancang kampanye pemasaran menggunakan kupon diskon untuk kombinasi barang tertentu (Kusrini, 2007). Analisis asosiasi menjadi terkenal karena aplikasinya untuk menganalisis isi keranjang belanjaan di pasar swalayan. Analisis asosiasi juga sering disebut dengan istilah market basket analysis. Analisis asosiasi dikenal juga sebagai salah satu teknik data mining yang menjadi dasar dari berbagai teknik data mining lainnya. Khususnya, salah satu tahap dari analisis asosiasi 21 yang disebut analisis pola frekuensi tinggi (frequent pattern mining) yang menarik perhatian banyak peneliti untuk menghasilkan algoritma yang efisien. Penting tidaknya suatu aturan asosiatif bisa diketahui menggunakan dua parameter, support (nilai penunjang) yaitu prosentase kombinasi item tersebut dalam database dan confidence (nilai kepastian) yaitu kuatnya hubungan antar item dalam aturan asosiasi. Aturan asosiasi biasanya dinyatakan dalam bentuk : (roti, mentega) (susu) (support = 40%, confidence = 50%) Artinya, 50% dari transaksi di database yang memuat item roti dan mentega juga memuat item susu. Sementara 40% dari seluruh transaksi yang ada di database memuat ketiga item tersebut. Bisa juga diartikan seorang konsumen yang membeli roti dan mentega memiliki kemungkinan sebesar 50% untuk juga membeli susu. Aturan tersebut cukup signifikan, karena mewakili 40% dari catatan transaksi selama ini. Analisis asosiasi didefinisikan sebagai suatu proses untuk menemukan semua aturan asosiasi yang memenuhi syarat minimum untuk support (minimum support) dan syarat minimum untuk confidence (minimum confidence). Metodologi dasar analisis asosiasi terbagi menjadi dua tahap. a.Analisis Pola Frekuensi Tinggi Tahapan ini mencari kombinasi item yang memenuhi syarat minimum dari nilai support dalam database. Nilai support sebuah item diperoleh dengan rumus berikut. Jumlah transaksi mengandung A Support (A) = . . . . . . . . . . . . . . . . . . . . .. (2.1) Total transaksi Sedangkan nilai support dari 2 item diperoleh dari rumus 2 berikut. Support (A, B) = P (A ∩ B) Support (A, B) = ∑ Transaksi mengandung A dan B ............. . . . . . . . . . . . . .... .(2.2) ∑ Transaksi 22 Sebagai contoh database dari transaksi belanja pasar swalayan seperti di tunjukan tabel 2.1 berikut: Tabel 2.1 Tabel transaksi Transaction 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Item Purchased Broccoli,green peppers,corn Asparagus,squash,corn Corn,tomatoes,beans,squash green peppers,corn, tomatoes,beans Beans,asparagus,broccoli Squash,asparagus,beans,tomatoes Tomatoes,corn Broccoli,tomatoes,green peppers Squash,asparagus,beans Beans,corn Green peppers,broccoli,beans,squash Asparagus,beans,squash Asparagus,beans,squash,corn Broccoli,green peppers,corn,tomatoes,beans Data dalam database transaksional tersebut di atas biasa direpresentasikan dalam bentuk seperti yang terlihat pada tabel 2.2 berikut ini. Tabel 2.2 Representasi data transaksi dalam data transaksional Transaction 1 1 1 2 2 2 3 3 3 4 4 4 4 : : : Item Purchased Broccoli Green peppers Corn Asparagus Squash Corn Corn Tomatoes corn Green peppers Corn Tomatoes beans : : : Jika dibuat dalam bentuk tabular, data transaksi akan terlihat seperti pada tabel 2.3 berikut. Tabel 2.3 Tabel format tabular data transaksi Transaction 1 Asparagus 0 Beans 0 Broccoli 1 Corn 1 Green Pappers 1 Squash 0 Tomatoes 0 23 2 3 4 transaction 6 7 8 9 10 11 12 13 14 Tabel 2.4 Lanjutan Tabel format tabular data transaksi 1 0 0 Asparagus 1 0 0 1 0 0 1 1 0 0 1 1 Beans 1 0 0 1 1 1 1 1 1 0 0 0 Broccoli 0 0 1 0 0 1 0 0 1 1 1 1 corn 0 1 0 0 1 0 0 1 1 0 0 1 Green Papers 0 0 1 0 0 1 0 0 1 1 1 0 Squash 1 0 0 1 0 1 1 1 0 0 1 1 Tomatoes 1 1 1 0 0 0 0 0 1 Misalnya, D adalah himpunan transaksi yang direpresentasikan dalam tabel 2.1, di mana masing-masing transaksi T dalam D merepresentasikan himpunan item yang berada dalam I. Misalnya, kita memiliki himpunan item A (misalnya beans dan squash) dan himpunan item lain B (misalnya asparagus). Kemudian, aturan asosiasi akan berbentuk : Jika A, maka B (A B) Di mana antecedent A dan consequent B merupakan subset dari I, sedangkan A dan B merupakan mutually exclusive. Definisi tersebut tidak berlaku untuk aturan trivial seperti : Jika beans dan squash maka beans Seorang analis mungkin hanya akan mengambil aturan yang memiliki support dan atau confidence yang tinggi. Aturan yang kuat adalah aturan-aturan yang melebihi kriteria support dan atau confidence minimum. Misalnya, seorang analis menginginkan aturan yang memiliki support lebih dari 20% dan confidence lebih dari 35%. Sebuah itemset adalah himpunan item yang ada dalam I, dan k itemset adalah itemset yang berisi k item. Misalnya, (squash, beans) adalah sebuah 2 itemset dan (broccoli, green peppers, corn) merupakan 3 itemset. Frequent itemset menunjukkan itemset yang memiliki 24 frekuensi kemunculan lebih dari nilai minimum yang telah ditentukan (Φ). Misalkan Φ = 4, maka semua itemset yang frekuensi kemunculannya lebih dari 4 kali disebut frequent. Himpunan dari frequent k itemset dilambangkan dengan Fk. Tabel 2.4 berikut menunjukkan calon 2 itemset dari data transaksi pada tabel 2.1. 2.4 Calon Itemset Tabel 2.5Tabel Lanjutan Tabel 2Calon 2 Itemset Combination Asparagus, beans Asparagus, broccoli Asparagus, corn count 5 1 2 Asparagus, green peppers Asparagus, squash Asparagus, tomatoes Beans, broccoli Beans, corn Beans, greren peppers Beans, squash Beans, tomatoes Broccoli, corn Broccoli, green peppers Broccoli, squash Broccoli, tomatoes Corn, green peppers Corn, squash Corn, tomatoes Green peppers, squash Green peppers, tomatoes Squash, tomatoes 0 5 1 3 5 3 6 4 2 4 1 2 3 3 4 1 3 2 Dari data tersebut di atas, diterapkan nilai Φ = 4 sehingga : F2 = {{asparagus, beans}, {asparagus, squash}, {beans, corn}, {beans, squash}, {beans, tomatoes}, {broccoli, green peppers}, {corn, tomatoes}} Kombinasi dari itemset dalam F2 bisa digabungkan menjadi calon 3 itemset. Itemsetitemset dari F2 yang bisa digabungkan adalah itemset-itemset yang memiliki kesamaan dalam k-1 item pertama. Calon 3 itemset yang bisa dibentuk dari F2 adalah seperti yang terlihat pada tabel 2.6 berikut. 25 Tabel 2.6 Calon 3 itemset Combination Count Asparagus, beans, squash Beans, corn, squash Beans, corn, tomatoes Beans, squash, tomatoes 4 2 3 2 Dengan demikian, F3 = {{asparagus, beans, squash}} karena hanya kombinasi itulah yang memiliki frekuensi kemunculan > = Φ. a. Pembentukan Aturan Asosiasi Setelah semua pola frekuensi tinggi ditemukan, barulah dicari aturan asosiasi yang memenuhi syarat minimum untuk confidence dengan menghitung confidence aturan asosiatif A B. Nilai confidence dari aturan A B diperoleh dari rumus berikut. ∑ Transaksi mengandung A dan B Confidence = P (B | A) = ∑ Transaksi mengandung A ..... .. . . . . . . . . . (2.3) ....... Dari F3 yang telah ditemukan, bisa dilihat besarnya nilai support dan confidence dari calon aturan asosiasi seperti tampak pada tabel 2.7 berikut. Rule Confidence Tabel 2.7 Calon Aturan Asosiasi dari F3 If buy asparagus, beans, then squash 4/5 80% If buy asparagus, squash, then beans If buy beans, squash, then asparagus 4/5 4/6 80% 66.7% 26 Misalnya, ditetapkan nilai confidence minimal adalah 80% sehingga aturan yang bisa terbentuk adalah aturan dengan 2 antecedent berikut. If buy asparagus and beans, then buy squash If buy asparagus and squash, then buy beans Sementara itu, calon aturan asosiasi dari F2 bisa dilihat dalam tabel 2.8 berikut. Tabel 2.8 calon Aturan Asosiasi dari F2 Rule If buy asparagus, then buy beans If buy beans, then buy asparagus If buy asparagus, then buy squash If buy squash, then buy asparagus If buy beans, then buy corn If buy corn, then buy beans If buy beans, then buy squash 5/6 5/10 5/6 5/7 5/10 5/8 6/10 Confidence 83.3% 50% 83.3% 71.4% 50% 62.5% 60% If buy squash, then buy beans If buy beans, then buy tomatoes If buy tomatoes, then buy beans If buy broccoli, then buy green peppers If buy green peppers, then buy broccoli If buy corn, then buy tomatoes If buy tomatoes, then buy corn 6/7 4/10 4/6 4/5 4/5 4/8 4/6 85.7% 40% 66.7% 80% 80% 50% 66.7% Sementara itu, aturan asosiasi final berurut berdasarkan support x. Confidence terbesar dapat dilihat dalam tabel 2.10 berikut. Tabel 2.10 Tabel Aturan Asosiasi Rule If buy squash, then buy beans If buy asparagus, then buy squash If buy asparagus, then buy beans If buy broccoli, then buy green peppers If buy green peppers, then buy broccoli If buy asparagus, beans, then squash 6/7 5/6 5/6 4/5 4/5 4/5 Confidence 85.7% 83.3% 83.3% 80% 80% 80% If buy asparagus, squash, then beans 4/5 80% 2.4 Data Flow Diagram Data Flow Diagram (DFD) adalah sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasi pada saat data bergerak dari input menjadi output 27 (Pressman,2002). DFD dapat digunakan untuk menyajikan sebuah sistem atau perangkat lunak pada setiap tingkat abstraksi. Notasi dasar yang digunakan dalam pembuatan DFD dapat dilihat pada table 2.11: Tabel 2.11 Tabel Notasi Dasar DFD Simbol Keterangan Digunakan untuk mempresentasikan sebuah entitas eksternal Digunakan untuk mempresentasikan suatu proses atau tranformasi yang diaplikasikan ke data (kontrol) dan mengubahnya dengan berbagai macam cara Digunakan untuk mempresentasikan suatu objek data,anak panah menunjukan arah aliran data Digunakan sebagai tempat penyimpanan data (storage) yang akan digunakan oleh satu atau lebih proses yang ada dalam sistem. DFD dapat dipartisi ke dalam tingkat-tingkat yang mempresentasikan aliran informasi yang bertambah dan fungsi ideal. DFD tingkat 0, yang disebut juga dengan model sistem fudamentasi atau model konteks,merepresentasikan seluruh elemen sistem sebagai sebuah bubble tunggal dengan data input dan output yang ditunjukkan oleh anak panah yang masuk dan keluar secara berurutan. Proses tambahan (bubble) dan jalur aliran informasi direpresentasikan pada saat DFD tingkat 0 dipartisi lebih detail. Setiap proses yang direpresentasikan pada DFD tingkat 1 merupakan subfungsi dari seluruh sistem yang digambarkan di dalam model konteks. 2.5 Basis data Basis data adalah suatu pengorganisasian sekumpulan data yang saling terkait sehingga memudahkan aktivitas untuk memperoleh informasi (Kadir,2002). Basis data dapat diasumsikan sebagai lemari arsip yang memiliki prinsip kerja dan tujuan yang sama. Prinsip 28 utamanya mengatur data atau arsip ,sedangkan tujuan utamanya adalah kemudahan,kecepatan dalam pengambilan kembali data atau arsip. Model data adalah kumpulan perangkat konseptual untuk menggambarkan data,hubungan data,semantik (makna) data dan batasan data (Fathansyah,2007). Dalam pembuatan sistem ini model data yang digunakan adalah Model Entity-Relationship ( Model E-R). Komponen utama pembentukan Model Entity-Relationship, yaitu entitas (entity) dan relasi (relation). Kardinalitas relasi menunjukan jumlah maksimum relasi yang terjadi antara himpunan entitas yang satu dengan hubungan entitas yang lain. Kardinalitas relasi yang terjadi antara himpunan entitas (misalnya A dan B ) dapat berupa ( Fathansyah,2007) : 1:1 (One to One) Satu entitas pada himpunan entitas A berhubungan dengan satu entitas pada himpunan entitas B,dan sebaliknya. 1:M ( One to Many) Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B,tetapi tidak sebaliknya. M:1 ( Many to One) Setiap entitas pada himpinan A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B,tetapi tidak sebaliknya. M:M (Many to Many) Setiap entitas pada himpunan entitas A berhubungan dengan banyak entitas pada himpunan entitas B,dan sebaliknya. 29 Model Entity-Relationship yang berisi komponen-komponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi dengan atribut yang mempresentasikan fakta dari ‘dunia nyata’ dapat digambatkan lebih sistematis dengan menggunakan Diagram EntityRelationship. 2.5.1 Konsep Data Base Dan Terminologi Untuk dapat memahami prinsip-prinsip perancangan database,yang perlu dipahami terlebih dahulu adalah konsep dasar dan terminologinya 2.5.1.1 Entitas dan Relationship Hal yang sangat mendasar dan harus dipahami adalah pemodelan entitas dan relationship. Entitas adalah barbagai hal dalam dunia nyata yang informasinya disimpan dalam database. Sebagai contoh,kita dapat menyimpan data pegawai dan pekerja untuk departemen tertentu. Dalam kasus ini, pegawai merupakan suatu entitas dan departemen juga merupakan suatu entitas. Relationship adalah hubungan antara entitas. Sebagai contoh, seorang pegawai berkerja untuk suatu departemen. Bekerja untuk adalah relationship antara entitas pegawai dan entitas departemen. Relationship terdiri dari 3 derajat berbeda, yaitu one-to-one,one-to-many (manyto-one),many-to-many. One-to-one menghubungkan secara tepat dua entitas dengan satu kunci (key). Misalnya, dalam satu perusahaan satu orang pegawai memiliki satu komputer kerja. One-to-many hubungan antara entitas dimana kunci pada satu table muncul berkali-kali dalam table lainnya. Misalnya,banyak pegawai bekerja untuk satu departemen. 30 Many-to-many merupakan yang sering menyebabkan permasalahan dalam prakteknya. Dalam hubungan many-to-many, kunci utama( primary key) dari table kedua dapat muncul beberapa kali pada table pertama. Misalnya, dalam suatu perusahaan banyak pegawai bekarja untuk banyak departemen. Untuk mengatasi permasalahan tersebut,dibutuhkan table antara. 2.6 Waterfall Metode ini dikenal pula dengan nama “ Classic life code” (Pressman,2002). Tahapan-tahapan dalam siklus air terjun(waterfall) adalah sebagai berikut : a. Rekayasa,tahap awal dalam pengumpulan kebutuhan sistem,menyangkut definisi masalah, perumusan masalah dan tujuan pembanguna sistem. b. Analisa,tahap ini difokuskan pada sistem atau perangkat lunak yang akan dibuat dengan tujuan untuk memahami spesifikasi sistem yang akan dibangun,unjuk kerja yang harus dipenuhi sistem,dan interface yang diperlukan. c. Desain adalah tahap perancangan sistem sesuai dengan kebutuhan menjadi suatu bentuk perpresentasi yang dapat dievaluasi kualitasnya sebelum implementasi dilakukan. d. Implementasi yaitu tahap penerjemah rancangan ke dalam bentuk kode pemprograman computer. e. Pengujian, tahap ini berfokus pada logika internal perangkat lunak, yang bertujuan menemukan dan menghilangkan kesalahan-kesalahan sehingga perangkat lunak dapat memberikan hasil sesuai dengan yang diharapkan. f. Pemeliharaan,tahap ini meliputi bagian-bagian koreksi kesalahan dan penyesuaian perangkat lunak terhadap perubahan lingkungan. 31 2.7 Microsoft Visual Basic Microsoft Visual Basic adalah software program untuk membuat program berbasis Windows.Visual basic memakai bahasa pemrograman BASIC (Beginners All-Purpose Symbolic Instruction Code) yang merupakan salah satu bahasa pemrograman tingkat tinggi yang sederhana dan mudah untuk dipelajari (Ronald,2010).Visual Basic merupakan salah satu bahasa pemrograman berorientasi objek yang mudah dipelajari.Selain menawarkan kemudahan ,visual basic juga cukup andal untuk digunakan dalam pembuatan berbagai aplikasi,terutama aplikasi database. Visual basic merupakan bahasa pemrograman event drive,dimana program akan menunggu sampai ada respon dari user/pemakai program aplikasi yang dapat berupa kejadian atau event,misalnya ketika user mengklik tombol atau menekan enter.Jika kita membuat aplikasi dengan visual basic ,maka kita akan mendapatkan file yang menyusun aplikasi tersebut, yaitu : 1. File Project (*.vbp) File ini merupakan kumpulan dari aplikasi yang kita buat.File project bisa berupa file*.frm,*.dsr atau file lainnya. 2. File Form (*.frm) File ini merupakan file yang berfungsi untuk menyimpan informasi tentang bentuk form maupun interface yang kita buat. Bagian-bagian dari Microsoft Visual basic sebagai berikut: 32 1. Form Merupakan media atau tempat untuk membuat antar muka aplikasi .Dalam sebuah form terdapat control box,max button,min button,close button caption. 2. Tool Box. Berisi objek-objek yang bisa di tambahkan ke form aplikasi yang kita buat. 3. Property Digunakan untuk mengatur property dari suatu objek yang kita tambahkan ke dalam form aplikasi yang kita buat.Bahkan form sendiri mempunyai property,seperti property name,caption dan sebagainya. 4. Navigator Berfungsi untuk mempermudah kita dalam melihat form atau melihat kode program dalam setiap form yang telah kita buat. 5. Kode Editor Merupakan tempat untuk mengetik kode program.Dalam Visual Basic terdapat fasilitas autolist yang berfungsi untuk mempermudah dalam mengetik kode 6. Form Layout Digunakan untuk mengatur posisi start up dari program yang kita buat.Kita bisa mengatur posisinya dengan melakukan drag ke posisi yang diinginkan 7. Tool Bar dan Menu Bar Menu Bar berisi menu-menu standar untuk melakukan editing.Sedangkan tool bar berisi ikon-ikon untuk mempercepat pemanggilan menu. 33 2.7.1 Microsoft SQL Server 2000 Microsoft SQL Server 2000 merupakan program aplikasi database untuk client/server.Program ini dapat beroperasi pada berbagai sistem operasi,mulai dari Windows 9x,windows 2000 dengan bermacam-macam versinya dan juga windows NT.Masing-masing sistem operasi itu untuk menjalankan aplikasi SQL server 2000 menyediakan dukungan yang bermacam-macam ,yang dapat disesuaikan dengan kebutuhan sistem yang akan dibangun.Selama beroperasi ,di mana SQL server ini mengolah database,SQL server didalam berhubungan dengan user akan dikelola oleh seseorang yang disebut DatabaseAdministrator.(Bambang,2005). SQL (Stuctured Query Languange) merupakan bahasa komputer standar yang ditetapkan oleh ANSI (American National Standart Institute) untuk mengakses dan memanipulasi sistem datebase.Sebuah database dapat berisi satu atau lebih tabel ,dimana setiap tabel memiliki nama tersendiri.Tabel-tabel tersebut memiliki minimal satu kolom/field atau lebih dan memiliki baris/record. 2.7.1.1 SQL Query Penggunaan Query pada pengolahan database merupakan tindakan yang biasa dilakukan sebagai rutinitas.Query itu sendiri merupakan perintah untuk mengakses database. Jenis Query yang umum dipakai adalah DDL dan MDL.Pada kedua jenis query ini terdapat 4 unsur utama,yaitu: 1.Menciptakan 2.Mengubah 3.Menghapus 34 4.Menampilkan 2.7.1.2 DDL (Data Definition Languange) DDL merupakan perintah SQL yang digunakan untuk mendefinisikan atau mendeklarasikan objek database,menciptakan objek database atau menghapus objek database.DDL juga dapat digunakan untuk membuat koneksi antar tabel database beserta batasannya dengan menentukan indeks sebagai kuncinya(Ema Utami,2005). DDL yang dipakai adalah: 1. CREATE Digunakan untuk menciptakan objek database yang baru atau menciptakan database itu sendiri. 2. DROP Digunakan untuk menghapus objek database. 3. ALTER Digunakan untuk mengubah atribut atau entitas dari objek suatu database 2.7.1.3 DML (Data Manipulation Languange) DML merupakan query yang digunakan untuk memanipulasi data,seperti untuk menampilkan data ,mengubah data,menghapus data,atau mengisi data. DML yang dipakai adalah: 1. SELECT Merupakan Query yang digunakan untuk mengambil data atau menampilkan data. 2. INSERT Digunakan untuk memasukan data kedalam tabel. 35 3. DELETE Digunakan untuk menghapus data. 4. UPDATE Digunakan untuk melakukan perubahan pada data. 2.8 Studi Pustaka Penelitian serupa pernah dilakukan oleh Dengsi Suharni Tamba, Program Studi Ilmu Komputer pada Universitas Gajah Mada (UGM) pada tahun 2009 melakukan penelitian dengan judul “Sistem Pendukung Keputusan Penentuan Trend Pembelian Produk menggunakan Algoritma Apriori dan Ukuran Interestingness”.Bahasa pemrograman yang dipakai pada pembuatan sistem ini yaitu PHP dan Mysql Pada Penelitian ini judulnya yaitu”Sistem Pendukung Keputusan Analisis Pola Pembelian Produk Dengan Metode Algoritma Apriori”.Bahasa Pemrograman yang dipakai berbeda dengan penelitian sebelumnya yaitu pada penelitian ini menggunakan Visual Basic dan SQL sebagai data base server. Persamaan pada kedua penelitian ini adalah pada penggunaan metode yang di pakai yaitu Algoritma Apriori.Sedangkan kelebihan dari penelitian ini dari penelitian sebelumnya adalah pada penelitian sebelumnya data yang di input dibatasi cukup 50 transaksi sedangkan penelitian ini data yang diinput tidak dibatasi. 36 BAB III ANALISIS DAN PERANCANGAN 3.1 Perancangan Sistem Tahapan perancangan sistem adalah tahapan mengidentifikasi kebutuhan fungsional dalam mempersiapkan rancang bangun implementasi yang bertujuan untuk merancang dan mendesain sistem dalam memenuhi kebutuhan pemakai sistem.Perancangan sistem terdiri dari pembuatan data flow diagram (DFD),perancangan data base,interface.Berikut ini telah ditentukan tahapan-tahapan atau langkah-langkah yang akan dilakukan dalam perancangan sistem: a. Data flow diagram (DFD) b. Rancangan basis data c. Rancangan user interface 3.1.1 Arsitektur Sistem Pendukung Keputusan Manajemen data bertujuan untuk mengelola data pada sistem pendukung keputusan. Data sistem pendukung keputusan ini dalam bentuk database yang berisi data yang relevan dengan situasi dan dikelola oleh software DBMS yang mempunyai fasilitas add, edit, delete dan search. Manajemen model merupakan paket software yang memuat model finansial, statistikal, ilmu manajemen atau model kuantitatif lainnya yang menyediakan kemampuan analisis sistem dan manajemen software yang tepat. Manajemen model yang digunakan dalam sistem adalah model algoritma apriori. Komunikasi (sistem interface) berfungsi untuk menghubungkan pengguna (user) dengan SPK dan memberi perintah SPK melalui sub sistem ini. Subsistem ini menyediakan user sistem inteface sebagai berikut : 37 Data Barang Dari swalayan Manajemen Data Model Algoritma apriori Rumus Algoritma apriori Sistem Interface Pemilik swalayan 3.1.2 Rancangan Proses karyawan Gambar 3.1 Arsitektur SPK Pada perancangan proses ini kita akan menentukan proses yang terjadi pada sistem yang akan ditangani. Adapun perancangan proses SPK pola pembelian produk yang dibahas ini dapat dilihat pada DFD level 0 Gambar 3.2 berikut : Data login Datalogin Validasi data login Validasi data login Data user Data user Data barang Data barang Data barang sistem pendukung keputusan Pada minimarket karyawan Data kategori Data penjualan Pemilik swalayan Data kategori Data kategori Data penjualan Data penjualan Data perhitungan Alternatif Gambar 3.2 DFD Level 0 Pada gambar DFD level 0 diatas, memperlihatkan bahwa sistem ini hanya digunakan oleh karyawan dan pemilik swalayan, sehingga karyawan dan pemilik swalayan terlebih 38 dahulu harus memasukkan data login masing-masing ke sistem. Dalam hal ini entitas karyawan bertugas untuk memasukkan data-data berupa data barang,data kategori dan data penjualan. Sedangkan pemilik swalayan memasukan data user dan data perhitungan serta mendapat output dari sistem yaitu data barang,data kategori,data penjualan dan juga alternatif dalam mengambil keputusan. Dari keseluruhan proses yang terjadi pada sistem ini, entitas karyawan dan pemilik swalayan akan memperoleh respon dari proses yang telah dilakukan. Proses yang terjadi pada sistem level 0 tersebut akan lebih jelas terlihat pada penjabaran DFD level 1 berikut : 1 Data Login Data Login Login Validasi data login Validasi data login Data barang Data barang 2 Data barang Data barang Layanan Karyawan karyawan Data barang Pemilik swalayan Data Barang Data kategori Data kategori Data kategori Data kategori Data kategori Data Kategori Data penjualan Data penjualan Data penjualan Data penjualan Data penjualan Detil penjualan Detil penjualan Detil penjualan Data Penjualan Data user Data user 3 Data user Data user Data user Perhitungan perhitungan Perhitungan Layanan Pemilik swalayan Data Perhitungan Alternatif Gambar 3.3 DFD Level 1 39 Pada DFD level 1 diatas, keseluruhan proses yang terjadi pada sistem ini meliputi proses layanan login , layanan karyawan dan layanan pemilik swalayan Adapun keterangan data tersebut sebagai berikut : 1. Login, entitas karyawan dan pemilik swalayan memasukkan dan mendapatkan respon berupa validasi login masing-masing. 2. Layanan karyawan, entitas karyawan dapat menginput data barang,data kategori dan data penjualan maka akan memperoleh respon dari sistem sesuai barang,data kategori,data penjualan yang telah dimasukkan, semua dengan data hasil proses disimpan dalam data store masing-masing kemudian akan memberikan reaksi pada proses sesuai dengan data barang,data penjualan dan data kategori yang telah dimasukkan tersebut,dari proses ini juga pemilik swalayan mendapat output data berupa data kategori data barang dan data penjualan. 3. Layanan pemilik swalayan, entitas pemilik swalayan dapat menginput data user dan perhitungan ke dalam sistem, data user dan perhitungan di proses dalam data store kemudian akan memberikan reaksi pada proses sesuai dengan data yang telah dimasukkan tersebut,dari proses ini pemilik swalayan mendapat alternatif tentang pola pembelian produk Proses yang terjadi pada dfd level 1 tersebut akan lebih jelas terlihat pada penjabaran DFD level 2 proses 3 yaitu layanan pemilik swalayan berikut : 40 3.1 P em ilik sw alayan D ata user O lah D ata user D ata user D ata user D ata barang D ata user 3.2 D ata perhitungan D ata perhitungan O lah D ata perhitungan D ata perhitungan D ata perhitungan 3.3 D ata Alternatif O lah D ata A lternatif D ata A lternatif D ata A lternatif D ata A lternatif Gambar 3.4 DFD Level 2 Proses 3 Pada DFD level 2 proses 3 diatas ,keseluruhan proses yang terjadi pada sistem ini hanya proses layanan pemilik swalayan.adapun keterangan data tersebut sebagai berikut: 1. Olah data user,entitas pemilik swalayan menginput data user seperti nama dan lain-lain 2. Olah data perhitungan ,entitas pemilik swalayan memasukan minimal transaksi,minimal confidence kedalam sistem setelah itu di proses menjadi keputusan yang di keluarkan ke olah data alternanif. Olah data alternatif,pada proses ini,hasil dari perhitungan di sampaikan ke olah data alternanif setelah itu diteruskan bersama laporan ke pemilik swalayan 41 3.2 Flowchart Flowchart proses Sistem Pendukung Keputusan analisis pola pembelian produk dengan metode algoritma apriori , dari data yang telah dimasukan hingga menjadi hasil berupa keseluruhan perhitungan dapat di lihat pada flowchart sebagai berikut: Mulai Minimum transaksi Minimum confidence Hitung jumlah transaksi dari setiap barang dari tabel detil penjualan.(simpan dalam T1) Buat pasangan 2 item set dari T1 dan hitung berapa jumlah transaksi dari setiap pasangan item(simpan dalam T2) Ket : T1= Tabel temporary 1 T2= Tabel temporary 2 T3= Tabel temporary 3 T4= Tabel temporary 4 T5= Tabel temporary 5 Ambil pasangan 2 item set yang jumlah transaksi melebihi min transaksi yang di input dan urut secara descending (simpan dalam T3) Hitung aturan asosiasi dan confidence pasangan 2 item set dari T3(simpan dalam T4) Hitung aturan asosiasi yang nilainya melebihi nilai minimum confidence T4(simpan dalam T5) Tampilkan hasil pasangan dari aturan asosiasi T5 Tidak Tidak Cetak alternatif Tidak Selesai Ya Cetak Alternatif Gambar 3.5 flowchart 42 Pada proses di atas dibuat 5 tabel temporary yaitu Temporary 1 (T1) yaitu fungsinya untuk hitung jumlah transaksi dari setiap barang dari tabel detil penjualan setelah itu dibuat tabel temporary 2(T2) yaitu fungsinya untuk buat pasangan 2 item-set dari T1 setelah itu ambil pasangan 2 item set yang jumlah transaksi melebihi minimum transaksi yang di input lalu simpan di temporary 3(T3) setelah itu buat tabel temporary 4(T4) untuk hitung aturan asosiasi dan confidence pasangan 2 item set dari T3 dan tabel temporary 5 (T5) dibuat untuk menghitung aturan asosiasi yang nilainya melebihi nilai minimum confidence.Setelah itu di tampilkan hasil pasangan dari aturan asosiasi. 3.3 Rancangan Basis Data Perancangan basis data merupakan suatu hal yang sangat penting dalam menentukan kualitas dari suatu informasi 3.5.1 ERD (Entity Relationship Diagram) ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan relasi antar tabel. Berikut ini merupakan ERD dari basis data dalam program : 43 Id_kategori kategori KATEGORI 1 Id_barang mempunyai N Id_kategori Nama_brg BARANG 1 harga Jumlah_stok Id_penjualan N sub_total Id_barang DETIL PENJUALAN N Jumlah_beli password user_name status USER Id_alternatif Id_prhitungan Min_transaksi Id_penjualan Id_prhitungan 1 ALTERNATIF 1 mempunyai 1 PERHITUNGAN PENJUALAN Pasangan_1 Jum_transaksi Min_confidence Confidence_akhir Pasangan_2 Gambar 3.5 Rancangan ERD tgl_penjualan total_pen jualan 44 3.3.2 Struktur tabel Perancangan struktur tabel desain basis data dijabarkan sebagai berikut: 1. Tabel Kategori Tabel kategori digunakan untuk menyimpan data kategori yang akan digunakan untuk proses perhitungan . Field-field dari tabel kategori dapat dilihat pada tabel 3.1 berikut ini : Tabel 3.1 Tabel kategori Field Id_kategori kategori Type Char Varchar Size 10 25 Constrain Primary key Not null keterangan Identitas kategori barang Kategori barang 2. Tabel Barang Tabel barang digunakan untuk menyimpan data barang yang akan digunakan untuk proses perhitungan . Field-field dari tabel barang dapat dilihat pada tabel 3.2 berikut ini : Field Id_barang Id_kategori Nama_brg harga Jumlah_stok Tabel 3.2 Tabel barang Type Char Char Varchar int int Size 10 10 25 Constrain Primary key Foreign key Not null Not null Not null keterangan Identitas barang Identitas kategori barang Nama barang Harga barang Jumlah stok 3. Tabel Penjualan Tabel penjualan digunakan untuk menyimpan data penjualan dan akan digunakan untuk proses perhitungan . Field-field dari tabel penjualan dapat dilihat pada tabel 3.3 berikut ini : Tabel 3.3 Tabel penjualan Field Id_penjualan int Type tgl_penjualan Total_penjualan Date time int Size 10 Constrain Primary key,identity(1,1) Not null Not null keterangan Nomor transaksi penjualan Tanggal penjualan Total penjualan 45 4. Tabel detil penjualan Tabel detil_penjualan digunakan untuk menyimpan data penjualan lebih detil yang akan digunakan untuk proses perhitungan . Field-field dari tabel detil_penjualan dapat dilihat pada tabel 3.4 berikut ini : Tabel 3.4 Tabel detil_penjualan Field Id_penjualan Id_barang Sub_total Jumlah _beli Type Size 10 10 int char int int Constrain Foreign key Foreign key Not null Not null keterangan Nomor transaksi Identitas barang Sub total Jumlah beli 5. Tabel Perhitungan Tabel perhitungan digunakan untuk menyimpan data perhitungan yang akan digunakan untuk proses perhitungan . Field-field dari tabel perhitungan dapat dilihat pada tabel 3.5 berikut ini : Tabel 3.5 Tabel Perhitungan Field Id_prhitungan int Type Size 10 Min_transaksi Min_confidence Jum_transaksi int Double int 15 15 15 Constrain Primary key,identity (100,1) Not null Not null Not null keterangan Identitas perhitungan Minimal transaksi Minimal confidence Jumlah transaksi 6. Tabel Alternatif Tabel alternatif digunakan untuk menyimpan data hasil perhitungan . Field-field dari tabel keputusan dapat dilihat pada tabel 3.6 berikut ini : Tabel 3.6 Tabel Alternatif Field Id_alternatif Type int Id_perhitungan Pasangan_1 Pasangan_2 Confidence_akhir int char char double Size 10 15 15 Constrain Primary key,identity (1000,1) Foreign key Not null Not null Not null keterangan Identitas alternatif Identitas perhitungan Pasangan 1 Pasangan2 Confidnce akhir 46 7.Tabel User Tabel user digunakan untuk menyimpan data user yang akan login baik itu sebagai pemilik swalayan maupun karyawan. Field-field dari tabel user dapat dilihat pada tabel 3.7 Tabel 3.7 Tabel user Field User_name password status Type Char Varchar Var Size 10 10 20 Constrain Primary key Not null Notnull, check(‘karyawan’,manager) keterangan Nama user passoword Status login 3.3.3 Relasi Antar Tabel Berikut ini merupakan penjelasan tentang relasi antar tabel SPK Analisis Pola Pembelian Produk Dengan Metode Algoritma Apriori : Relasi antar tabel kategori _barang Detil penjualan Id_kategori* kategori id_barang * id_kategori** nama_brg harga jumlah id_penjualan** id_barang ** sub_total jumlah user user_name* password status Alternatif id_keputusan* id_prhitungan** pasangan_1 pasangan_2 confidence_akhir Keterangan : * Primary Key ** Foreign Key perhitungan id_prhitungan* min_transaksi min_confidence jum_transaksi Gambar 3. 6 Relasi Antar Tabel penjualan id_penjualan* tgl_penjualan total_penjualan 47 3.4 Rancangan Struktur Menu Rancangan struktur pada sistem pendukung keputusan ini sebagai berikut : LOGIN Pemilik swalayan Perhitungan/ DSS Alternatif Karyawan Data cetak logout Data Logout kategori kategori penjualan penjualan barang barang Data User Data User Gambar 3. 7 Relasi Antar Tabel 3.5 Rancangan Antar muka Rancangan antarmuka adalah perantara komunikasi antara sistem dengan pengguna.Untuk mempermudah pengguna melihat fasilitas yang disediakan.Adapun rancangan antarmuka pada sistem ini antara lain meliputi : 3.5.1 Rancangan Halaman Login Tampilan utama ini digunakan untuk pemilik swalayan ataupun karyawan yang ingin login dengan mengisi user name dan password dengan benar terlebih dahulu. Tampilan dapat dilihat pada gambar 3.8 berikut : 48 SISTEM PENDUKUNG KEPUTUSAN ANALISIS POLA PEMBELIAN PRODUK DENGAN METODE ALGORITMA APRIORI LOGIN Username Password Login Cancel Gambar 3.8 Rancangan Halaman Login 3.5.2. Rancangan Halaman Home Karyawan Tampilan ini dibuat untuk memberikan layanan kepada karyawan saat membuka komunikasi dengan sistem yang dibuat untuk memilih menu yang disajikan.pada halaman ini karyawan tidak bisa mengakses yang di arsir yaitu dss dan cetak .Tampilan ini dapat dilihat pada gambar 3.9 berikut : Gambar 3.9 Rancangan Halaman Home Karyawan 49 3.5.3 Rancangan Halaman home pemilik swalayan Pada tampilan ini sistem memberikan layanan kepada pemilik swalayan saat membuka komunikasi dengan sistem yang dibuat untuk memilih menu yang disajikan. Adapun tampilannya dapat dilihat pada gambar 3.10 sebagai berikut : Gambar 3.10 Rancangan Halaman Menu Utama pemilik swalayan 3.5.4 Rancangan Halaman Data Barang Pada tampilan ini sistem memberikan layanan kepada pengguna yaitu pemilik karyawan untuk menginput,menghapus,mengubah dan menyimpan data barang selain itu pemilik swalayan juga dapat melihat halaman data barang. Adapun tampilannya dapat dilihat pada gambar 3.11 sebagai berikut: 50 Gambar 3.11 Rancangan Halaman Data barang Keterangan : Id_barang : Inputkan kode barang Id_kategori : Inputkan kode kategori Nama barang : Inputkan nama barang Jumlah : Inputkan jumlah barang Simpan : menyimpan hasil inputan 51 Hapus : menghapus data Tambah : tambah barang 3.5.5 Rancangan Halaman Data Penjualan Pada tampilan ini sistem memberikan layanan kepada pengguna, dalam hal ini pemilik swalayan dan karyawan untuk mengolah data penjualan. Adapun tampilannya dapat dilihat pada gambar 3.12 sebagai berikut Gambar 3.12 Rancangan Halaman Data penjualan Keterangan : Id penjualan : kode penjualan total penjualan :total penjualan tgl penjualan : tanggal penjualan uang yang di bayar :konsumen bayar Nama barang : nama barang yang di jual kembali :uang kembali 52 Harga : harga barang simpan : simpan data Jumlah : jumlah barang yang di beli batal Sub total : harga di kali jumlah barang : batalkan data 3.5.6 Rancangan Halaman Data Kategori Pada tampilan ini sistem memberikan layanan kepada pengguna yaitu pemilik karyawan untuk mengolah data kategori selain itu pemilik swalayan juga dapat melihat data kategori. Adapun tampilannya dapat dilihat pada gambar 3.13 sebagai berikut: Gambar 3.13 Rancangan Halaman Data kategori Keterangan : Id kategori : kode kategori ubah : mengubah data kategori 53 Kategori : nama kategori barang Simpan : untuk menyimpan data yang diolah Hapus : menghapus data kategori Tambah : menambah data kategori batal : batalkan yang diolah 3.5.7 Rancangan Halaman Perhitungan (DSS) Pada tampilan ini sistem memberikan layanan kepada pengguna, dalam hal ini pemilik swalayan yang berhak melakukan perhitungan untuk memperoleh suatu keputusan. Adapun tampilannya dapat dilihat pada gambar 3.14 sebagai berikut : Gambar 3.14 Rancangan Halaman perhitungan (DSS) Keterangan : Minimum transaksi : minimum jumlah muncul barang pada jumlah transaksi Minimum confidence : minimum nilai confidence yang di masukan pemilik swalayan 54 Jumlah transaksi : total jumlah transaksi yang akan di proses Proses : perhitungan Cetak keputusan : mencetak hasil dari proses Lihat sketsa : melihat sketsa dari hasil proses Tutup : menutup proses perhitungan 3.5.8 Rancangan Halaman Data user Pada tampilan ini sistem memberikan layanan kepada pengguna, dalam hal ini pemilik swalayan dapat memasukan atau menghapus data user.Adapun tampilannya dapat dilihat pada gambar 3.15 sebagai berikut : Gambar 3.9 Rancangan Halaman Data User 55 3.5.9 Rancangan Halaman Alternatif Pada tampilan ini sistem memberikan layanan kepada pengguna, dalam hal ini pemilik swalayan dapat melihat hasil keputusan.Adapun tampilannya dapat dilihat pada gambar 3.16 sebagai berikut : DATA ALTERNATIF Alternatif Tutup - XXXXXXXXXXXXXXXXXXXXXXXXXXXX - XXXXXXXXXXXXXXXXXXXXXXXXXXXX - XXXXXXXXXXXXXXXXXXXXXXXXXXXX Selesai - XXXXXXXXXXXXXXXXXXXXXXXXXXXX - XXXXXXXXXXXXXXXXXXXXXXXXXXXX Gambar 3.16 Rancangan Halaman data alternatif 56 BAB IV IMPLEMENTASI 4.1 Spesifikasi perangkat keras ( hardware ) Perangkat keras yang dibutuhkan dalam pembuatan aplikasi ini adalah : 1. Intel(R) core i3(TM) Processor M 350 @2.27 GHZ 2. Memory 2 GB 3. Hardisk 250 GB 4. Mouse. 4.2 Spesifikasi perangkat lunak ( Software ) Perangkat lunak yang dibutuhkan dalam pembuatan aplikasi ini adalah : 1. Microsoft Visual Basic 6.0 2. Pengolahan basis data menggunakan SQL server 2000 4.3 Implementasi Aplikasi Program Pada implementasi program ini terbagi menjadi dua bagian yaitu halaman untuk pemilik swalayan dan halaman untuk karyawan. Implementasi program merupakan tindak lanjut dari desain yang telah direncanakan sebelumnya. Pada implementasi ini akan dibahas listing program sampai dengan interface nya yang telah dibuat. 4.3.1 Halaman Login Halaman ini digunakan untuk keamanan data. User yang akan menggunakan sistem harus login terlebih dahulu dengan mengisi username dan password sesuai ketentuan dari sistem. Penginputan data dari form login harus sesuai. Apabila tidak sesuai maka sistem tidak 57 akan merespon dan tidak dapat dilanjutkan kemenu berikut. Form login dapat dilihat pada gambar 4.1 berikut ini : Gambar 4.1 Login Admin Berikut ini adalah potongan program form_login: Option Explicit Dim rs, rs2, rs3 As New ADODB.Recordset Private Sub Form_Load() konek End Sub Private Sub Command1_Click() Unload Me End Sub Private Sub Command4_Click() If Text1.Text = "" Then MsgBox "username kosong", vbInformation, "Informasi" Text1.SetFocus Exit Sub ElseIf Text2.Text = "" Then MsgBox "Password Kosong", vbInformation, "Informasi" Text2.SetFocus Exit Sub Else Set rs = conn.Execute("select count(*) from [user] where username=" _ & "'" & Text1.Text & "'") If rs(0) = 0 Then MsgBox "Maaf username anda salah atau tidak terdaftar", vbInformation, "Information" Text1.Text = "" Text1.SetFocus Exit Sub End If Set rs2 = conn.Execute("select count(*) from [user] where password=" _ & "'" & Text2.Text & "'") If rs2(0) = 0 Then MsgBox "Password yang anda masukan salah", vbInformation, "Information" Text2.Text = "" Text2.SetFocus Exit Sub Modul 4.1 halaman Login End If Set rs3 = conn.Execute("select count(*) from [user] where username=" _ & "'" & Text1.Text & "' and password='" & Text2.Text & "'") 58 End If Set rs3 = conn.Execute("select count(*) from [user] where username=" _ & "'" & Text1.Text & "' and password='" & Text2.Text & "'") If rs3(0) = 0 Then MsgBox "Username dan password tidak ada", vbInformation, "Information" Exit Sub Else ' Set rs4 = conn.Execute("select status from [user] where username='" & Text1.Text & "'") If Not rs.EOF Then status = rs4!status user = Text1.Text ' MsgBox status If status = "Karyawan" Then frmMenu.mnCetak.Enabled = False frmMenu.mnDss.Enabled = False frmMenu.mnPengguna.Enabled = False End If frmMenu.Show Unload Me End If End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then ModulCommand4_Click 4.2 Lanjutan halaman Login End Sub 4.3.2 Halaman Utama (Menu) Halaman ini merupakan cakupan dari seluruh form yang ada pada sistem,antara lain menu DSS, menu cetak,menu data (data kategori,data barang,data penjualan,data pengguna) untuk user yang login sebagai pemilik swalayan.Adapun tampilannya dapat dilihat pada gambar berikut ini : 59 Gambar 4.2 Halaman Menu Utama Pemilik Swalayan Sedangkan untuk user yang login sebagai karyawan tidak bisa mengakses menu DSS dan cetak.Adapun tampilan sebagai berikut : Gambar 4.3 Halaman Menu Utama Karyawan 60 Berikut ini adalah potongan program form menu: Private Sub Command1_Click() Command5.Visible True Gambar =4.3 Halaman Menu Utama Karyawan 'Command12.Visible = True Command14.Visible = True Command6.Visible = False Command13.Visible = False Command7.Visible = False Command8.Visible = False Command9.Visible = False Command10.Visible = False Command11.Visible = False End Sub Private Sub Command10_Click() DRPerhitungan.Show End Sub Private Sub Command11_Click() DRKeputusan.Show End Sub Private Sub Command14_Click() End End Sub Private Sub Command2_Click() Command6.Visible = True Command13.Visible = True Command5.Visible = False 'Command12.Visible = False Command14.Visible = False Command8.Visible = False Command9.Visible = False Command10.Visible = False Command11.Visible = False Command7.Visible = False End Sub Private Sub Command3_Click() Command5.Visible = False 'Command12.Visible = False Command6.Visible = False Command13.Visible = False Command7.Visible = True Command8.Visible = False Modul 4.3 halaman Menu utama 61 Command9.Visible = False Command10.Visible = False Command11.Visible = False Command14.Visible = False End Sub Private Sub Command4_Click() Command5.Visible = False 'Command12.Visible = False Command6.Visible = False Command13.Visible = False Command7.Visible = False Command8.Visible = True Command9.Visible = True Command10.Visible = True Command11.Visible = True Command14.Visible = False End Sub Private Sub Command5_Click() frmUser.Show End Sub Private Sub Command8_Click() DRBarang.Show End Sub Private Sub Command9_Click() DRPenjualan.Show End Sub Private Sub mnCetak_Click() frmKeputusan.Show Me.Hide End Sub Private Sub mnDBarang_Click() frmBarang.Show Me.Hide End Sub Private Sub mnDKategori_Click() frmKategori.Show Me.Hide End Sub Private Sub mnDPenjualan_Click() frmPenjualan.Show Me.Hide End Sub Private Sub mnDss_Click() frmPerhitungan.Show Me.Hide End Sub Private Sub mnLogout_Click() frmLogin.Show Unload Me End Sub Private Sub mnPengguna_Click() frmUser.Show Modul 4.4 Lanjutan halaman Menu Utama End Sub 62 4.3.3 Halaman Data Kategori Halaman ini digunakan untuk menambahkan data Kategori. Adapun tampilannya dapat dilihat pada gambar 4.4 berikut ini Gambar 4.4 Halaman Data Kategori Berikut ini adalah potongan program form Kategori: Option Explicit Dim rsKategori As New ADODB.Recordset Dim op As String Sub kosongkan() Text1.Text = "" Text2.Text = "" End Sub Sub tampilkan() On Error Resume Next Call kosongkan If rsKategori.RecordCount <= 0 Then Exit Sub With rsKategori Text1.Text = Trim(.Fields("ID Kategori")) Modul 4.5 Halaman kategori 63 Text2.Text = Trim(.Fields("Kategori")) End With End Sub Private Sub Command3_Click() Dim konfirm As VbMsgBoxResult konfirm = MsgBox("Anda yakin mau menghapus Produk dengan id_kategori='" & _ Text1.Text & "'", vbExclamation + vbOKCancel, "Konfirmasi") On Error GoTo out If konfirm = vbOK Then conn.Execute "delete from kategori where id_kategori='" & Trim(Text1.Text) & "'" rsKategori.Requery MsgBox "Data berhasil dihapus", vbInformation, "Information" DataGrid1.Refresh End If Exit Sub out: MsgBox "Terjadi Error" + vbCr + Err.Description, vbCritical, "Error" End Sub Private Sub Command5_Click() Unload Me frmMenu.Show End Sub Private Sub Command4_Click() Dim query As String If Text1.Text = "" Then MsgBox "ID Kategori tidak boleh kosong", vbInformation, "Warning" Exit Sub ElseIf Text2.Text = "" Then MsgBox " Kategori tidak boleh kosong", vbInformation, "Warning" Exit Sub End If If op = "BARU" Then query = "insert into kategori values('" & Text1.Text & "'," _ & "'" & Text2.Text & "') " ElseIf op = "UBAH" Then query = "update kategori set kategori='" & Text2.Text & "' where id_kategori='" & Text1.Text & "' " MsgBox "Data berhasil dirubah", vbInformation, "Information" End If On Error GoTo out conn.Execute query rsKategori.Requery DataGrid1.Refresh Call Batal op = "" ' otoKode Exit Sub out: MsgBox "Terjadi Error" + vbCr + Err.Description, vbCritical, "ERROR" End Sub Modul 4.6 Lanjutan Halaman kategori Private Sub Command2_Click() 64 If Command2.Caption = "Batal" Then Batal Command2.Caption = "Ubah" Else Call ubahTombolAktif(True) Call ubahAktifTextBox(True) Text1.Locked = True Text2.SetFocus op = "UBAH" Command2.Caption = "Batal" Command2.Enabled = True End If End Sub Private Sub Form_Load() konek ' On Error GoTo out op = "" Set rsKategori = conn.Execute("SELECT id_kategori as [ID Kategori],kategori " _ & " as [Kategori] FROM kategori") Set DataGrid1.DataSource = rsKategori Call tampilkan Exit Sub out: MsgBox "Terjadi kesalahan" + vbCr + Err.Description, vbCritical, "Error" End Sub Sub ubahTombolAktif(status As Boolean) Command2.Caption = "Ubah" Command1.Caption = "Tambah" Command1.Enabled = Not (status) Command2.Enabled = Not (status) Command4.Enabled = (status) Command3.Enabled = Not (status) End Sub Sub ubahAktifTextBox(status As Boolean) Text1.Locked = Not (status) Text2.Locked = Not (status) End Sub Private Sub Command1_Click() If Command1.Caption = "Batal" Then Batal Command1.Caption = "Tambah" Else Call ubahTombolAktif(True) Call kosongkan Call ubahAktifTextBox(True) Text2.SetFocus op = "BARU" Command1.Caption = "Batal" Command1.Enabled = True otoKode End If End Sub Modul 4.7 Lanjutan Halaman kategori 65 Sub otoKode() Dim kode As String sql = "select max(right(id_kategori,4)) as maxkode Set rs2 = conn.Execute(sql) If IsNull(rs2("maxkode")) Then kode = "K0001" Else kode = rs2("maxkode") kode = "K" & Right("0000" & (kode + 1), 4) End If Text1.Text = kode Text1.Enabled = False End Sub from kategori" Sub Batal() op = "" Call tampilkan Call ubahTombolAktif(False) Call ubahAktifTextBox(False) End Sub Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If rsKategori.BOF Or rsKategori.EOF Then MsgBox "Sudah di Akhir atau Awal data" Else tampilkan End If End Sub Modul 4.8 Lanjutan Halaman Kategori 4.3.4 Halaman Data Barang Halaman ini berisi data-data barang.Halaman ini juga dapat digunakan untuk menambah,mengedit, dan menghapus data barang. Adapun tampilannya dapat dilihat pada gambar 4.5 berikut ini : Batal 66 Gambar 4.5 Halaman Data Barang Berikut ini adalah potongan program form Barang: Option Explicit Dim rsBarang As New ADODB.Recordset Dim op, id_kategori As String Sub kosongkan() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Combo1.Text = "Kategori" End Sub Sub tampilkan() Modul 4.9 Halaman Data Barang 67 On Error Resume Next Call kosongkan If rsBarang.RecordCount <= 0 Then Exit Sub With rsBarang Text1.Text = Trim(.Fields("ID barang")) Text2.Text = Trim(.Fields("nama barang")) Text3.Text = Trim(.Fields("harga")) Text4.Text = Trim(.Fields("jumlah")) Combo1.Text = Trim(.Fields("kategori")) End With End Sub Private Sub Combo1_Click() Set rs4 = conn.Execute("select id_kategori from kategori where kategori='" & Trim(Combo1.Text) & "'") id_kategori = rs4!id_kategori End Sub Private Sub Command3_Click() Dim konfirm As VbMsgBoxResult konfirm = MsgBox("Anda yakin mau menghapus Barang dengan id_barang='" & _ Text1.Text & "'", vbExclamation + vbOKCancel, "Konfirmasi") On Error GoTo out If konfirm = vbOK Then conn.Execute "delete from barang where id_barang=" & Trim(Text1.Text) & "" rsBarang.Requery MsgBox "Data berhasil dihapus", vbInformation, "Information" DataBarang.Refresh End If Exit Sub out: MsgBox "Terjadi Error" + vbCr + Err.Description, vbCritical, "Error" End Sub Private Sub Command5_Click() frmMenu.Show Unload Me End Sub Private Sub Command4_Click() Dim query As String If Text1.Text = "" Then MsgBox "ID Barang tidak boleh kosong", vbInformation, "Warning" Exit Sub ElseIf Text2.Text = "" Then MsgBox "Nama Barang tidak boleh kosong", vbInformation, "Warning" Exit Sub ElseIf Text3.Text = "" Then MsgBox "Harga tidak boleh kosong", vbInformation, "Warning" Modul 4.10 Lanjutan Halaman Data Barang Exit Sub ElseIf Text4.Text = "" Then MsgBox "Jumlah tidak boleh kosong", vbInformation, "Warning" Exit Sub 68 End If If op = "BARU" Then query = "insert into barang values(" & Text1.Text & "," _ & "'" & Text2.Text & "'," & Text3.Text & " " _ & "," & Text4.Text & ",'" & id_kategori & "') " ElseIf op = "UBAH" Then query = "update barang set nama_brg='" & Text2.Text & "'," _ & " harga=" & Text3.Text & ",jumlah=" & Text4.Text & ",id_kategori='" & id_kategori & "'" _ & " where id_barang=" & Text1.Text & " " MsgBox "Data berhasil dirubah", vbInformation, "Information" End If On Error GoTo out conn.Execute query rsBarang.Requery DataBarang.Refresh Call Batal op = "" Exit Sub out: MsgBox "Terjadi Error" + vbCr + Err.Description, vbCritical, "ERROR" End Sub Private Sub Command2_Click() If Command2.Caption = "Batal" Then Batal Command2.Caption = "Ubah" Else Call ubahTombolAktif(True) Call ubahAktifTextBox(True) Text1.Locked = True Text2.SetFocus op = "UBAH" Command2.Caption = "Batal" Command2.Enabled = True End If End Sub Private Sub Form_Load() konek ' On Error GoTo out op = "" Set rsBarang = conn.Execute("SELECT id_barang as [ID Barang],nama_brg " _ & " as [Nama Barang],Harga ,Jumlah,Kategori FROM barang b,kategori k where k.id_kategori=b.id_kategori") Set DataBarang.DataSource = rsBarang Call tampilkan Set rs3 = conn.Execute("select kategori from kategori") ' Combo1.Clear ' Combo1.Text = "Kategori" Do While Not rs3.EOF Modul 4.11 Lanjutan Halaman Data Barang 69 Combo1.AddItem rs3!kategori rs3.MoveNext Loop Exit Sub out: MsgBox "Terjadi kesalahan" + vbCr + Err.Description, vbCritical, "Error" End Sub Sub ubahTombolAktif(status As Boolean) Command2.Caption = "Ubah" Command1.Caption = "Tambah" Command1.Enabled = Not (status) Command2.Enabled = Not (status) Command4.Enabled = (status) Command3.Enabled = Not (status) End Sub Sub ubahAktifTextBox(status As Boolean) Text1.Locked = Not (status) Text2.Locked = Not (status) Text3.Locked = Not (status) Text4.Locked = Not (status) End Sub Private Sub Command1_Click() If Command1.Caption = "Batal" Then Batal Command1.Caption = "Tambah" Else Call ubahTombolAktif(True) Call kosongkan Call ubahAktifTextBox(True) Text1.SetFocus op = "BARU" Command1.Caption = "Batal" Command1.Enabled = True otoKode End If End Sub Sub otoKode() Dim kode As String sql = "select max(id_barang) as maxkode from barang" Set rs2 = conn.Execute(sql) If IsNull(rs2("maxkode")) Then Else kode = rs2("maxkode") kode = kode + 1 End If Text1.Text = kode Text1.Enabled = False End Sub Sub Batal() op = "" Call tampilkan Modul 4.12 Lanjutan Halaman Data Barang 70 Call ubahTombolAktif(False) Call ubahAktifTextBox(False) End Sub Private Sub DataBarang_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If rsBarang.BOF Or rsBarang.EOF Then MsgBox "Sudah di Akhir atau Awal data" Else tampilkan End Sub Modul 4.13 Lanjutan Halaman Data Barang 4.3.4 Halaman Data Penjualan Halaman ini berisi data penjualan yang akan digunakan untuk proses perhitungan pada Sistem Pendukung Keputusan ini, Adapun tampilannya dapat dilihat pada gambar 4.6 berikut Gambar 4.6 Halaman Data Penjualan 71 Berikut ini adalah potongan program form Data Penjualan: Option Explicit Dim rs As New ADODB.Recordset Dim op As String Private Sub Combo1_Click() Set rs = conn.Execute("select * from barang where id_barang='" & Combo1.Text & "'") If rs.RecordCount <= 0 Then Exit Sub Label3.Caption = rs(1) Text7.Text = rs("harga") End Sub Private Sub Command1_Click() jawab = MsgBox("Yakin Mau Menghapus Data dengan kode '" & Text6.Text & "'? " & vbCrLf & "", vbYesNo + vbQuestion, "Confirmation") If jawab = 6 Then ListView1.ListItems.Remove (ListView1.SelectedItem.Index) totalBayar Command1.Enabled = False End If End Sub Private Sub Command4_Click() If op = "" Then otoKode Combo1.Locked = False Text4.Locked = False Text7.Locked = False op = "Simpan" Command4.Caption = "Simpan" ElseIf op = "Simpan" Then On Error GoTo out If Text1.Text = "" Then MsgBox "Jumlah bayar belum diisi", vbInformation, "Informasi" Text1.SetFocus Exit Sub End If sql = "INSERT INTO transaksi VALUES(" & Text3.Text & ",'" & Format(Text2.Text, "mm/dd/yyyy") & "'," _ & " " & Val(Text5.Text) & ") " conn.Execute (sql) For i = 1 To ListView1.ListItems.Count With ListView1.ListItems.Item(i) On Error GoTo out sql = "INSERT INTO detail_transaksi VALUES(" & .Text & "" _ & ", " & Text3.Text & "," & .SubItems(4) & "," & .SubItems(3) & ")" conn.Execute (sql) End With Next MsgBox "Transaksi telah tersimpan", vbInformation, "Informasi" ListView1.ListItems.Clear Command4.Caption = "Transaksi Baru" op = "" Modul 4.14 Halaman Penjualan End If Exit Sub 72 out: MsgBox "Error" + vbCr + Err.Description, vbCritical, "ERROR" 'End If End Sub Sub otoKode() Dim kode As Integer sql = "select max(kd_transaksi) Set rs = conn.Execute(sql) If IsNull(rs("maxkode")) Then kode = "1" Else kode = rs("maxkode") + 1 End If Text3.Text = kode End Sub as maxkode from transaksi" Private Sub Command5_Click() Unload Me frmMenu.Show End Sub Private Sub Form_Load() konek op = "" 'Text1.Text = user Text2.Text = Format(Now, "dd/mm/yyyy") Set rs = conn.Execute("select * from barang") If rs.RecordCount <= 0 Then Exit Sub Combo1.Clear Combo1.Text = "Pilih barang" Do While Not rs.EOF Combo1.AddItem rs(0) rs.MoveNext Loop End Sub Private Sub ListView1_Click() Command1.Enabled = True End Sub Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) Dim SelectedRow As Long If rs.EOF And rs.BOF Then MsgBox "Data kosong!", vbInformation, "Informasi" Else SelectedRow = Item.Index Text6.Text = ListView1.ListItems(SelectedRow).Text End If End Sub Modul 4.15 Lanjutan Halaman Penjualan 73 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text6.Text = Val(Text1.Text) - Val(Text5.Text) Command4.SetFocus End If End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then 'On Error GoTo out sql = "Select * from barang where id_barang=" & Combo1.Text & "" Set rs = conn.Execute(sql) ' ListView1.ListItems.Clear Do While Not rs.EOF With ListView1.ListItems.Add .Text = rs(0) For i = 1 To rs.Fields.Count - 1 '.SubItems(i) = rs(i) .SubItems(1) = rs(1) .SubItems(2) = rs(2) .SubItems(3) = Text4.Text ' .SubItems(4) = Val(Text7.Text) / 100 .SubItems(4) = Val(Text4.Text) * rs(2) ' (Val(Text4.Text) * rs(2) * Val(Text7.Text) / 100) Next End With rs.MoveNext Loop totalBayar Combo1.Text = "Pilih Barang" Text4.Text = "" Text6.Enabled = True Text6.Locked = False Combo1.SetFocus Exit Sub out: MsgBox "Error" + vbCr + Err.Description, vbCritical, "ERROR" En d If End Sub Sub totalBayar() On Error GoTo out Dim total As Long total = 0 For i = 1 To ListView1.ListItems.Count total = total + Val(ListView1.ListItems(i).SubItems(4)) Next i Text5.Text = total 'Format(CCur("0" & total), "#,##0") Exit Sub out: MsgBox "Error" + vbCr + Err.Description, vbCritical, "ERROR" End Sub Modul 4.16 Lanjutan Halaman Penjualan 74 4.3.5 Halaman Data User Halaman ini hanya bisa diakses oleh pemilik swalayan.Untuk memasukan data-data user yang digunakan pada saat login.Adapun tampilannya dapat dilihat pada gambar 4.7 berikut: Gambar 4.7 Halaman Data User Berikut ini adalah potongan program form Data Penjualan: Option Explicit Dim rs As New ADODB.Recordset Dim op As String Sub kosongkan() Text1.Text = "" Text2.Text = "" Combo1.Text = "Status User" End Sub Sub tampilkan() Call kosongkan If rs.RecordCount <= 0 Then Exit Sub Modul 4.17 Halaman Data User 75 With rs Text1.Text = Trim(.Fields("username")) Text2.Text = Trim(.Fields("password")) Combo1.Text = Trim(.Fields("status")) End With End Sub Private Sub Command3_Click() Dim konfirm As VbMsgBoxResult konfirm = MsgBox("Anda yakin mau menghapus Produk dengan username='" & _ Text1.Text & "'", vbExclamation + vbOKCancel, "Konfirmasi") On Error GoTo out If konfirm = vbOK Then conn.Execute "delete from [USER] where username='" & Trim(Text1.Text) & "'" rs.Requery MsgBox "Data berhasil dihapus", vbInformation, "Information" DataGrid1.Refresh End If Exit Sub out: MsgBox "Terjadi Error" + vbCr + Err.Description, vbCritical, "Error" End Sub Private Sub Command5_Click() Unload Me frmMenu.Show End Sub Private Sub Command4_Click() Dim query As String If Text1.Text = "" Then MsgBox "Username tidak boleh kosong", vbInformation, "Warning" Exit Sub ElseIf Text2.Text = "" Then MsgBox "Password tidak boleh kosong", vbInformation, "Warning" Exit Sub ElseIf Combo1.Text = "Status User" Then MsgBox "Anda belum memilih status", vbInformation, "Warning" Exit Sub End If If op = "BARU" Then query = "insert into [user] values('" & Text1.Text & "'," _ & "'" & Text2.Text & "','" & Combo1.Text & "') " MsgBox "Data berhasil disimpan", vbInformation, "Information" ElseIf op = "UBAH" Then query = "update [user] set password='" & Text2.Text & "',status='" & Combo1.Text & "'" _ & " where username='" & Text1.Text & "' " MsgBox "Data berhasil dirubah", vbInformation, "Information" End If On Error GoTo out conn.Execute query rs.Requery DataGrid1.RefreshModul 4.18 Lanjutan Halaman Data User Call Batal 76 Exit Sub out: MsgBox "Terjadi Error" + vbCr + Err.Description, vbCritical, "ERROR" End Sub Private Sub Command2_Click() If Command2.Caption = "Batal" Then Batal Command2.Caption = "Ubah" Else Call ubahTombolAktif(True) Call ubahAktifTextBox(True) Text1.Locked = True Text2.SetFocus op = "UBAH" Command2.Caption = "Batal" Command2.Enabled = True End If End Sub Private Sub Form_Load() konek ' On Error GoTo out op = "" Set rs = conn.Execute("SELECT Username,Password,Status FROM [user]") Set DataGrid1.DataSource = rs Call tampilkan Combo1.AddItem "Manager" Combo1.AddItem "Karyawan" Exit Sub out: MsgBox "Terjadi kesalahan" + vbCr + Err.Description, vbCritical, "Error" End Sub Sub ubahTombolAktif(status As Boolean) Command2.Caption = "Ubah" Command1.Caption = "Tambah" Command1.Enabled = Not (status) Command2.Enabled = Not (status) Command4.Enabled = (status) Command3.Enabled = Not (status) End Sub Sub ubahAktifTextBox(status As Boolean) Text1.Locked = Not (status) Text2.Locked = Not (status) End Sub Private Sub Command1_Click() If Command1.Caption = "Batal" Then Batal Command1.Caption = "Tambah" Modul 4.19 Lanjutan Halaman Data User 77 Else Call ubahTombolAktif(True) Call kosongkan Call ubahAktifTextBox(True) Text1.SetFocus op = "BARU" Command1.Caption = "Batal" Command1.Enabled = True End If End Sub Sub Batal() op = "" Call tampilkan Call ubahTombolAktif(False) Call ubahAktifTextBox(False) End Sub Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If rs.BOF Or rs.EOF Then MsgBox "Sudah di Akhir atau Awal data" Else tampilkan End If End Sub Modul 4.20 Lanjutan Halaman Data User 4.3.6 Halaman Decision Support System (DSS) Halaman ini hanya bisa diakses oleh pemilik swalayan.Pemilik swalayan melakukan perhitungan dengan memasukan nilai minimum transaksi dan nilai minimum confidence untuk proses perhitungan dan setelah itu hasil dari proses masih berupa kode produk.Adapun tampilannya dapat dilihat pada gambar 4.8 berikut: 78 Berikut ini adalah potongan program form DSS: Option Explicit Gambar Halaman DSS Dim rs, rs2, rs3, rs4 As New4.8ADODB.Recordset Private Sub Command1_Click() Me.Hide frmKeputusan.Show End Sub Private Sub Command4_Click() Dim c, i, j, k, l, m, a, temp, total_trans, min_transaksi As Integer Dim mc As Variant Dim min_confidence1, min_confidence2 As Double Dim hasil As Double Dim jml, item1, item2, item3 As String Dim keluar As Boolean Dim antecedent, konklusi As String If Text1.Text = "" And Text2.Text = "" Then MsgBox "Minimum transaksi dan minimum Confidence tidak boleh kosong", vbInformation, "Informasi" Exit Sub Modul 4.21 Halaman Data Perhitungan 79 End If Set rs = conn.Execute("select count(kd_transaksi) from transaksi") Text3.Text = rs(0) total_trans = rs(0) min_transaksi = Text1.Text min_confidence1 = Val(Text2.Text) 'min_confidence1 = 0 keluar = False List1.Clear '****************************************' 'mengambil item yang memenuhi syarat (C1)' '****************************************' c = 1 On Error Resume Next conn.Execute ("drop table c1") conn.Execute ("truncate table keputusan") conn.Execute ("create table c1(item1 integer,jml integer)") conn.Execute ("insert into c1 select kd_barang,count(kd_transaksi) from " _ & "detail_transaksi group by kd_barang having count(kd_transaksi)>=" _ & "" & min_transaksi & " order by kd_barang") conn.Execute ("delete from tmp") conn.Execute ("insert into tmp values (" & min_transaksi & "," & Text2.Text & ")") 'conn.Execute ("insert into perhitungan values('','',''," & min_transaksi & "," & min_confidence1 & ")") '********************************************' 'mengambil item yang memenuhi syarat (C2) dst' '********************************************' Do While keluar = False c = c + 1 'MsgBox "C: " & c & " keluar: " & keluar & "" On Error Resume Next conn.Execute ("drop table c" & c & "") 'buat table sql = "create table c" & c & " (" For i = 1 To c sql = sql & "item" & i & " integer, " ' MsgBox i Next sql = sql & "jml integer)" conn.Execute (sql) ' MsgBox sql 'isi table sql = "insert into c" & c & " select distinct" For i = 1 To c - 1 sql = sql & " p.item" & i & "," Next sql = sql & " q.item" & (c - 1) & ",(select count(t.kd_transaksi) from" _ & " transaksi t where (select count(*) from detail_transaksi d " _ & " where d.kd_barang in(" For i = 1 To c - 1 sql = sql & "p.item" & i & ", " Modul 4.22 Lanjutan Halaman Data Perhitungan Next sql = sql & "q.item" & (c - 1) & ") and t.kd_transaksi=d.kd_transaksi) " _ 80 & " >= " & (c) & ") from c" & (c - 1) & " p,c" & (c - 1) & " q where " _ & " q.item" & (c - 1) & ">p.item" & (c - 1) & "" For i = 2 To c - 1 sql = sql & " and p.item" & i & ">p.item" & (i - 1) & "" Next sql = sql & " order by" For i = 1 To c - 1 sql = sql & " p.item" & i & "," Next sql = sql & " q.item" & (c - 1) & "" conn.Execute (sql) 'hapus table yg tidak memenuhi syarat conn.Execute ("delete from c" & c & " where jml<=" & min_transaksi & "") 'cek isi table Set rs = conn.Execute("select * from c" & c & "") If rs.RecordCount = 0 Then keluar = True Loop '***************** 'Hitung confidence '***************** For i = 2 To c - 1 m = 1 j = i Set rs = conn.Execute("select * from c" & i & " order by jml desc") Do While Not rs.EOF ' For a = 1 To rs.RecordCount temp = 0 ' MsgBox "temp " & temp & "" 'For j = i To m = 1 Do While j >= m sql = "select jml from c" & (i - 1) & " where " For k = 1 To (i - 1) sql = sql & " item" & k & "=" If temp = k Then sql = sql & " " & rs(temp) & "" temp = temp + 2 Else sql = sql & " " & rs(temp) & "" temp = temp + 1 End If Next Set rs2 = conn.Execute(sql) ' MsgBox sql 'jika nilai confidence minimum terpenuhi ' MsgBox rs!jml ' MsgBox rs2!jml IfModul (rs!jml 100 / rs2!jml) >= min_confidence1 Then 4.23 *Lanjutan Halaman Data Perhitungan antecedent = "If buy" For l = 1 To i If l = j Then 81 konklusi = " then buy " & rs(l - 1) & "" item3 = " " & rs(l - 1) & "" ' konklusi = " then buy " & rs(l - 1) & " dengan" _ ' '& " SUPPORT " & Round(rs!jml / total_trans * 100, 3) & " % dan " _ ' '& "CONFIDENCE " & Round(rs!jml * 100 / rs2!jml, 3) & " %" hasil = Round(rs!jml * 100 / rs2!jml, 3) jml = "" & rs!jml & "/" & rs2!jml & " " ElseIf ((j = 1) And (l > 2)) Or ((j > 1) And (l > 1)) Then antecedent = antecedent & ", " & rs(l - 1) & "" item2 = " " & rs(l - 1) & "" Else antecedent = antecedent & " " & rs(l - 1) & "" item1 = " " & rs(l - 1) & "" End If conn.Execute ("insert into keputusan (aturan_1,aturan_2,hasil,jml,item1,item2,item3) " _ & " values('" & antecedent & "','" & konklusi & "','" & hasil & "','" & jml & "','" & item1 & "','" & item2 & "','" & item3 & "')") item1 = "" item2 = "" item3 = "" Next End If ' Next j = j - 1 Loop 'Next rs.MoveNext Loop ' Next Next conn.Execute ("delete from keputusan where aturan_1='if buy' or hasil='0'") Set rs = conn.Execute("select aturan_1,aturan_2,jml,hasil from keputusan") ListView1.ListItems.Clear Do While Not rs.EOF With ListView1.ListItems.Add .Text = rs(0) & rs(1) For i = 1 To rs.Fields.Count - 1 .SubItems(1) = rs(2) .SubItems(2) = rs(3) & "%" Next End With rs.MoveNext Loop End Sub Private Sub Command5_Click() Modul 4.24 Lanjutan Halaman Data Perhitungan Unload Me frmMenu.Show End Sub Private Sub Form_Load() konek End Sub 82 4.3.7 Halaman Data Alternatif Halaman ini hanya bisa diakses oleh pemilik swalayan.Setelah proses perhitungan data masih berupa kode produk.Kemudian data diubah dari kode prodek menjadi nama barang yaitu yang terdapat di form data alternatif.Adapun tampilannya dapat dilihat pada gambar 4.9 berikut: Gambar 4.8 Halaman Alternatif Berikut ini adalah potongan program form cetak Alternatif: Private Sub Command1_Click() Unload Me frmMenu.Show End Sub Private Sub Command2_Click() Me.Hide frmSketsaPenempatanProduk.Show End Sub Private Sub Command3_Click() Me.Hide frmPerhitungan.Show End Sub Modul 4.25 Halaman Data Alternatif 83 Private Sub Form_Load() Dim antecedent, konklusi, dominan, ikut As String Set rs = conn.Execute("select item1,item2,item3 from keputusan") Dim item1, item2, item3 As Integer List1.Clear ListView1.ListItems.Clear Do While Not rs.EOF If rs(1) = "" Then Set rs2 = conn.Execute("select nama_brg from barang where id_barang='" & rs(0) & "'") Do While Not rs2.EOF antecedent = "Jika membeli " & rs2!nama_brg & " " dominan = rs2!nama_brg rs2.MoveNext Loop Set rs3 = conn.Execute("select nama_brg from barang where id_barang='" & rs(2) & "'") Do While Not rs3.EOF konklusi = ", Maka akan membeli " & rs3!nama_brg & " " ikut = rs3!nama_brg rs3.MoveNext Loop Else Set rs2 = conn.Execute("select nama_brg from barang where id_barang='" & rs(0) & "'") Do While Not rs2.EOF antecedent = "Jika membeli " & rs2!nama_brg & " " dominan = rs2!nama_brg rs2.MoveNext Loop Set rs3 = conn.Execute("select nama_brg from barang where id_barang='" & rs(1) & "'") Do While Not rs3.EOF antecedent = antecedent & " " & rs3!nama_brg & " " dominan = dominan & ", " & rs3!nama_brg rs3.MoveNext Loop Set rs4 = conn.Execute("select nama_brg from barang where id_barang='" & rs(2) & "'") Do While Not rs4.EOF konklusi = ", Maka akan membeli " & rs4!nama_brg & " " ikut = rs4!nama_brg rs4.MoveNext Loop End If If antecedent <> "" Then List1.AddItem antecedent & " " & konklusi ' End With End If rs.MoveNext Modul 4.26 lanjutan Halaman Data Loop Alternatif End Sub 84 4.3.8 Halaman Data Pendukung Keputusan Halaman ini hanya bisa diakses oleh pemilik swalayan.Setelah proses perhitungan data dari hasil perhitungan di tampilkan dalam bentuk tabel yaitu yang lolos seleksi maupun data yang tidak lolos..Adapun tampilannya dapat dilihat pada gambar 4.9 berikut: BAB V PENUTUP 5.1 Kesimpulan Berdasarkan pembahasan dan implementasi program yang mengacu pada rumusan masalah yang ada yaitu bagaimana suatu swalayan dapat mengolah data dengan cepat dan akurat serta membuat suatu sistem pendukung keputusan menggunakan algoritma apriori, maka dapat diambil beberapa kesimpulan bahwa Program ini dapat digunakan untuk mengolah data penjualan yang begitu banyak menjadi suatu alternatif keputusan dimana dapat membantu pemilik swalayan melihat produk mana yang sering di beli dan membantu karyawan dalam dalam tata letak barang,sehingga barang-barang yang sering di beli bersamaan dapat di letakan berdekatan dan barang yang jarang di beli bisa dibuat diskon agar menarik minat pembeli. 5.2 Saran Kesempurnaan dari suatu sistem selalu bersifat relatif berdasarkan cara pandang dan konsep dari setiap pemikiran yang berbeda serta memiliki alur yang bervariasi.Karena sistem ini dibangun berdasarkan alur pemikiran penulis, maka untuk hasil yang lebih baik dan maksimal di perlukan saran dari pihak manapun untuk melengkapi kekurangan yang ada. Saran dari penulis yaitu: Bagi peneliti selanjutnya diharapkan untuk dapat menghasilkan output yang lebih interaktif pada sistem ini misalkan dibuat tata letak produk ditampilkan foto produk yang sudah tertata.