Perancangan Proses .1 Diagram Alir Data

4.3.6.1.4 Diagram Alir Data Level 2 – Mengelola Rumah Makan

Diagram Alir Data level 2 Yogyakarta ditunjukkan dengan gambar 4.28. R1 Pengguna R2 Rumah Makan R3 Makanan R4 JenisMakanan Administrator D at a R umah Ma ka n D at a R um ah Maka n Data Makanan Data Jenis Makanan Mitra Bisnis Data Rumah Makan 2.4 Mengubah Data Makanan 2.3 Menambah Data Makanan 2.2 Mengubah Data Rumah Makan 2.1 Menambah Data Rumah Makan Data Rumah Makan D at a R umah Mak an Data Makanan Data Makanan D at a Maka na n D at a Maka na n Data Makanan Data Jenis Makanan Data Makanan Gambar 4.28 DFD level 2 – Mengelola Rumah Makan

4.3.6.1.5 Diagram Alir Data Level 2 – Mengelola Kriteria

Diagram Alir Data level 2 ditunjukkan dengan gambar 4.29. Administrator R6 Kriteria Data kriteria Data kriteria 3.2 Mengubah Data Kriteria 3.1 Menambah Kriteria Kualitatif Tambahan Data kriteria Data kriteria Gambar 4.29 DFD level 2 – Mengelola Kriteria

4.3.6.1.6 Diagram Alir Data Level 2 – Mencari Rekomendasi Rumah Makan

Diagram Alir Data level 2 - Memberi Penilaian Rumah Makan ditunjukkan dengan gambar 4.30. R2 Rumah Makan R3 Makanan R4 JenisMakanan R5 Penilaian Pengguna Da ta P en car ian Da ta Ru ma h M akan Hasil Bobot Da ta Je nis Ma kan an R6 Kriteria Data Rekomendasi Makanan Data kriteria 4.4 Perekomendasian Rumah Makan 4.1 Pemilahan Rumah Makan dan Makanan Da ta Ma kan an Hasil Perangkingan Da ta M akan an 4.3 Perangkingan 4.2 Perhitungan Bobot Data Penilaian Gambar 4.30 DFD level 2 – Mencari Rekomendasi Makan

4.3.6.1.7 Diagram Alir Data Level 2 – Memberi Penilaian Rumah Makan

Diagram Alir Data level 2 Proses 5 ditunjukkan dengan gambar 4.31. R1 Pengguna R2 Rumah Makan R3 Makanan R4 JenisMakanan R5 Penilaian Pengguna N ila i Nilai Data Pengguna Data Rumah Makan Data Rumah Makan Nilai Nilai 5.1 Menambah Penilaian Rumah Makan Nil ai Ni lai Nil ai 5.4 Merubah Penilaian Makanan 5.3 Menambah Penilaian Makanan 5.2 Merubah Penilaian Rumah Makan Nilai Data Pengguna Data Peng guna Data Pen ggun a Data Pengguna Data Makanan Gambar 4.31 DFD level 2 - Memberi Penilaian Rumah Makan

4.3.6.2 Spesifikasi Proses

Spesifikasi proses merupakan deskripsi detail untuk setiap proses dalam Digram Alir Data Level 2 Proses 4. Proses ini berfungsi untuk menjelaskan secara lengkap tentang deskripsi proses, masukan dan keluaran proses, serta proses berupa pseudocode.

4.3.6.2.1 Menghitung Jarak

Nama : Menghitung jarak b. Deskripsi : Menghitung jarak antar dua koordinat c. Masukan Aliran Data: - Koordinat a, koordinat b d. Proses Pseudocode: jarak kilometer dimensi mean radius bumi R = 6371; coord_a = explode,,coord_a; coord_b = explode,,coord_b; dLat = radcoord_b[0] - coord_a[0]; dLong = radcoord_b[1] - coord_a[1]; a = sindLat2 sindLat2 + cosradcoord_a[0] cosradcoord_b[0] sindLong2 sindLong2; c = 2 atan2sqrta, sqrt1-a; d = R c; hasil akhir dalam satuan meter return number_formatd1000, 4, ., ; e. Keluaran Aliran Data: - Array Makanan.

