i MENENTUKAN MINIMUM SPANNING TREE MENGGUNAKAN ALGORITMA KRUSKAL DENGAN BAHASA PEMROGRAMAN C TUGAS AKHIR ASDITA RIZKI LUBIS 112406125 PROGRAM STUDI D3 TEKNIK INFORMATIKA DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2014
ii MENENTUKAN MINIMUM SPANNING TREE MENGGUNAKAN ALGORITMA KRUSKAL DENGAN BAHASA PEMROGRAMAN C TUGAS AKHIR Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya ASDITA RIZKI LUBIS 112406125 PROGRAM STUDI D3 TEKNIK INFORMATIKA DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2014
i PERSETUJUAN Judul : Menentukan Minimum Spannning Tree Menggunakan Algoritma Kruskal Dengan Bahasa Pemrograman C Kategori Nama : Tugas Akhir : Asdita Rizki Lubis Nomor Induk Mahasiswa : 112406125 Program Studi Departemen Fakultas : D3 TEKNIK INFORMATIKA : Matematika : Matematika Dan Ilmu Pengetahuan Alam Disetujui di Medan, Juni 2014 Disetujui oleh: Program Studi D3 Teknik Informatika FMIPA USU Ketua, Pembimbing Dr. Elly Rosmaini, M.Si Dr. Mardiningsih, MSi NIP. 19600520 198503 2 002 NIP. 19630405 198811 2 001
ii PERNYATAAN MENENTUKAN MINIMUM SPANNING TREE MENGGUNAKAN ALGORITMA KRUSKAL DENGAN BAHASA PEMROGRAMAN C TUGAS AKHIR Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, Juni 2014 ASDITA RIZKI LUBIS 112406125
iii PENGHARGAAN Alhamdulillah, puji dan syukur penulis panjatkan kepada Allah SWT yang Maha Pemurah dan Penyayang, dengan limpahan rahmat dan hidayah-nya Penulis dapat menyelesaikan penyusunan tugas akhir ini dengan judul Menentukan Minimum Spanning Tree menggunakan Algoritma Kruskal Dengan Bahasa Pemrograman C. Ucapan terima kasih penulis sampaikan kepada Ibu Dr. Mardiningsih, MSi, selaku pembimbing sekaligus Sekertaris Departemen Matematika FMIPA USU, yang telah memberikan panduan dan bimbingan dalam merampungkan tugas akhir ini. Ucapan terima kasih juga ditujukan kepada Ketua Departemen Matematika FMIPA USU Bapak Prof.Drs. Tulus, M.Si, Ibu Dr. Elly Rosmaini, MSi selaku Ketua Prodi D3 Teknik Informatika, Bapak Syahriol Sitorus S.Si, M.IT selaku Sekretaris Prodi D3 Teknik Informatika, Dekan, Pembantu Dekan FMIPA USU, serta segenap dosen dan pegawai Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, serta rekan-rekan mahasiswa D3 Teknik Informatika Universitas Sumatera Utara. Tak lupa penulis juga mengucapkan banyak terima kasih kepada orangtua tercinta yang telah memberikan kasih sayang, kekuatan dan doa kepada penulis serta sanak saudara yang telah memberikan banyak dukungan dan doa dalam menyelesaikan pendidikan D3 Teknik Informatika. Semoga Allah akan membalasnya.
iv ABSTRAK Jika semua jaringan listrik dibuat terlalu banyak maka biaya akan boros. Beberapa jalur yang menghubungkan 2 kota secara langsung tidak perlu dibuat karena kotakota tersebut tetap dapat teraliri listrik secara tidak langsung, yaitu dengan melalui kota lain sedemikian hingga total biaya pemasangan jaringan listrik seminimum mungkin. Atau dengan kata lain, mencari pohon rentang dengan total bobot terkecil. Melihat hal itu penulis ingin membantu user menemukan pohon rentang minimum secara sederhana menggunakan Algoritma Kruskal dengan Bahasa Pemrograman C. Aplikasi ini berguna untuk mencari pohon rentang dengan total bobot seminimum mungkin atau disebut pohon merentang minimum.
v ABSTRACT If all the electricity grid made too much of the costs wiil be wasteful. Multiple paths that connect the two cities directly not need to be made because the cities will still be powered indirectly, with another city such that the total cost of the installation of the electrical grid to a minimum. Or in other words finding a spanning tree with total weight of the smallest. See it author wants to help user find the minimum spanning tree using Kruskal algorithm with a simple programming language C. This application is useful to find a spanning tree with minimum total weight or the so called minimum spanning tree.
vi DAFTAR ISI Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Halaman i ii iii iv v vi viii ix Bab 1. Pendahuluan 1 1.1. Latar Belakang 1 1.2. Rumusan Masalah 2 1.3. Batasan Masalah 3 1.4. Tujuan 3 1.5. Manfaat 3 1.6. Metodologi Penelitian 4 1.7. Sistematika Penulisan 5 Bab 2. Landasan Teori 7 2.1. Pengertian Algoritma 7 2.2. Sejarah Graf 8 2.3. Teori Graf 8 2.3.1. Graph Sederhana(Simple Graph) 9 2.3.2. Graf Tak-Berarah (Undirected Graph) 9 2.3.3. Graf Berbobot 10 2.4. Pohon(Tree) 10 2.5. Pohon Merentang 11 2.6. Graf Berlabel 12 2.7. Pohon Merentang Minimum 13 2.8. Aplikasi Minimum Spanning Tree 14 2.9. Algoritma Kruskal 15 2.10. Algoritma Prim 18 2.11. Pengertian Komputer 18 2.12. Sejarah Singkat C 19 2.13. Mengenal Pemrograman 19 2.14 Pembahasan Bahasa Pemrograman C 20 2.14.1 Identifier, Keywords dan Tipe Data Pada Bahasa C 23 2.14.2 Escape Character pada Bahasa C 25 2.15 Dev C++ 26 Bab 3 Perancangan Sistem 32 3.1. Perancangan Sistem 32
vii 3.2. Pemodelan Aplikasi 32 3.3. Flowchart 34 3.4. Struktur Kontrol Percabangan 36 3.4.1. Pola IF 37 3.4.2. Bentuk IF ELSE 37 3.5 Struktur Kontrol Perulangan 38 3.5.1. Struktur For() 39 3.6 Fungsi Main 40 3.6.1. int main() 40 3.6.2. void main() 40 3.7 Pointer 41 3.8 Array 41 3.8.1. Array 1 Dimensi 42 3.8.2. Array 2 Dimensi 42 3.9 Perancangan Tampilan 44 3.9.1. Menu utama 44 3.9.2. Compile dan Run 44 3.9.3. Command Prompt 45 Bab 4 Impementasi Sistem 46 4.1. Pengertian Implementasi Sistem 46 4.2. Tujuan Implementasi Sistem 47 4.3. Kebutuhan Sistem 47 4.3.1. Perangkat Keras (Hardware) 47 4.3.2. Perangkat Lunak (Software) 48 4.3.3. Brainware 48 4.4. Tampilan Akhir Program 49 4.5. Cara Kerja Program 50 Bab 5 Penutup 52 5.1. Kesimpulan 52 5.2. Saran 53 Daftar Pustaka 54 Lampiran
viii DAFTAR TABEL No tabel Judul Halaman 2.1 Tabel pembentukan pohon merentang minimum dengan algoritma Kruskal 17 2.2 Tabel contoh statement 22 2.3 Keywords pada C 23 2.4 Ukuran tipe data bilangan bulat 24 2.5 Tipe Data Bilangan Pecahan 24 2.6 Tipe Data Non-Numerik 25 2.7 Tipe Karakter Khusus 26 3.1 Simbol-simbol Flowchart 34
ix DAFTAR GAMBAR No Gambar Judul Halaman 2.1 Graf lengkap G dan empat buah pohon 11 2.2 Graf Jaringan Jalur Rel Kereta Api 14 2.3 Struktur Program C 22 2.4 Tampilan Awal Dev C++ 27 2.5 Tampilan Membuat Project Baru 28 2.6 Cara Menyimpan Program 29 2.7 Jendela Area Kerja Dev C++ 30 3.1 Diagram Alir Perancangan 33 3.2 Flowchart Pola IF 37 3.3 Flowchart Bentuk IF ELSE 38 3.4 Flowchart Struktur For() 39 3.5 Flowchart Program 43 3.6 Kerangka Tampilan Halaman Program 44 4.1 Tampilan Akhir Program 49 4.2 Graph Berlabel 50 4.3 Tampilan Awal Masukkan Verteks 50 4.4 Input Matriks Adjasensi 51 4.5 Total Biaya Minimum 51 4.6 Hasil Minimum Spanning Tree 52