BAB 2 LANDASAN TEORI 2.1 Sistem Pendukung Keputusan (SPK) Sebelum membahas tentang definisi SPK, perlu diketahui definisi dari beberapa istilah yang berkaitan dengan SPK itu sendiri, dijelaskan terlebih dahulu definisi sistem dan informasi di bawah ini. 2.1.1 Definisi Sistem dan Informasi Sistem adalah suatu kesatuan yang terdiri dari interaksi subsistem yang berusaha untuk mencapai tujuan (goal) yang sama (Moscove dan Simkin,1984:4). Sistem adalah sebagai kumpulan interaksi dari komponen-komponen yang beroperasi di dalam suatu batas sistem. Batas sistem akan menyaring tipe dan tingkat arus dari input serta output di antara sistem dengan lingkungannya (Hicks,1986:26) sehingga dapat disimpulkan bahwa definisi sistem adalah sejumlah komponen yang berinteraksi yang beroperasi di dalam suatu batas sistem yang berusaha untuk mencapai tujuan (goal) yang sama. Setelah mengetahui beberapa definisi dari sistem, suatu sistem harus memiliki beberapa karakteristik, ada delapan karakteristik sistem (Tata Sutabri,2005:11) yaitu: 1. Komponen Sistem (Components) Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, artinya saling bekerja sama membentuk satu kesatuan. 2. Batasan Sistem/Ruang lingkup Sistem (Boundary) Ruang lingkup sistem merupakan daerah yang membatasi antara sistem dengan sistem yang lain atau sistem dengan lingkungan luar. 3. Lingkungan luar (Environment) Bentuk apapun yang ada di luar ruang lingkup atau batasan sistem yang mempengaruhi operasi sistem disebut lingkungan luar sistem. 4. Penghubung Sistem (Interface) Media yang menghubungkan sistem dengan subsistem lain disebut penghubung sistem atau Interface. 7 8 5. Masukan Sistem (Input) Energi yang dimasukkan ke dalam sistem disebut masukan sistem, yang dapat berupa pemeliharaan (maintenace) dan sinyal (signal input). 6. Keluaran Sistem (Output) Hasil energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna. 7. Pengolah Sistem (proses) Suatu sistem dapat mempunyai suatu proses yang akan mengubah masukan menjadi keluaran. 8. Sasaran Sistem (Objective) Suatu sistem memiliki tujuan dan sasaran yang pasti dan bersifat deterministik. Dalam karakteristik sistem yang telah disebutkan sebelumnya, suatu sistem memerlukan masukan (input) yang akan diproses dan akan menghasilkan keluaran (output). Salah satu input dari sebuah sistem dapat berupa informasi. Informasi sangat penting bagi suatu sistem. Informasi dapat didefinisikan sebagai hasil dari pengolahan data dalam suatu bentuk yang lebih berguna dan lebih berarti bagi penerimanya yang akan menggambarkan suatu kejadian-kejadian (event) yang nyata (fact) yang digunakan untuk pengambilan keputusan (Jogiyanto,2005: 692). 2.1.2 Definisi Sistem Informasi Sistem Informasi adalah proses yang menjalankan fungsi mengumpulkan, memproses, menyimpan, menganalisis, dan menyebarkan informasi untuk tujuan tertentu (Turban dkk,2006:49). Saat ini, teknologi informasi berkembang sangat pesat, khususnya di bidang komputer. Untuk mempermudah pekerjaan manusia, dalam hal ini untuk menghemat waktu dan memperkecil kesalahan dalam perhitungan, sistem informasi dikembangkan menjadi sistem informasi berbasis komputer. Sistem Informasi Berbasis Komputer (Computer-Based Information System-BIS) adalah sistem informasi yang menggunakan teknologi komputer untuk melakukan beberapa atau seluruh pekerjaan yang diberikan (Turban dkk,2006:49). 9 Sistem Informasi Berbasis Komputer telah banyak ditemukan dalam berbagai macam program aplikasi. Salah satu aplikasi sistem informasi berbasis komputer adalah Sistem Pendukung Keputusan (SPK) / Decision Support System (DSS). Namun, sebelum membahas definisi SPK, perlu diketahui terlebih dahulu definisi keputusan. Keputusan merupakan kegiatan memilih suatu strategi atau tindakan dalam pemecahan masalah (Kusrini, 2007:7). 2.1.3 Klasifikasi Keputusan Keputusan diklasifikasikan menjadi tiga (O’Brien, 2005:438), yaitu: 1. Keputusan terstruktur Keputusan terstruktur melibatkan situasi dimana prosedur yang diikuti ketika keputusan diperlukan, dapat disebutkan lebih awal. Contoh: Keputusan pemesanan ulang persediaan yang dihadapi oleh kebanyakan bisnis. 2. Keputusan tak terstruktur Keputusan tak terstruktur melibatkan situasi keputusan dimana tidak mungkin menentukan lebih awal mengenai prosedur keputusan yang harus diikuti. 3. Keputusan semiterstruktur Beberapa prosedur keputusan dapat ditentukan, namun tidak cukup untuk mengarah ke suatu keputusan yang direkomendasikan. 2.1.4 Definisi SPK Sistem Pendukung Keputusan (Decision Support System) adalah sistem informasi berbasis komputer yang menyediakan dukungan informasi yang interaktif bagi manajer dan praktisi bisnis selama proses pengambilan keputusan (O’Brien, 2005: 448). SPK dibangun tentunya mempunyai tujuan yang ingin dicapai oleh seorang pembuat keputusan. Menurut Aji Supriyanto (2005:260) tujuan SPK adalah sebagai “second opinion” atau “information sources” sebagai bahan pertimbangan seorang manajer sebelum memutuskan kebijakan tertentu. 10 2.1.5 Komponen SPK Menurut Aji Supriyanto (2005:260) SPK dibangun oleh tiga komponen, yaitu: a. Database Sistem Database adalah kumpulan semua data yang dimiliki oleh perusahaan baik data dasar maupun transaksi sehari-hari. b. Model base Model base adalah suatu model yang merepresentasikan permasalahan dalam format kuantitatif. c. Software System Software System adalah paduan antara database dan model base, setelah sebelumnya direpresentasikan ke dalam bentuk model yang dimengerti oleh sistem komputer. Sedangkan menurut Tata Sutabri (2005:200) SPK terdiri dari 4 komponen, yaitu: a. Dialog Alat untuk berinteraksi antara komputer dengan pemakainya. Pemakai harus bisa mengerti apa arti informasi yang dihasilkan. Ini berarti, sistem (komputer beserta programnya) mudah dipakai (user friendly). Ditinjau dari sudut pemakainya, pemakai harus pula belajar dan berlatih cara penggunaannya serta arti yang dihasilkan. b. Model Model serta sistem yang membolehkan pemakai memilih model yang cocok. Tiga macam model yang biasa digunakan adalah: 1) Optimalisasi: mencari yang terbaik. Contohnya membuat jadwal, membuat perbandingan linear programming, simulasi, dan lain sebagainya. 2) Statistik/matematis: menggambarkan masalah dengan standar kuantifikasi yang ada. Contohnya forecasting, fungsi kemungkinan (probabilitas), proyeksi penjualan, dan lain sebagainya. 3) Financial, mencari kesempatan yang baru yang lebih menguntungkan. Contohnya: investasi, cash flow, manajemen resiko, dan lain sebagainya. 11 c. Database Database adalah kumpulan dari item data yang saling berhubungan satu dengan yang lainnya yang diorganisasikan berdasarkan sebuah skema atau struktur tertentu, tersimpan di hardware komputer dan dengan software untuk melakukan manipulasi untuk kegunaan tertentu. Dari uraian mengenai komponen SPK diatas, untuk mengembangkan SPK dengan metode Sugeno dan Tsukamoto, dipilih komponen SPK sebagai berikut: Model base, Database, dan Software system. 2.2 Himpunan Fuzzy Pada tahun 1965, Prof. Lofti A. Zadeh dari California University USA memberikan sumbangan yang berharga dalam pengembangan teori himpunan fuzzy (samar). Saat ini konsep fuzzy juga telah diterapkan dalam berbagai bidang kehidupan, seperti industri dan niaga (Wibisono Samuel, 2013:49). Dewasa ini terdapat 2 konsep logika, yaitu logika tegas dan logika fuzzy. Logika tegas hanya mengenal dua keadaan yaitu: ya atau tidak, on atau off, high atau low , 1 atau 0. Logika semacam ini disebut dengan logika himpunan tegas. Sedangkan logika fuzzy adalah logika yang menggunakan konsep sifat kesamaran. Sehingga logika fuzzy adalah logika dengan tak hingga banyak nilai kebenaran yang dinyatakan dalam bilangan real dalam selang [0,1] (Frans Susilo, 2006: 135). Logika Fuzzy telah banyak diaplikasikan dalam berbagai bidang terutama computer service dan computer engineering, selain itu juga dipakai untuk membantu manusia dalam melakukan pengambilan keputusan yang tidak hanya bisa dijawab dengan ya atau tidak, seperti pada Fuzzy Inference System, Fuzzy Database, Fuzzy Linear Programming, dan sebagainya. (Wibisono Samuel,2013:69). Saat ini, penggunaan terbesar logika fuzzy terdapat pada sistem pakar fuzzy (fuzzy expert system). Penerapan logika fuzzy pada sistem pakar fuzzy mencakup beberapa bidang, antara lain: 1. Aplikasi teknik. Logika fuzzy banyak digunakan oleh perusahaan, sebagai contoh: pintu otomatis yang bisa membuka sendiri, penaksiran kualitas aspal jalan raya, tombol tunggal untuk mesin cuci, dan sebaginya (Setiadji, 2009: 3). 12 2. Pengenalan pola. Logika fuzzy untuk pengenalan pola antara lain, yang banyak dikembangkan oleh perusahaan elektronik saat ini, yaitu untuk pengenalan simbol tulisan tangan pada komputer saku. Contoh yang lain adalah klasifikasi sinar-x, pemutar film otomatis, dan sebagainya. (Setiadji, 2009: 4) 3. Aplikasi media. Dalam bidang media sebagai contoh: diagnosa terhadap gangguan apnoca tidur, diagnosa radang sendi, kontrol pembiusan, dan sebagainya (Setiadji, 2009: 4). 4. Aplikasi finansial. Logika fuzzy juga digunakan dalam bidang ekonomi finansial, sebagai contoh: penaksiran perubahan stok barang, penggunaan keuangan pada sebuah perusahaan, dan sebagainya (Setiadji, 2009: 4). Himpunan fuzzy memiliki 2 atribut, yaitu: 1. Linguistik yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami seperti : DINGIN, SEDANG, PANAS. 2. Numeris yaitu suatu nilai (angka) yang menunjukan ukuran dari suatu variabel seperti : 10, 45, 50, dsb. Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy yaitu: a. Variabel fuzzy, merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy. Contoh: umur, temperatur b. Himpunan fuzzy, merupakan suatu grup yang mewakili suatu kondisi tertentu dalam variabel fuzzy. Contoh variabel umur terbagi menjadi 3 himpunan fuzzy yaitu MUDA, PAROBAYA dan TUA. Variabel temperatur terbagi menjadi 5 himpunan fuzzy yaitu : DINGIN, SEJUK, NORMAL, HANGAT, PANAS. c. Semesta Pembicaraan, adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Nilai semesta pembicaraan dapat berupa bilangan positip maupun negatip. Contoh: Semesta pembicaraan untuk variabel umur [ 0 + ~ ] d. Domain, adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy. Nilai domain dapat berupa bilangan positif maupun negatif. 13 2.2.1 Fungsi Keanggotaan Fungsi Keanggotaan (membership function) adalah grafik yang mewakili besar dari derajat keanggotaan masing-masing variabel input yang berada dalam interval antara 0 dan 1 (Ula, 2014). Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan salah satu contoh yang akan digunakan adalah representasi linear. a. Representasi Linear Naik Pada representasi linear naik, pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus. Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas. 1 Derajat Keanggotaan 0 a b Gambar 2.1 Contoh Representasi Linear Naik(Ula, 2014) Fungsi Keanggotaan: (1) Pada gambar 2.1 berdasarkan persamaan (1), nilai a menunjukkan nilai minimum dan b menunjukkan nilai maksimum suatu variabel. menunjukkan nilai fungsi keanggotaan antara 0 dan 1 dalam suatu variabel x. 14 b. Representasi Linear Turun Pada representasi linear turun, merupakan kebalikan dari yang pertama. Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi berada pada sisi kiri, kemudian bergerak menurun ke nilai domain dengan derajat keanggotaan yang lebih rendah. Derajat Keanggotaan 1 0 a b Gambar 2.2 Contoh Representasi Linear Turun(Ula, 2014) Fungsi Keanggotaan: (2) Pada gambar 2.2 berdasarkan persamaan (2), nilai a menunjukkan nilai minimum dan b menunjukkan nilai maksimum suatu variabel. menunjukkan nilai fungsi keanggotaan antara 0 dan 1 dalam suatu variabel x. 2.3 Fuzzy Inference System (FIS) Fuzzy Inference System (FIS) disebut juga fuzzy inference engine adalah sistem yang dapat melakukan penalaran dengan prinsip serupa seperti manusia melakukan penalaran dengan nalurinya. Terdapat beberapa metode FIS yang dikenal yaitu Mamdani, Sugeno dan Tsukamoto. FIS tersebut bekerja berdasarkan kaidah-kaidah linguistik dan memiliki algoritma fuzzy yang menyediakan sebuah aproksimasi untuk dimasuki analisa matematik. 15 Menurut Sri Kusumadewi dan Sri Hartati (2006:34) sistem inferensi fuzzy merupakan suatu kerangka komputasi yang didasarkan pada teori himpunan fuzzy, aturan fuzzy yang berbentuk IF-THEN, dan penalaran fuzzy. FIS menerima input crisp. Input ini kemudian dikirim ke basis pengetahuan yang berisi n aturan fuzzy dalam bentuk IF-THEN. Fire strength (nilai keanggotaan anteseden atau α) akan dicari pada setiap aturan. Apabila aturan lebih dari satu, maka akan dilakukan agregasi semua aturan. Selanjutnya pada hasil agregasi akan dilakukan defuzzy untuk mendapatkan nilai crisp sebagai output sistem. Berikut ini adalah penjelasan mengenai metode FIS Sugeno. 2.3.1 Metode Sugeno Metode sistem inferensi fuzzy sugeno disebut juga metode sistem inferensi fuzzy TSK yang diperkenalkan oleh Takagi, Sugeno dan Kang. Output dari sistem inferensi fuzzy diperlukan 4 tahap : 1. Tahap fuzzifikasi Fuzzifikasi merupakan proses mentransformasikan data pengamatan kedalam bentuk himpunan fuzzy (Jang, 1997). 2. Pembentukan aturan dasar data fuzzy Aturan dasar fuzzy mendefinisikan hubungan antara fungsi keanggotaan dan bentuk fungsi keanggotaan hasil. Pada metode sugeno output (konsekuen) sistem tidak berupa himpunan fuzzy tetapi berupa konstanta atau persamaan linier. Menurut Cox (1994) metode TSK terdiri dari dua jenis, yaitu : a. Model fuzzy sugeno orde nol Secara umum bentuk fuzzy sugeno orde nol adalah : IF (X1 is A1 )(X2 is A2 )(X3 is A3)(XNis AN) THEN z=k Dengan Ai adalah himpunan fuzzy ke –i sebagai anteseden dan k adalah konstanta tegas sebagai konsekuen. b. Model fuzzy sugeno orde satu Secara umum bentuk fuzzy sugeno orde satu adalah : IF (X1 is A1 )(X2 is A2 )(X3 is A3)(XNis AN) THEN z=p1*x1+…+pn*xn+q 16 Dengan Ai adalah himpunan fuzzy ke–i sebagai anteseden, Pi konstanta tegas ke-i dan q konstanta pada konsekuen. 3. Komposisi aturan Apabila sistem terdiri dari beberapa aturan, maka inferensi diperoleh dari kumpulan dan korelasi antar aturan yaitu menghitung hasil (3) Keterangan dari persamaan (3) yaitu R banyaknya rule, ke-r dan fire strength output pada anteseden aturan ke-r 4. Penegasan (defuzzifikasi) Pada proses ini output berupa bilangan crisp. Defuzifikasi dilakukan dengan cara mencari nilai rata-ratanya yaitu: (4) Metode defuzzifikasi ini dinamakan metode bobot rata-rata terpusat. 2.3.2 Metode Tsukamoto Pada metode Tsukamoto, implikasi setiap aturan berbentuk implikasi“Sebab-Akibat”/Implikasi “Input-Output” dimana antara anteseden dan konsekuen harus ada hubungannya. Setiap aturan direpresentasikan menggunakan himpunan-himpunan fuzzy, dengan fungsi keanggotaan yang monoton. Kemudian untuk menentukan hasil tegas (Crisp Solution) digunakan rumus penegasan (defuzifikasi) yang disebut “Metode rata-rata terpusat” atau “Metode defuzifikasi rata-rata terpusat (Center Average Deffuzzyfier) (Setiadji, 2009: 200). Untuk lebih memahami metode Tsukamoto, perhatikan Contoh 2.1. Contoh 2.1: Misalkan ada 2 variabel input, Var-1 (x) dan Var-2(x), serta variabel output, Var-3(z), dimana Var-1 terbagi atas 2 himpunan yaitu A1 dan A2. Var-2 terbagi atas 2 himpunan B1 dan B2, Var-3 juga terbagi atas 2 himpunan yaitu C1 dan C2 (C1 dan C2 harus monoton). Ada 2 aturan yang digunakan, yaitu: [R1] IF (x is A1) and (y is B2) THEN (z is C1) [R2] IF (x is A2) and (y is B1) THEN (z is C2) Pertama-tama dicari fungsi keanggotaan dari masing-masing himpunan fuzzy dari setiap aturan, yaitu himpunan A1, B2 dan C1 dari aturan fuzzy [R1], dan himpunan A2, B1 dan C2 dari aturan fuzzy [R2]. Aturan fuzzy R1 dan R2 17 dapat direpresentasikan dalam Gambar 2.4 untuk mendapatkan suatu nilai crisp Z. Gam bar 2.3 Inferensi dengan menggunakan Metode Tsukamoto (Sri Kusumadewi dan Sri Hartati, 2006:34) 2.4 Interaksi Manusia dan Komputer (IMK) Dalam bukunya, Shneiderman & Plaisant (2010:4-5), menuliskan bahwa interaksi antara manusia dan komputer dimulai dari menggabungkan suatu metode pengumpulan data dan susunan pengalaman intelektual dengan suatu tools yang dikembangkan dari computer science. Komputer dan user interface menjadi suatu dasar dari perkembangan pesat berbagai bidang profesi. Dari sini terlihat bahwa interaksi manusia dan komputer menjadi sangat penting karena merupakan suatu dasar pembelajaran mengenai hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna komputer (user interface) agar mudah digunakan oleh manusia tersebut. Dalam mendesain sistem terdapat aturan yang terkenal dan menjadi dasar dari perancangan sebuah interface sistem. Aturan tersebut dikenal dengan sebutan delapan aturan emas (8 Golden Rules) yaitu (Shneiderman & Plaisant, 2010: 88-89) : a. Konsistensi Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu, serta layar bantuan. b. Memungkinkan pengguna untuk menggunakan shortcut 18 Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas makro. c. Memberikan umpan balik yang informatif Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya. d. Merancang dialog untuk menghasilkan suatu penutupan Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan meberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya. e. Memberikan penanganan kesalahan yang sederhana Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan. f. Mudah kembali ke tindakan sebelumnya Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan; sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan. g. Mendukung tempat pengendali internal (internal locus of control) Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator daripada responden. h. Mengurangi beban ingatan jangka pendek Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan. 19 Setelah mengetahui aturan-aturan yang penting dalam merancang sebuah sistem antarmuka, perlu juga mengetahui suatu ukuran yang digunakan dalam mengevaluasinya. Faktor manusia sangat berperan dalam hal ini karena tujuan dibuatnya sistem antarmuka ini agar pengguna dapat berinteraksi dengan mudah. Terdapat lima kategori yang dijadikan ukuran evaluasi antarmuka ini yaitu (Shneiderman & Plaisant, 2010: 32): 1. Waktu pembelajaran (time to learn) Berapa lama waktu yang dibutuhkan oleh anggota dari komunitas pengguna untuk mempelajari cara menggunakan perintah-perintah yang digunakan untuk menyelesaikan suatu tugas. 2. Kecepatan kinerja (speed of performance) Berapa lama waktu yang diperlukan untuk menyelesaikan sebuah tugas. 3. Tingkat kesalahan pengguna (rate of errors by users) Berapa banyak dan apa saja jenis kesalahan yang terjadi saat pengguna mengerjakan tugasnya. Meskipun waktu untuk membuat dan memperbaiki kesalahan dapat dimasukkan ke dalam kecepatan kinerja, namun penanganan kesalahan merupakan hal yang sangat penting dalam penggunaan antarmuka dan membutuhkan pembelajaran yang lebih mendalam. 4. Daya ingat jangka panjang (retention over time) Seberapa baik pengguna mempertahankan pengetahuannya dan tetap mengingatnya setelah sejam, sehari atau bahkan seminggu. Daya ingat sering dikaitkan dengan waktu pembelajaran dan biasanya frekuensi penggunaan memainkan peranan yang penting. 5. Kepuasan subjektif (subjective satisfication) Seberapa besar rasa suka pengguna terhadap berbagai aspek interface. Hal ini dapat diketahui dengan melakukan wawancara atau survey kepada pengguna. 2.5 Flowchart 2.5.1 Pengertian dan Jenis Flowchart Flowchart merupakan gambar atau bagan yang memperlihatkan suatu algoritma, urutan dan hubungan antar proses beserta instruksinya, yang 20 menjelaskan urutan proses tersebut dalam berbagai jenis simbol dan menghubungkannya dengan garis penghubung. Flowchart merupakan langkah awal pembuatan program yang membuat urutan proses lebih jelas sehingga membantu analis dan programmer lebih mudah berkomunikasi, menganalisis dan memecahkan permasalahan, menambahkan suatu proses, atau memproses dokumentasi. Ada beberapa jenis flowchart, diantaranya adalah : 1. Bagan alir sistem (systems flowchart) Bagan alir sistem dapat didefinisikan sebagai bagan yang menunjukan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem. 2. Bagan alir program (program flowchart) Bagan alir program ini dihasilkan dari bagan alir sistem yang merupakan keterangan yang lebih rinci tentang bagaimana setiap langkah program atau prosedur sesungguhnya dilaksanakan dalam urutan yang tepat saat terjadi. Bagan alir program terdiri dari dua macam, yaitu bagan alir logika program (program logic flowchart) dan bagan alir program komputer terinci (detailed computer program flowchart). (Nilawati, 2009) 2.5.2 Simbol dan Notasi Flowchart Simbol dan notasi flowchart merupakan alat bantu yang menggambarkan proses dalam program. Simbol-simbol yang biasa dipakai adalah simbol standar yang dikeluarkan oleh ANSI dan ISO. Simbol ini dibagi menjadi tiga kelompok yaitu (Nilawati, 2009): 1. Flow direction symbols Simbol ini digunakan untuk menghubungkan antara simbol yang satu dengan simbol lainnya. 21 Tabel 2.1 Flow Direction Symbols (Nilawati, 2009) Simbol Keterangan Simbol arus/flow : menyatakan jalannya arus suatu proses Simbol communication link : menyatakan transmisi data dari suatu lokasi ke lokasi lain Simbol connector : menyatakan sambungan dari proses ke proses lainnya dalam halaman yang sama Simbol offline connector : menyatakan sambungan dari proses ke proses lainnya dalam halaman yang berbeda 2. Processing Symbols Simbol ini menunjukkan jenis operasi pengolahan dalam suatu prosedur. Tabel 2.2 Processing Symbols (Nilawati, 2009) Simbol Keterangan Simbol process : menyatakan suatu tindakan/proses yang dilakukan oleh komputer Simbol decision : menunjukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan (ya/tidak) Simbol terminal : menyatakan permulaan atau akhir suatu program Simbol predefined process : menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal Simbol manual : menyatakan suatu tindakan/proses yang tidak dilakukan oleh komputer 3. Input/Output Symbols 22 Simbol ini menunjukkan jenis peralatan yang digunakan sebagai media input atau output. Tabel 2.3 Input/Output Symbols (Nilawati, 2009) Simbol Keterangan Simbol input/output : menyatakan proses input atau output tanpa tergantung jenis peralatannya Simbol manual input : memasukkan data secara manual dengan menggunakan online keyboard Simbol punched card : menyatakan input yang berasal dari kartu atau output ditulis ke kartu Simbol disk storage : menyatakan input berasal dari disk atau output disimpan ke disk Simbol magnetic tape : menyatakan input berasal dari pita magnetis atau output disimpan ke dalam pita magnetis Simbol display : mencetak keluaran dalam layar monitor Simbol document : mencetak keluaran dalam bentuk dokumen (melalui printer) 2.6 Data Flow Diagram (DFD) Menurut Sutabri (2003:163) Data Flow Diagram adalah suatu network yang menggambarkan suatu sistem automat/komputerisasi, manualisasi atau gabungan dari keduanya, yang penggambarannya disusun dalam bentuk komponen sistem yang saling berhubungan sesuai dengan aturan mainnya. Adapun simbol dan keterangannya adalah sebagai berikut : 1. External Entity, merupakan simbol yang mewakili elemen yang berada di luar sistem, tetapi memiliki hubungan interaksi dengan sistem. External Entity Gambar 2.4 External Entity (Sutabri, 2003) 23 2. Proses, merupakan simbol yang mewakili kegiatan untuk mengubah data menjadi informasi atau masukan untuk data lain. Proses Gambar 2.5 Proses (Sutabri, 2003) 3. Data Store, merupakan simbol yang mewakili tempat penyimpanan dari data dan dapat dipergunakan bila dibutuhkan. Data Store Gambar 2.6 Data Store (Sutabri, 2003) 4. Data flow, merupakan simbol yang mewakili arah aliran data yang berasal dari satu proses, data store atau elemen lingkungan menuju ke satu proses, data store atau enviromental element lainnya. Gambar 2.7 Simbol Data Flow (Sutabri, 2003) 2.6.1 Levelisasi DFD Levelisasi pada DFD adalah penggambaran DFD dengan membagi DFD berdasarkan tingkatan dari tingkatan yang paling tinggi sampai dengan tingkat paling bawah yaitu : a. Diagram Konteks (diagram level 0 ) Diagram ini dibuat untuk menggambarkan sumber serta tujuan data yang akan diproses atau dengan kata lain diagram tersebut untuk menggambarkan sistem secara umum atau global dari keseluruhan sistem yang ada. 24 b. Diagram Zero (diagram level 1) Diagram ini dibuat untuk menggambarkan tahapan proses lebih terperinci dari diagram konteks. c. Diagram Primitif / Detail ( diagram level 2 ) Diagram ini dibuat untuk menggambarkan arus data secara lebih mendetail lagi dari tahapan proses yang ada di dalam diagram nol (Tavri M., 1989:41). 2.7 Entity Relationship Diagram(ERD) Menurut Al Fatta (2007:121) Entity Relationship Diagram adalah gambar atau diagram yang menunjukkan informasi dibuat, disimpan, dan digunakan dalam sistem bisnis. Adapun simbolnya sebagai berikut . Tabel 2.4 Tabel Notasi Entity Relation Diagram (Fatta Al, 2007) Simbol Keterangan Entitas, adalah suatu objek yang dapat diidentifikasi dalam lingkungan pemakai Relasi, menunjukkan adanya hubungan antara sejumlah entitas yang berbeda Atribut, berfungsi mendeskripsikan karakter entitas (atribut yang berfungsi sebagai key diberi garis bawah) Garis, sebagai penghubung antar relasi dengan entitas, relasi dan entitas dengan atribut Dalam Entity Relation Diagram hubungan (relasi) dapat terdiri dari sejumlah entitas yang disebut dengan derajat relasi. Derajat relasi maksimum disebut dengan kardinalitas sedangkan derajat minimum disebut dengan modalitas. Jadi kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. 25 ERD menggunakan sejumlah notasi dan simbol untuk menggambarkan struktur dan hubungan antar data, pada dasarnya ada tiga macam simbol yang digunakan yaitu: 1. Entity, merupakan suatu objek yang datanya diidentifikasikan dalam lingkungan pemakai, sesuatu yang penting bagi pemakai dalam konteks sistem yang akan dibuat. Entitas Relasi Atribut 2. Attribute, merupakan bagian dari Entity atau suatu field yang menunjukkan suatu data yang sejenis, setiap entitas harus memiliki atribut, contoh: Nama, Nip, Alamat, dll. 3. Relationship, sebagaimana halnya entitas maka dalam hubungan pun harus dibedakan antara hubungan atau bentuk hubungan antar entitas dengan isi dari hubungan itu sendiri. Hubungan antara dua entity dapat dikategorikan menjadi tiga macam, yaitu: a. One to One Relationship Hubungan antara entitas pertama dan kedua adalah satu berbanding satu. b. One to Many Relationship Hubungan antara entitas pertama dan kedua adalah satu berbanding banyak. c. Many to Many Relationship Hubungan kedua entitas adalah banyak berbanding banyak. Pemetaan E-R Diagram perlu dilakukan untuk menterjemahkan bentuk perancangan sistem ke bentuk tabel (skema relasi) sebagai langkah awal implementasi program dengan melakukan tujuh langkah pemetaan berikut : 1. Untuk setiap non weak entity (strong entity) , dibuat relasi yang terdiri dari semua atribut menjadi tabel. 2. Setiap entitas lemah (weak entity) L dari entitas kuat K menjadi tabel yang terdiri dari semua atribut dari L ditambah primary key dari K. Primary key L menjadi kombinasi dari key L dan primary key K. 3. Untuk setiap relasi 1:1 (one to one) antara entitas S dan T buatlah masing masing tabel dengan masing-masing atribut semua, tetapi di salah satu tabel jadikan primary key dari tabel yang lain sebagai foreign keynya. 26 4. Untuk setiap relasi 1: n (one to many): tambah di entitas yang sisi “n” primary key dari entitas yang sisi “1” sebagai foreign key. 5. Untuk setiap relasi n:m akan tercipta satu tabel baru yang disebut intermediet tabel dengan primary key di masing-masing sisi many menjadi foreign key pada tabel tersebut. 6. Untuk setiap multi value atribut dari entitas L, buat relasi dengan atributnya adalah atribut L itu sendiri yang ditambah dengan atribut dari primary key dari L. 7. Untuk setiap non binary relationship, buat relasi dengan atributnya adalah primary key dari entitas yang berhubungan, dan juga dimasukkan atribut yang berada dibagian relationship 2.8 Perangkat Lunak Berbasis Web dan Bahasa Pemrograman 2.8.1 Perangkat Lunak Definisi software adalah : a. Sebuah instruksi yang ketika dieksekusi akan menampilkan fitur-fitur, fungsi, dan sebuah tampilan yang diinginkan b. Struktur data yang dapat membuat sebuah program memanipulasi informasi c. Deskripsi informasi baik dalam bentuk nyata ataupun semu yang menjelaskan tentang operasi dan kegunaan program. (Pressman, 2010:4) 2.8.2 Web Application Terdapat tujuh cakupan perangkat lunak komputer yang sampai saat ini masih terus dikembangkan, di antaranya adalah aplikasi web. Aplikasi web yang biasa disebut WebApps merupakan kategori perangkat lunak yang berpusat pada jaringan yang dapat menjangkau susunan aplikasi secara luas. Secara sederhana, WebApps merupakan kumpulan dari berkas-berkas hypertext yang menampilkan informasi menggunakan tulisan dan gambar yang terbatas. Saat web terus dikembangkan dan muncul Web 2.0 yang merupakan perkembangan dari Web 1.0, web dapat berinteraksi lebih baik dengan pengguna. WebApps telah berevolusi menjadi suatu lingkungan komputerisasi yang menarik yang tidak hanya menyediakan fitur-fitur 27 mandiri, fungsi komputer, dan isi kepada pengguna, namun juga dapat terhubung dengan database dan dapat digunakan sebagai aplikasi bisnis, yang artinya lebih interaktif terhadap pengguna. WebApps yang telah berevolusi dan berkembang hingga kini, memang merupakan salah satu kategori software. Namun, Powell mengatakan bahwa WebApps berbeda karena WebApps merupakan campuran antara publikasi tercetak dan pengembangan perangkat lunak, antara pemasaran dan komputerisasi, antara komunikasi internal dan hubungan external, dan antara seni dan teknologi. Atribut-atribut di bawah ini merupakan hal-hal yang berpengaruh dalam keseluruhan WebApps, yaitu (Pressman, 2010:11-12) : 1. Network Intensiveness WebApps tak dapat dipisahkan dari jaringan karena berada dalam jaringan itu sendiri, dimana banyak kebutuhan yang harus dilayani. Jaringan tersebut tentunya harus dapat melayani pengguna darimana saja dan kapan saja, sehingga harus dapat diakses secara mendunia ataupun diakses secara terbatas. 2. Concurrency Banyak pengguna yang dapat mengakses WebApps secara bersamaan pada suatu waktu. 3. Unpredictable Load Banyaknya pengguna tidak dapat diprediksi karena bisa saja hari ini hanya 1000 pengguna dan besok bisa terdapat lebih dari 10.000 pengguna. 4. Performance Performa dari WebApps perlu diperhatikan misalnya saja dalam hal mengakses sebuah situs apakah pengguna harus menunggu loading yang lama atau tidak. Tentunya pengguna tidak akan mau berlama-lama menunggu loading. 5. Availability Ketersediaan di sini maksudnya adalah bahwa pengguna menginginkan akses 24/7/365 atau dengan kata lain 100 persen situs yang diakses selalu tersedia. Padahal, bisa saja situs tersebut sedang dalam masa pemeliharaan /maintenance. 6. Data Driven 28 Fungsi utama sebuah WebApps adalah untuk menampilkan pesan berupa tulisan, gambar, suara atau video kepada pengguna. Dimana perlu sebuah tempat penyimpanan yang cukup besar yang bisa menampungnya seperti database yang letaknnya terpisah dari pemrograman web. 7. Content Sensitive Perlu diperhatikan kualitas dan keindahan konten yang akan ditampilkan dalam sebuah WebApps. 8. Continuous Evolution Perubahan yang terjadi dalam WebApps bisa terjadi setiap detiknya guna memenuhi kebutuhan pengguna. 9. Immediacy WebApps dapat dibuat dan diluncurkan dalam waktu yang relatif lebih cepat dibandingkan aplikasi software lainnya. 10. Security Pengguna WebApps sangatlah banyak dan tak terbatas, oleh karena itu dibutuhkan sistem keamanan yang kuat untuk mencegah terjadinya halhal yang tidak diinginkan. 11. Aesthetics Keindahan tampilan merupakan hal utama yang akan langsung terlihat oleh pengguna, yang membuatnya menarik untuk digunakan. Oleh karena itu, hal keindahan dan kemudahan interaksinya dengan pengguna menjadi salah satu hal penting yang tak boleh diabaikan. 2.8.3 Pemrograman Web dengan PHP Sebuah halaman web yang hanya dibuat dari HTML bersifat statis. Semua pengguna melihat halaman yang sama. Tentu hal ini akan bertolak belakang dengan prinsip-prinsip web application. Oleh karena itu diperlukan halaman web yang bersifat dinamis dimana pengguna yang berbeda dapat melihat halaman web yang berbeda. Contohnya saja pengguna A yang melihat halaman sebuah web dan memilih kategori makanan, sedangkan pengguna A melihat halaman web yang sama dan memilih kategori pakaian. Kedua pengguna tersebut mengakses halaman web pada waktu yang bersamaan tapi dapat melihat halaman kategori yang berbeda. Untuk membuat hal ini menjadi mungkin, maka diperlukan bahasa lain sebagai tambahan dari HTML. 29 Salah satu bahasa untuk membuat web menjadi dinamis adalah JavaScript. JavaScript sangat berguna untuk berbagai kepentingan seperti fungsi mouse-overs atau memvalidasi informasi yang pengguna masukkan ke dalam formulir pada web. JavaScript lebih banyak digunakan untuk interaksi dengan user. Namun, JavaScript kurang interaktif dengan database. PHP merupakan salah satu bahasa yang sangat cocok dengan keperluan database. PHP dapat menerima dan memvalidasi informasi yang user masukkan dalam formulir web dan juga memasukkannya ke database. PHP erat kaitannya dengan MySQL sebagai database. PHP merupakan bahasa scripting yang didesain khusus untuk menciptakan web yang dinamis. PHP memiliki banyak fitur yang membuat desain sebuah web menjadi lebih indah dan lebih mudah dibuat. PHP merupakan singkatan dari HyperText Preprocessor. Pada awal pengembangannya oleh Rasmus Lerdorf, PHP ini dikenal dengan nama Personal Home Page tools. Saat PHP menjadi lebih terkenal, namanya kemudian disesuaikan. PHP memiliki sintaks yang mirip dengan bahasa C. Oleh karena itu, bagi pengguna yang pernah belajar bahasa C, tidak akan merasa kesulitan untuk memulai belajar PHP. Kepopuleran PHP berkembang dikarenakan banyaknya keuntungan yang didapat pengguna. Beberapa di antaranya adalah : 1. Performance : PHP ini sangat cepat. Karena di-embedd pada koding HTML, maka waktu responnya cenderung cepat. 2. Scalability : Rasmus Lerdorf sering menyebut bahwa PHP adalah “shared-nothing” architecture. Artinya adalah, pengguna PHP dapat mengimplementasikan PHP dengan efektif dan murah untuk skala yang besar. 3. Database Integration : PHP memiliki kemampuan koneksi langsung ke berbagai sistem database. Selain MySQL, PHP juga bisa dikoneksikan ke PostgreSQL, Oracle, dbm, FilePro, DB2, Hyperwave, Informix, InterBase, dan Sybase. 4. Built-in Libraries : PHP didesain untuk merancang web, sehingga memiliki banyak fungsi untuk membuat web yang baik. 5. Cost : PHP dapat diunduh gratis dan langsung digunakan untuk keperluan pembuatan web (open source). 30 6. Ease of Learning PHP : Sintaks pada PHP merupakan sintaks dasar yang dapat dijumpai pada bahasa C atau Perl. 7. Object-Oriented Support : PHP versi 5 memiliki fitur object-oriented yang baik dan lengkap. 8. Portability : PHP tersedia untuk berbagai sistem operasi. 9. Flexibility of Development Approach : PHP akan mempermudah pengerjaan tugas yang pada dasarnya mudah dan beradaptasi untuk mengerjakan tugas yang rumit menggunakan framework seperti Model View Controller. 10. Source Code : PHP berbasis open source sehingga penggunanya tidak perlu menunggu hadirnya patch terbaru PHP untuk dapat memodifikasi source code sesuai dengan keinginan pengguna. 11. Availability of Support and Documentation : Dokumentasi PHP dan komunitas penggunanya memiliki banyak informasi yang dapat dilihat oleh pengguna. (Welling & Thomson, 2009:4-6) 2.8.4 Waterfall Model Proses merupakan kumpulan dari aktivitas, aksi dan tugas yang dilaksanakan untuk membuat suatu produk. Aktivitas akan langsung mencapai tujuannya dan digunakan untuk aplikasi, besarnya sebuah proyek, kompleksitas usaha, dan rekaya perangkat lunak apa yang akan digunakan. Aksi meliputi kumpulan tugas-tugas untuk membuat suatu produk. Tugas memfokuskan diri pada detail sasaran yang sudah terbentuk untuk menghasilkan hasil yang nyata. Proses itu sendiri hanyalah sebuah definisi yang mendeskripsikan bagaimana pembuatan sebuah produk (misalnya software) dilakukan. Untuk menjalankan proses tersebut maka dibuatlah suatu kerangka proses (process framework). Kerangka proses ini merupakan fondasi dasar untuk menghasilkan suatu rekayasa piranti lunak yang lengkap dengan cara mengindentifikasi sejumlah aktivitas yang dapat digunakan untuk seluruh proyek perangkat lunak, tidak peduli ukuran dan kompleksitasnya. Pada umumnya, kerangka proses terdiri dari 5 aktivitas yaitu : 1. Communication 31 Sebelum projek dapat mulai dikerjakan, penting untuk mengetahui kebutuhan yang menjadi tujuan dibuatnya projek tersebut. Oleh karena itu, komunikasi dan kolaborasi sangatlah penting untuk mengetahui hal-hal apa saja yang dibutuhkan untuk memenuhi tujuan software seperti misalnya fungsi dan fitur yang diinginkan ada pada software. 2. Planning Untuk membangun sebuah projek software yang merupakan hal yang kompleks, diperlukan suatu peta atau panduan sehingga tugas-tugas yang ada dapat dikerjakan secara tersusun dan terpadu. Panduan yang disebut software project plan tersebut akan mendeskripsikan tugas-tugas teknikal yang harus dilakukan, resikonya, sumber-sumber yang dibutuhkan, bagianbagian produk yang harus dihasilkan, dan jadwal pekerjaan. 3. Modelling Pekerjaan apapun membutuhkan suatu model agar lebih mudah melihat bentuk nyata dari produk yang akan dihasilkan. Model tersebut misalnya saja berupa gambar sketsa perkiraan bentuk produk tersebut akan seperti apa. Dalam pembuatan software, model akan membuat pemahaman akan kebutuhan software menjadi lebih dalam dan desainnya juga membantu dalam mencapai tujuan tersebut. 4. Construction Pada bagian ini akan dibuat suatu code atau biasa disebut coding yang merupakan bantuan secara komputasi. Setelah itu hasil coding-an tersebut akan diuji apakah ada kesalahan yang harus diperbaiki atau tidak. 5. Deployment Produk software yang telah jadi akan dipublikasikan untuk dicoba oleh konsumen yang akan membantu mengevaluasi hasil produk tersebut untuk dijadikan feedback demi perkembangan produk selanjutnya. Terkadang ada kalanya saat kebutuhan yang diperlukan dalam sebuah penyelesaian permasalahan dapat dimengerti dengan mudah, saat pekerjaan mengalir begitu saja dari communication hingga deployment dalam garis lurus. Situasi ini dapat terjadi ketika membuat sebuah sistem yang diadaptasi dengan baik atau penambahan pada sistem yang telah ada. Hal ini juga dapat terjadi pada usaha pembuatan sebuah program baru namun hanya jika kebutuhan permasalahan jelas dan stabil. 32 Waterfall model yang terkadang disebut classic life style, menyarankan pendekatan sistematis dan berurutan dalam membuat sebuah software. Pembuatan software tersebut dimulai dari spesifikasi dan kebutuhan user dan diproses lebih lanjut melalui planning, modeling, construction, dan deployment, kemudian diakhiri dengan dukungan yang akan selalu diberikan setelah software tersebut jadi. Berikut merupakan gambaran waterfall model (Pressman, 2010: 39). Gambar 2.8 Waterfall Model Process (Pressman, 2010:39) 2.9 XAMPP Xampp merupakan sebuah tool yang menyediakan beberapa paket perangkat lunak ke dalam satu buah paket. Dengan menginstall XAMPP, tidak perlu lagi melakukan instalasi dan konfigurasi web server Apache, PHP 5, dan MySQL secara manual. XAMPP akan menginstalasi dan mengkonfigurasikannya secara otomatis (Arief Ramadhan & Hendra Saputra , 2005:2) . 2.10 Apache Menurut pendapat Sukarno, M., (2006, hal:3-4) Apache adalah paket aplikasi yang digunakan untuk web server yang handal dan stabil. Pada dasarnya web server lainnya, Apache hanya menunggu adanya permintaan. (request) yang di ajukan client melalui browser (Mozila, Netscape, Opera, dan lain-lain). Setelah ada request dari client, maka langkah selanjutnya web server akan memproses request tersebut dan mengirimkan data-data yang di inginkan client. Agar web server dapat berkomunikasi dengan web client (Browser), maka dibutuhkan suatu protokol yang mengatur komunikasi antara keduanya, protokol tersebut adalah Hyper Text Transfer Protocol (HTTP). Protokol ini berfungsi untuk transfer file HTML dan web. Jadi dapat disimpulkan Apache adalah perangkat lunak yang merupakan paket yang ada pada aplikasi pemrograman web. 33 2.11 MySQL Pendapat Sukarno (2006, hal:3) mengenai pengertian MySQL adalah merupakan perangkat lunak untuk sistem manajemen database (database management system). Karena sifatnya yang open source dan memiliki kamampuan menampung kapasitas yang sangat besar, maka MySQL menjadi database yang sangat popular dikalangan programmer web. Pada bulan Mei 1996, MySQL versi 1.0 berhasil dirilis namun penggunanya terbatas 4 orang saja. Namun di bulan Oktober di tahun yang sama versi 3.11.0 dilepaskan ke publik tapi belum bersifat open source. Bulan Juni 2000, MySQL AB mengumumkan bahwa sejak versi 3.23.19, MySQL merupakan software database yang bebas berlisensi GPL atau General Public License yang open source. Mulanya MySQL hanya berjalan di sistem operasi linux namun pada saat MySQL versi 3.22 tahun 1998-1999 sudah tersedia di berbagai platform termasuk windows. Ini terjadi karena MySQL menjadi semakin populer dan dilirik banyak orang karena kestabilan dan kecepatan yang meningkat. Beberapa keunggulan dari MySQL adalah: 1. Mampu menangani jutaan user dalam waktu yang bersamaan. 2. Mampu menampung lebih dari 50.000.000 record. 3. Sangat cepat mengeksekusi perintah. 4. Memiliki user privilege yang mudah dan efisien. 34