4.3.6.2.2 Pemilihan Makanan dan Rumah Makan

a. Nama : Pemilihan Makanan dan Rumah Makan b. Deskripsi : Memilah Data yang akan di proses dalam pembobotan c. Masukan Aliran Data: - kata kunci, lokasi, radius maksimum. d. Proses Pseudocode: query = select from makanan inner join rumah_makan usingid_rm where makanan.aktif=1 ; ifcountarray_jenis0{ for i = 0; i countarray_jenis; i++ { query = query . AND namaMK like .array_jenis[i].; } } query = query. order by id_makanan; q = execute query; arr_alternatif_id=array; set h from q; while h has next { ifdistHaversineinput_coord, h[lokasi]input_jarak{ array_pusharr_alternatif_id, h[id_makanan]; } } e. Keluaran Aliran Data: - Array Makanan.

4.3.6.2.3 Hitung Preferensi

a. Nama : Hitung Preferensi b. Deskripsi : Menghitung Preferensi dua makanan c. Masukan Aliran Data: - ID makanan1, ID makanan2, jenis makanan, arah a ke btruefalse, koordinat pengguna. d. Proses Pseudocode: if id_alternatif1 == id_alternatif2 { return 0; } else { set h from kriteria; k[] = h[id_kriteria]; i++; minmax[] = h[minmax]; t[] = h[tipe_preferensi]; nilai_p[] = h[p]; nilai_q[] = h[q]; nilai_gausian[] = h[s]; for i = 0; i n; i++ { if k[i] == 1 { set h from makanan with id_alternatif1 if input_id_jenis_makanan == h[0] { a1 = 1; } else { a1 = 0; } set h from makanan with id_alternatif2 if input_id_jenis_makanan == h[0] { a2 = 1; } else { a2 = 0; } } if k[i] == 2 { set h from makanan with id_alternatif1; a1 = h[0]; set h from makanan with id_alternatif2; a2 = h[0]; } elseif k[i] == 3 { set h from rumah makan join makanan with id_alternatif1; a1 = distHaversineh[0], input_coord; set h from rumah makan join makanan with id_alternatif2; a2= distHaversineh[0], input_coord; } else { set keterangan to h from kriteria with id_kriteria=k[i]; tempKriteria = h[0]; if tempKriteria == makanan { set AVGnilai from penilaian to h with id_alternatif1 and id_kriteria= k[i]; tempnilai = h[0]; a1 = tempnilai; set AVGnilai from penilaian to h with id_alternatif2 and id_kriteria= k[i]; tempnilai = h[0]; a2 = tempnilai; } else { set AVGnilai from penilaian join makanan to h with id_alternatif1 and id_kriteria= k[i]; tempnilai = h[0]; a1 = tempnilai; set AVGnilai from penilaian join makanan to h with id_alternatif2 and id_kriteria= k[i]; tempnilai = h[0]; a2 = tempnilai; } } cal = false; if minmax[i] == min { if a2 = a1 { pref1 = 0; cal = true; } else { pref1 = 1; pref2 = 0; cal = false; } } else { if a2 = a1 { pref1 = 0; cal = true; } else { pref1 = 1; pref2 = 0; cal = false; } } if cal == true { d = a1 - a2; switch t[i] { case 1: if d == 0 { pref2 = 0; } else { pref2 = 1; } break; case 2: if d = nilai_q[i] -1 and d = nilai_q[i] { pref2 = 0; } else { pref2 = 1; } break; case 3: if d = nilai_p[i] -1 and d = nilai_p[i] { pref2 = d nilai_p[i]; } else { pref2 = 1; } break; case 4: if d = nilai_q[i] and d = nilai_p[i] { pref2 = 0.5; } elseif d = nilai_q[i] { pref2 = 0; } else { pref2 = 1; } break; case 5: if d nilai_q[i] and d = nilai_p[i] { pref2 = d - nilai_q[i] nilai_p[i] - nilai_q[i]; } elseif d = nilai_q[i] { pref2 = 0; } else { pref2 = 1; } break; case 6: pref2 = 1 - pow-1 d, 2 2 pownilai_gausian[i], 2; break; } } tot_pref1 = 0; tot_pref2 = 0; tot_pref1 = tot_pref1 + pref1; tot_pref2 = tot_pref2 + pref2; } } if ab == true { return tot_pref1 n; } else { return tot_pref2 n; } } } e. Keluaran Aliran Data: - Array Makanan.

