BAB II TINJAUAN PUSTAKA II.1. Pegertian Sistem Untuk mengawali pembahasan tentang analisis dan perancangan sistem informasi, pemahaman akan sistem terlibih dahulu harus ditentukan. Definisi sistem berkembang sesuai dengan konteks di mana pengertian sistem itu digunakan. Berikut akan diberikan beberapa definisi sistem secara umum : 1. Kumpulan dari bagian-bagian yang bekerja sama untuk mencapai tujuan yang sama. a. Sistem Tatasurya b. Sistem Pencernaan c. Sistem Transportasi Umum d. Sistem Otomotif e. Sistem Komputer f. Sistem Informasi 2. Sekumpulan objek-objek yang saling berlaris dan berinteraksi serta hubungan antara objek bisa dilihat sebagai satu kesatuan yang dirancang untuk mencapai satu tujuan Dengan demikian, secara sederhana sistem dapat diartikan sebagai suatu kumpulan atau himpuan dari unsure atau variabel-variabel yang saling terorganisai (Tata Sutardi ; 2012 : 3). 13 14 Sistem informasi variable suara ini EQ atau Equlize Qontrol merupakan bagian dari tone control yang harus diatur. Anda bisa mengatur tone control dalam saluran frekuensi rendah, menengah, dan tinggi. Fungsi utama dari EQ ini adalah untuk mengatur warna suara. Anda bisa menggunakan setting default atau bawaan dari sound ataupun dengan manual setting dengan data masukan untuk menyesuaikan frekuensinya. II.2. Data Mining Data mining merupakan serangkaian proses untuk menggali nilai tambah dari suatu kumpulan data berupa pengetahuan yang selama ini tidak diketahui secara manual dari suatu kumpulan data. Defenisi lain data mining adalah sebagai proses untuk mendapatkan informasi yang berguna dari gudang basis data yang besar. Data mining juga diartikan sebagai pengekstrakan informasi baru yang diambil dari bongkahan data besar yang membantu dalam pengambilan keputusan. Istilah data mining kadang disebut juga knowledge discovery. Istilah data mining dan Knowledge Discovery in Database (KDD) sering kali digunakan secara bergantian untuk menjelaskan proses penggalian informasi tersembunyi dalam suatu basis data yang besar. Sebenarnya kedua istilah tersebut memiliki konsep yang berbeda, tetapi berkaitan satu sama lain. KDD adalah kegiatan yang meliputi pengumpulan, pemakaian data, historis untuk menemukan keteraturan, pola atau hubungan dalam set data yang berukuran besar. Data mining didefinisikan sebagai proses menemukan pola-pola dalam data. Pola yang ditemukan harus penuh arti dan pola tersebut memberikan keuntungan. 15 Karakteristik data mining sebagai berikut 1. Data mining berhubungan dengan penemuan sesuatu yang tersembunyi dan pola data tertentu yang tidak diketahui sebelumnya. 2. Data mining biasa menggunakan data yang sangat besar. Biasanya data yang besar digunakan untuk membuat hasil lebih dipercaya (Relita Buaton ; 2012 : 90-91). Data mining didefinisikan sebagai proses menemukan pola-pola dalam data. Pola yang ditemukan harus penuh arti dan pola tersebut memberikan keuntungan. Karakteristik data mining sebagai berikut 1. Data mining berhubungan dengan penemuan sesuatu yang tersembunyi dan pola data tertentu yang tidak diketahui sebelumnya. 2. Data mining biasa menggunakan data yang sangat besar. Biasanya data yang besar digunakan untuk membuat hasil lebih dipercaya. Data mining berguna untuk membuat keputusan yang kritis, terutama dalam strategi, juga dapat digunakan untuk pengambilan keputusan di masa depan berdasarkan informasi yang diperoleh dari data masa lalu. Tergantung pada aplikasinya, data bisa berupa data mahasiswa, data pasien, data nasabah atau penjualan. Banyak kasus dalam kehidupan sehari-hari yang tanpa disadari bisa diselesaikan dengan data mining, diantaranya adalah 1. Memprediksi harga saham dalam beberapa bulan ke depan berdasarkan performansi perusahaan dan data-data ekonomi 2. Memprediksi berapa jumlah mahasiswa baru di perguruan tinggi berdasarkan data pendaftar pada tahun-tahun sebelumnya 16 3. Memprediksi nilai indeks prestasi mahasiswa berdasarkan nilai IP setiap semester sebelumnya. 4. Produk apa yang akan dibeli pelanggan secara bersamaan jika membeli produk di swalayan 5. Bagaimana mengetahui karakteristik nasabah yang kredit lancar atau macet dalam suatu perbankan atau finance 6. Mengelompokan customer berdasarkan minat, atau pola kebiasaan sehingga mempermudah menentukan target pemasaran 7. Dll. Tentu masih banyak lagi contoh-contoh dalam bidang lain atau kasus lain yang kaitannnya dengan penggalian data sehingga bisa menghasilkan pengetahuan baru dan informasi baru menjadi strategi dalam mengembangkan suatu bidang uasaha. II.3. Clustering Clustering adalah sebuah metode untuk mengelompokkan beberapa macam obyek yang serupa (similar) kedalam class - class. Sebuah cluster adalah sekumpulan data yang mirip satu sama lain dan tidak mirip dengan data - data pada cluster lain. Clustering berbeda dengan klasifikasi karena pada clustering tidak ada class - class target yang telah diset sebelumnya. Clustering algoritma akan berusaha membagi data yang ada menjadi kelompok - kelompok data dimana data pada kelompok (cluster) yang sama relatif lebih homogen bila dibandingkan dengan data - data pada kelompok lain. Clustering berusaha 17 memaksimalkan kesamaan (similarity) dari data - data pada cluster yang sama dan meminimalkan kesamaannya dengan data - data pada cluster lainnya. Teknik clustering melakukan pengelompokkan pada beberapa record, dan biasanya diberikan kepada pengguna akhir untuk memberikan gambara tentang apa yang terjadi pada basis data. Pada Data mining, teknik clustering berbeda dengan teknik association rule mining dan classification dimana kelas data telah ditentukan sebelumnya. Clustering melakukan pengelompokkan data tanpa berdasarkan kelas data tertentu. Bahkan clustering dapat dipakai untuk memberikan label pada kelas data yang belum diketahui itu. Karena itu clustering sering digolongkan sebagai metode unsupervised learning. Prinsip clustering adalah memaksimalkan kesamaan antar anggota satu kelas dan meminimumkan kesamaan antar kelas atau cluster. Clustering dapat dilakukan pada data yang memiliki atribut yang dipetakan sebagai ruang multi dimensi. Banyak algoritma clustering memerlukan fungsi jarak untuk mengukur kemiripan antar data, selain itu juga diperlukan metode normalisasi bermacam atribut yang dimiliki data. Beberapa kategori algoritma clustering yang banyak dikenal adalah metode partisi dimana pemakai harus menentukan jumlah k partisi yang diinginkan lalu setiap data dites untuk dimasukkan pada salah satu partisi. (Gregorius Satia Budhi, 2011 : 2). II.4. Algoritma K-Means K-means clustering merupakan salah satu metode data clustering nonhirarki yang mengelompokan data dalam bentuk satu atau lebih cluster/kelompok. Data-data yang memiliki karakteristik yang sama dikelompokan dalam satu 18 cluster/kelompok dan data yang memiliki karakteristik yang berbeda dikelompokan dengan cluster/kelompok yang lain sehingga data yang berada dalam satu cluster/kelompok memiliki tingkat variasi yang kecil (Johan Oscar Ong ; 2013). II.4.1. Konsep K-Means K-means merupakan salah satu metode data klustering non hirarki yang berusaha mempartisi data yang ada ke dalam bentuk satu atau lebih cluster / kelompok. Metode ini mempartisi ke dalam cluster / kelompok sehingga data yang memiliki karakteristik yang sama (High intra class similarity) dikelompokkan ke dalam satu cluster yang sama dan yang memiliki karakteristik yang berbeda (Law inter class similarity) dikelompokkan pada kelompok yang lain [3]. Proses klustering dimulai dengan mengidentifikasi data yang akan dikluster, Xij (i=1,...,n; j=1,...,m) dengan n adalah jumlah data yang akan dikluster dan m adalah jumlah variabel. Pada awal iterasi, pusat setiap kluster ditetapkan secara bebas (sembarang), Ckj (k=1,...,k; j=1,...,m). Kemudian dihitung jarak antara setiap data dengan setiap pusat kluster. Untuk melakukan penghitungan jarak data ke-i (xi) pada pusat kluster ke-k (ck), diberi nama (dik), dapat digunakan formula Euclidean (Johan Oscar Ong ; 2013). II.4.2. Langkah-Langkah K-Means Melakukan clustering dengan metode K-Means adalah sebagai berikut: a. Pilih jumlah cluster k. b. Inisialisasi k pusat cluster ini bisa dilakukan dengan berbagai cara. Namun yang paling sering dilakukan adalah dengan cara random. 19 Pusat-pusat cluster diberiduberi nilai awal dengan angka-angka random, c. Alokasikan semua data/ objek ke cluster terdekat. Kedekatan dua objek ditentukan berdasarkan jarak kedua objek tersebut. Demikian juga kedekatan suatu data ke cluster tertentu ditentukan jarak antara data dengan pusat cluster. Dalam tahap ini perlu dihitung jarak tiap data ke tiap pusat cluster. Jarak paling antara satu data dengan satu cluster tertentu akan menentukan suatu data masuk dalam cluster mana (Johan Oscar Ong ; 2013). Rumus : d. Hitung kembali pusat cluster dengan keanggotaan cluster yang sekarang. Pusat cluster adalah rata-rata dari semua data/ objek dalam cluster tertentu. Jika dikehendaki bisa juga menggunakan median dari cluster tersebut. Jadi rata-rata (mean) bukan satu-satunya ukuran yang bisa dipakai. e. Tugaskan lagi setiap objek memakai pusat cluster yang baru. Jika pusat cluster tidak berubah lagi maka proses clustering selesai. Atau, kembali ke langkah nomor 3 sampai pusat cluster tidak berubah lagi (Johan Oscar Ong ; 2013). II.5. Javascript Javascript bukan bahasa berorientasi objek, melainkan bahasa berbasis objek. Bahasa berorientasi objek harus mendukung tiga konsep dasar, yaitu 20 pengkapsulan (encapsulation), perwarisan (inheritance) dan polimorfisme (polymorphism). Javascript hanya mendukung pengkapsulan, itupun tidak 100% benar. Program JavaScript dituliskan pada file HTML (.html atau .htm) dengan menggunakan tag container <SCRIPT>. Dengan kata lain, anda tidak perlu menuliskan program JavaScript pada file terpisah (meskipun anda bisa juga melakukannya). Ingat bahwa yang dimaksud dengan tag container adalah tag yang diawali dengan <NAMA_TAG> dan diakhiri dengan </NAMA_TAG>. Beberapa contoh tag container adalah <HTML></HTML>, <HEAD></Body>, dsb (Antony Pranata ; 2001 : 11). II.6. SQLite SQLite merupakan sebuah sistem manajemen basis data relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp. Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basis data (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi desain tersebut bisa diraih dengan cara mengunci 21 keseluruhan file basis data pada saat sebuah transaksi dimulai (Fredy Purnomo ; 2010 : 2). II.7. Teknik Normalisasi Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basis data relasional. Pada dasarnya, normalisasi adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi dari tabel rasional. Teori normalisasi didasarkan pada konsep bentuk normal. Sebuah tabel relasional dikatakan berada pada bentuk normal tertentu jika tabel memenuhi himpunan batasan tertentu. Ada lima bentuk normal yang tekah ditemukan. II.7.1.Bentuk-bentuk Normalisasi 1. Bentuk normal tahap pertama (1” Normal Form) Contoh yang kita gunakan di sini adalah sebuah perusahaan yang mendapatkan barang dari sejumlah pemasok. Masing-masing pemasok berada pada satu kota. Sebuah kota dapat mempunyai lebih dari satu pemasok dan masing-masing kota mempunyai kode status tersendiri. 2. Bentuk normal tahap kedua (2nd normal form) Definisi bentuk normal kedua menyatakan bahwa tabel dengan kunci utama gabungan hanya dapat berada pada 1NF, tetapi tidak pada 2NF. Sebuah tabel relasional berada pada bentuk normal kedua jika dia berada 22 pada bentuk normal kedua jika dia berada pada 1NF dan setiap kolom bukan kunci yang sepenuhnya tergantung pada seluruh kolom yang membentuk kunci utama. 3. Bentuk normal tahap ketiga (3rd normal form) Bentuk normal ketiga mengharuskan semua kolom pada tabel relasional tergantung hanya pada kunci utama. Secara definisi, sebuah tabel berada pada bentuk normal ketiga (3NF) jika tabel sudah berada pada 2NF dan setiap kolom yang bukan kunci tidak tergantung secara transitif pada kunci utamanya. 4. Boyce Code Normal Form (BCNF) Setelah 3NF, semua masalah normalisasi hanya melibatkan tabel yang mempunyai tiga kolom atau lebih dan semua kolom adalah kunci. Banyak praktisi berpendapat bahwa menempatkan entitas pada 3NF sudah cukup karena sangat jarang entitas yang berada pada 3NF bukan merupakan 4NF dan 5NF. 5. Bentuk Normal Tahap Keempat dan Kelima Sebuah tabel relasional berada pada bentuk normal keempat (4NF) jika dia dalam BCNF dan semua ketergantungan multivalue merupakan ketergantungan fungsional. Bentuk normal keempat (4NF) didasarkan pada konsep ketergantungan multivalue (MVD). Sebuah tabel berada pada bentuk normal kelima (5NF) jika ia tidak dapat mempunyai dekomposisi lossless menjadi sejumlah tabel lebih kecil. Empat bentuk normal pertama berdasarkan pada konsep ketergantungan fungsional, 23 sedangkan bentuk normal kelima berdasarkan pada konsep ketergantungan gabungan, laporan berbentuk faktur dapat diterangkan dengan langkah-langkah state berikut yang ditunjukkan pada gambar II.1 berikut : Gambar II.1 Dokumen Dasar (Sumber : Janner Simarmata ; 2010 : 76) II.8. UML (Unified Modeling Language) Menurut Windu Gata (2013 : 4) Hasil pemodelan pada OOAD terdokumentasikan dalam bentuk Unified Modeling Language (UML). UML adalah bahasa spesifikasi standar yang dipergunakan untuk mendokumentasikan, menspesifikasikan dan membangun perangkat lunak. UML merupakan metodologi dalam mengembangkan sistem berorientasi objek dan juga merupakan alat untuk mendukung pengembangan sistem. UML saat ini sangat banyak dipergunakan dalam dunia industri yang merupakan standar 24 bahasa pemodelan umum dalam industri perangkat lunak dan pengembangan sistem. Alat bantu yang digunakan dalam perancangan berorientasi objek berbasiskan UML adalah sebagai berikut : 1. Use case Diagram Use case diagram merupakan pemodelan untuk kelakukan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Dapat dikatakan use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Simbol-simbol yang digunakan dalam use case diagram, yaitu : Tabel II.2. Simbol Use Case Gambar Keterangan Use case menggambarkan fungsionalitas yang disediakan sistem sebagai unit-unit yang bertukan pesan antar unit dengan aktor, biasanya dinyatakan dengan menggunakan kata kerja di awal nama use case. Aktor adalah abstraction dari orang atau sistem yang lain yang mengaktifkan fungsi dari target sistem. Untuk mengidentifikasikan aktor, harus ditentukan pembagian tenaga kerja dan tugas-tugas yang berkaitan dengan peran pada konteks target sistem. Orang atau sistem bisa muncul dalam beberapa peran. Perlu dicatat bahwa aktor berinteraksi dengan use case, tetapi tidak memiliki control terhadap use case. Asosiasi antara aktor dan use case, digambarkan dengan garis tanpa panah yang mengindikasikan siapa atau apa yang meminta interaksi secara langsung dan bukannya mengidikasikan aliran data. Asosiasi antara aktor dan use case yang menggunakan panah terbuka untuk mengidinkasikan 25 bila aktor berinteraksi secara pasif dengan sistem. Include, merupakan di dalam use case lain (required) atau pemanggilan use case oleh use case lain, contohnya adalah pemanggilan sebuah fungsi program. Extend, merupakan perluasan dari use case lain jika kondisi atau syarat terpenuhi. (Sumber : Windu Gata, 2013 : 4) 2. Diagram Aktivitas (Activity Diagram) Activity Diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Simbol-simbol yang digunakan dalam activity diagram, yaitu : Tabel II.3. Simbol Activity Diagram Gambar Keterangan Start point, diletakkan pada pojok kiri atas dan merupakan awal aktifitas. End point, akhir aktifitas. Activites, menggambarkan suatu proses/kegiatan bisnis. Fork (Percabangan), digunakan untuk menunjukkan kegiatan yang dilakukan secara parallel atau untuk menggabungkan dua kegiatan pararel menjadi satu. Join (penggabungan) atau rake, digunakan untuk menunjukkan adanya dekomposisi. Decision Points, menggambarkan pilihan untuk pengambilan keputusan, true, false. 26 New Swimline Swimlane, pembagian activity diagram untuk menunjukkan siapa melakukan apa. (Sumber : Windu Gata, 2013 : 6) 3. Diagram Urutan (Sequence Diagram) Sequence diagram menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan pesan yang dikirimkan dan diterima antar objek. Simbol-simbol yang digunakan dalam sequence diagram, yaitu : Tabel II.4. Simbol Sequence Diagram Gambar Keterangan Entity Class, merupakan bagian dari sistem yang berisi kumpulan kelas berupa entitas-entitas yang membentuk gambaran awal sistem dan menjadi landasan untuk menyusun basis data. Boundary Class, berisi kumpulan kelas yang menjadi interface atau interaksi antara satu atau lebih aktor dengan sistem, seperti tampilan formentry dan form cetak. Control class, suatu objek yang berisi logika aplikasi yang tidak memiliki tanggung jawab kepada entitas, contohnya adalah kalkulasi dan aturan bisnis yang melibatkan berbagai objek. Message, simbol mengirim pesan antar class. Recursive, menggambarkan pengiriman pesan yang dikirim untuk dirinya sendiri. Activation, activation mewakili sebuah eksekusi operasi dari objek, panjang kotak ini berbanding lurus dengan durasi aktivitas sebuah operasi. 27 Lifeline, garis titik-titik yang terhubung dengan objek, sepanjang lifeline terdapat activation. (Sumber : Windu Gata, 2013 : 7) 4. Class Diagram (Diagram Kelas) Merupakan hubungan antar kelas dan penjelasan detail tiap-tiap kelas di dalam model desain dari suatu sistem, juga memperlihatkan aturan-aturan dan tanggng jawab entitas yang menentukan perilaku sistem. Class diagram juga menunjukkan atribut-atribut dan operasi-operasi dari sebuah kelas dan constraint yang berhubungan dengan objek yang dikoneksikan. Class diagram secara khas meliputi: Kelas (Class), Relasi, Associations, Generalization dan Aggregation, Atribut (Attributes), Operasi (Operations/Method), Visibility, tingkat akses objek eksternal kepada suatu operasi atau atribut. Hubungan antar kelas mempunyai keterangan yang disebut dengan multiplicity atau kardinaliti. Tabel II.5. Multiplicity Class Diagram Multiplicity Penjelasan 1 0..* 1..* 0..1 n..n Satu dan hanya satu Boleh tidak ada atau 1 atau lebih 1 atau lebih Boleh tidak ada, maksimal 1 Batasan antara. Contoh 2..4 mempunyai arti minimal 2 maksimum 4 (Sumber : Windu Gata, 2013 : 9)