v
“ Trimalah didikanku, lebih dari pada
perak dan pengetahuan lebih dari pada
emas pilihan “ (Amsal 8:10)
“ Sukses tidak diukur dari posisi yang
dicapai seseorang dalam hidup, tapi dari
kesulitan – kesulitan yang berhasil
diatasi ketika berusaha meraih sukses”
(Booker T Washington
)
“ Segala sesuatu yang awalnya sulit akan
terasa mudah bila kita selalu berfikir positif,
vi
Kupersembahkan karya ini
kepada :
Tuhan Yesus Kristus yang selalu menyertai
setiap langkah hidupku dan selalu
mendengarkan permohonanku
Bunda Maria penolongku
Kedua orang tua, dan saudaraku tercinta
vii
PERNYATAAN KEASLIAN KARYA
Saya menyatakan bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, Oktober 2010 Penulis
viii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Nikolas Catur Pandoyo
NIM : 055314011
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
OPTIMASI DISTRIBUSI MAJALAH DENGAN MENGGUNAKAN METODE DIJKSTRA
(Studi Kasus Penerbit/Percetakkan Kanisius Yogyakarta)
Beserta perangkat yang diperlukan ( bila ada ). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : Oktober 2010 Yang menyatakan
ix INTISARI
Algoritma Dijkstra adalah algoritma pemilihan jalur terpendek yang dapat digunakan untuk berbagai aplikasi. Salah satu aplikasi yang menerapkan prinsip kerja algoritma ini adalah Aplikasi Optimasi Distribusi Majalah. Dengan aplikasi ini, dapat ditentukan jalur pendistribusian majalah secara optimal.
Pada tugas akhir ini, penggunaan algoritma Dijkstra lebih ditekankan pada penerapan jalur pendistribusian majalah yang tercepat dari penerbit / percetakan Kanisius hingga sampai ke agen – agen majalah. Pendistribusian majalah terbatas pada agen – agen yang terletak di kawasan Yogyakarta, sebagian Kabupaten Sleman, dan sebagian Kabupaten Bantul yang masih masuk dalam lingkup ringroad. Hal yang dijadikan tolak ukur penentuan jalur tercepat pendistribusian majalah adalah volume dan kepadatan di setiap jalan yang akan dilalui pada situasi tertentu. Data volume dan kepadatan jalan yang diperoleh akan diolah menggunakan rumus Greenshield. Setelah membagi jarak dengan kecepatan sementara yang diperoleh dari rumus Greenshield, akan diperoleh hasil waktu tempuh. Waktu tempuh itulah yang digunakan sebagai bobot untuk menentukan jalur pendistribusian tercepat.
x
ABSTRACT
The Dijkstra's algorithm is the shortest path selection of algorithm that can be used for various applications. One of the applications that implement the working principle of this algorithm is Magazine Distribution Application Optimization. With this application, it can be determined optimally magazine distribution routes.
In this thesis, the use of the Dijkstra's algorithm is more emphasized on the implementation of the fastest magazine distribution routes from the publisher or Kanisius Printing to get to magazine agents. Magazine distribution is limited to agents who are located in the area of Yogyakarta, in part of Sleman and Bantul, and other area that are still included in the scope of Ringroad. A measuring rod of the fastest magazine distribution routes is the volume of magazine and density in each road to be traversed in a particular situation. Data volumes and road densities are processed using Greenshield formula. Dividing the distance with the speed obtained from the formula of Greenshield, results in the travel time, it is the time used as a weight to determine the fastest distribution route.
xi
KATA PENGANTAR
Puji dan syukur penulis panjatkan kehadirat Tuhan Yesus Kristus atas rahmat, kasih, karunia serta penyertaan-Nya yang diberikan kepada penulis selama penyusunan skripsi yang berjudul “OPTIMASI DISTRIBUSI MAJALAH DENGAN MENGGUNAKAN METODE DIJKSTRA (Studi Kasus Penerbit / Percetakkan Kanisius Yogyakarta)”. Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar sarjana teknik di Program Studi Teknik Informatika Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta.
Penulis menyadari bahwa penyusunan skripsi ini dapat terselesaikan dengan baik karena adanya bantuan dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan terima kasih kepada:
1. Bunda Maria yang telah mendengarkan segala doa dan permohonan penulis.
2. Bapak Yosef Agung Cahyanta, S.T., M.T. selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
3. Dr. C. Kuntoro Adi, SJ., M.A., M.Sc selaku dosen pembimbing skripsi, yang dengan penuh kesabarannya telah membimbing, membantu, menyemangati serta meluangkan waktunya kepada penulis selama perkuliahan, penelitian dan proses penulisan skripsi ini.
xii
5. DS. Bambang Soelistijanto, S.T., M.Sc. selaku dosen penguji yang telah meluangkan waktu untuk menguji dan memberikan saran bagi penulis. 6. Segenap Dosen prodi Teknik Informatika, FST Universitas Sanata Dharma
Yogyakarta yang telah mendidik dan membagikan ilmunya kepada penulis selama ini.
7. Penerbit / percetakkan Kanisius yang telah memberikan ijin kepada penulis untuk mengambil data dan melakukan penelitian, sehingga penulis dapat menyelesaikan skripsi ini
8. Segenap karyawan penerbit / percetakkan Kanisius yang dengan sabar telah membantu dan membimbing penulis dalam melakukan penelitian, sehingga penulis dapat menyelesaikan skripsi ini.
9. Segenap karyawan FST Universitas Sanata Dharma yang telah membantu selama masa studi.
10. Ayahku, Antonius Pulunggono dan ibuku, Maria Suwartini, yang sabar membimbing, memberikan dukungan, doa dan kasih sayangnya kepada penulis.
11. Stefanus Kristianto Cahyo Purwanto, Benedictus Nugroho Dwi Handoko, Laurensia Triemeta Platini dan Eduwardus Cahyo Bintoro selaku saudara kandung, yang selalu memberikan doa, semangat dan dukungannya kepada penulis.
xiii
13. Andreas Hemawan, Ignatius Dimas Sukma Sadewa, Cahyo Herdian, Adi Susila, Charlie Douglash Saragih, Andriyanto, Maria Yesse Gracinta, I Gusti Nyoman Sedana, dan semua angkatan TI 05 yang senantiasa memberikan motivasi dan memberikan masukan kepada penulis.
14. Maria Kania Ayu Prawerti, Esti Seliastuti dan semua teman – teman UKM Karawitan yang senantiasa mendukung dan memberikan motivasi kepada penulis dalam menyelesaikan tugas akhir ini.
15. Veronika Hery M, Maria Hety E, Diksi Kresnawati Teman-teman Teknik Informatika angkatan 2006 yang senantiasa membantu serta menguatkan penulis.
16. Semua pihak yang tidak dapat penulis sebutkan satu persatu yang telah banyak membantu selama penulis menyelesaikan studi.
Penulis menyadari bahwa dalam penyusunan skripsi ini masih banyak kekurangan. Oleh karena itu penulis mengharapkan kritik dan saran dari semua pihak. Penulis berharap semoga skripsi ini dapat bermanfaat bagi para pembaca dan memberikan sedikit sumbangan buat Ilmu Pengetahuan.
Yogyakarta, 25 Oktober 2010
xiv
DAFTAR ISI
HALAMAN JUDUL ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN MOTO ... v
HALAMAN PERSEMBAHAN ... vi
PERNYATAAN KEASLIAN KARYA ... vii
LEMBAR PERNYATAAN PERSETUJUAN ... viii
INTISARI ... ix
ABSTRACT ... x
KATA PENGANTAR ... xi
DAFTAR ISI ... xiv
DAFTAR GAMBAR ... xx
DAFTAR TABEL ... xxiii
BAB 1 PENDAHULUAN ... 1
1.1 Latar Belakang... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan ... 2
1.4 Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 3
1.6 Sistematika Penulisan ... 5
BAB 2 LANDASAN TEORI ... 6
xv
2.1.1 Fase-fase RUP ... 9
2.2 Graf ... 10
2.2.1 Tipe ... 10
2.2.2 Terminologi Dasar ... 11
2.2.3 Komponen ... 15
2.3 Network Model ... 15
2.3.1 Algoritma Shortest – route ... 16
2.4 Jenis Jalan ... 24
2.4.1 Jalan Nasional ... 27
2.4.2 Jalan Provinsi ... 28
2.4.3 Jalan Kabupaten/kota ... 28
2.4.4 Jalan desa ... 29
2.5 Volume, kepadatan, kecepatan ... 32
2.5.1 Greenshield ... 35
2.5.2 Skala Peta ... 35
BAB 3 ANALISA DAN PERANCANGAN SISTEM ... 36
3.1 Data ... 36
3.2 Gambaran Umum Sistem ... 40
3.2.1 Struktur Data Program ... 40
3.2.2 Analisis Kebutuhan ... 50
3.3 Analisa Sistem ... 51
3.3.1 Model Use Case ... 51
xvi
3.3.1.2 Actor ... 52
3.3.1.3 Tabel Use Case ... 53
3.3.2 Skenario Use Case ... 55
3.3.3 Model Analisis ... 56
3.3.3.1 Realisasi Use Case ... 56
3.3.3.2 Diagram kelas keseluruhan ... 57
3.3.4 Desain Sistem ... 58
3.3.4.1 Kelas Perancangan ... 58
3.3.5 Attribut dan Method ... 66
3.3.6 Prototype Antarmuka ... 66
3.3.7 Attribut ... 67
3.3.7.1 Halaman Login ... 67
3.3.7.2 Halaman StaffBagianPemasaranMainFrame ... 67
3.3.7.3 Halaman AgenInternalFrame ... 69
3.3.7.4 Halaman PilihNodeFrame ... 71
3.3.7.5 Halaman TransaksiInternalFrame ... 72
3.3.7.6 Halaman CariAgenDialog ... 73
3.3.7.7 Halaman DaftarPengirimanInternalFrame ... 74
3.3.7.8 Halaman PetaPengirimanFrame ... 75
3.3.7.9 Halaman UbahAccountFrame ... 76
3.3.7.10 Halaman AdminMainframe ... 77
3.3.7.11 Halaman SatuanPerhitunganForm ... 78
xvii
3.3.8 Desain Database ... 81
3.3.8.1 Entity Relationalship Diagram... 81
3.3.8.2 Perancangan Tabel ... 83
BAB 4 IMPELMENTASI DAN ANALISA HASIL ... 89
4.1 Implementasi ... 89
4.1.1 Spesifikasi Software dan Hardware ... 89
4.1.1.1 Spesifikasi Software : ... 89
4.1.1.2 Spesifikasi Hardware : ... 89
4.1.2 Implementasi Sistem ... 90
4.1.2.1 Pembuatan Database ... 90
4.1.2.2 Tabel Agen ... 90
4.1.2.3 Tabel Hitungkepadatan ... 91
4.1.2.4 Tabel Jalan ... 91
4.1.2.5 Tabel Kabupaten ... 92
4.1.2.6 Tabel Kecamatan ... 92
4.1.2.7 Tabel Kelurahan ... 93
4.1.2.8 Tabel Transaksi ... 93
4.1.2.9 Tabel User ... 94
4.1.3 Koneksi Java ke MYSQL... 94
4.1.4 Implementasi kelas ... 95
4.1.4.1 Implementasi Antarmuka / View... 95
4.1.4.1.1 AdminMainFrame ... 96
xviii
4.1.4.1.3 CariAgenDialog ... 98
4.1.4.1.4 DaftarPengirimanInternalFrame ... 99
4.1.4.1.5 kondisiJalanInternalFrame ... 100
4.1.4.1.6 LoginFrame ... 101
4.1.4.1.7 PetaPengirimanFrame ... 101
4.1.4.1.8 pilihNodeFrame ... 102
4.1.4.1.9 UbahAccountFrame ... 103
4.1.4.1.10 TransaksiInternalFrame ... 103
4.1.4.1.11 StaffBagianPemasaranMainFrame ... 104
4.1.4.1.12 satuanPerhitunganForm ... 105
4.1.4.2 Implementasi Control ... 106
4.1.4.3 Implementasi Model ... 107
4.2 Analisa Hasil ... 107
4.2.1 Pengumpulan data ... 107
4.2.2 Sasaran Penyebaran Kuesioner ... 108
4.2.3 Form Kuesioner ... 108
4.2.4 Hasil dan pembahasan ... 109
BAB 5 KESIMPULAN DAN SARAN ... 114
5.1 Kesimpulan ... 114
5.2 Saran ... 114
DAFTAR PUSTAKA ... 116
LAMPIRAN 1 ... 118
xix
LAMPIRAN 3 ... 170
LAMPIRAN 4 ... 171
LAMPIRAN 5 ... 221
xx
DAFTAR GAMBAR
Gambar 2.1 Arsitektur Rational Unified Process, dari Rational Software(1998) .. 7
Gambar 2.2 Contoh bentuk graf ... 10
Gambar 2.3 Graf tak berarah ... 10
Gambar 2.4 Graf berarah... 11
Gambar 2.5 Graf Kosong N5 ... 12
Gambar 2.6 Graf tak-berarah tidak terbubung ... 13
Gambar 2.7 GrafG1, (b) sebuah upagraf dari G1, dan komplomen dari upagraf yang bersesuaian ... 13
Gambar 2.8 (a) GrafG (b) upagraf merentang dari G, dan (c) bukan upagraf merentang dari G ... 14
Gambar 2.9 Cut-set ... 14
Gambar 2.10 Graf berbobot ... 15
Gambar 2.11 Network(N,A)... 16
Gambar 2.12 Graf berarah berlabel ... 18
Gambar 2.13 Peta jaringan jalan perkotaanYogyakarta ... 32
Gambar 2.14 Kecepatan vs volume ... 33
Gambar 2.15 Kerapatan vs kecepatan ... 33
Gambar 2.16 Volume vs kecepatan ... 34
Gambar 3.1 Gambar Pembagian peta menjadi cluster ... 40
Gambar 3.2 Gambar Cluster peta ... 41
Gambar 3.3 Flowchart menset tujuan pengiriman ... 44
xxi
Gambar 3.5 Mencari jalur pengiriman tercepat ... 48
Gambar 3.6 Mencari jalur pengiriman tercepat ... 49
Gambar 3.7 Diagram Use Case ... 51
Gambar 3.8 Entity Relationalship Diagram ... 81
Gambar 3.9 Perancangan Tabel ... 83
Gambar 4.1 Database distribusi_majalah ... 94
Gambar 4.2 Tampilan utama admin ... 96
Gambar 4.3 Tampilan halaman agen ... 97
Gambar 4.4 Tampilan halaman cari agen ... 98
Gambar 4.5 Tampilan halaman daftar pengiriman ... 99
Gambar 4.6 Tampilan halaman kondisijalaninternal frame ... 100
Gambar 4.7 Tampilan halaman login ... 101
Gambar 4.8 Tampilan peta pengiriman ... 101
Gambar 4.9 Tampilan pilih node frame ... 102
Gambar 4.10 Halaman tampilan ubah account frame ... 103
Gambar 4.11 Halaman transaksi InternalFrame ... 103
Gambar 4.12 Halaman staff bagian pemasaran mainframe ... 104
Gambar 4.13 Halaman satuan perhitungan form ... 105
Gambar 4.14 Grafik hasil kuesioner tampilan sistem ... 110
Gambar 4.15 Grafik hasil kuesioner kemudahan sistem ... 110
Gambar 4.16 Grafik hasil kuesioner perhitungan jalur terpendek ... 111
Gambar 4.17 Grafik hasil kuesioner perhitungan jalur terpendek ... 112
xxii
Gambar 4.19 Grafik hasil kuesioner pengaruh sistem dalam mempercepat
xxiii
DAFTAR TABEL
xxiv
1
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Fungsi utama dari media massa adalah mengabarkan suatu berita kepada masyarakat. Dalam penyampaian berita, suatu media massa dituntut untuk mengungkapkan kejadian tersebut secara aktual dan sesuai dengan fakta yang ada. Berita yang disampaikan kepada masyarakat harus dapat dipertanggung jawabkan kebenarannya.
Sebagai salah satu bagian dari media massa, majalah diharuskan melakukan hal yang sama dengan media massa pada umumnya. Suatu majalah dituntut untuk melakukan segala sesuatu secara efektif dan efisien dalam segala aktifitas kegiatannya. Hal tersebut harus dilakukan mulai dari proses produksi hingga proses pemasaran ke masyarakat luas.
Salah satu bagian aktifitas penerbit majalah adalah proses distribusi. Keberhasilan proses ini, dapat mendukung peningkatan laba suatu perusahaan dan kepuasan dari pelanggan. Namun dalam proses pendistribusian, seringkali terjadi masalah yang terkait dengan bagaimana cara mendistribusikan majalah secara optimal. Maksud dari pengertian optimal disini adalah bagaimana memilih jalur pendistribusian majalah yang tercepat dari penerbit ke agen.
mendukung optimasi dalam mendistribusikan semua majalahnya. Selama ini sistem pemilihan jalur pendistribusian majalah hanya dilakukan oleh pengirim majalah saja. Hal tersebut dirasa kurang optimal karena dalam memilih jalur pengiriman, infomasi perkiraan kepadatan di tiap jalan tidak diperhatikan. Padahal, hal tersebut dapat mempengaruhi waktu pendistribusian majalah hingga sampai ke agen.
Dalam tugas akhir ini, akan dibuat suatu sistem optimasi dalam mendistribusikan majalah pada penerbit / percetakkan Kanisius. Hal tersebut dapat membantu untuk memprediksikan jalur distribusi majalah yang tercepat. Untuk memprediksikan pemilihan jalur yang optimal dalam mendistribusikan majalah tersebut, akan dilakukan dengan menggunakan metode Dijkstra.
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah diatas dapat dirumuskan menjadi beberapa rumusan masalah berikut
1. Bagaimana cara memilih jalur distribusi agar, pemasaran majalah dapat dilakukan secara optimal ?
2. Bagaimana membuat aplikasi optimasi distribusi majalah yang sesuai dengan penerbit/percetakkan Kanisius dengan menggunakan metode
Dijkstra ?
1.3 Tujuan
pendistribusian majalah dari penerbit ke agen.
1.4 Batasan Masalah
Berdasarkan latar belakang masalah yang ada, penulis membatasi masalah sebagai berikut:
1. Distribusi yang dilakukan adalah distribusi dari penerbit ke agen dan kembali ke penerbit.
2. Metode yang digunakan adalah metode Dijkstra.
3. Cakupan wilayah distribusi adalah wilayah kabupaten Yogyakarta dan sebagian Sleman yang masih dalam lingkup jalur RingRoad.
4. Tool yang digunakan Java (J2SE) dan menggunakan database MYSQL. 5. Jalan yang masuk ke dalam peta adalah jalan nasional arteri, nasional
kolektor dan jalan propinsi kolektor.
6. Kondisi pengemudi, kendaraan (mesin, bahan bakar, ban) dikondisikan dalam keadaan normal.
7. Cuaca, traffic light tidak menjadi menjadi pertimbangan sistem. 8. Waktu pengirman dimulai dari pukul 6 pagi hingga 6 sore. 9. Hari pengiriman dimulai dari hari Senin hingga Jumat.
1.5 Metodologi Penelitian
Dalam penyusunan skripsi dan pembuatan aplikasi “Optimasi Distribusi Majalah”, dipakai beberapa metode untuk mencari informasi yang diperlukan, yaitu:
a. Studi literature
Mencari dan mengumpulkan literature-litaratur yang berkaitan dengan permasalahan yang dikerjakan, yaitu mengenai pemilihan jalur dengan Dijkstra dan penghitungan nilai volume menjadi kecepatan.
b. Studi Lapangan
Melakukan wawancara ke pihak penerbit/percetakkan Kanisius dan meminta data tiap – tiap agen Kanisius yang ada di Yogya
2. Metode pengembangan sistem
Metode perancangan sistem yang digunakan adalah metode berorientasi objek Rational Unified Process. Adapun langkah-langkahnya adalah :
a. Inception
Mempelajari masalah-masalah yang timbul dan menentukan kebutuhan-kebutuhan bagi pemakai sistem untuk mengidentifikasi pemecahan yang beralasan.
b. Elaboration
Menggambarkan bagaimana suatu sistem dibentuk termasuk menyangkut konfigurasi dari komponen-komponen perangkat lunak dari suatu sistem.
c. Konstruksi
1.6 Sistematika Penulisan BAB 1 PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, batasan masalah, tujuan dan manfaat penelitian, rumusan masalah, dan metodologi penelitian yang digunakan serta sistematika isi penulisan laporan.
BAB 2 LANDASAAN TEORI
Bab ini berisi penjelasan konsep dan dasar-dasar teori yang mendukung penulisan tugas akhir ini.
BAB 3 ANALISA DAN PERANCANGAN
Berisi gambaran umum sistem, metode pengumpulan data, usecase diagram, sekenario perancangan, analisa peracangan, perancangan basis data, perancangan tampilan masukan dan keluaran untuk pengguna.
BAB 4 IMPLEMENTASI DAN ANALISA HASIL
Pada bab ini berisi penerapan rancangan yang telah dibuat didalam program, dan hasil dari pengujiannya dianalisa
BAB 5 KESIMPULAN DAN SARAN
Pada bab ini membahas mengenai kesimpulan akhir dari program yang telah dibuat dan isi dari tugas akhir yang telah dibuat, serta saran untuk pengembangan lebih lanjut program.
6
BAB 2 LANDASAN TEORI
Bab ini membahas landasan teori mengenai pengertian Network Model
dalam riset operasi, pengertian Graph, Edge, Vertex, konsep-konsep algoritma
Shortest – route.
2.1 RUP (Rational Unified Process)
Menurut Rational Software(1998), Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perankat lunak.
RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML). Melalui gambar dibawah dapat dilihat bahwa RUP memiliki, yaitu:
• Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili
Standar ini dapat memanfaatkan kembali komponen-komponen yang telah tersedia/dibuat sehingga dapat meningkatkan produktifitas
9 Deliver high quality system
Kualitas sistem informasi dapat ditingkatkan sebagai sistem yang dibuat pada komponen-komponen yang telah teruji (well-tested dan well-proven) sehingga dapat mempercepat delivery sistem informasi yang dibuat dengan kualitas yang tinggi.
9 Lower maintenance cost
Standar ini dapat membantu untuk menyakinkan dampak perubahan yang terlokalisasi dan masalah dapat dengan mudah terdeteksi sehingga hasilnya biaya pemeliharaan dapat dioptimalkan atau lebih rendah dengan pengembangan informasi tanpa standar yang jelas.
9 Facilitate reuse
Standar ini memiliki kemampuan yang mengembangkan komponen-komponen yang dapat digunakan kembali untuk pengembangan aplikasi yang lainnya.
9 Manage complexity
Standar ini mudah untuk mengatur dan memonitor semua proses dari semua tahapan yang ada sehingga suatu pengembangan sistem informasi yang amat kompleks dapat dilakukan dengan aman dan sesuai dengan harapan semua manajer proyek IT/IS yakni kualitas perangkat linak yang baik dalam biaya dan waktu yang akan diterima user.
2.1.1 Fase-fase RUP
1. Inception
• Menentukan ruang lingkup proyek
• Membuat ‘Business Case’
• Menjawab pertanyaan “apakah yang dikerjakan dapat menciptakan
good business sense” sehingga proyek dapat dilanjutkan.
2. Elaboration
• Menganalisa berbagai persyaratan dan resiko
• Menetapkan ‘baseline’
• Merencanakan fase berikutnya yaitu construction
3. Construction
• Melakukan sederetan iterasi
• Pada setiap iterasi akan melibatkan proses berikut: analisa desain,
implementasi dan testing 4. Transistion
• Membuat apa yang sudah dimodelkan menjadi suatu produk jadi
• Dalam fase ini dilakukan:
a) Beta dan performancetesting
b) Membuat dokumentasi tambahan seperti; training, user guides dan sales kit
2.2 Graf
Menurut Chrisitan, Glen.(2006) Graph adalah himpunan benda-benda yang disebut verteks (node) yang terhubung oleh edge-edge (arc). Biasanya graf digambarkan sebagai kumpulan titik-titik (verteks) yang dihubungkan oleh garis-garis (edge). Seperti terlihat pada gambar 2.2
Gambar 2.2 Contoh bentuk graf
2.2.1 Tipe
Graf memiliki beberapa tipe yaitu :
• Directed dan undirected ( linknya)
Undirected graph adalah graf yang sisinya tidak mempunyai orientasi arah, seperti terlihat pada gambar 2.3
Directed graph adalah graf yang setiap sisinya diberikan orientasi arah, seperti pada gambar 2.4
Gambar 2.4 Graf berarah
• Simple graph dan unsimple graph
Simple graph adalah graf yang tidak mengandung gelang maupun sisi-ganda. Unsimple graph adalah graf yang mengandung sisi ganda atau gelang.
• Graf berhingga(limited graph) dan graf tak-berhingga(unlimited graph)
Limited graph adalah graf yang jumlah simpulnya, n ,berhingga.
Unlimited graph adalah graf yang jumlah simpulnya, n , tidak berhingga banyaknya
2.2.2 Terminologi Dasar
1. Bertetangga (Adjacent) dua buah simpul pada graf tak-berarah dikatakan bertetangga bila keduanya terhubung langsung dengan sebuah sisi
3. Simpul terpencil( Isolated Vertex) ialah simpul yang tidak mempunyai sisi yang bersisian dengannya. Atau, dapat juga dinyatakan bahwa simpul terpencil adalah simpul yang tidak satupun bertetangga dengan simpul-simpul lainnya.
4. Graf kosong (Null Graph atau Empty Graph) ialah graf yang himpunan sisinya merupakan himpunan kosong disebut sebagai graf kosong dan ditulis sebagai , yang dalam hal ini n adalah jumlah simpul. Contoh
graf kosong dapat dilihat pada gambar 2.5
Gambar 2.5 Graf Kosong N5
5. Lintasan (Path) sebuah path dari vertex a ke vertex b adalah urutan (=a), ,…,vm(=b) dari vertex yang berbeda, dimana setiap pasang
vertex bersebelahan ( -1, ) dihubungkan oleh sebuah edge. Panjang
(length) dari path tersebut adalah m.
7. Terhubung (Connected) dikatakan demikian jika untuk setiap pasang simpul dan di dalam himpunan V terdapat lintasan dari ke (yang juga harus berarti ada lintasan dari ke ). Jika tidak maka G
disebut graf tak-terhubung (disconnected graph). Seperti dapat dilihat pada gambar 2.6.
Gambar 2.6 Graf tak-berarah tidak terbubung
8. Upagraf (Subgraph) dan komplemen Upagraf dari UpagrafG1
terhadap grafG adalah grafG2= ( , )sedemikian sehingga
= dan adalah himpunan simpul yang anggota – anggota bersisian dengannya. Seperti pada gambar 2.7.
1
2
3
4 5
6
(a)
1
3
2 5 (b)
1
2
3
5
6
(c) Gambar 2.7 GrafG1, (b) sebuah upagraf dari G1, dan komplomen dari upagraf
9. Upagraf merentang (Spanning Subgraph) upagraf G1 =( , ) dari
G=(V,E) dikatakan upagraf merentang jika =V (yaitu G1 mengandung semua simpul G). Seperti pada gambar 2.8
1
2
3
4 5
1
2
3
4 5
1
2
3
(a) (b) (c)
Gambar 2.8 (a) GrafG (b) upagraf merentang dari G, dan (c) bukan upagraf
merentang dari G
10. Cut-Set dari graf terhubung G adalah himpunan sisi yang bila dibuang dari G menyebabkan G tidak terhubung. Jadi, cut-set selalu
menghasilkan dua buah komponen terhubung. {(1,2),(1,5),(3,5),(3,4)} adalah cut-set. Seperti terlihat pada gambar 2.9
(a) (b)
11. Graf berbobot(weighted Graph) adalah graf yang setiap sisinya siberi sebuah harga(bobot). Seperti pada gambar 2.10.
Gambar 2.10 Graf berbobot
2.2.3 Komponen Konsep Graf
Suatu graph G dapat dinyatakan sebagai G = (v,E). Graph G terdiri atas himpunan V yang berisikan verteks/node pada graph tersebut dan himpunan dari E
yang berisi edge pada graph tersebut. Himpunan E dinyatakan sebagai pasangan dari verteks yang ada dalam v. Sebagai contoh definisi dari graf pada gambar diatas adalah : v = {1,2,3,4,5,6} dan E = {(1,2),(1,5),(2,3),(3,4),(4,5),(5,2),(4,6)}.
Size dari graf adalah jumlah verteks yang dimilikinya, sedangkan Order adalah jumlah edge seperti pada gambar 1 di atas, Size bernilai 6, sedangkan Order bernilai 7. Nilai order minimum adalah 0, bila tida ada verteks yang terhubung, sedangkan order maksimum adalah n(n-1)/2 (untuk graf komplit), artinya semua verteks terhubung.
2.3 Network Model
Menurut Taha, Hamdy A(2008), network merupakan kumpulan node-
menggambarkan sebuah network adalah (N,A) dimana N adalah sebuah node dan
A adalah sebuah cabang. Contoh notasi (N,A) adalah
N={1,2,3,4,5}
A={(1,2),(1,3),(2,3),(2,5),(3,4),(3,5),(4,2),(4,5)}
Dan gambar aliran suatu network dapat dilihat pada gambar 2.11
Gambar 2.11 Network(N,A)
Dalam network dikenal ada 4 algoritma optimasi yaitu : a. Algoritma Minimal Spanning Tree
b. Algoritma Shortest – route
c. Algoritma Maximal - flow
d. Algoritma Critical path (CPM)
Pada tugas akhir ini hanya menggunakan model yang kedua yaitu model
Shortest – route.
2.3.1 Algoritma Shortest – route
Menurut Taha, Hamdy A (2008), algoritma Shortest – route dapat diartikan sebagai penentuan jalur terpendek antara sumber dan tujuan didalam
network transportasi. Berbeda dengan Minimum Spanning Tree, Shortest-Route
Salah satu algoritma yang cukup terkenal untuk menyelesaikan masalah ini adalah algoritma Dijkstra. Algoritma ini hanya dapat digunakan apabila semua cabang pada jaringannya mempunyai bobot non-negatif.
Langkah-langkah algoritma Dijkstra adalah sebagai berikut :
Misalkan G adalah graf berarah berlabel dengan titik- titik
V(G)={ , 2,…, } dan path terpendek yang dicari adalah ke . Algoritma Dijkstra dimulai dari titik . Dalam iterasinya, algoritma akan mencari satu titik yang jumlah bobotnya dari titik 1 terkecil. Titik – titik yang terpilih dipisahkan, dan titik – titik tersebut tidak diperhatikan lagi dalam iterasi berikutnya.
Misalkan :
= , 2, … ,
= himpunan titik-titik V(G) yang sudah terpilih dalam alur path terpendek
= jumlah bobot path terkecil dari ke . , = bobot garis dari titik ke titik ..
1, = jumlah bobot path terkecil dari ke .
Secara formal, algoritma Dijkstra untuk mencari path terpendek adalah sebagai berikut :
1. ;
2, , … , .
a. Pilih titik Vk V-L dengan D (k) terkecil. L=L { } b. Untuk setiap = V-L lakukan :
Jika , maka ganti dengan ,
4. Untuk setiap , ,
Menurut algoritma diatas path terpendek dari titik ke adalah melalui titik – titik dalam L secara berurutan, dan jumlah bobot path terkecilnya adalah . Contoh kasus : carilah path terpendek dari titik ke dalam graf berarah berlabel gambar 2.12
Gambar 2.12 Graf berarah berlabel
Matriks hubungan W untuk menyelesaikan graf gambar 2.12 adalah sebagai berikut :
Mula – mula dan , , … ,
2 1,2 3 ; 3 1,3 9
4 1,4 ∞ ; 5 1,5 ∞
6 1,6 ∞ ; 7 1,7 ∞
, , … , , , … , . 7 , sehingga
langkah 3(a)-3(b) dilakukan 3(a) : terkecil adalah 2 , sehingga
2 3 : , , … ,
2 , , … , 2 (dari langkah 3(a)). Diselidiki tiap titik dalam .
Untuk j=3, 3 9 ; , 2 2,3 3 ∞
∞. Karena 3 2 2,3 maka 3 tetap 9. Untuk j=4,
4 ∞ ; , 2 2,4 3 7 10. Karena 4
2 2,4 maka harga 4 diubah menjadi 10 ini berarti bahwa untuk
mencapai titik 4 dan 1, jalur melalui 2, yaitu : , , 2 2,4 mempunyai bobot lebih kecil dibandingkan jalur langsung 4 . Untuk
j=5, 5 ∞; , 2 2,5 3 1 4. Karena
5 2 2,5 , maka harga 5 diubah menjadi 4. Untuk j=6,
6 ∞. , 2 2,6 3 ∞ ∞. Karena
6 2 2,6 maka harga 6 tetap seperti sebelumnya yaitu
∞.Untuk j=7, 7 ∞ , , 2 2,7 3 ∞
∞. Karena 7 2 2,7 maka harga 7 tetap seperti sebelumnya yaitu
∞.Langkah selanjutnya kembali ke langkah 3(a). Karena 7
3 , yang terkecil adalah 5 , sehingga . Maka sekarang,
, 3 : , , , , ,
, , , , . Langkah 3(b) untuk mengecek setiap titik dalam
} , ,
8 (tetap) Min(D(4),D (3)+w(3,4)) =min(9,8+7 )=9
, }
7 { ,
,
,
,
,
Karena , maka iterasi dihentikan. Path terpendek dari ke
adalah 15 dengan jalur yang dibaca mundur sebagai berikut : Pada iterasi dengan indeks 6, diperoleh penurunan jarak pada kolom 7 dari 17 ke 15. Ini berarti titik yang terpilih pada baris tesebut ) adalah jalur path (jalur
). Berikutnya pada kolom 6 diperoleh penurunan jarak dari 13 ke
11. Ini berarti titik pada indeks 4 adalah jalur path (jalur adalah ). Pada kolom 4 tidak terjadi penurunan jarak (dari 9 tetap 9 ). Ini berati bahwa titik pada indeks 3 bukan jalur path. Naik 1 baris diatasnya, terjadi penurunan jarak dari 10 ke 9 yaitu pada baris yang sesuai dengan indeks 5. Jadi 5 adalah jalur path (jalur adalah
) . Pada kolom D[5] terjadi penurunan jarak dari ∞ke 4. Baris tersebut sesuai dengan indeks k=2. Jadi adalah jalur path (jalur
). Jadi path terpendek adalah dengan
total panjang = 15. Hasil akhir dari algoritma Dijkstra adalah path terpendek dari titik kesemua titik lain.Untuk mencari path terpendek dari semua titik, algoritma Dijkstra dapat diulang-ulang sebanyak n kali yang dimulai dari semua titik.
2.4 Jenis Jalan
Menurut Munawar (2007) ,wewenang pembinaan atau status, jalan dapat
dibagi menjadi beberapa jenis yaitu
2. Jalan provinsi: ditingkat provinsi
3. Jalan kabupaten / kota: ditingkat kabupaten / kota
4. Jalan desa: ditingkat desa
5. Jalan lingkungan: lingkungan yang bersangkutan.
Menurut SK Menteri Kimpraswil No. No. 375/KPTS/M/2004 jalan berdasarkan fungisnya dibedakan menjadi 3 jenis yaitu
1. Jalan Arteri
2. Jalan Kolektor
3. Jalan Lokal
Tabel 2.2 Peranan jalan menurut fungsinya
Peranan Jalan
Fungsi Arteri Kolektor Lokal
Aktivitas utama
1. Pergerakan 2. Cepat
3. Perjalanan jauh 4. Tidak ada
pejalan kaki 5. & akses
langsung
1. Perjalanan jarak sedang
2. Menuju ke jaringan primer
3. Pelayanan angkutan umu
sekitar
Pergerakan pejalan kaki
Tidak ada, kecuali diberi pemisah secara vertikal
Aktivitas pejalan kaki dibatasi dengan
Tidak ada, terpisah dari pusat kegiatan utama.
Pergerakan beberapa lokasi yang dilayani
2. Pengaturan jarak persimpangan.
Aktivitas utama
Pergerakan
Fungsi utama untuk lalulintas jarak sedang
Tidak ada
1. Berkisar antara 45– 65 km/jam.
2. Ada pengurangan kecepatan pada
2.4.1 Jalan Nasional
Yang termasuk kelompok jalan nasional adalah jalan arteri primer, jalan
mempunyai nilai strategis terhadap kepentingan nasional. Penetapan status suatu
jalan sebagai jalan nasional dilakukan dengan keputusan menteri.
2.4.2 Jalan Provinsi
Yang termasuk kelompok jalan provinsi:
1. Jalan kolektor primer yang menghubungkan ibukota provinsi dengan
ibukota kabupaten/kota.
2. Jalan kolektor primer yang menghubungkan antar ibukota
kabupaten/kota.
3. Jalan lain yang mempunyai kepentingan strategis terhadap kepentingan
provinsi.
4. Jalan dalam daerah khusus ibukota Jakarta yang tidak termasuk jalan
nasional.
Penetapan status suatu jalan sebagai jalan provinsi dilakukan dengan
keputusan mentri dalam negeri atas usul pemerintah provinsi yang bersangkutan,
dengan memperhatikan pendapat mentri.
2.4.3 Jalan Kabupaten/kota
Yang termasuk kelompok jalan kabupaten adalah:
1. Jalan kolektor primer yang tidak termasuk jalan nasional dan jalan
provinsi.
3. Jalan sekunder dan jalan lain yang tidak termasuk dalam kelompok jalan
nasional dan jalan provinsi.
Penetapan status suatu jalan sebagai jalan kabupaten dilakukan dengan
keputusan gubernur, atas usul pemerintah kabupaten / kota yang bersangkutan.
2.4.4 Jalan desa
Jalan umum yang menghubungkan kawasan dan / atau antar pemukiman
didalam desa, serta jalan lingkungan.
Kep. Menhub14/2006 tingkat pelayanan yang diinginkan pada ruas jalan
sistem jaringan jalan primer:
1. Jalan arteri primer, minimal B
2. Jalan kolektor primer, minimal B
3. Jalan local primer, minimal C
4. Jalan tol, minimal B
Tingkat pelayanan yang diinginkan pada ruas jalan sistem jaringan jalan sekunder
1. Jalan arteri sekunder, minimal C
2. Jalan kolektor sekunder, minimal C
3. Jalan lokal sekunder, minimal D
4. Jalan lingkungan, minimal D
Tingkat pelayanan pada ruas jalan diklasifikasikan atas :
a. Tingkat pelayanan A, dengan kondisi:
2) Kepadatan lalu lintas sangat rendah dengan kecepatan yang dapat
dikendalikan oleh pengemudi berdasarkan batasan kecepatan
maksimum/minimum dan kondisi fisik jalan.
3) Pengemudi dapat mempertahankan kecepatan yang diinginkannya
tanpa atau dengan sedikit tundaan.
b. Tingkat pelayanan B, dengan kondisi:
1) Arus stabil dengan volume lalu lintas sedang dan kecepatan mulai
dibatasi oleh kondisi lalulintas.
2) Kepadatan lalu lintas rendah hambatan internal lalulintas belum
mempengaruhi kecepatan.
3) Pengemudi masih punya cukup kebebasan untuk memilih
kecepatannya dan lajur jalan yang digunakan.
c. Tingkat pelayanan C, dengan kondisi:
1) Arus stabil tetapi kecepatan dan pergerakan kendaraan dikendalikan
oleh volume lalu lintas yang lebih tinggi.
2) Kepadatan lalu lintas sedang karena hambatan internal lalu lintas
meningkat.
3) Pengemudi memiliki keterbatasan untuk memilih kecepatan, pindah
d. Tingkat pelayanan D, dengan kondisi:
1) Arus mendekati tidak stabil dengan volume lalu lintas tinggi dan
kecepatan masih ditolerir namun sangat terpengaruh oleh perubahan
kondisi arus.
2) Kepadatan lalu lintas sedang namun fluktuasi volume lalu lintas dan
hambatan temporer dapat menyebabkan penurunan kecepatan yang
besar.
3) Pengemudi memiliki kebebasan yang sangat terbatas dalam
menjalankan kendaraan, kenyamanan rendah, tetapi kondisi ini masih
dapat ditolerir untuk waktu yang singkat.
e. Tingkat pelayanan E, dengan kondisi:
1) Arus lebih rendah daripada tingkat pelayanan D dengan volume lalu
lintas mendekati kapasitas jalan dan kecepatan sangat rendah.
2) Kepadatan lalu lintas tinggi karena hambatan internal lalu lintas
tinggi.
Gambar 2.13 Peta jaringan jalan perkotaanYogyakarta
2.5 Volume, kepadatan, kecepatan
Untuk mencari nilai kecepatan suatu jalan ini dikenal ada 3 parameter utama yang saling berhubungan yaitu:
1. Arus (volume) lalu lintas 2. Kerapatan (densitas) lalu lintas 3. Kecepatan (speed) lalu lintas
V = D . S ……….…………(2.1) dimana:
V = arus
D = kepadatan
S = kecepatan
Hubungan di atas bila dijelaskan dalam gambar 2.14, gambar 2.15, dan gambar 2.16.
Gambar 2.14 Kecepatan vs volume
Gambar 2.16 Volume vs kecepatan
Keterangan gambar 2.14, gambar 2.15, dan gambar 2.16 sebagai berikut:
VM = kapasitas atau arus maksimum (kendaraan /jam)
SM = kecepatan pada kondisi arus lalu lintas maksimum ( km/jam)
DM = kerapatan pada kondisi arus lalu lintas maksimum ( kendaraan/ km)
Dj = kerapatan pada kondisi arus lalu lintas macet total ( kendaraan/ km ) Penurunan model yang dapat menyatakan atau merepresentasikan hubungan antara kerapatan dan kecepatan ada 3 yaitu:
1. Model Greenshield
2. Model Greenberg
3. Model Underwood
2.5.1 Greenshield
Hubungan antara kecepatan dan kepadatan adalah :
= - D………...………..(2.2)
Hubungan antara volume dan kepadatan :
. ………..………..(2.3)
Hubungan antara volume dan kecepatan diperoleh bila :
. ……….………….(2.4)
keterangan :
= kecepatan rata-rata ruang
= kecepatan rata-rata ruang keadaan arus bebas Dj = jam density (kepadatan pada saat macet)
D = kepadatan
V= volume
2.5.2 Skala Peta
Menurut Sumadi Sutrijat(1999), skala peta adalah perbandingan antara jarak di peta dengan jarak sebenarnya dipermukaan bumi.
Rumus :
36
BAB 3 ANALISA DAN PERANCANGAN SISTEM
Dalam bab ini akan dijelaskan mengenai rancangan sistem aplikasi yang hendak dibuat oleh penulis. Diantaranya data, gambaran sistem secara umum, analisa kebutuhan sistem, metode pengumpulan data dan perancangan sistem.
3.1 Data
Dalam aplikasi Optimasi distribusi majalah, membutuhkan beberapa Informasi yang berhubungan dengan peta yang diperoleh dari beberapa sumber. Berikut ini data-data yang digunakan oleh penulis
1. Data jarak jalan
Untuk data panjang jalan penulis memperoleh data dari proses pengcapturean peta dari google earth, kemudian penulis melakukan pengukuran tiap jalan menggunkan corel draw sehingga diperoleh panjang jalan dalam bentuk centimeter.
Proses selanjutnya penulis mencari panjang salah satu jalan dalam ukuran sebenarnya yaitu km. Kemudian panjang jalan itu dilakukan proses perhitungan skala dengan rumus 2.5:
Perhitungan :
Panjang dipeta = 66.65 cm
3100 76.4
Skala peta = 1: 46.51163
Selanjutnya data tiap jalan dalam peta dikalikan dengan perbandingan skala sesuai dengan hasil pada perhitungan skala diatas. Seperti terlihat pada tabel dibawah :
Tabel 3.1 Perhitungan Peta
Nama Jalan Jarak Dipeta(cm) Jarak Sebenarnya (m)
Laksda Adi Sucipto 8.5 395
Laksda Adi Sucipto 5.8 270
Laksda Adi Sucipto 8.4 391
Janti 14 651
Janti 17.4 809
Janti 7.5 349
Babarsari 9.5 442
Babarsari 9.5 442
Babarsari 12.9 600
Babarsari 12.9 600
Babarsari 16.2 753
Babarsari 16.2 753
Laksda Adi Sucipto 16.4 763
Laksda Adi Sucipto 1.4 65
Laksda Adi Sucipto 5.4 251
Ngentak - Puluhdadi 13.2 614
Ngentak - Puluhdadi 13.2 614
Ngentak - Puluhdadi 10.2 474
Ngentak - Puluhdadi 10.2 474
Sumber : Hasil Analisis, 2010
2. Pengolahan data volume menjadi kecepatan
Untuk data kecepatan penulis peroleh dari hasil perhitungan volume jumlah kendaraan yang diperoleh dari dinas perhubungan DIY. Data volume yang penulis gunakan adalah data tahun 2008.
Untuk proses perhitungan data volume menjadi data kecepatan penulis menggunakan rumus 2.2, 2.3 dan 2.4.
Perhitungan : V = 3049 smp/jam Dj = 602 smp/jam
= 70 km / jam
Mencari nilai D (menggunakan rumus 2.3)
3049 70 60270
Dengan menggunakan rumus abc dapat diperoleh nilai D
70 70 4 70602 3049
D minimal = 554.73 smp/jam
D maksimal = 47.26 smp/jam
Mencari kecepatan rata-rata ( / menggunakan rumus 2.2
dengan D minimal :
Jadi nilai kecepatan rata-rata adalah 5.4965 km/jam
Tabel 3.2 Data volume jumlah kendaraan
Sumber : Dinas Perhubungan DIY, 2008
3.2 Gambaran Umum Sistem
Secara umum sistem aplikasi yang dibuat penulis bertujuan untuk mencari jalur pengiriman majalah tercepat dari penerbit/percetakaan Kanisius ke agen-agen sebagai pelanggan dan kembali lagi ke Kanisius menggunakan metode Dijkstra.
3.2.1 Struktur Data Program
Dalam pembuatan tugas akhir ini penulis menggunakan sistem struktur data untuk mengaplikasikan pembuatan aplikasi. Adapun komponen peta dapat penulis jelaskan sebagai berikut :
Gambar 3.1 Gambar Pembagian peta menjadi cluster
4 Bantul Niten arah
Gambar 3.2 Gambar Cluster peta
1. Konsep Node
Pengaplikasian algoritma Dijkstra sangat erat kaitannya dengan node. Di aplikasi yang penulis buat, node diletakkan pada persimpangan jalan dan pada jalan yang mempunyai jarak yang panjang penulis letakkan node pada bagian tengah jalan.
2. Pemecahan Peta
Dalam pembuatan aplikasi ini penulis memecah peta menjadi 10 bagian peta yang lebih kecil seperti yang terlihat pada gambar 3.1. Hal ini penulis lakukan karena terlalu luasnya cakupan masalah yaitu wilayah kawasan Yogya yang berada didalam lingkup ringroad. Ada beberapa keuntungan yang penulis perhitungkan bila peta itu penulis pecah menjadi 10 bagian. Keuntungan itu antara lain :
a. Dapat memperingan kerja sistem. Karena tidak semua node dalam peta dicari jalur terpendeknya, hanya node yang berada dalam cluster yang menjadi urutan pencarian saja yang akan dicari jalur terpendeknya. b. Mempermudah pengembangan sistem kedepan. Hal ini berhubungan
penulis hanya tinggal mendeskripsikan peta baru dan menghubungkan peta itu dengan peta yang lama.
Sedangkan kerugian yang menjadi pertimbangan penulis apabila peta tidak dipecah menjadi bagian yang lebih kecil yaitu :
a. Sistem bekerja sangat berat karena tiap node akan dicek jalur terpendek satu persatu walaupun node itu kecil kemungkinan untuk dilewati. b. Untuk mengembangkan sistem penulis harus merombak peta secara
total.
Berdasarkan beberapa perhitungan itu maka penulis memutuskan untuk memecah-mecah peta menjadi bagian yang lebih kecil. Bentuk pemecahan peta itu dapat penulis jelaskan sebagai berikut:
a. Peta, penulis pecah menjadi 10 bagian. Tiap bagian peta penulis istilahkan sebagai cluster. Cluster itu merupakan peta – peta kecil yang tersendiri, tiap cluster apabila digabungkan akan membentuk peta secara keseluruhan. b. Untuk menghubungkan antara cluster satu dengan cluster lain penulis
menggunakan node. Node penghubung itu dimiliki oleh kedua cluster yang saling berhubungan.
c. Untuk proses pencarian jalur sistem akan mencari urutan cluster tercepat, kemudian setelah didapat urutan cluster sistem akan mulai mencari jalur tercepat ditiap clusternya dengan titik awal node adalah node sumber dan node persimpangan antar cluster. Sedangkan node akhirnya adalah node tujuan pengiriman dan node persimpangan antar cluster.
penulis jelaskan pada diagram alur dibawah ini: 1. Menset tujuan pengiriman
2. Mencari urutan cluster pengiriman
Gambar 3.4 Flowchart mencari urutan cluster pengiriman
3. Mencari jalur pengiriman tercepat
3.2.2 Analisis Kebutuhan
Kebutuhan yang diperlukan oleh pengguna aplikasi Optimasi Distribusi majalah di penerbit / percetakkan Kanisius adalah :
1. User membutuhkan program untuk membantu dalam mencari jalur pengiriman majalah tercepat dari Kanisius ke agen dan kembali ke agen.
2. User membutuhkan program inputan alamat agar user dapat menginputkan tujuan pengiriman majalah tiap- tiap agen.
3. User membutuhkan peta jalur tercepat secara visual dari Kanisius ke agen dan kembali ke Kanisius.
3.3 Analisa Sistem 3.3.1 Model Use Case 3.3.1.1Diagram Use Case
Berikut ini adalah gambar use case system yang akan dibangun :
Gambar 3.7 Diagram Use Case
Administrator Mengisi data agen baru
Ubah Kecepatan jalan
3.3.1.2 Actor
Dalam aplikasi Optimasi Distribusi Majalah terdapat 2 aktor yang terlibat yaitu :
Tabel 3.3 Actor
Aktor Hak Akses
Administrator • Login Administrator
• Mengubah data kecepatan tiap jalan
• Mengubah kondisi jalan yang tidak dapat
dilewati
• Mengubah Account Administrator
• Logout Administrator
Staff Bagian Pemasaran
• Login Staff Bagian Pemasaran.
• Menambah,mengubah, menghapus data agen
• Menambah,mengubah, menghapus data
transaksi majalah
• Melihat daftar pengiriman
• Melihat peta jalur pengiriman majalah yang
telah dipilih oleh sistem
• Mengubah account staff bagian pemasaran
3.3.1.3 Tabel Use Case
Tabel 3.4 Use Case
No Use Case Deskripsi Aktor
1 Login Fasilitas login digunakan oleh admin dan staff bagian pemasaran untuk masuk ke account masing – masing
Administrator dan StaffBagianPemasaran
2 Logout Digunakan oleh staff bagian pemasaran dan admin untuk keluar dari account masing-masing
Administrator dan StaffBagianPemasaran
3 Mengubah Account
Digunakan staff bagian pemasaran dan admin untuk mengubah username dan password account yang digunakan untuk login
Administrator dan StaffBagianPemasaran
4 Mengisi data agen baru
Digunakan staff bagian pemasaran untuk menambah data agen baru.
StaffBagianPemasaran
5 Mengubah data agen
Digunakan staff bagian pemasaran untuk mengubah atau
memperbaharui data Agen.
StaffBagianPemasaran
6 Menghapus Digunakan staff bagian pemasaran untuk menghapus data agen yang
data agen diinginkan.
7 Mengisi transaksi baru
Digunakan StaffBagianPemasaran untuk mencatat transaksi
pemesanan tiap agen
StaffBagianPemasaran
8 Mengubah transaksi
Digunakan untuk mengubah data transaksi pemesanan
StaffBagianPemasaran
9 Menghapus transaksi
Digunakan staff bagian pemasaran untuk menghapus transaksi yang diinginkan
StaffBagianPemasaran
10 Melihat daftar pengiriman
Digunakan oleh Staff bagian pemasaran untuk melihat daftar pengiriman majalah dan
menentukan daftar agen yang akan dikirim
StaffBagianPemasaran
11 Melihat peta pengiriman
Staff bagian pemasaran menggunakan fungsi ini untuk melihat jalur pengiriman majalah yang sesuai rekomendasi sistem
StaffBagianPemasaran
12 Mengupdate kondisi jalan yang tidak bisa
Digunakan oleh Administrator untuk mengupdate jalan mana yang tidak bisa dilewati
dilewati
13 Ubah Kecepatan jalan
Digunakan Admin untuk mengubah data bobot dari tiap-tiap jalan
Administrator
3.3.2 Skenario Use Case
Setiap use case pada bagian sebelumnya akan dirinci dalam sebuah skenario yang merupakan deskripsi tekstual dari suatu proses dan bagaimana pengguna berinteraksi dengan sistem. Untuk lebih jelsnya dapat dilihat pada tabel 3.5 berikut ini :
Tabel 3.5 Tabel skenario Use Case
Use Case Detail Skenario
Login Lampiran 1.1
Logout Lampiran 1.2
Mengubah Account Lampiran 1.3
Mengisi data agen baru Lampiran 1.4
Mengubah data agen Lampiran 1.5
Menghapus data agen Lampiran 1.6
Mengisi transaksi baru Lampiran 1.7
Mengubah transaksi Lampiran 1.8
Menghapus transaksi Lampiran 1.9
Melihat peta pengiriman Lampiran 1.11 Mengupdate kondisi jalan yang tidak bisa dilewati Lampiran 1.12
Ubah Kecepatan jalan Lampiran 1.13
3.3.3 Model Analisis
Model analisis adalah salah satu proses untuk menterjemahkan skenario
use case menjadi kelas analisis. Dalam kelas analisis terdapat 3 jenis, yakni:
Form/boundary Controller, dan Entitas.
3.3.3.1 Realisasi Use Case
Pada tahap ini, analisis kelas dilakukan setiap use case. Setiap use case
dicari kelas analisis sehingga kebutuhan kelas dapat ditentukan. untuk lebih lengkapnya dapat dilihat pada tabel 3.6 berikut ini :
Tabel 3.6 Tabel realisasi use case
Use Case Detail Skenario
Login Lampiran 2.1
Logout Lampiran 2.2
Mengubah Account Lampiran 2.3
Mengisi data Agen Lampiran 2.4
Mengubah data agen Lampiran 2.5
Menghapus data agen Lampiran 2.6
Mengisi transaksi baru Lampiran 2.7
Menghapus transaksi Lampiran 2.9 Melihat daftar pengiriman Lampiran 2.10
Melihat peta pengiriman Lampiran 2.11
Mengupdate kondisi jalan Lampiran 2.12
Ubah Kecepatan jalan Lampiran 2.13
3.3.3.2 Diagram kelas keseluruhan
3.3.4 Desain Sistem
3.3.4.1 Kelas Perancangan
Tabel 3.7 Kelas perancangan
No Kelas Analisis Kelas Perancangan Jenis UseCase
1 AdminControl AdminControl Control logout
mengubah Account mengubah kecepatan jalan mengupdate kondisi jalan mengubah waktu lampu merah
2 AdminMainFrame AdminMainFrame Boundary login
mengubah waktu lampu merah mengupdate kondisi Jalan
3 AgenData AgenData Entity melihat daftar pengiriman
melihat peta pengiriman menghapus data agen mengisidataagen mengisitransaksibaru mengubah data agen 4 AgenInternalFrame AgenInternalFrame Boundary menghapus data agen
mengisidataagen mengubah data agen
5 AutentikasiLogin autentikasiLogin Control login
mengisidataagen mengubah data agen
8 DaftarPengirimanInternalFrame DaftarPengirimanInternalFrame Boundary melihat daftar pengiriman melihat peta pengiriman 9 hitungKepadatanData hitungKepadatanData Entity mengubah kecepatan jalan
10 JalanData JalanData Entity menghapus data agen
mengisidataagen mengubah data agen mengubah kecepatan jalan mengupdate kondisi jalan
11 KabupatenData KabupatenData Entity menghapus data agen
mengisidataagen mengubah data agen
13 KelurahanData KelurahanData Entity menghapus data agen
mengisidataagen mengubah data agen 14 KondisiJalanInternalFrame kondisiJalanInternalFrame Boundary mengupdate kondisi jalan
15 LoadPeta LoadPeta Control login
16 LoginFrame LoginFrame Boundary login
logout 17 PathSearchDestination PathSearchDestination
DistPar Edge Graph
Vertex
18 PetaPengirimanFrame PetaPengirimanFrame petaPengiriman
Boundary melihat peta pengiriman
19 pilihNodeFrame pilihNodeFrame
peta
Boundary mengisidataagen mengubah data agen
20 satuanPerhitunganForm satuanPerhitunganForm Boundary mengubah kecepatan jalan 21 StaffBagianPemasaranMainFrame StaffBagianPemasaranMainFram
e
Boundary login logout
mengubah account mengubah data agen mengubahtransaksi
22 StaffControl StaffControl Control logout
menghapus transaksi melihat daftar pengiriman mengubah data agen mengubahtransaksi menghapus data agen mengubah account melihat peta pengiriman mengisidataagen
melihat peta pengiriman menghapus transaksi mengisitransaksibaru mengubahTransaksi
24 TransaksiData TransaksiData Entity melihat daftar pengiriman melihat peta pengiriman menghapus transaksi mengisitransaksibaru mengubahTransaksi
25 TransaksiInternalFrame TransaksiInternalFrame Boundary menghapus transaksi mengubahTransaksi
28 UserData UserData Entity login
3.3.5 Attribut dan Method
Bagian ini akan menjelaskan lebih detail mengenai attribut dan method dari kelas desain. Daftar detail mengenai attribut dan method tersebut dapat dilihat pada lampiran 4
3.3.6 Prototype Antarmuka
Dari analisa attribut dan method pada tahap sebelumnya, maka akan ditentukan kelas yang akan dijadikan user interface. Kemudian dari kelas tersebut dibuat suatu rancangan antarmuka yang akan digunakan dalam implementasi program. Rancangan prototype antar muka dapat dilihat pada tabel 3.8 berikut ini:
Tabel 3.8 Prototype Antarmuka
No Kelas Analisis Lampiran
1 Halaman Login Lampiran 5.1 2 Halaman
StaffBagianPemasaranMainFrame
Lampiran 5.2
3 Halaman AgenInternalframe Lampiran 5.3 4 Halaman PilihNodeFrame Lampiran 5.4 5 Halaman TransaksiInternalFrame Lampiran 5.5 6 Halaman CariAgenDialog Lampiran 5.6 7 Halaman
DaftarPengirimanInternalFrame
Lampiran 5.7
8 Halaman PetaPengirimanFrame Lampiran 5.8 9 Halaman UbahAccountFrame Lampiran 5.9 10 Halaman AdminMainframe Lampiran 5.10 11 Halaman SatuanPerhitunganForm Lampiran 5.11 12 Halaman
KondisiJalanInternalframe
3.3.7 Attribut
3.3.7.1Halaman Login
Tabel 3.9 Halaman login
No Nama Jenis Deskripsi
1 btnCancel Button Untuk membatalkan proses Login
2 btnOK Button Untuk melakukan proses login 3 cmbStatus comboBox Untuk memilih mau login
sebgai administrator atau StaffBagianPemasaran 4 txtPassword PasswordField Untuk tempat input password 5 txtUsername TextField Untuk input username 6 judulLabel Label Untuk keterangan judul form 7 userNameLabel Label Untuk keterangan nama 8 loginAsLabel Label Untuk keterangan login as 9 passwordLabel Label Untuk keterangan password
3.3.7.2Halaman StaffBagianPemasaranMainFrame
Tabel 3.10 Halaman StaffBagianPemasaranMainFrame
No Nama Jenis Deskripsi
program
2 mnAccount Menu Berisi menu ubah account menuitem
3 mnFile Menu Untuk meletakkan
Agen,Transaksi,Daftar Pengiriman, dan logout menu Item
4 desktopPanel Panel Untuk tempat tampilnya form-form yang dipanggil user 5 jMenuBar1 MenuBar Untuk meletakkan menu - menu 6 mnItemAgen MenuItem Untuk menampilkan form
agenInternalFrame
7 mnItemDaftarPengirman MenuItem Untuk menampilkan form DaftarPengirimanInternalFrame 8 mnItemEditAccount MenuItem Untuk menampilkan form
UbahAccountFrame
9 mnItemKeluar MenuItem Untuk keluar dari menu Utama Staff menuju ke form login 10 mnItemTransaksiBaru MenuItem Untuk menampilkan form
TransaksiInternalFrame
3.3.7.3Halaman AgenInternalFrame
Tabel 3.11 Halaman Agen
No Nama Jenis Deskripsi
1 agenTable Table Untuk menampilkan data agen yang telah diinputkan
2 alamatTextArea TextArea Untuk input alamat lengkap agen 3 cariButton Button Untuk melakukan proses pencarian 4 cariCmbBox ComboBox Untuk memilih mencari agen
berdasarkan apa
5 cariTextField TextField Untuk menginputkan pencarian agen
6 cekPosisionButton Button Untuk menampilkan form pilihNodeFrame yang digunakan untuk memilih letak posisi agen 7 faxTextField textField Untuk inputan nomor fax
8 hapusButton Button Untuk menghapus data agen 9 jalanComboBox ComboBox Untuk memilih nama jalan tempat
posisi agen
10 kecamatanComboBox ComboBox Untuk memilih nama kecamatan 11 kelurahanComboBox ComboBox Untuk memilih nama kelurahan 12 koordLabel Label Untuk menampilkan kordinat
13 kordXLabel Label Untuk menampilkan koordinat X di peta tempat posisi agen
14 kordYlabel Label Untuk menampilkan koordinat Y di peta tempat posisi agen
15 kosongButton Button Untuk mengkosongan field 16 kotaComboBox ComboBox Untuk memilih nama kabupaten 17 nama1TextField TextField Untuk menginputkan nama agen 18 simpanButton Button Untuk menyimpan data agen
kedalam database
19 teleponTextField TextField Untuk menginputkan data telepon agen
20 jalanLable Label Label keterangan jalan textField 21 kelurahanLable Label Label keterangan kelurahan
textField
22 kecamatanLable Label Label keterangan kecamatan textField
29 nama1Lable Label Label keterangan nama textField 30 kotaLable Label Label keterangan kota textField
3.3.7.4Halaman PilihNodeFrame
Tabel 3.12 Halaman PilihNodeFrame
No Nama Jenis Deskripsi
1 upButton Button Untuk mengarahkan peta keatas 2 piliButton Button Untuk menyimpan node alamat agen,
menutup form pilihNode dan kembali ke form agenInternalFrame
3 rightButton Button Untuk mengarahkan peta kekanan 4 mapPanel Panel Untuk tempat tampil peta
5 leftButton Button Untuk mengarahkan peta kekiri 6 kordinatYlabel Label Untuk menampilkan koordinat Y
lokasi node dipeta
7 kordinatXLabel Label Untuk menampilkan koordinat X lokasi node dipeta
3.3.7.5Halaman TransaksiInternalFrame
Tabel 3.13 Halaman Transaksi
No Nama Jenis Deskripsi
1 idTransaksiLabel Label Keterangan id transaksi 2 hidupPesanTextField TextField Untuk inputan jumlah pesanan
majalah hidup
3 hidupPesanLabel Label Keterangan hidup textfield 4 hapusButton Button Untuk menghapus data transaksi 5 cariTextField TextField Untuk menginputkan kata
pencarian
6 cariButton Button Untuk melakukan pencarian data transaksi
7 cariBerdasarkanLabel Label
8 cariBerdasarkanCmbBox ComboBox Untuk memilih jenis pencarian 9 basisPesanTextField TextField Untuk menginputkan jumlah
pesanan majalah basis
10 basisPesanLabel Label Keterangan label basistextfield 11 jMonthChooser1 ComboBox Untuk memilih bulan pemesanan 12 jYearChooser1 ComboBox Untuk memilih tahun pemesanan 13 kosongButton Button Untuk mengkosongkan field
inputan
15 namaAgenLabel2 Label Untuk menampilkan nama agen yang dipilih pada tabel pilih agen 16 nmrAgenButton Button Untuk menampilkan form
bantuan data agen
17 nmrAgenLabel Label Keterangan nomor agen
18 simpanButton Button Untuk menyimpan data transaksi kedalam database
19 transaksiTabel Table Keterangan transaksi textfield 20 ubahButton Button Untuk mengubah data transaksi 21 utusanLabel Label Keterangan utusan textfield 22 utusanTextField TextField Untuk menginputkan jumlah
pesanan majalah utusan
3.3.7.6Halaman CariAgenDialog
Tabel 3.14 Halaman Cari Agen
No Nama Jenis Deskripsi
1 pilihButton Button Untuk memilih agen yang telah terseleksi ditable
2 jenisPencarianCombo ComboBox Untuk menentukan pencarian jenis tabel
4 cariLabel Label Keterangan label cari
5 cariButton Button Untuk mencari agen
berdasarkan kriteria pada cari textfield
6 agenTabel Table Keterangan agen
3.3.7.7Halaman DaftarPengirimanInternalFrame
Tabel 3.15 Halaman Daftar Pengiriman
No Nama Jenis Deskripsi
1 HidupLabel Label Keterangan hidup
2 alamatTextArea TextArea Alamat lengkap dari agen
3 basisJml Label Untuk menampilkan keterangan jumlah pesanan majalah basis
4 basisLabel Label Keterangan basis
5 berangkatLabel Label Keterangan waktu berangkat
6 daftarPengirimanTable Table Digunakan untuk menampilkan daftar pemesanan majalah
7 hidupJml Label Untuk menampilkan keterangan jumlah pesanan majalah hidup 8 idAgen Label Untuk menampilkan id agen yang
10 namaAgenLabel Label Keterangan nama agen
11 pesananBulanCmbBox ComboBox Untuk menampilkan pilihan bulan pengiriman
12 pesananBulanLabel Label Keterangan bulan
13 petaButton Button Untuk menampilkan peta pengiriman
14 utusanJml Label Untuk menampilkan keterangan jumlah pesanan majalah utusan 15 utusanLabel Label Keterangan utusan
16 wktBrangkatCombo ComboBox Untuk memilih waktu berangkat 17 statusLabel Label Keterangan status
18 statusCmbBox Combobox Untuk memilih apakah agen mau dikirm atau tidak
19 ButtonSimpan Button Untuk menyimpan status agen
3.3.7.8Halaman PetaPengirimanFrame
Tabel 3.16 Halaman peta pengiriman
No Nama Jenis Deskripsi
1 upButton Button Untuk mengarahkan peta
ke atas
2 rightButton Button Untuk mengarahkan peta
3 petaJalurPanel Panel Untuk menampilkan peta jalur pengiriman
4 leftButton Button Untuk mengarahkan peta
ke kiri
5 ketWaktuBrngkatLabel Label Untuk menampilkan waktu pengiriman dimulai
6 jalurPengirmanJalanTextArea TextArea Untuk menampilkan keterangan jalur
pengiriman
7 bottomButton Button Untuk mengarahkan peta
ke bawah
3.3.7.9Halaman UbahAccountFrame
Tabel 3.17 Halaman Ubah Akun
No Nama Jenis Deskripsi
1 batalButton Button Untuk membatalkan proses
ubah username dan password
2 loginAs Label Keterangan aktorlogin
sebagai admin atau sebagai StaffBagianPemasaran