4.3.6.2.4 Perhitungan Bobot

a. Nama : Perhitungan Bobot b. Deskripsi : Memberi Bobot pada makanan dan rumah makan terkait terhadap setiap kriteria. - Untuk Setiap Makanan dan Rumah makan terkait, hitung Bobot LF,EF,NF. c. Masukan Aliran Data: - jenis dan kata kunci, koordinat, jarak maksimum. d. Proses Pseudocode: - Untuk Setiap makanan 1. Hitung LF function LFid_alternatif, jenis,input_coord,arr_alternatif_id { j = countarr_alternatif_id; tot_n = 0; for i = 0; i countarr_alternatif_id; i++ { for ii = 0; ii countarr_alternatif_id; ii++ { n = PREFERENSIarr_alternatif_id[ii], arr_alternatif_id[i], false, jenis,input_coord; } } for i = 0; i countarr_alternatif_id; i++ { if arr_alternatif_id[i] == id_alternatif { for ii = 0; ii countarr_alternatif_id; ii++ { n = PREFERENSIarr_alternatif_id[ii], arr_alternatif_id[i], false, jenis,input_coord; tot_n = tot_n + n; } } } ifj == 1{ return 1; }else{ return 1 j - 1 tot_n; } } 2. Hitung EF function EFid_alternatif, jenis,input_coord,arr_alternatif_id { j = countarr_alternatif_id; tot_n = 0; for i = 0; i countarr_alternatif_id; i++ { for ii = 0; ii countarr_alternatif_id; ii++ { n = PREFERENSIarr_alternatif_id[ii], arr_alternatif_id[i], true, jenis,input_coord; } } for i = 0; i countarr_alternatif_id; i++ { if arr_alternatif_id[i] == id_alternatif { for ii = 0; ii countarr_alternatif_id; ii++ { n = PREFERENSIarr_alternatif_id[ii], arr_alternatif_id[i], true, jenis,input_coord; tot_n = tot_n + n; } } } ifj == 1{ return 1; }else{ return 1 j - 1 tot_n; } } 3. Hitung NF function NFjenis,input_coord,input_jarak { array_jenis = array; array_jenis = split , jenis; arr_alternatif_id = filterMakanan; arr_result=array; for i = 0; i countarr_alternatif_id; i++ { arr_result1=new makanan; tempLF=LFarr_alternatif_id[i], jenis,input_coord,arr_alternatif_id; tempEF=EFarr_alternatif_id[i], jenis,input_coord,arr_alternatif_id; tot_n = tempLF - tempEF; arr_result1-setIDarr_alternatif_id[i]; arr_result1-setLFtempLF; arr_result1-setEFtempEF; arr_result1-setNFtot_n; array_pusharr_result, arr_result1; } } e. Keluaran Aliran Data: - Bobot setiap makanan dengan rumah makan terkait.

4.3.6.2.5 Perangkingan

a. Nama : Perangkingan b. Deskripsi : Mengurutkan Bobot setiap makanan - Untuk Setiap Makanan dan Rumah makan terkait, urutkan dari nilai bobot tertinggi hingga nilai bobot terendah. c. Masukan Aliran Data: - Data Makanan dan Rumah Makan terkait beserta bobot. d. Proses Pseudocode: sortarr_result, functionmakanan a, makanan b{ return a-getNF b-getNF; }; e. Keluaran Aliran Data: - Daftar Makanan dan Rumah Makan terkait yang terurut.

4.3.6.2.5 Perekomendasian Rumah Makan

a. Nama : Perekomendasian Rumah makan b.Deskripsi : Menampilkan rekomendasi makanan beserta rumah makan terkait. - Memberikan tampilan daftar rumah makan yang paling direkomendasikan. c. Masukan Aliran Data : - Daftar Makanan dan Rumah Makan terkait yang terurut. d. Proses Pseudocode: for Makanan i=0 hingga Makanan.length{ Print Makanan[i].harga, Makanan[i].jarak, Makanan[i].nama } e. Keluaran Aliran Data: - Tampilan Daftar makanan beserta data rumah makanharga, jarak, nama.

BAB V PENUTUP

5.1 Pengujian Perancangan

Pengujian perancangan dimaksudkan dalam mengevaluasi rancangan sistem untuk mendapatkan data-data yang lebih akurat dan objektif terhadap penilaian akan rancangan sistem yang telah dibuat. Kuesioner ini terdiri dari 9 pernyataan yang diedarkan secara online maupun langsung dengan jumlah responden yg adalah programmer yaitu 20 orang.

5.1.1 Pembuatan Kuesioner

Pernyataan-pernyataan yang diberikan dalam pengujian perancangan ini mengacu pada perancangan sistem dengan menggunakan metode MURREMaintainability Usabality Reusability Reliability Extendability. Metode ini berfungsi untuk mengukur kualitas perancangan sistem informasi yang diusulkan. Beberapa hal yang menjadi tolak ukur kualitas perancangan sistem, antara lain:  Maintainability Data rumah makan, perhitungan rekomendasi akan terus berkembang seiring bertambahnya jumlah rumah makanan yang ada, pengguna, penilaian pengguna. Data ini disimpan dalam tabel basis data.  Usability Rancangan antarmuka penggunan telah dibuat sesederhana mungkin sesuai tujuannya masing-masing. Jika terdapat bagian yang tidak dapat dimengerti dapat dilihat pada penjelasan antarmuka yang bersangkutan.  Reusability Beberapa bagian dari sistem dipecah-pecah sesuai fungsi masing-masing. Sehingga dapat digunakan kembali pada pengembangan selanjutnya ataupun pengembangan lain yang memerlukan fungsi-fungsi yang dipakai pakai system ini.  Reliability Sistem ini dirancang untuk menggunakan extensi peta yang sudah umum dipakai dan menggunakan rumus-rumus perhitungan yang baku. Sehingga hasil keluarannya dapat di ukur kebenarannya.  Extendability Bentuk-bentuk extensi yang dapat mendukung sistem ini seperti, bug management, category tree,special pages,tag extention, link extention, map extention, dan lain-lain. Sistem ini dirancang untuk menggunakan extensi peta, tidak menutup kemungkinan kedepan akan ada perubahan extensi peta yang akan digunakan. Skala yang dipergunakan pada kuesioner ini adalah skala likert yaitu membagi kategori menjadi beberapa bagian yaitu sangat tidak setuju, tidak setuju, netralragu, setuju dan sangat setuju. Sehingga kuesioner yang akan diisi oleh responden menjadi seperti di bawah ini. Tabel 5.1 Tabel Kuesioner untuk Responden No Pernyataan Tanggapan Anda STS TS N S SS 1 ER yang dirancang mudah dimengerti. 2 Rancangan sistem dapat diimplementasikan dengan bahasa pemrograman terkini Java,PHP,.NET. 3 Rancangan diagram Data Flow dijabarkan secara lengkap dalam beberapa level. 4 Dokumentasi dapat dipahami dengan jelas. 5 Use Case dan narasi Use Case menunjukkan langkah-langkah yang sesuai dengan rancangan kebutuhan pengguna Sistem Pendukung Keputusan Kuliner Yogyakarta. 6 Informasi pada rancangan antarmuka sederhana dan mudah dimengerti. 7 Bagian dari Algoritma, ER, DFD, Antarmuka Pengguna, Pseudocode dapat digunakan kembali untuk pengembangan selanjutnya pada sistem yang sama ataupun berbeda. 8 Perancangan sistem dapat memenuhi tujuan utama Sistem Pendukung Pengambilan Keputusan Kuliner Yogyakarta. 9 Perancangan sistem menunjukkan kemungkinan untuk bertumbuh dan beradaptasi dengan kebutuhan yang baru. Setiap kategori memiliki skornya masing-masing, skor terendah diberikan kepada kategori tidak setuju dengan skor 1, sedangkan skor tertinggi 5 diberikan pada kategori sangat setuju. Kategori Skor Sangat Tidak Setuju 1 Tidak Setuju 2 NetralRagu-ragu 3 Setuju 4 Sangat Setuju 5 Tabel 5.2 Tabel Skor Kategori Keterangan :  STS: Sangat Tidak Setuju.  TS : Tidak Setuju.  N : Netral  S : Setuju.  SS : Sangat Setuju.

5.1.2 Perhitungan Hasil Kuesioner

Setelah dilakukan penyebaran kuisioner yang diberikan pada responden, maka selanjutnya dilakukan rekap terhadap hasil kuisioner yang telah dikumpulkan. Total nilai dari 20 responden dan dicari jenis kategorinya berdasarkan skala likert. Kategori tersebut adalah : Interval Kategori 0 - 20 Sangat Tidak Setuju 21 - 40 Tidak Setuju 41 – 60 NetralRagu-ragu 61 – 80 Setuju 81 - 100 Sangat Setuju Tabel 5.3 Tabel Kategori Skala Likert Langkah pertama adalah mencari skor terkecil xMin, yaitu jumlah pernyataan dikalikan dengan nilai jawaban terkecil dan dikalikan jumlah responden sehingga xMin = 9 x 1 x 20 = 180. Kemudian untuk skor terbesar xMax didapat dengan jumlah pernyataan dikalikan nilai jawaban terbesar dan dikalikan dengan jumlah responden sehingga xMax = 9 x 5 x 20 = 900. Berdasarkan hasil diatas maka akan diketahui total nilai seluruh responden berada antara xMin = 180 sampai xMax = 900 Kemudian dicari total nilai seluruh responden dengan tabel di bawah ini : Tabel 5.4. Tabel Perhitungan Kuesioner No Pernyataan Jumlah Tanggapan STS TS N S SS 1 1 3 14 2 2 4 6 10 3 2 11 6 4 1 8 11 5 6 7 7 6 1 5 4 10 7 1 2 14 3 8 1 4 8 7 9 6 4 10 Total 1 5 31 76 66 Keterangan :  STS: Sangat Tidak Setuju.  TS : Tidak Setuju.  N : Netral  S : Setuju.  SS : Sangat Setuju. Skor Total Pernyataan Hasil Skor x Total Pernyataan 1 1 1 2 5 10 3 31 93 4 76 304 5 66 330 Total 738 Tabel 5.5. Tabel Total Seluruh Responden Persentase skala likert = x 100 = Persentase skala likert = x 100 = 82 Persentase skala likert = 82

5.2 Kesimpulan

Berdasarkan hasil pengujian perancangan di atas didapat total nilai keseluruhan sebesar 82 dari total 20 responden. Menurut tabel skala likert tabel 5.3 nilai 82 termasuk ke dalam kategori sangat setuju. Sehingga dapat disimpulkan bahwa rancangan sistem memiliki rancangan yang sangat