PERANCANGAN PERMAINAN OIL COMPANY PROBLEM DENGAN MENGGUNAKAN TEOREMA MEDIANS DAN ORDER STATISTICS

Ukuran: px
Mulai penontonan dengan halaman:

Download "PERANCANGAN PERMAINAN OIL COMPANY PROBLEM DENGAN MENGGUNAKAN TEOREMA MEDIANS DAN ORDER STATISTICS"

Transkripsi

1 PERANCANGAN PERMAINAN OIL COMPANY PROBLEM DENGAN MENGGUNAKAN TEOREMA MEDIANS DAN ORDER STATISTICS SKRIPSI Oleh: HENDY PRATAMA NIM: PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK TIME MEDAN 2015

2 ABSTRAK Problema perusahaan minyak (Oil Company Problem) merupakan salah satu permasalahan dari teorema Medians dan Order Statistics. Problema ini dapat diselesaikan dengan lebih cepat dan efisien dengan menerapkan algoritma divideand-conquer. Sasaran dari problema ini adalah untuk menentukan letak pipa saluran utama yang menghubungkan sumur-sumur minyak yang tersebar di suatu ladang minyak. Lokasi optimal dari pipa saluran utama pada problema di atas dapat dicari dengan cara menentukan nilai median dari koordinat y jika pipa utama ingin diletakkan secara horizontal dan nilai median dari koordinat x jika pipa utama ingin diletakkan secara vertikal. Penerapan metode divide-andconquer dalam menyelesaikan masalah median dapat dibagi menjadi beberapa langkah antara lain proses penentuan nilai n, yang merupakan jumlah data, proses penentuan deretan nilai A sebanyak n buah, proses perhitungan nilai m dan proses perhitungan nilai median. Perangkat lunak dapat digunakan untuk bermain Oil Company Problem yang solusinya dapat dicari dengan menggunakan teorema Medians dan Order Statistics. Kata kunci: oil company problem, divide and conquer, teorema Medians dan Order Statistics

3 ABSTRACT Oil Company Problem is a problem of Medians and Order Statistics theorem. This problem could be solved quickly and efficiently by using divideand-conquer algorithm. The goal of this problem is to determine the position of main pipe that is connected to oil well that are spread in oil farm The optimal location of main pipe in this problem could be found by determined the median value of y-coordinate if the main pipe is wanted to be put horizontally and median value of x-coordinate if the main pipe is wanted to be put vertically. The implementation of divide and conquer method in solving median could be classified into several steps such as determining n value, A value sequence, computing m value and computing median value The software could be used to play Oil Company Problem which solutions could be found by using Medians and Order Statistics theorem. Keywords: oil company problem, divide and conquer, Medians and Order Statistics Theorem

4 KATA PENGANTAR Puji syukur kepada Tuhan Yang Maha Esa yang telah memberikan kesehatan kepada penulis dan berkat kebajikan yang telah diperbuat selama ini sehingga penulis dapat menyelesaikan skripsi yang merupakan salah satu pemenuhan kurikulum program studi Teknik Informatika pada STMIK TIME Medan. Adapun judul dari skripsi ini adalah Perancangan Permainan Oil Company Problem dengan Menggunakan Teorema Medians dan Order Statistics. Dalam penyusunan skripsi ini, penulis banyak menerima bantuan, baik bimbingan maupun petunjuk serta saran nasehat dari berbagai pihak. Melalui kesempatan ini, penulis ingin menyampaikan rasa terima kasih yang sebesar besarnya kepada : 1. Bapak Hendri, M.Kom, selaku Dosen Pembimbing I yang telah membantu dan membimbing penulis dalam menyelesaikan skripsi ini. 2. Ibu Mina Wongso, M.Psi, selaku Dosen Pembimbing II yang telah membantu dan membimbing penulis dalam menyelesaikan skripsi ini. 3. Bapak Simon Kanggali, selaku Ketua Yayasan STMIK TIME Medan. 4. Bapak Prof. Chainur Arrasyid, selaku Ketua BPH STMIK TIME Medan. 5. Bapak Prof. Harlem Marpaung, Ph.D, selaku Ketua STMIK TIME Medan. 6. Bapak Jackri Hendrik, ST, M.Kom, selaku Puket I STMIK TIME Medan. 7. Bapak Hendri, M.Kom, selaku Ketua Program Studi Teknik Informatika STMIK TIME Medan.

5 8. Seluruh Dosen STMIK TIME Medan, yang telah banyak memberikan ilmu pengetahuan kepada penulis selama perkuliahan. Meskipun telah disusun, penulis menyadari bahwa isi dan teknik penulisan skripsi ini masih memerlukan perbaikan untuk menyempurnakannya baik dari segi tata bahasa manapun materi yang terkandung didalamnya. Oleh karena itu, setiap kritik dan saran akan diterima dengan senang hati agar dapat dijadikan bahan perbaikan untuk penulisan selanjutnya. Medan, April 2015 Penulis, HENDY PRATAMA NIM:

6 DAFTAR ISI ABSTRAK... ABSTRACT... i ii KATA PENGANTAR... iii DAFTAR ISI... v DAFTAR GAMBAR... viii DAFTAR TABEL... ix DAFTAR LAMPIRAN... x BAB I PENDAHULUAN Latar Belakang Masalah Identifikasi Masalah Batasan Masalah Tujuan dan Manfaat Penelitian Sistematika Penulisan BAB II LANDASAN TEORI Algoritma Definisi Algoritma Penerapan Algoritma Klasifikasi Algoritma Karakteristik Algoritma Kompleksitas Algoritma Struktur Data... 14

7 Manfaat Struktur Data Struktur Data Array (Larik) Pengurutan (Sorting) Quick Sort Randomized Quick Sort Statistik (Statistics) Peranan Statistik Data Statistik Order Statistic Metode Divide-and-Conquer Penerapan Metode Divide and Conquer dalam Masalah Seleksi Problema Perusahaan Minyak (Oil Company Problem) BAB III METODE PENELITIAN Tempat dan Jadwal Penelitian Kerangka Kerja Metode Pengumpulan Data Analisa Sistem Perancangan Sistem Pembangunan Sistem Uji Coba Sistem BAB IV ANALISA DAN PERANCANGAN Analisa Perancangan... 39

8 Form Utama Form Permainan Form User Form High Score Form About Perancangan Database BAB V HASIL DAN PEMBAHASAN Hasil Interface Program Algoritma Spesifikasi Hardware dan Software Pembahasan BAB V1 KESIMPULAN DAN SARAN Kesimpulan Saran DAFTAR PUSTAKA LAMPIRAN

9 DAFTAR GAMBAR Gambar 2.1. Grafik Notasi, Notasi O dan Notasi Gambar 2.2. Peranan statistik dalam melakukan penelitian Gambar 2.3. Ilustrasi algoritma randomized-quick select Gambar 3.1. Kerangka kerja penelitian Gambar 3.2. Model Waterfall Gambar 4.1. Tampilan Form Utama Gambar 4.2. Tampilan Form Permainan Gambar 4.3. Tampilan Form User Gambar 4.4. Tampilan Form High Score Gambar 4.5. Tampilan Form About Gambar 4.6. Relationship Tabel Pada Database Gambar 5.1. Form Utama Gambar 5.2. Form User Gambar 5.3. Input Box Tambah User Gambar 5.4. Form Permainan Gambar 5.5. Form Daftar Nilai Tertinggi Gambar 5.6. Form Mengenai... 51

10 DAFTAR TABEL Tabel 3.1. Jadwal Penelitian Tabel 4.1. Tabel High Score Tabel 4.2. Tabel User List... 45

11 DAFTAR LAMPIRAN CD program Surat keputusan dosen pembimbing skripsi Daftar riwayat hidup mahasiswa Listing program

12 BAB I PENDAHULUAN 1.1. Latar Belakang Masalah Oil Company Problem merupakan sebuah problem dari teorema Medians dan Order Statistics, dimana sasaran dari problema ini adalah mencari nilai median dari sekumpulan nilai dengan menggunakan algoritma divide and conquer. Problema perusahaan minyak (Oil Company Problem) dapat dijabarkan sebagai berikut, seorang professor bekerja sebagai konsultan pada sebuah perusahaan minyak. Perusahaan tersebut berencana untuk membangun sebuah pipa saluran besar yang membentang dari timur ke barat melewati n buah sumur dari ladang minyak. Dari setiap sumur, sebuah cabang pipa saluran dihubungkan langsung ke pipa saluran utama pada jarak yang minimum (shortest path) baik timur maupun barat. Selain itu, juga diberikan koordinat x dan y dari setiap sumur. Permasalahannya adalah bagaimana sang professor menentukan lokasi optimal dari pipa saluran utama (Cormen, H., Leiserson, E., Rivest, L., 1990). Problema ini dapat diselesaikan dengan menggunakan teorema Medians dan Order Statistics. Lokasi pipa saluran utama tersebut dapat dicari dengan menggunakan algoritma divide and conquer untuk problema seleksi. Problema di atas sebenarnya hampir mirip dengan mencari nilai median dari sekelompok nilai, di mana nilai diwakili oleh posisi y dari setiap sumur. Selain itu, problema ini juga memerlukan algoritma sorting. Dalam hal ini, penulis memilih algoritma Randomized-Quicksort, dengan pertimbangan bahwa algoritma ini termasuk metode divide-and-conquer yang memiliki waktu eksekusi terbaik O(n). 1

13 2 Berdasarkan uraian di atas, maka penulis bermaksud untuk merancang sebuah perangkat lunak permainan untuk bermain oil company problem. Permainan ini dirancang dengan tujuan untuk mempelajari mengenai proses pencarian nilai median yang merupakan solusi dari permainan oil company problem. Permainan ini dapat digunakan oleh anak kelas SMP dan SMA untuk mempelajari mengenai statistik dan median. Oleh karena itu, penulis mengambil skripsi dengan judul Perancangan Permainan Oil Company Problem dengan Menggunakan Teorema Medians dan Order Statistics Identifikasi Masalah Berdasarkan latar belakang pemilihan judul, maka yang menjadi permasalahan adalah: 1. Menyediakan interface untuk menentukan lokasi pipa untuk menghubungkan semua sumur pada ladang minyak. 2. Menerapkan teorema Median dan Order Statistics untuk melakukan proses pencarian lokasi pipa saluran utama Batasan Masalah Karena keterbatasan waktu dan pengetahuan penulis, maka ruang lingkup permasalahan dalam merancang perangkat lunak ini adalah sebagai berikut : 1. Jumlah sumur dibatasi maksimal 50 buah. 2. Posisi pipa utama dibentangkan secara horizontal ataupun vertikal. 3. Bahasa pemrograman yang digunakan untuk membangun sistem adalah Microsoft Visual Basic 2010.

14 3 4. Waktu yang diberikan dalam permainan hanya 300 detik Tujuan dan Manfaat Penelitian Tujuan penyusunan skripsi ini adalah: 1. Merancang suatu perangkat lunak yang dapat digunakan untuk bermain Oil Company Problem. 2. Menerapkan algoritma divide and conquer untuk menyelesaikan Oil Company Problem. Manfaat dari penyusunan skripsi ini, yaitu: 1. Bagi penulis Pembuatan skripsi ini dapat meningkatkan pengetahuan dan kemampuan penulis dalam membuat aplikasi dengan menggunakan Microsoft Visual Basic.NET. 2. Bagi pembaca a. Untuk memahami proses kerja dari algoritma divide and conquer untuk problema seleksi. b. Perangkat lunak dapat digunakan sebagai sarana hiburan yang cukup menarik untuk mengisi waktu senggang. 3. Bagi STMIK-TIME Laporan skripsi dapat dijadikan sebagai referensi bagi mahasiswa lainnya yang ingin mengembangkan aplikasi permainan lainnya.

15 Sistematika Penulisan Rincian isi dari laporan skripsi ini meliputi beberapa BAB, yaitu: BAB I PENDAHULUAN Pada BAB ini akan membahas tentang latar belakang masalah, identifikasi masalah, batasan masalah, tujuan dan manfaat serta sistematika penulisan. BAB II LANDASAN TEORI Pada BAB ini berisi tentang landasan teori mengenai algoritma yang digunakan untuk menunjang penyusunan laporan skripsi ini. BAB III METODE PENELITIAN BAB ini berisi pembahasan jadwal penelitian, kerangka penulisan, metode pengumpulan data dan alur kerja program. BAB IV ANALISIS DAN PERANCANGAN SISTEM BAB ini berisi pembahasan masalah serta rancangan tampilan form yang terdapat pada program yang akan dibuat. BAB V HASIL DAN PEMBAHASAN BAB ini berisi tampilan output program dan penjabaran mengenai kelebihan dan kelemahan program permainan Oil Company Problem. BAB VI KESIMPULAN DAN SARAN BAB ini berisi kesimpulan dan saran terhadap laporan skripsi yang telah dilakukan.

16 BAB II LANDASAN TEORI 2.1 Algoritma Kata algoritma berasal dari nama seorang ahli matematika berkebangsaan Persia yang hidup pada abad ke-9 yang bernama Abu Abdullah Muhammad bin Musa Al-Khawarizmi. Pada awalnya, kata algorism diartikan sebagai aturanaturan untuk melakukan proses aritmatika menggunakan numerik Arab. Kata algorism diubah menjadi kata algorithm pada abad ke-18. Sekarang, pengertian dari kata ini mencakup semua prosedur terhingga untuk menyelesaikan problema atau melakukan pekerjaan. (Cormen, et. al., 1990) Penerapan pertama dari algoritma yang ditulis untuk sebuah komputer adalah Ada Byron s notes on the analytical engine yang ditulis pada tahun 1842, dimana Ada Byron dianggap oleh kebanyakan orang sebagai programmer pertama di dunia. Walaupun, sejak Charles Babbage tidak menyelesaikan analytical engine-nya, algoritma ini tidak pernah diimplementasikan lagi Definisi Algoritma Algoritma adalah suatu kumpulan terhingga (finite set) dari instruksi yang terdefinisi dengan baik (well-defined instructions) untuk menyelesaikan beberapa pekerjaan dimana diberikan state awal (initial state) dan akan dihentikan pada saat ditemukan state akhir (end-state) yang dikenal. (Cormen, et. al., 1990) 5

17 6 Algoritma dapat diimplementasikan dalam pembuatan program komputer. Kesalahan dalam merancang algoritma untuk menyelesaikan suatu problema dapat menyebabkan program gagal dalam implementasinya. Konsep dari suatu algoritma sering diilustrasikan dengan mengambil contoh sebuah resep, walaupun banyak algoritma yang jauh lebih kompleks. Algoritma sering memiliki beberapa langkah perulangan (iterasi) atau memerlukan pengambilan keputusan seperti logika (logic) atau perbandingan (comparison) sampai pekerjaan diselesaikan. Menerapkan suatu algoritma secara benar belum tentu dapat menyelesaikan problema. Hal ini dikarenakan adanya kemungkinan algoritma tersebut rusak atau cacat, atau penerapannya tidak cocok (tidak tepat) untuk menyelesaikan problema. Sebagai contoh, sebuah algoritma hipotesis untuk membuat sebuah salad kentang akan gagal jika tidak terdapat kentang. Suatu pekerjaan dapat diselesaikan dengan menggunakan algoritma yang berbeda dengan kumpulan instruksi (set of instructions) yang berbeda dengan perbedaan waktu akses, efisiensi tempat, usaha dan sebagainya. Sebagai contoh, diberikan dua buah resep yang berbeda untuk membuat salad kentang, resep pertama mengupas kulit kentang terlebih dahulu sebelum memasak kentang tersebut, sementara resep lainnya dilakukan dengan langkah yang terbalik, dan kedua resep akan mengulangi kedua langkah tersebut dan akan dihentikan pada saat salad kentang siap untuk dimakan. Algoritma adalah hal yang mendasar untuk komputer dalam memproses informasi, karena sebuah program komputer adalah sebuah algoritma yang memberitahukan kepada komputer langkah-langkah spesifik yang akan dijalankan

18 7 (dalam urutan spesifik) untuk melakukan pekerjaan tertentu, misalnya menghitung gaji karyawan atau mencetak rapor murid. Oleh karena itu, algoritma dapat dianggap sebagai beberapa operasi sekuensial (terurut) yang dapat dijalankan oleh sebuah sistem lengkap Turing Penerapan Algoritma Algoritma tidak hanya diimplementasikan dalam program komputer, tetapi juga dalam bidang lain, seperti jaringan neural biologis (biological neural network), otak manusia dalam menghitung operasi aritmatika, serangga dalam proses mencari makanan, peralatan mekanik, dan sebagainya. (Hariyanto, 2003) Analisis dan studi dari algoritma adalah salah satu bidang ilmu dalam computer science (ilmu komputer) dan sering dipraktekkan secara abstrak tanpa penggunaan dari bahasa pemrograman tertentu ataupun implementasi lainnya. Algoritma mirip dengan bidang ilmu matematika lainnya dimana analisis difokuskan pada prinsip yang mendasar dari algoritma dan bukan pada implementasi faktanya. Salah satu cara untuk mewujudkan sebuah algoritma adalah dengan menuliskan pseudocode-nya. Sebuah contoh sederhana dari algoritma dapat dilihat pada ilustrasi berikut ini. Misalkan diketahui sebuah daftar bilangan acak yang tidak terurut. Sasarannya adalah untuk menemukan nilai tertinggi dari daftar bilangan tersebut. Algoritma untuk menyelesaikan pekerjaan tersebut adalah sebagai berikut : 1. Anggap angka pertama sebagai angka terbesar. 2. Baca angka selanjutnya dan bandingkan dengan angka terbesar.

19 8 3. Jika angka tersebut lebih besar daripada angka terbesar maka angka tersebut menjadi angka terbesar. 4. Ulangi langkah kedua dan ketiga hingga semua angka dalam daftar terbaca Klasifikasi Algoritma Banyak cara yang dapat digunakan untuk mengklasifikasikan algoritma, dan penggunaan dari setiap klasifikasi telah lama diperdebatkan. Salah satu cara untuk mengklasifikasikan algoritma adalah berdasarkan metodologi atau paradigma perancangan. Cara ini mengklasifikasikan algoritma menjadi beberapa macam antara lain : 1. Divide and Conquer Algoritma Divide and Conquer secara berulang membagi kejadian dari suatu problema menjadi satu atau lebih kejadian yang lebih kecil sampai kejadian tersebut cukup kecil untuk diselesaikan dengan mudah. 2. Dynamic Programming Algoritma dynamic programming merupakan cara untuk menyelesaikan suatu problema dengan membagi problema menjadi subproblema-subproblema yang saling berhubungan satu sama lain. Dynamic programming menyelesaikan setiap subproblema hanya sekali, menyimpannya dalam sebuah tabel dan menggunakan hasilnya untuk subproblema lain apabila diperlukan. Di sini terlihat bahwa, dynamic programming dapat menghemat waktu dalam menyelesaikan suatu problema.

20 9 3. The Greedy Method Sebuah algoritma Greedy sama dengan sebuah algoritma Dynamic Programming. Perbedaannya adalah setiap stage tidak perlu dicari solusinya untuk sub problema, melainkan dapat dibuat sebuah pilihan tamak ( greedy ) terhadap apa yang dianggap terbaik pada saat itu. Contoh problema yang dapat diselesaikan dengan algoritma ini adalah Zero-One Knapsack. 4. Linear Programming Ketika menyelesaikan sebuah problema menggunakan linear programming, program dimasukkan sekumpulan ketidaksamaan linier (linear inequalities) dan kemudian mencoba memaksimalkan atau meminimalkan input-nya. Banyak problema seperti maximum flow untuk directed graphs dapat diselesaikan dengan cara linear programming dan kemudian diselesaikan dengan sebuah algoritma generic seperti Simplex algorithm. 5. Search and Enumeration Banyak problema seperti permainan catur dapat dimodelkan sebagai problema dalam graph. Sebuah algoritma eksplorasi dari graph menspesifikasi aturan untuk bergerak di dalam sebuah graph dan berguna untuk problema tersebut. Kategori ini termasuk search algorithms and backtracking. 6. The Probabilistic and Heuristic Paradigm. Algoritma yang termasuk dalam kelas ini tidak begitu tepat (cocok) dengan definisi dari algoritma. a. Probabilistic Algorithms, adalah semua algoritma yang membuat beberapa pilihan secara random atau pseudo random untuk beberapa problema. Algoritma ini juga membuktikan bahwa solusi tercepat untuk suatu

21 10 masalah adalah diselesaikan secara random (acak). Contohnya adalah membuat binary search tree dengan acak (randomly built binary search tree). b. Genetic Algorithms, menemukan solusi dari problema dengan meniru proses evolusi biologis, dengan sebuah lingkaran mutasi random (acak) menghasilkan solusi yang sukses. Maka akan diemulasikan reproduksi dan cara terbaik yang selamat. Contoh problema yang dapat diselesaikan dengan algoritma ini adalah Travelling Salesman Problem (TSP). c. Heuristic Algorithms, dimana tujuan utama bukan untuk mencari solusi optimal, tetapi solusi yang pantas (tepat) karena waktu dan tempat untuk mencari solusi optimal tidak praktis. Contohnya local search, taboo search, atau algoritma simulated annealing, class dari heuristic probabilistic algorithms dan sebagainya. (Cormen, et. al., 1990) Karakteristik Algoritma Suatu algoritma memiliki beberapa karakteristik yang sangat berguna dalam mendeskripsikan algoritma tersebut. Karakteristik tersebut dapat dijabarkan sebagai berikut : 1. Input Sebuah algoritma memiliki nilai input dari sebuah kumpulan / set tertentu. 2. Output Dari setiap kumpulan / set dari nilai input, sebuah algoritma akan menghasilkan nilai output dari sebuah kumpulan / set tertentu. Nilai output terdiri dari solusi-solusi dari permasalahan.

22 11 3. Kepastian (Definiteness) Langkah-langkah dari algoritma harus dapat didefinisikan dengan tepat. 4. Terbatas (Finiteness) Sebuah algoritma harus menghasilkan output yang diinginkan setelah melakukan sejumlah langkah tertentu (mungkin banyak langkah) dari sembarang input dalam kumpulan / set. 5. Efektif (Effectiveness) Setiap langkah dari sebuah algoritma harus dapat dijalankan dengan tepat dalam sejumlah waktu tertentu. 6. Keadaan yang umum (Generality) Prosedur yang dirancang harus dapat diaplikasikan untuk semua persoalan dari bentuk yang diinginkan, dan tidak hanya untuk sekelompok nilai input saja Kompleksitas Algoritma Suatu algoritma memiliki kemungkinan terbaik (best case) dan kemungkinan terburuk (worst case). Best Case maksudnya adalah waktu eksekusi tercepat dari algoritma, sedangkan Worst Case maksudnya adalah waktu eksekusi terlama dari algoritma. Waktu eksekusi dari algoritma ini biasanya disebut dengan kompleksitas algoritma. Kompleksitas algoritma biasanya dinyatakan dengan notasi O (Big-O). Suatu algoritma dikatakan memiliki kompleksitas O(n 2 ) berarti bahwa waktu eksekusi terlama dari algoritma tersebut adalah sebesar kuadrat dari banyaknya elemen data yang akan diproses.

23 12 Semakin kecil kompleksitas suatu algoritma maka algoritma tersebut dikatakan lebih efisien dan efektif. Algoritma semacam inilah yang lebih disukai orang untuk digunakan dalam penyelesaian masalah. Dalam analisis matematika khususnya analisis algoritma, untuk menentukan pertumbuhan dari fungsi, dapat digunakan asymtotic notations (notasi asimtot). Knuth mengutarakan beberapa notasi antara lain : 1. Big-O 2. Big- (Omega) 3. Big- (Theta) Notasi-notasi di atas tidak memiliki sifat matematika konvensional dan tidak berlaku ketentuan-ketentuan matematika di dalamnya. Suatu fungsi f(x) memiliki notasi O(x) dan fungsi lainnya g(x) juga memiliki notasi O(x), namun ini tidak berarti bahwa f(x) sama dengan g(x). Notasi Big-O adalah suatu cara untuk membandingkan fungsi dan sangat berguna untuk menghitung kompleksitas dari algoritma, misalnya banyaknya waktu yang diperlukan oleh komputer untuk menjalankan program. Contoh : 3x 3 + 5x 2 9 = O(x 3 ) Persamaan di atas tidak berarti bahwa ada suatu fungsi O(x 3 ) yang sama dengan fungsi 3x 3 + 5x 2-9, namun persamaan tersebut berarti bahwa 3x 3 + 5x 2-9 memiliki big-o x 3 atau dapat dikatakan bahwa 3x 3 + 5x 2-9 didominasi secara asimtot oleh x 3. Notasi asimtot mencerminkan kelakuan dari fungsi untuk nilai yang besar sehingga notasi asimtot kadang kala tidak berlaku untuk nilai yang kecil.

24 13 Notasi O-Besar menyediakan batas lebih atas (upper bound) untuk fungsi T(n), tetapi tidak memberikan batas lebih bawah (lower bound). Untuk mendefinisikan batas lebih bawah (lower bound) untuk kompleksitas waktu, digunakan lambang Omega-Besar (Big- ). Big- merupakan kebalikan dari Big-O. Hal ini dapat diilustrasikan seperti berikut : f(x) = (g(x)) g(x) = O(f(x)) Sedangkan Big- menyatakan bahwa fungsi-fungsi saling mendominasi satu sama lain, sehingga fungsi-fungsi tersebut dikatakan ekivalen secara asimtotik. f(x) = (g(x)) (f(x) = O(g(x)) f(x) = (g(x))) Beberapa penggunaan dari notasi asimtot dapat dilihat pada contoh di bawah ini, 1. Big- dari polinomial adalah bentuk variabel dengan orde terbesar. x 4 / x 3 + 5x 2 9 = O(x 4 ) 2. Penjumlahan dari dua fungsi memiliki Big-O dari fungsi dengan orde terbesar. x 4 ln(x) + x 5 = O(x 5 ) 3. Konstanta di samping variabel tidak diambil. 17x 4 ln(x) = O(x 4 ln(x)) Notasi, notasi O dan notasi dapat digambarkan dalam bentuk grafik, seperti terlihat pada gambar 2.1 berikut ini.

25 14 Gambar 2.1 Grafik Notasi, Notasi O dan Notasi Sumber: Cormen, et. al., 1990 Pada gambar 2.1, diasumsikan nilai n 0 adalah nilai terkecil yang mungkin. Gambar 2.1 (a) menggambarkan notasi. Nilai dari f(n) = (g(n)) selalu berada di antara grafik c 1 g(n) dan c 2 g(n). Gambar 2.1 (b) menggambarkan notasi O. Notasi ini memberikan batas lebih atas (upper bound) untuk sebuah fungsi dan nilai dari f(n) = O(g(n)) selalu berada di bawah grafik cg(n). Gambar 2.1 (c) menggambarkan notasi. Notasi ini memberikan batas lebih bawah (lower bound) untuk sebuah fungsi dan nilai dari f(n) = (g(n)) selalu berada di atas grafik cg(n). 2.2 Struktur Data Struktur berarti susunan / jenjang, dan data berarti sesuatu simbol / huruf / lambang angka yang menyatakan sesuatu. Struktur data berarti susunan dari simbol / huruf / lambang angka untuk menyatakan sesuatu hal. Gabungan dari algoritma dan struktur data akan membentuk suatu program. (Hariyanto, 2003)

26 Manfaat Struktur Data Adapun manfaat dari struktur data adalah sebagai berikut, 1. Mengefisiensikan program. Program yang dibuat dengan menerapkan konsep konsep yang berlaku pada struktur data akan lebih efisien dibandingkan dengan program yang dibuat dengan mengabaikan konsep struktur data. 2. Modifikasi Sesuatu program harus dapat dimodifikasi apabila diperlukan, hal ini dapat dilakukan jika fasilitas yang diperlukan dibuat (disertakan) walaupun pada tahap awal belum dipakai. 3. Memilih metode yang tepat Misalkan suatu plaza pada hari hari tertentu mengalami antrian yang panjang pada kasir, hal ini dapat diatasi dengan metode, 1. Pemasukan data tidak melalui keyboard lagi, melainkan melalui barcode. 2. Membuat pemberitahuan pada kasir kasir. Data terstruktur adalah suatu tipe data yang batas nilainya masih dapat diuraikan, contohnya antrian, set, tumpukan (stack), dan sebagainya. Data terstruktur terbagi dua yaitu, 1. Data Terstruktur Linier (Struktur Data Linier) 2. Data Terstruktur Non Linier (Struktur Data Non Linier) (Hariyanto, 2003) Struktur Data Array (Larik) Array (larik) adalah suatu tipe data terstruktur yang dapat menampung (berisikan) suatu data yang sejenis (Hariyanto, 2003).

27 16 Komponen komponen dari Array antara lain, 1. Nama Array 2. Nilai Array 3. Index Array 4. Jenis (tipe) Array Deklarasi Array dapat dibuat pada, 1. Bagian Tipe Contoh, Type A = Array [1..5] of Char; 2. Bagian Variabel Contoh, Var A = Array [1..5] of Char; Array terdiri dari beberapa jenis antara lain, 1. Array 1 dimensi Contohnya, A[1] = A A[2] = B A[3] = C A[4] = D A[5] = E A[6] = F A[7] = G A[8] = H 2. Array Multi dimensi ( 2) Contoh, misalkan diketahui sebuah Array dua dimensi B dengan jenis data Integer, B[1,1] = 1 B[1,2] = 2 B[2,1] = 3 Proses - proses yang mungkin dilakukan pada Array adalah, 1. Proses memasukkan data

28 17 2. Proses mencari data 3. Proses menghapus data 4. Proses mencetak data 5. Proses menyisip data 6. Proses mencari posisi 7. Proses mengurutkan data 8. Dan sebagainya 2.3 Pengurutan (Sorting) Pengurutan (sorting) merupakan pekerjaan yang sering kita lakukan dalam kehidupan sehari-hari. Tujuan dari pengurutan adalah menyusun sejumlah data sedemikian sehingga diperoleh suatu keteraturan apakah terurut menaik atau terurut menurun. Dengan adanya data terurut, disamping enak dipandang maka pencarian dapat dilakukan dengan cepat baik dengan algoritma biner maupun dengan rumus interpolasi. Hal ini sangat penting apalagi jika jumlah data sangat besar. Akan tetapi yang menjadi perhatian kita adalah bagaimana mendapatkan algoritma pengurutan yang efisien atau cepat. Sebab mengurutkan data dengan jumlah besar dan apalagi jika data sering berubah (bertambah atau berkurang) sehingga pengurutan harus dilakukan berulang-ulang, maka kita sangat membutuhkan algoritma pengurutan yang sangat cepat. Dalam pengurutan data, waktu yang diperlukan untuk melakukan proses pengurutan perlu dipertimbangkan dan juga masih ada beberapa aspek lain yang harus diperhatikan. Data yang harus kita urutkan tentunya sangat bervariasi baik dalam hal banyak data maupun jenis data yang akan diurutkan. Dalam hal ini,

29 18 tidak ada satu algoritma yang terbaik untuk setiap situasi yang kita hadapi. Bahkan cukup sulit untuk menentukan algoritma mana yang paling baik untuk situasi tertentu karena ada beberapa faktor yang mempengaruhi efektivitas algoritma pengurutan. Beberapa faktor yang berpengaruh dalam efektivitas suatu algoritma pengurutan antara lain: 1. Banyak data yang diurutkan. 2. Kapasitas pengingat apakah mampu menyimpan semua data yang kita miliki. 3. Tempat penyimpanan data, seperti Hard disk, Flash Disk atau media penyimpan yang lain. Keuntungan ataupun tujuan dari pengurutan data adalah bahwa data akan lebih mudah dicari, mudah untuk dibetulkan, dihapus, disisipi atau digabungkan. Dalam keadaan terurut, kita mudah mencek apakah ada data yang hilang. Hal tersebut sangat penting dalam pemrograman database. Bayangkan saja, jika komputer diperintah untuk mencari sebuah data dari sepuluh juta buah data yang tidak terurut, maka komputer secepat apapun juga akan memerlukan waktu yang tidak sedikit untuk dapat menemukan data tersebut dan tentunya hal ini akan menganggu efektivitas dan efisiensi kerja. Algoritma pengurutan yang digunakan adalah algoritma Randomize Quick Sort, maka pembahasan kali ini hanya memfokuskan pada algoritma Quick Sort dan algoritma Randomize Quick Sort saja. (Cormen, et. al., 1990)

30 Quick Sort Metode Quick Sort sering juga disebut dengan metode partition exchange sort. Metode ini diperkenalkan oleh C.A.R Hoare. Untuk mempertinggi efektifitasnya, dalam metode ini jarak kedua elemen yang akan ditukarkan nilainya cukup besar. Berikut merupakan penggalan prosedur Quick Sort dalam bahasa Pascal, Procedure Quick(var A:Data ; awal,akhir,sort:byte); var I, J : integer; Procedure Atur; BEGIN I:=awal+1; J:=akhir; Case Sort Of 1 : Begin {terurut menaik} While A[awal] > A[I] do Inc(I); While A[J] > A[awal] do Dec(J); end; 2 : Begin {terurut menurun} While A[awal]<A[I] do Inc(I); While A[J]<A[awal] do DEC(J); end; end;

31 20 While I<J do begin Tukar(A[I],A[J]); Case sort of 1 : Begin {terurut menaik} while A[awal] > A[I] do Inc(I); while A[J] > A[awal] do Dec(J); END; 2 : Begin {terurut menurun} while A[awal] < A[I] do Inc(I); While A[J] < A[awal] do Dec(J); END; END; END; Tukar(A[awal],A[J]); END; {Badan Program dari Quick Sort} Begin IF awal < akhir then begin Atur; Quick(A, awal, J-1, sort); Quick(A, J+1, akhir, sort);

32 21 end; end; (Cormen, et. al., 1990) Randomize Quick Sort Metode ini dinamakan algoritma acak (randomized) karena prosesnya tidak hanya ditentukan oleh nilai input-nya saja tetapi juga ditentukan oleh nilai acak yang dihasilkan sebuah pembangkit bilangan acak (random-number generator). Nilai acak ini dihasilkan oleh perintah RANDOM(a, b) yang terdapat dalam algoritma. Perintah RANDOM(a, b) mengembalikan sebuah nilai bilangan bulat yang berada diantara nilai a dan nilai b. Dalam prakteknya, nilai RANDOM ini sering dibangkitkan dengan menggunakan pembangkit bilangan acak semu (pseudo-random number generator). Dalam pembahasan kali ini, digunakan generator Geffe sebagai pseudo-random number generator-nya. Pembahasan mengenai generato Geffe ini akan dibahas pada subbab selanjutnya. Versi randomized dari Quick Sort ini juga menggunakan sebuah algoritma Randomized-Partition yang dapat dideskripsikan seperti berikut: RANDOMIZED-PARTITION (A, p, r) 1 i RANDOM (p, r) 2 exchange A[p] A[i] 3 return PARTITION (A, p, r) Sedangkan, algoritma ini dari metode Randomize Quick Sort dapat dirincikan sebagai berikut, RANDOMIZED-QUICKSORT (A, p, r) 1 if p < r 2 then q RANDOMIZED-PARTITION (A, p, r) 3 RANDOMIZED-QUICKSORT (A, p, q) 4 RANDOMIZED-QUICKSORT (A, q+1, r)

33 22 (Cormen, et. al., 1990) 2.4 Statistik (Statistics) Banyak persoalan, apakah itu hasil penelitian, riset ataupun pengamatan, baik yang dilakukan khusus ataupun pengamatan, baik yang dilakukan khusus ataupun berbentuk laporan, dinyatakan dan dicatat dalam bentuk bilangan atau angka angka. Kumpulan angka angka itu sering disusun, diatur atau disajikan dalam bentuk daftar atau tabel. Sering pula daftar atau tabel tersebut disertai dengan gambar gambar yang biasa disebut diagram atau grafik supaya lebih dapat menjelaskan lagi tentang persoalan yang sedang dipelajari. Hal hal yang dijelaskan di atas disebut dengan statistik. Jadi, kata statistik dipakai untuk menyatakan kumpulan data, bilangan maupun non-bilangan yang disusun dalam tabel dan atau diagram, yang melukiskan atau menggambarkan suatu persoalan. Statistik yang menjelaskan sesuatu hal biasanya diberi nama statistik mengenai hal yang bersangkutan, misalnya statistik penduduk, statistik kelahiran, statistik pendidikan, statistik produksi, statistik pertanian, statistik kesehatan dan masih banyak nama nama lain. Kata statistik juga masih mengandung pengertian lain, yakni dipakai untuk menyatakan ukuran sebagai wakil dari kumpulan data mengenai sesuatu hal. Ukuran ini didapat berdasarkan perhitungan menggunakan kumpulan sebagian data yang diambil dari keseuluruhan tentang persoalan tersebut. Contohnya seperti kata kata persen dan rata rata. Jika dilakukan penelitian terhadap 20 pegawai dan dicatat gajinya setiap bulan dan dihitung rata rata gajinya, misalnya Rp.

34 ,- maka rata rata ini dinamakan statistik. Demikian pula, jika dari kedua puluh pegawai itu ada 40 % yang gajinya tiap bulan kurang dari Rp ,- maka nilai 40 % ini dinamakan statistik. Selain persen dan rata rata sebagai statistik masih banyak lagi ukuran ukuran lain yang merupakan statistik. Dari hasil penelitian, riset maupun pengamatan, baik yang dilakukan khusus ataupun berbentuk laporan, sering diminta atau diinginkan suatu uraian, penjelasan atau kesimpulan tentang persoalan yang diteliti. Sebelum kesimpulan dibuat, keterangan atau data yang telah terkumpul itu terlebih dahulu dipelajari, dianalisis atau diolah dan berdasarkan pengolahan inilah kesimpulan dibuat. Tentulah mudah dimengerti bahwa pengumpulan data datau keterangan, pengolahan dan pembuatan kesimpulan harus dilakukan dengan baik, cermat, teliti, hati hati, mengikuti cara cara dan teori yang benar dan dapat dipertanggungjawabkan. Ini semua merupakan pengetahuan tersendiri yang dinamakan statistika. Jadi, statistika adalah pengetahuan yang berhubungan dengan cara cara pengumpulan data, pengolahan atau penganalisisan dan penarikan kesimpulan berdasarkan kumpulan data dan penganalisisan yang dilakukan. Ada dua jalan yang dapat ditempuh untuk mempelajari statistika. Jika ingin membahas statistika secara mendasar, mendalam dan teoritis, maka yang dipelajari digolongkan ke dalam statistika matematis atau statistika teoritis. Ini memerlukan dasar matematika yang kuat dan mendalam. Yang dibahas antara lain penurunan sifat sifat, dalil dalil, rumus rumus, menciptakan model model dan segi segi lainnya yang teoritis dan matematis. Yang kedua yaitu mempelajari statistika semata mata dari segi penggunaannya. Aturan aturan,

35 24 rumus rumus, sifat sifat dan sebagainya yang telah diciptakan oleh statisitika teoritis, diambil dan digunakan dalam berbagai bidang pengetahuan. Jadi, tidak dipersoalkan bagaimana didapatnya rumus rumus atau aturan aturan, melainkan hanya dipentingkan bagaimana cara, teknik atau metoda statistika digunakan. Statistik pada dasarnya dibagi ke dalam 2 pokok masalah yaitu: 1. Statistik Deskriptif, merupakan ilmu yang mempelajari bagaimana cara menyajikan, menyusun maupun mengukur nilai nilai data yang tersedia / terkumpul dari suatu penelitian, sehingga akhirnya nanti dapat diperoleh suatu gambaran yang jelas serta penyusunan data yang lebih baik sehingga mudah dimengerti oleh banyak orang, dan statistik deskriptif ini merupakan suatu landasan analisis statistik yang cukup penting dalam mempelajari statistik induktif. 2. Statistik Induktif, merupakan ilmu statistik yang mempelajari mengenai cara cara di dalam pengambilan / penarikan suatu kesimpulan dari populasi, dimana penarikan kesimpulan ini biasanya didasarkan pada data yang diperoleh dalam suatu bagian dari populasi tersebut (sampel) atau penarikan kesimpulan tersebut didasarkan pada suatu pengujian (test) yang dilakukan terhadap hasil observasi pengamatan sampelnya. (Samsubar Saleh, 1998) Peranan Statistik Secara garis besar, peranan statistika dalam berbagai bidang kehidupan adalah sebagai berikut,

36 25 1. Dalam bidang ekonomi dan manajemen perusahaan a. Bidang produksi i. Penetapan standar kualitas dan pengawasan kualitas. ii. Pengawasan terhadap efisiensi kerja. iii. Tes terhadap metode atau produk baru. b. Bidang akuntansi i. Penyesuaian yang bertalian dengan perubahan harga. ii. Hubungan antara ongkos dan volume produksi. c. Bidang pemasaran i. Penyelidikan tentang preferensi konsumen. ii. Penelitian potensi pasar produk. iii. Penetapan harga. iv. Penelitian terhadap efektifnya cara mengiklankan produk. v. Tes terhadap efektifnya metode metode penjualan yang berbeda. 2. Dalam penelitian a. Penyusunan model model statistik dari perumusan hipotenis yang bersifat operasional untuk pengajian secara sistematis. b. Perancangan pengumpulan data secara efisien baik dalam bentuk teknik penarikan contoh maupun perancangan percobaan. c. Penyajian dan penerapan data. d. Penganalisaan data dalam bentuk pendugaan parameter populasi dan pengujian hipotesis.

37 26 e. Penafsiran hasil hasil analisis data ke dalam konteks (bahasa) bidang item yang sedang diteliti. (Samsubar Saleh, 1998) Secara garis besar, peranan statistik dalam melakukan penelitian pada masalah tertentu dapat dilihat pada gambar 2.2, Mulai Pengumpulan data Klasifikasi Tabulasi Data Statistik Deskriptif Presentasi Data Apakah Informasi Data dari Sampel Bila Tidak, gunakan data sensus untuk menganalisa sifat - sifat populasinya Bila Ya, maka gunakan informasi sampel untuk digunakan mengetahui sifat - sifat populasinya Buatlah Kesimpulan terhadap Sifat - sifat Populasi tersebut Statistik Induktif Berhenti Gambar 2.2 Peranan statistik dalam melakukan penelitian Sumber: Samsubar Saleh, Data Statistik

38 27 Keterangan atau ilustrasi mengenai sesuatu hal bisa berbentuk kategori, misalnya rusak, baik, senang, puas, berhasil, gagal, dan sebagainya, atau bisa berbentuk bilangan. Semuanya ini dinamakan data atau lengkapnya data statistik. Data yang berbentuk bilangan disebut data kuantitatif, harganya berubah ubah atau bersifat variabel. Dari nilainya, dikenal dua golongan data kuantitatif yaitu, 1. Data dengan variabel diskrit atau singkatnya disebut data diskrit. 2. Data dengan variabel kontinu atau singkatnya disebut data kontinu. Hasil menghitung atau membilang merupakan data diskrit sedangkan hasil pengukuran merupakan data kontinu. Contoh data diskrit yaitu, 1. Keluarga A mempunyai lima anak laki laki dan tiga anak perempuan. 2. Kabupaten B sudah membangun 85 gedung sekolah. Sedang contoh data kontinu dapat dilihat dalam tiga hal berikut, 1. Tinggi badan seseorang, misalnya 155 cm, 167 cm, atau 172,4 cm. 2. Luas daerah sebesar 425,7 km Kecepatan mobil 60 km / jam. Data yang bukan kuantitatif disebut data kualitatif. Ini tidak lain daripada data yang dikategorikan menurut lukisan kualitas objek yang dipelajari. Golongan ini dikenal pula dengan nama atribut. Misalnya sembuh, rusak, gagal, berhasil, dan sebagainya. Menurut sumbernya, data terbagi dari dua macam yaitu, 1. Data Intern

39 28 Pengusaha mencatat segala aktivitas perusahaannya sendiri, misalnya keadaan pegawai, pengeluaran, keadaan barang di gudang, hasil jualan, keadaan produksi pabriknya dan lain lain aktivitas yang terjadi di dalam perusahan itu. Data yang diperoleh demikian merupakan data intern. 2. Data Ekstern. Dalam berbagai situasi, untuk perbandingan misalnya, diperlukan data dari sumber lain di luar perusahaan tadi. Data demikian merupakan data ekstern. Data ekstern dibagi menjadi dua yaitu, a. Data Ekstern Primer atau disingkat Data Primer, yaitu data yang dikeluarkan dan dikumpulkan oleh badan yang sama. b. Data Ekstern Sekunder atau disingkat Data Sekunder, yaitu data yang dikeluarkan dan dikumpulkan oleh badan yang berbeda. Data yang baru dikumpulkan dan belum pernah mengalami pengolahan apapun dikenal dengan nama data mentah. Satu hal yang harus diperhatikan yaitu bagaimanapun dan dari manapun data diperoleh, kebenaran data yang diperoleh harus dapat diandalkan. (Sudjana, 1989) Order Statistics Statistik (statistics) merupakan metode untuk mengkombinasikan sekumpulan data yang sangat banyak (seperti nilai tugas dari seluruh kelas) menjadi sebuah nilai tunggal dari sekumpulan nilai yang kecil yang dapat memberikan informasi mengenai data secara keseluruhan. Kata order statistics menunjuk kepada metode statistik yang hanya bergantung pada urutan dari data dan bukan pada nilai numeriknya. Sebagai contoh, nilai rata-rata dari data, yang

40 29 sangat mudah dihitung dan sangat penting sebagai estimasi dari sebuah nilai tengah, bukanlah sebuah nilai order statistic. Order statistic yang paling sering dipakai adalah median, yaitu nilai pada posisi tengah dari sekumpulan data yang terurut. Nilai median ini dapat dicari dengan mudah dengan waktu eksekusi terbaik O(n log n) dengan melakukan sorting, tetapi apakah mungkin untuk mendapatkan waktu eksekusi yang lebih baik? Ya, mungkin saja, yaitu dengan waktu eksekusi terbaik O(n) dengan menggunakan metode divide-and-conquer yang akan dibahas pada subbab berikutnya. Proses penyelesaiannya berhubungan dengan permasalahan yang lebih umum yaitu seleksi (selection). Seleksi adalah suatu metode untuk menemukan nilai elemen ke-k dari sebuah daftar (list) dari n item, dimana nilai k berada di antara 1 dan n dan list tersebut diurutkan terlebih dahulu. Dalam hal ini, median merupakan kasus khusus, dimana k = n/2. (Cormen, et. al., 1990) 2.5 Metode Divide-and-Conquer Metode divide-and-conquer menyelesaikan problema dengan mencari dan mengkombinasikan solusi dari subproblema-subproblema yang terdapat dalam problema tersebut. Algoritma divide-and-conquer membagi problema menjadi subproblema-subproblema yang tidak berhubungan satu sama lain (independen), menyelesaikan subproblema secara rekursif dan kemudian mengkombinasikan solusi-solusi yang dihasilkan untuk menyelesaikan problema asli. Pada konteks ini, algoritma divide-and-conquer bekerja lebih banyak dari yang seharusnya, menyelesaikan subproblema-subproblema secara berulang. (Cormen, et. al., 1990)

41 Penerapan Metode Divide-and-Conquer dalam Masalah Seleksi Algoritma Randomized-Select merupakan algoritma seleksi yang menerapkan metode divide-and-conquer. Algoritma ini memiliki waktu eksekusi yang lebih baik daripada algoritma naïve biasa yang melakukan sorting (bukan dengan quicksort). Algoritma ini memiliki waktu eksekusi terbaik sebesar O(n). Algoritma Randomized-Select ini dapat dirincikan sebagai berikut: Algoritma ini juga menggunakan algoritma Randomized-Partition dalam proses kerjanya. Algoritma Randomized-Partition ini dapat dijabarkan sebagai berikut: RANDOMIZED-PARTITION (A, p, r) 1 i RANDOM (p, r) 2 exchange A[p] A[i] 3 return PARTITION (A, p, r) (Cormen, et. al., 1990) 2.3 berikut ini: Ilustrasi dari algoritma Randomized-Select ini dapat dilihat pada gambar

42 31 Gambar 2.3 Ilustrasi Algoritma Randomized-Select Sumber : Cormen, et. al., 1990 Namun, algoritma Randomized-Select ini memiliki waktu eksekusi terburuk sebesar O(n 2 ). Waktu eksekusi ini lebih buruk daripada waktu eksekusi terburuk dari algoritma naïve biasa yang menggunakan sorting yang hanya sebesar O(n log n) saja Problema Perusahaan Minyak (Oil Company Problem) Problema perusahaan minyak (Oil Company Problem) dapat dijabarkan sebagai berikut, seorang professor bekerja sebagai konsultan pada sebuah perusahaan minyak. Perusahaan tersebut berencana untuk membangun sebuah pipa saluran besar yang membentang dari timur ke barat melewati n buah sumur dari ladang minyak. Dari setiap sumur, sebuah cabang pipa saluran dihubungkan langsung ke pipa saluran utama pada jarak yang minimum (shortest path) baik utara maupun selatan. Selain itu, juga diberikan koordinat x dan y dari setiap sumur. Permasalahannya adalah bagaimana sang professor menentukan lokasi optimal dari pipa saluran utama. Nilai median dari koordinat y dari setiap sumur merupakan solusi optimal yang dapat dicari dalam waktu linier. Nilai median ini dapat dicari dengan menggunakan bantuan algoritma Randomized-Select diatas. (Cormen, et. al., 1990).

43 BAB III METODE PENELITIAN 3.1. Tempat dan Jadwal Penelitian Penelitian ini dimulai dari Desember 2014 sampai Maret Penelitian ini dilakukan untuk mengumpulkan data yang diperlukan dengan menggunakan buku-buku ataupun referensi lainnya yang berhubungan dengan algoritma dan pemrograman dalam proses perancangan dan pembuatan sistem usulan. Berikut ini dijabarkan jadwal penelitian yang dapat dilihat pada Tabel 3.1. Tabel 3.1 Jadwal Penelitian Desember Januari Februari Maret Kegiatan Waktu Identifikasi Masalah Pengumpulan Data Analisis Sistem Perancangan Sistem Pembangunan Uji coba Sistem Penulisan Lap. Skripsi 31

44 Kerangka Kerja Dalam melakukan perancangan sistem, diperlukan sebuah kerangka kerja yang dijadikan sebagai panduan mengenai langkah-langkah yang harus dikerjakan. Adapun kerangka kerja yang dibuat penulis seperti gambar 3.1. Pengumpulan Data Analisa Sistem Perancangan Sistem Pembangunan Sistem Uji coba Sistem Gambar 3.1 Kerangka Kerja Penelitian Metode Pengumpulan Data Untuk memperoleh data atau keterangan yang diperlukan untuk menyelesaikan penelitian skripsi ini, maka penulis melakukan pengambilan data melalui dua metode penelitian yaitu metode Penelitian Kepustakaan (Library Research) dan Observasi di Perpustakaan STMIK-TIME. Penulis mengumpulkan informasi melalui buku-buku, maupun bahan referensi lainnya yang berhubungan dengan Algoritma dan Pemrograman.

45 33 Sedangkan, metodologi yang digunakan untuk melakukan perancangan sistem baru adalah model Waterfall. Gambaran model Waterfall dapat dilihat pada gambar 3.2. berikut: Gambar 3.2 Model Waterfall Langkah-langkah penyelesaian skripsi dengan menggunakan model waterfall adalah sebagai berikut : a. Membaca dan mempelajari buku-buku yang berhubungan dengan Algoritma dan Pemrograman. b. Mempelajari cara kerja dari Oil Company Problem. c. Mempelajari teknik-teknik dasar pemrograman dengan menggunakan bahasa pemrograman Microsoft Visual Basic.NET d. Merancang interface untuk perangkat lunak. e. Merancang suatu perangkat lunak dengan menggunakan bahasa pemrograman Microsoft Visual Basic.NET f. Menguji perangkat lunak dan memperbaiki kesalahan (error) yang muncul.

46 Analisa Sistem Pada tahap ini penulis akan menganalisis permasalahan lebih mendalam mengenai masalah yang ditemukan dalam perancangan sistem, sehingga dapat dicari solusi untuk menyelesaikan permasalahan tersebut. Salah satu problema yang menerapkan teorema median adalah problema perusahaan minyak (oil company problem) yang dapat dideskripsikan sebagai berikut, seorang professor bekerja sebagai konsultan pada sebuah perusahaan minyak. Perusahaan tersebut berencana untuk membangun sebuah pipa saluran besar yang membentang dari timur ke barat melewati n buah sumur dari ladang minyak. Dari setiap sumur, sebuah cabang pipa saluran dihubungkan langsung ke pipa saluran utama pada jarak yang minimum (shortest path) baik utara maupun selatan. Selain itu, juga diberikan koordinat x dan y dari setiap sumur. Permasalahannya adalah menentukan lokasi optimal dari pipa saluran utama Perancangan Sistem Proses perancangan sistem akan dimulai dari proses desain tampilan antarmuka pemakai (user interface) dari perangkat lunak. Gambar-gambar yang diperlukan tersebut diperoleh dari berbagai sumber di internet. Adapun gambargambar tersebut dibuat dengan menggunakan aplikasi Adobe Photoshop CS dan disimpan ke dalam format *.JPG. Setelah itu, proses dilanjutkan dengan membuat menu yang terdapat pada perangkat lunak dan melakukan penyusunan letak objekobjek pada perangkat lunak.

47 Pembangunan Sistem Perangkat lunak juga menggunakan beberapa buah komponen Visual Basic, seperti button sebagai tombol, textbox sebagai tempat input, label untuk menampilkan tulisan, dan komponen lainnya. Aplikasi yang digunakan dalam proses pembangunan sistem mencakup: 1. Microsoft Visual Basic.NET 2010 yang digunakan untuk membuat coding dari perangkat lunak. 2. Adobe Photoshop CS yang digunakan untuk mendesain dan menyimpan gambar yang akan digunakan dalam perangkat lunak Uji Coba Sistem Setiap aplikasi perangkat lunak yang telah dibangun harus dilakukan uji coba terlebih dahulu sebelum digunakan, untuk mengetahui apakah aplikasi perangkat lunak yang dibangun sudah sesuai dengan yang diharapkan dan bekerja dengan baik atau masih terdapat kesalahan (error). Setiap kesalahan (error) yang terjadi akan diperbaiki kembali. Sistem yang telah selesai dirancang akan coba diimplementasikan dengan memberikan beberapa contoh input untuk mengetahui apakah sistem yang dirancang sudah sesuai kebutuhan.

48 BAB IV ANALISA DAN PERANCANGAN 4.1. Analisa Proses pencarian nilai median, yaitu nilai pada posisi tengah dari sekumpulan data yang terurut dapat menggunakan beberapa cara. Cara termudah yaitu dengan melakukan sorting, kemudian mengambil nilai pada posisi ke-k. Namun, cara ini memiliki waktu eksekusi yang relatif agak lama. Cara lainnya yaitu dengan menerapkan metode divide-and-conquer untuk menyelesaikan permasalahan median tersebut. Pada pembahasan kali ini, akan dibahas proses pencarian nilai median dengan menggunakan metode divide-and-conquer. Salah satu problema yang menerapkan teorema median adalah problema perusahaan minyak (oil company problem) yang dapat dideskripsikan sebagai berikut, seorang professor bekerja sebagai konsultan pada sebuah perusahaan minyak. Perusahaan tersebut berencana untuk membangun sebuah pipa saluran besar yang membentang dari timur ke barat melewati n buah sumur dari ladang minyak. Dari setiap sumur, sebuah cabang pipa saluran dihubungkan langsung ke pipa saluran utama pada jarak yang minimum (shortest path) baik utara maupun selatan. Selain itu, juga diberikan koordinat x dan y dari setiap sumur. Permasalahannya adalah menentukan lokasi optimal dari pipa saluran utama. Lokasi optimal dari pipa saluran utama pada problema di atas dapat dicari dengan cara menentukan nilai median dari koordinat y. Hal ini dapat dibuktikan dengan memeriksa nilai yang dihasilkan oleh fungsi biaya berikut, 36

49 37 dimana: C y y i n = biaya yang diperlukan = nilai median = nilai koordinat-y dari setiap sumur = jumlah data Jika diberikan sebuah ketentuan bahwa y tidak boleh sama dengan koordinat y dari salah satu sumur yang terdapat dalam ladang minyak, maka dengan koordinat sumur tersebut telah diurutkan, dapat dilihat perubahan nilai biaya dari setiap sumur. Kemudian, perlu ditambahkan sebuah nilai biaya (y i+1 y i ) pada nilai total biaya semua sumur yang berada di bawah y i dan dikurangkan nilai (y i+1 y i ) pada total biaya yang berada di atas y i. Set persamaan ini menjadi 0, maka akan didapatkan nilai y, dimana biaya yang diperlukan adalah paling minimal. Untuk data yang telah diurutkan, jika jumlah data berupa bilangan ganjil, maka nilai median terletak pada posisi ke-[(n + 1) / 2], sedangkan jika jumlah data berupa bilangan genap, maka nilai median terletak pada posisi ke-[n / 2]. Metode divide-and-conquer akan menyelesaikan problema dengan cara membagi problema menjadi subproblema-subproblema yang tidak berhubungan satu sama lain (independen), menyelesaikan subproblema secara rekursif dan kemudian mengkombinasikan solusi-solusi yang dihasilkan untuk menyelesaikan problema asli. Penerapan metode divide-and-conquer dalam menyelesaikan masalah median dapat dideskripsikan sebagai berikut:

50 38 1. Tentukan nilai n, yang merupakan jumlah data. 2. Tentukan deretan nilai A sebanyak n buah. 3. Hitung nilai m dengan menggunakan rumusan berikut, m = (1 + n) / 2 4. Hitung nilai median dengan menggunakan bantuan algoritma randomizedselect. median = (randomized_select(a,1,n,m) + randomized_select(a,1,n,m+1)) / 2 Algoritma randomized-select yang digunakan dapat dideskripsikan sebagai berikut: fungsi randomized-select(a, p, r, i) jika p = r maka nilai fungsi = A[p] q = randomized-partition(a,p,r) k = q p + 1 jika i = k maka nilai fungsi = A[q] jika tidak, jika i < k maka nilai fungsi = randomized-select(a, p, q 1, i) jika tidak, maka nilai fungsi = randomized-select(a, q + 1, r, i k) Dalam algoritma randomized-select juga digunakan algoritma randomized-partition yang dapat dideskripsikan sebagai berikut: fungsi randomized-partition(a, p, r) i = ambil sebuah nilai acak yang berada dalam range(p, r) tukar nilai A[p] dan A[i] nilai fungsi = partition(a, p, r)

51 39 Dalam algoritma randomized-partition di atas juga digunakan sebuah algoritma partition yang dapat dideskripsikan sebagai berikut: fungsi partition(a, p, r) x = A[p] i = p 1 j = r + 1 selama ekspresi (i < j) masih bernilai true, lakukan proses berikut hitung nilai j = j 1, hingga nilai A[j] x hitung nilai i = i + 1, hingga nilai A[i] x jika i < j maka tukar nilai A[i] dan A[j] jika tidak, maka nilai fungsi = j 4.2. Perancangan Perancangan permainan Oil Company Problem dengan menggunakan teorema Medians and Order Statistics ini menggunakan bahasa pemograman Microsoft Visual Basic.NET Perangkat lunak memiliki beberapa form, antara lain: 1. Form Utama. 2. Form Permainan. 3. Form User. 4. Form High Score. 5. Form About. 6. Perancangan database

52 40 Selain itu, perangkat lunak juga menggunakan beberapa buah komponen Visual Basic, seperti button sebagai tombol, textbox sebagai tempat input dan label untuk menampilkan tulisan Form Utama Fungsi form ini adalah sebagai penghubung (link) ke form-form lainnya yang terdapat dalam perangkat lunak. Tampilan form Utama dapat dilihat pada gambar 4.1 berikut. 5 Perancangan Permainan Oil Company Problem dengan Menggunakan Teorema Medians dan Order Statistics Nama User : [Nama Pemain] Permainan Daftar Nilai Tertinggi x 1 2 Mengenai 3 Keluar 4 Keterangan: Gambar 4.1 Tampilan Form Utama 1 : link label Permainan untuk menampilkan form Permainan. 2 : link label Daftar Nilai Tertinggi untuk menampilkan form High Score. 3 : link label Mengenai untuk menampilkan form About. 4 : tombol Keluar, untuk menutup perangkat lunak. 5 : link label Nama Pemain untuk menampilkan form User.

53 Form Permainan Form ini berfungsi untuk bermain Oil Company Problem dengan menentukan tempat posisi dari sumur-sumur minyak. Tampilan form Permainan dapat dilihat pada gambar 4.2 berikut. Permainan Oil Company Problem x Pause Proses Tutup 8 9 Gambar 4.2 Tampilan Form Permainan Keterangan: 1 : daerah tampilan sisa waktu permainan. 2 : daerah tampilan nilai yang diperoleh pemain. 3 : daerah tampilan keterangan mengenai cara bermain. 4 : daerah tampilan informasi mengenai level permainan. 5 : daerah tempat penentuan lokasi sumur. 6 : daerah tampilan informasi mengenai sasaran permainan. 7 : link label Pause untuk menghentikan permainan secara sementara. 8 : link label Proses untuk mengecek jawaban yang diberikan oleh pemain.

54 42 Jika benar, maka proses akan dilanjutkan ke soal berikutnya dan nilai pemain akan ditambah sebesar 20. Jika tidak, maka akan muncul pesan kesalahan dan nilai pemain akan dikurangi sebesar : link label Tutup, untuk menutup form dan kembali ke form Utama Form User Form ini berfungsi sebagai tempat pemilihan data nama user yang akan digunakan dalam permainan ataupun untuk membuat data nama user baru yang akan disimpan ke dalam database Microsoft Access Tampilan form User dapat dilihat pada gambar 4.3 berikut. Daftar User x 1 Tambah Hapus Pilih Batal Gambar 4.3 Tampilan Form User Keterangan: 1 : listbox untuk menampilkan daftar user yang tersimpan dalam database. 2 : tombol Tambah, untuk menambah user baru yang akan disimpan ke dalam database.

55 43 3 : tombol Hapus, untuk menghapus nama user yang dipilih. 4 : tombol Pilih, untuk menyimpan data user yang dipilih ke dalam memori sementara. Setelah itu, sistem akan menutup form dan kembali ke form Utama. 5 : tombol Batal, untuk menutup form dan kembali ke form Utama Form High Score Form ini berfungsi untuk menampilkan daftar nilai tertinggi yang diperoleh pemain. Daftar nilai tertinggi yang ditampilkan hanya sebanyak sepuluh nilai tertinggi saja. Data ini akan dibaca dari database Microsoft Access Tampilan form High Score dapat dilihat pada gambar 4.4 berikut. High Score 1 Hapus Semua Keluar 2 3 Gambar 4.4 Tampilan Form High Score Keterangan: 1 : listbox untuk menampilkan daftar sepuluh nilai tertinggi yang diperoleh user yang tersimpan dalam database.

56 44 2 : tombol Hapus Semua, untuk menghapus semua daftar nilai yang diperoleh user yang tersimpan dalam database. Setelah mengklik tombol ini, maka database High Score akan menjadi kosong. 3 : tombol Keluar, untuk menutup form dan kembali ke form Utama Form About Form ini berfungsi untuk menampilkan identitas pembuat perangkat lunak (penyusun skripsi). Tampilan form About dapat dilihat pada gambar 4.5 berikut. 1 2 Tutup 3 Gambar 4.5 Tampilan Form About Keterangan: 1 : daerah tampilan judul perangkat lunak. 2 : daerah tampilan data pribadi dari pembuat perangkat lunak. 3 : tombol Tutup, untuk menutup form dan kembali ke form Utama.

57 Perancangan Database Perancangan database dilakukan dengan menggunakan Microsoft office Access Desain database dimaksudkan untuk mendefinisikan isi atau struktur tabel. Entitas yang digunakan dalam perancangan database adalah sebagai berikut. 1. High Score, berisi tentang daftar sepuluh nilai tertinggi. Rancangan tabel High Score dapat dilihat pada tabel 4.1. berikut: Tabel 4.1. Tabel High Score Nama Input Tipe Data Panjang Maksimum NamaUser Text 30 Nilai Number Integer Tingkat Text 6 Waktu Date/Time - 2. User List, berisi tentang daftar nama user. Rancangan tabel User List dapat dilihat pada tabel 4.2. berikut: Tabel 4.2. Tabel User List Nama Input Tipe Data Panjang Maksimum NamaUser Text 30 Keterangan Text 50 Berdasarkan entitas yang diperoleh di atas, maka dapat dibuat hubungan antarentitasnya seperti ditunjukkan pada gambar 4.6 berikut ini:

58 Gambar 4.6 Relationship Tabel Pada Database 46

59 BAB V HASIL DAN PEMBAHASAN 5.1 Hasil Pembahasan mengenai hasil mencakup interface program, algoritma dan spesifikasi hardware dan software Interface Program Untuk menjalankan aplikasi yang dibuat, maka dapat mengklik file Oil Company Problem.exe yang terdapat pada folder bin >> debug, sehingga sistem akan menampilkan form Utama yang merupakan form awal yang akan ditampilkan pada saat menjalankan aplikasi. Tampilan form Utama dapat dilihat pada gambar 5.1 berikut: Gambar 5.1 Form Utama 47

60 48 Pada form Utama terdapat beberapa link yang dapat diakses, yaitu: 1. Link Permainan, yang berfungsi untuk menampilkan form Permainan yang digunakan untuk bermain Oil Company Problem. 2. Link Daftar Nilai Tertinggi, yang berfungsi untuk menampilkan sepuluh daftar nilai tertinggi yang diperoleh pemain. 3. Link Mengenai, yang berfungsi untuk menampilkan data pribadi dari pembuat perangkat lunak. 4. Link Keluar, yang berfungsi untuk menutup perangkat lunak. 5. Link Nama Pemain, yang berfungsi untuk melakukan penambahan dan pemilihan user yang akan digunakan dalam permainan. Untuk bermain Oil Company Problem, maka langkah pertama yang harus dilakukan adalah memilih nama user yang akan digunakan dalam permainan, yaitu dengan mengklik link Nama Pemain, sehingga sistem akan menampilkan form User seperti terlihat pada gambar 5.2 berikut: Gambar 5.2 Form User Pemakai dapat menambah data nama user baru dengan mengklik tombol Tambah sehingga sistem akan menampilkan input box pada gambar 5.3 berikut:

61 49 Gambar 5.3 Input Box Tambah User Pemakai dapat mengisi data nama user dan mengklik tombol OK untuk menyimpan data nama user yang dimasukkan ke dalam database. Untuk membatalkan proses pengisian data user, maka pemakai dapat mengklik tombol Cancel. Setelah melakukan pengisian data user, maka pemakai dapat bermain Oil Company Problem. Jika ada nama pemain yang ingin dihapus maka pemakai dapat mengklik tombol Hapus. Dengan mengklik link Permainan, sistem akan menampilkan form Permainan seperti terlihat pada gambar 5.4 berikut: Gambar 5.4 Form Permainan

62 50 Permainan akan dimulai dari level 1 dan waktu yang diberikan hanya 300 detik saja. Tidak ada penambahan waktu permainan jika memasuki level berikutnya, permainan akan berakhir jika waktu yang diberikan telah habis. Nilai dan level yang diperoleh pemain akan disimpan ke dalam database Microsoft Access 2007 pada saat pemakai keluar dari permainan. Daftar nilai tertinggi ini dapat dilihat pada form High Score yang dapat ditampilkan dengan mengklik link Daftar Nilai Tertinggi yang terdapat pada form Utama, sehingga sistem akan menampilkan form Daftar Nilai Tertinggi seperti yang terlihat pada gambar 5.5 berikut: Gambar 5.5 Form Daftar Nilai Tertinggi Terakhir, apabila pemakai ingin menampilkan data pribadi dari pembuat perangkat lunak, maka pemakai dapat mengklik link Mengenai sehingga sistem akan menampilkan form Mengenai seperti yang terlihat pada gambar 5.6 berikut:

63 51 Gambar 5.6 Form Mengenai Algoritma Algoritma yang digunakan untuk membangun perangkat lunak pemahaman secara visualisasi teorema Medians and Order Statistics dengan studi kasus Oil Company Problem ini dapat dibagi menjadi beberapa bagian, yaitu: 1. Algoritma Median. Algoritma ini digunakan untuk menghitung nilai median dengan menggunakan bantuan algoritma divide-and-conquer. Algoritma ini memerlukan beberapa buah input yaitu: a. Parameter numerik pnn yang merupakan jumlah data. b. Parameter array pna yang merupakan kumpulan nilai data.

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT Harold Situmorang Program Studi Sistem Informasi Universitas Sari Mutiara Indonesia Haroldsitumorang@gmail.com ABSTRAK Struktur data dari algoritma Heap

Lebih terperinci

STRATEGI DIVIDE AND CONQUER

STRATEGI DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang dapat dikelola. Penyelesaian masalah

Lebih terperinci

Analisis Kecepatan Sorting Dengan Notasi Big O

Analisis Kecepatan Sorting Dengan Notasi Big O Analisis Kecepatan Sorting Dengan Notasi Big O Rama Aulia NIM : 13506023 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : ramaaulia@yahoo.co.id Abstrak Sorting

Lebih terperinci

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU Yolanda Y.P Rumapea Prodi Sistem Informasi, Universitas Methodist Indonesia Jl.

Lebih terperinci

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya Ronny - 13506092 Jurusan Teknik Informatika Institut Teknologi Bandung Email : if16092@students.if.itb.ac.id 1. Abstract

Lebih terperinci

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF Anisya Sonita 1, Febrian Nurtaneo 2 1,2 Program Studi Informatika, Fakultas Teknik,

Lebih terperinci

Logika dan Algoritma Yuni Dwi Astuti, ST 2

Logika dan Algoritma Yuni Dwi Astuti, ST 2 ALGORITMA Istilah algoritma pertama kali diperkenalkan oleh seorang ahli matematika yaitu Abu Ja far Muhammad Ibnu Musa Al Khawarizmi. Yang dimaksud dengan algoritma adalah : Urutan dari barisan instruksi

Lebih terperinci

CHAPTER 3 ALGORITHMS 3.1 ALGORITHMS

CHAPTER 3 ALGORITHMS 3.1 ALGORITHMS CHAPTER 3 ALGORITHMS 3.1 ALGORITHMS Algoritma Definisi 1. Algoritma adalah himpunan hingga perintah yang terinci dalam melakukan perhitungan atau pemecahan masalah. Contoh 1. Program komputer adalah suatu

Lebih terperinci

PERANCANGAN KAMUS INDONESIA HOKKIEN DENGAN METODE INTERPOLATION SEARCH

PERANCANGAN KAMUS INDONESIA HOKKIEN DENGAN METODE INTERPOLATION SEARCH PERANCANGAN KAMUS INDONESIA HOKKIEN DENGAN METODE INTERPOLATION SEARCH Diah Restu Ayu Ningtyas 0811433 Mahasiswa Program Studi Teknik Informatika STMIK Budi Darma Medan Jl. Sisingamangaraja No. 338 Simpang

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN. Perancangan game mencocokkan gambar ini dibuat agar dapat berjalan

BAB III ANALISIS DAN PERANCANGAN. Perancangan game mencocokkan gambar ini dibuat agar dapat berjalan BAB III ANALISIS DAN PERANCANGAN III.1. Analisa Sistem Perancangan game mencocokkan gambar ini dibuat agar dapat berjalan pada sistem yang beroperasi pada perangkat komputer, game yang dikembangkan adalah

Lebih terperinci

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Masalah Proses analisa sistem merupakan langkah kedua pada pengembangan sistem. Analisa sistem dilakukan untuk memahami informasi-informasi

Lebih terperinci

Hubungan Kompleksitas Algoritma dengan Cara Belajar

Hubungan Kompleksitas Algoritma dengan Cara Belajar Hubungan Kompleksitas Algoritma dengan Cara Belajar Ryan Ignatius Hadiwijaya / 13511070 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10

Lebih terperinci

BAB 2 LANDASAN TEORI. 2.1 Algoritma

BAB 2 LANDASAN TEORI. 2.1 Algoritma 13 BAB 2 LANDASAN TEORI 2.1 Algoritma Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap

Lebih terperinci

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e. 1. Dalam menyusun suatu program, langkah pertama yang harus dilakukan adalah : a.membuat program b. Membuat Algoritma c. Membeli komputer d. Proses e. Mempelajari program 2. Sebuah prosedur langkah demi

Lebih terperinci

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB VII ALGORITMA DIVIDE AND CONQUER BAB VII ALGORITMA DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang

Lebih terperinci

Analisa Kompleksitas Algoritma. Sunu Wibirama

Analisa Kompleksitas Algoritma. Sunu Wibirama Analisa Kompleksitas Algoritma Sunu Wibirama Referensi Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C., Introduction to Algorithms 2nd Edition, Massachusetts: MIT Press, 2002 Sedgewick, R., Algorithms

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level bahasa pemrograman: 1. Bahasa tingkat rendah 2. Bahasa

Lebih terperinci

BAB II DASAR-DASAR DAN ATURAN PENULISAN ALGORITMA

BAB II DASAR-DASAR DAN ATURAN PENULISAN ALGORITMA 2.1 Pengertian Algoritma BAB II DASAR-DASAR DAN ATURAN PENULISAN ALGORITMA Dalam modul sebelumnya telah dijelaskan bahwa salah satu tahapan di dalam pemrograman ialah menyusun kerangka pemecahan dan metode

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA 6 BAB II TINJAUAN PUSTAKA 2.1. Algoritma Algortima adalah jantung ilmu komputer atau informatika. Banyak cabang dari ilmu komputer yang diacu dalam terminologi algoritma, misalnya algoritma perutean (routing)

Lebih terperinci

Langkah Awal menuju Analisis Kompleksitas Algoritma

Langkah Awal menuju Analisis Kompleksitas Algoritma Langkah Awal menuju Analisis Kompleksitas Algoritma Isi Proses Desain dan Analisis Algoritma Tipe-tipe Problem yang penting Kebutuhan akan algoritma yang efisien Analisis framework 2 Proses Desain dan

Lebih terperinci

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016 NASKAH UJIAN UTAMA MATA UJIAN : LOGIKA DAN ALGORITMA JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016 NASKAH UJIAN INI TERDIRI DARI 80 SOAL PILIHAN GANDA

Lebih terperinci

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016 Analisa dan Perancangan Algoritma Ahmad Sabri, Dr Sesi 1: 9 Mei 2016 Apakah algoritma itu? Asal istilah: Al Khwarizmi (± 800 M), matematikawan dan astronomer Persia. Pengertian umum: "suatu urutan langkah-langkah

Lebih terperinci

ANALISIS ALGORITMA BABY-STEP GIANT-STEP DAN POHLIG-HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT SKRIPSI ETTY WINITA ROISKA SIMBOLON

ANALISIS ALGORITMA BABY-STEP GIANT-STEP DAN POHLIG-HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT SKRIPSI ETTY WINITA ROISKA SIMBOLON ANALISIS ALGORITMA BABY-STEP GIANT-STEP DAN POHLIG-HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT SKRIPSI ETTY WINITA ROISKA SIMBOLON 090803073 DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU

Lebih terperinci

BAB I PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN Latar Belakang 1 BAB I PENDAHULUAN 1.1. Latar Belakang Teknologi informasi sudah berkembang sangat pesat pada masa ini. Pencarian informasi yang berjumlah besar dalam waktu yang singkat sangat dibutuhkan sebagai upaya

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI 17 BAB II LANDASAN TEORI 2.1 Algoritma Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap

Lebih terperinci

PERANCANGAN APLIKASI PENGACAKAN CITRA MENGGUNAKAN M-SEQUENCE BERDASARKAN PARAMETER

PERANCANGAN APLIKASI PENGACAKAN CITRA MENGGUNAKAN M-SEQUENCE BERDASARKAN PARAMETER PERANCANGAN APLIKASI PENGACAKAN CITRA MENGGUNAKAN M-SEQUENCE BERDASARKAN PARAMETER Kristian Telaumbanua 1, Susanto 2 Program Studi Teknik Informatika, STMIK Mikroskil Jl. Thamrin No. 122, 124, 140 Medan

Lebih terperinci

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

BAB III ANALISIS KOMPLEKSITAS ALGORITMA BAB III ANALISIS KOMPLEKSITAS ALGORITMA 3.1 Kompleksitas Algoritma Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang digunakan tidak saja harus benar, namun juga harus efisien.

Lebih terperinci

Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel

Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel OLEH : SUPRIYANTO (G651090191) OKE HENDRADHY (G651090101) KAMALUDDIN MAHFUDZ (G651090231) DEPARTEMEN

Lebih terperinci

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs. Matematika Diskrit Kompleksitas Algoritma Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs. Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah pengurutan (sort), ada

Lebih terperinci

ALGORITMA PENGURUTAN & PENCARIAN

ALGORITMA PENGURUTAN & PENCARIAN Materi kuliah ALGORITMA PENGURUTAN & PENCARIAN Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengelompokan

Lebih terperinci

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah

Lebih terperinci

Analisis dan Strategi Algoritma

Analisis dan Strategi Algoritma Analisis dan Strategi Algoritma Deskripsi Mata Kuliah Konsep dasar analisis algoritma Beberapa jenis algoritma 28/02/2011 2 Standar Kompetensi Mahasiswa mampu membandingkan beberapa algoritma dan menentukan

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Pendahuluan

BAB 1 PENDAHULUAN. 1.1 Pendahuluan BAB 1 PENDAHULUAN 1.1 Pendahuluan Dewasa ini fungsi komputer semakin dibutuhkan, baik bagi perusahaan besar maupun kecil. Adapun fungsi dari komputer itu sendiri adalah mengolah data-data yang ada menjadi

Lebih terperinci

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA Ikhsan Fanani NIM : 13505123 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : ikhsan_fanani@yahoo.com

Lebih terperinci

Apa Itu Algoritma? Algoritma berasal dari: ahli

Apa Itu Algoritma? Algoritma berasal dari: ahli Dasar-dasar Algoritma Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN Apa Itu Algoritma? Algoritma berasal dari: Nama Abu Ja far Muhammad Ibnu Musa Al-Khwarizmi ahli matematika Persia yang

Lebih terperinci

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 1 PENDAHULUAN. Universitas Sumatera Utara 1 BAB 1 PENDAHULUAN 1.1 Latar Belakang Pencarian sebuah dokumen akan lebih cepat apabila informasi mengenai dokumen yang dicari tersebut telah diurutkan terlebih dahulu daripada saat kita akan mencari

Lebih terperinci

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort Setia Negara B. Tjaru (13508054) Program Studi Teknik Informatika ITB Bandung e-mail: if18054@students.if.itb.ac.id ABSTRAK Makalah ini

Lebih terperinci

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT Disusun untuk memenuhi tugas UTS mata kuliah : Analisis Algoritma Oleh : Eka Risky Firmansyah 1110091000043 Program Studi Teknik Informatika

Lebih terperinci

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung Algoritma Heap Sort Paul Gunawan Hariyanto 1, Dendy Duta Narendra 2, Ade Gunawan 3 Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Algoritma Algoritma berasal dari nama ilmuwan muslim dari Uzbekistan, Abu Ja far Muhammad bin Musa Al-Khuwarizmi (780-846M). Pada awalnya kata algoritma adalah istilah yang merujuk

Lebih terperinci

Aplikasi Algoritma Genetika Untuk Menyelesaikan Travelling Salesman Problem (TSP)

Aplikasi Algoritma Genetika Untuk Menyelesaikan Travelling Salesman Problem (TSP) JTRISTE, Vol.1, No.2, Oktober 2014, pp. 50~57 ISSN: 2355-3677 Aplikasi Algoritma Genetika Untuk Menyelesaikan Travelling Salesman Problem (TSP) STMIK Handayani Makassar najirah_stmikh@yahoo.com Abstrak

Lebih terperinci

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir Pengantar Strategi Algoritmik Oleh: Rinaldi Munir 1 Masalah (Problem) Masalah atau persoalan: pertanyaan atau tugas yang kita cari jawabannya. Contoh-contoh masalah: 1. [Masalah pengurutan] Diberikan senarai

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Anany Levitin, Introduction to the Design & Analysis of Algorithms, Addison-Wesley, 2003. Enem,

Lebih terperinci

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Masalah Proses analisa sistem merupakan langkah kedua pada pengembangan sistem. Analisa sistem dilakukan untuk memahami informasi-informasi

Lebih terperinci

Penyelesaian Persoalan Penukaran Uang dengan Program Dinamis

Penyelesaian Persoalan Penukaran Uang dengan Program Dinamis Penyelesaian Persoalan Penukaran Uang dengan Program Dinamis Albert Logianto - 13514046 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10

Lebih terperinci

UNIVERSITAS GUNADARMA

UNIVERSITAS GUNADARMA UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep /1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra Program Diploma (D3) Manajemen Informatika, Teknik

Lebih terperinci

MAKALAH ALGORITMA, PSEUDOCODE DAN FLOWCHART TENTANG YUFI EKO FIRMANSYAH 1 D3 IT B OLEH

MAKALAH ALGORITMA, PSEUDOCODE DAN FLOWCHART TENTANG YUFI EKO FIRMANSYAH 1 D3 IT B OLEH MAKALAH TENTANG ALGORITMA, PSEUDOCODE DAN FLOWCHART OLEH YUFI EKO FIRMANSYAH 1 D3 IT B BAB I PENDAHULUAN Pada saat kita membuat sebuah program sering kali kita menghadapi permasalahan yang memerlukan pengrutan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1. Algoritma Secara informal, sebuah algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai, atau seperangkat nilai sebagai input dan menghasilkan

Lebih terperinci

KATA PENGANTAR. Puji syukur kami panjatkan ke hadirat Alloh SWT atas terbentuknya Lembar Tugas

KATA PENGANTAR. Puji syukur kami panjatkan ke hadirat Alloh SWT atas terbentuknya Lembar Tugas KATA PENGANTAR Puji syukur kami panjatkan ke hadirat Alloh SWT atas terbentuknya Lembar Tugas Mahasiswa (LTM) untuk mata kuliah Logika dan Algoritma. Tak lupa kami mengucapkan banyak terima kasih kepada

Lebih terperinci

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST Andhika Hendra Estrada S. Sekolah Teknik Elektro dan Informatika INSTITUT

Lebih terperinci

Decrease and Conquer

Decrease and Conquer Decrease and Conquer Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika ITB 1 Decrease and conquer: metode desain algoritma

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 5 BAB 2 LANDASAN TEORI 2.1. Pengertian Algoritma Algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai yaitu seperangkat nilai sebagai input dan output yang menghasilkan

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1 Konsep Dasar Algoritma Algoritma adalah kumpulan instruksi atau perintah yang dibuat secara jelas dan sistematis berdasarkan urutan yang logis (logika) untuk penyelsaian suatu

Lebih terperinci

Algoritma dan Pemrograman. Pertemuan Ke-1 Pengantar Algoritma

Algoritma dan Pemrograman. Pertemuan Ke-1 Pengantar Algoritma Algoritma dan Pemrograman Bab I Pengantar Algoritma Pertemuan Ke-1 Pengantar Algoritma Disusun Oleh : Wilis Kaswidjanti, S.Si., M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas

Lebih terperinci

Pengantar Teknik Informatika

Pengantar Teknik Informatika Pengantar Teknik Informatika Algoritma dan Kompleksitas Pertemuan Ke-3 Materi E-learning Tanggal : 1 Oleh : Supatman Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta Tahun 2012 Algoritma

Lebih terperinci

BAB III ANALISIS MASALAH DAN PERANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN PERANCANGAN PROGRAM BAB III ANALISIS MASALAH DAN PERANCANGAN PROGRAM III.1. Analisa Masalah Analisis sistem dapat didefinisikan sebagai Penguraian dari suatu sistem informasi yang utuh ke dalam bagian-bagian komponennya dengan

Lebih terperinci

Pencarian Jalur Terpendek dengan Algoritma Dijkstra

Pencarian Jalur Terpendek dengan Algoritma Dijkstra Volume 2 Nomor 2, Oktober 207 e-issn : 24-20 p-issn : 24-044X Pencarian Jalur Terpendek dengan Algoritma Dijkstra Muhammad Khoiruddin Harahap Politeknik Ganesha Medan Jl.Veteran No. 4 Manunggal choir.harahap@yahoo.com

Lebih terperinci

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma Bahan Kuliah IF2120 Matematika Disktit Rinaldi M/IF2120 Matdis 1 Rinaldi M/IF2120 Matdis 2 Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah

Lebih terperinci

APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID

APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID 44 Vol. 11 No. 1 Februari 2016 Jurnal Informatika Mulawarman APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID Barry Nuqoba 1), Faried Effendy 2), 1,2) Departemen Matematika,

Lebih terperinci

BAB IV HASIL DAN PEMBAHASAN

BAB IV HASIL DAN PEMBAHASAN BAB IV HASIL DAN PEMBAHASAN IV.1. Tampilan Hasil Pembahasan mengenai hasil mencakup spesifikasi perangkat keras (hardware) dan perangkat lunak (software) serta tampilan output perangkat lunak. IV.1.1.

Lebih terperinci

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek. LAB SHEET ALGORITMA DAN STRUKTUR DATA Semester : 4 Percabangan Komplek dan case of 200 menit No. : LST/EKA/EKA 305/03 Revisi : Tgl. : Hal. 1 dari 3 hal. 1. Kompetensi Mengenal dan memahami algoritma percabangan

Lebih terperinci

STRUKTUR DATA KULIAH KE : 3 ALGORITMA

STRUKTUR DATA KULIAH KE : 3 ALGORITMA STRUKTUR DATA KULIAH KE : 3 ALGORITMA Ciri-ciri algoritma 1. Input 2. Output 3. Definite 4. Efective 5. Terminate : masukan : keluaran : jelas : efektif : berakhir 1. Input 2. Output terdapat nol masukan

Lebih terperinci

PENDEKATAN ALGORITMA PEMROGRAMAN DINAMIK DALAM MENYELESAIKAN PERSOALAN KNAPSACK 0/1 SKRIPSI SRI RAHAYU

PENDEKATAN ALGORITMA PEMROGRAMAN DINAMIK DALAM MENYELESAIKAN PERSOALAN KNAPSACK 0/1 SKRIPSI SRI RAHAYU PENDEKATAN ALGORITMA PEMROGRAMAN DINAMIK DALAM MENYELESAIKAN PERSOALAN KNAPSACK 0/1 SKRIPSI SRI RAHAYU 060823001 PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

Lebih terperinci

04/03/2013. Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia

04/03/2013. Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia Email: vilia.meyana@ftumj.ac.id Website: http://viliaekameyana.blogspot.com Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% 1

Lebih terperinci

Solusi UTS Stima. Alternatif 1 strategi:

Solusi UTS Stima. Alternatif 1 strategi: Solusi UTS Stima 1. a. (Nilai 5) Representasikanlah gambar kota di atas menjadi sebuah graf, dengan simpul merepresentasikan rumah, dan bobot sisi merepresentasikan jumlah paving block yang dibutuhkan.

Lebih terperinci

PENERAPAN ALGORITMA GENETIKA UNTUK TRAVELING SALESMAN PROBLEM DENGAN MENGGUNAKAN METODE ORDER CROSSOVER DAN INSERTION MUTATION

PENERAPAN ALGORITMA GENETIKA UNTUK TRAVELING SALESMAN PROBLEM DENGAN MENGGUNAKAN METODE ORDER CROSSOVER DAN INSERTION MUTATION PENERAPAN ALGORITMA GENETIKA UNTUK TRAVELING SALESMAN PROBLEM DENGAN MENGGUNAKAN METODE ORDER CROSSOVER DAN INSERTION MUTATION Samuel Lukas 1, Toni Anwar 1, Willi Yuliani 2 1) Dosen Teknik Informatika,

Lebih terperinci

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada. Semester : 4 Pengenalan Algoritma dan Program 200 menit No. : LST/EKA/EKA259/01 Revisi : 01 Tgl. : 10-2-2014 Hal. 1 dari 2 hal. 1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada. 2.

Lebih terperinci

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN PERTEMUAN 2 ALGORITMA & PEMROGRAMAN POKOK BAHASAN 1. Pendahuluan 2. Tahapan Pembangunan Program 3. Pengenalan Algoritma 4. Cara Menyajikan Algoritma 5. Data Program 6. Elemen-Elemen Program PENDAHULUAN

Lebih terperinci

BAB 2 LANDASAN TEORI. Algoritma Optimal Mismatch ini mencari data secara berurut pada tiap

BAB 2 LANDASAN TEORI. Algoritma Optimal Mismatch ini mencari data secara berurut pada tiap BAB 2 LANDASAN TEORI 2.1 Algoritma Optimal Mismatch Algoritma Optimal Mismatch ini mencari data secara berurut pada tiap karakter dalam teks sehingga pencarian seperti ini disebut pencarian sekuensial

Lebih terperinci

PENGEMBANGAN LONGEST PATH ALGORITHM (LPA) DALAM RANGKA PENCARIAN LINTASAN TERPANJANG PADA GRAF BERSAMBUNG BERARAH BERUNTAI

PENGEMBANGAN LONGEST PATH ALGORITHM (LPA) DALAM RANGKA PENCARIAN LINTASAN TERPANJANG PADA GRAF BERSAMBUNG BERARAH BERUNTAI PENGEMBANGAN LONGEST PATH ALGORITHM (LPA) DALAM RANGKA PENCARIAN LINTASAN TERPANJANG PADA GRAF BERSAMBUNG BERARAH BERUNTAI Oliver Samuel Simanjuntak Prodi Teknik Informatika UPN eteran Yogyakarta Jl. Babarsari

Lebih terperinci

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Masalah Proses analisa sistem merupakan langkah kedua pada pengembangan sistem. Analisa sistem dilakukan untuk memahami informasi-informasi

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1. Pengertian Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata Logis merupakan kata kunci dalam Algoritma.

Lebih terperinci

BAB 3 PERANCANGAN PROGRAM APLIKASI

BAB 3 PERANCANGAN PROGRAM APLIKASI BAB 3 PERANCANGAN PROGRAM APLIKASI Perancangan program aplikasi ini menjelaskan definisi perancangan software yang di ambil dari berbagai sumber, permasalahan yang dihadapi sebelum program aplikasi ini

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 6 BAB 2 LANDASAN TEORI 2.1 Pengertian Algoritma Menurut (Suarga, 2012 : 1) algoritma: 1. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun

Lebih terperinci

APLIKASI SIMULASI PENGURUTAN DATA MENGGUNAKAN ALGORITMA HEAP SORT

APLIKASI SIMULASI PENGURUTAN DATA MENGGUNAKAN ALGORITMA HEAP SORT APLIKASI SIMULASI PENGURUTAN DATA MENGGUNAKAN ALGORITMA HEAP SORT Ardi Wijaya 1, Noris Feter 2 1,2 Program Studi Informatika, Fakultas Teknik, Universitas Muhammadiyah Bengkulu Jl. Bali PO BOX 118. Telp

Lebih terperinci

Outline STRUKTUR DATA. VII. Sorting

Outline STRUKTUR DATA. VII. Sorting STRUKTUR DATA VII. Sorting 1 Outline Beberapa algoritma untuk melakukan sorting: Bubble sort Selection sort Insertion sort Shell sort Merge sort Quick sort Untuk masing-masing algoritma: Ide dasar Contoh

Lebih terperinci

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

SORTING. Hartanto Tantriawan, S.Kom., M.Kom SORTING DASAR PEMROGRAMAN Hartanto Tantriawan, S.Kom., M.Kom TUJUAN PERKULIAHAN Mahasiswa mengetahui konsep mengurutkan sekumpulan elemen Mahasiswa dapat menggunakan teknik sorting dalam kasus yang diberikan

Lebih terperinci

PERMASALAHAN OPTIMASI 0-1 KNAPSACK DAN PERBANDINGAN BEBERAPA ALGORITMA PEMECAHANNYA

PERMASALAHAN OPTIMASI 0-1 KNAPSACK DAN PERBANDINGAN BEBERAPA ALGORITMA PEMECAHANNYA PERMASALAHAN OPTIMASI 0-1 KNAPSACK DAN PERBANDINGAN BEBERAPA ALGORITMA PEMECAHANNYA Fitriana Passa (13508036) Program Studi Teknik Informatika Institut Teknologi Bandungg Jl. Ganesha 10 Bandung Email:

Lebih terperinci

BAB I PENDAHULUAN. yang harus dilakukan dengan sangat hati-hati dan teliti. Karena jika salah dalam

BAB I PENDAHULUAN. yang harus dilakukan dengan sangat hati-hati dan teliti. Karena jika salah dalam BAB I PENDAHULUAN I.1. Latar Belakang Dalam kehidupan manusia, pengambilan keputusan merupakan suatu hal yang harus dilakukan dengan sangat hati-hati dan teliti. Karena jika salah dalam mengambil suatu

Lebih terperinci

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA UNIVERSITAS BINA NUSANTARA Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Genap 2003/2004 PERANCANGAN PROGRAM APLIKASI OPTIMALISASI PRODUKSI PADA PERUSAHAAN GARMENT

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT PROGRAM STUDI S SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Sorting = pengurutan Sorted = terurut menurut kaidah/aturan tertentu Data pada umumnya disajikan

Lebih terperinci

RENCANA PEMBELAJARAN SEMESTER (RPS)

RENCANA PEMBELAJARAN SEMESTER (RPS) RENCANA PEMBELAJARAN SEMESTER (RPS) IKG2F4 ANALISIS DAN PERANCANGAN ALGORITMA Disusun oleh: Z K Abdurahman Baizal PROGRAM STUDI S1 ILMU KOMPUTASI FAKULTAS INFORMATIKA TELKOM UNIVERSITY LEMBAR PENGESAHAN

Lebih terperinci

BAB III ANALISA DAN PERANCANGAN. Pada dasarnya perancangan sistem yang dibuat oleh peneliti adalah

BAB III ANALISA DAN PERANCANGAN. Pada dasarnya perancangan sistem yang dibuat oleh peneliti adalah BAB III ANALISA DAN PERANCANGAN Pada dasarnya perancangan sistem yang dibuat oleh peneliti adalah mengenai perancangan software. Software yang dimaksud adalah aplikasi database yang digunakan untuk menyimpan

Lebih terperinci

Teori Algoritma. Literatur

Teori Algoritma. Literatur Alam Santosa Teori Algoritma Pendahuluan Literatur Thomas H. Cormen et.al, Introduction to Algorithms Second Edition, MIT Press, McGraw-Hill Book Company, 2001 Robert L. Kruse, Data Structures & Program

Lebih terperinci

Algoritma, Pseudo Code Flow Chart

Algoritma, Pseudo Code Flow Chart Algoritma, Pseudo Code Flow Chart Algoritma Asal kata Algoritma (algorism - algorithm) berasal dari nama Abu Ja far Muhammad ibn Musa Al-Khuwarizmi Ilmuan Persia yang menulis kitab al jabar w al-muqabala

Lebih terperinci

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan Dibi Khairurrazi Budiarsyah, 13509013 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

PERTEMUAN 15 REVEW/QUIZ

PERTEMUAN 15 REVEW/QUIZ PERTEMUAN 15 REVEW/QUIZ 1. Tipe terstruktur yang terdiri dari sejumlah komponen yang mempunyai tipe data yang sama disebut sebagai: a. Array Dimensi Satu d. Variabel b. Array Dimensi Dua e. Matrik c. Array

Lebih terperinci

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Masalah Proses analisa sistem merupakan langkah kedua pada pengembangan sistem. Analisa sistem dilakukan untuk memahami informasi-informasi

Lebih terperinci

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Penerapan Algoritma Runut-balik pada Permainan Math Maze Penerapan Algoritma Runut-balik pada Permainan Math Maze Angela Lynn - 13513032 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Kinerja yang perlu ditelaah pada algoritma: beban komputasi efisiensi penggunaan memori Yang perlu

Lebih terperinci

IT234 ALGORITMA DAN STRUKTUR DATA

IT234 ALGORITMA DAN STRUKTUR DATA IT234 ALGORITMA DAN STRUKTUR DATA Algoritma-Pemograman-Flow Chart Ramos Somya Algoritma Asal kata Algoritma berasal dari nama seorang ilmuan Persian yang bernama Abu Ja far Mohammed lbn Musa al-khowarizmi,

Lebih terperinci

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms 1. Insertion 2. Selection 3. Bubble 4. Shell 5. Quick 6. Merge Sorting Algorithms Sorting algorithms Metode Insertion, selection dan bubble sort memiliki worst-case performance yang bernilai quadratik

Lebih terperinci

APLIKASI SIMULASI METODE PENCARIAN LINIER, BINER DAN INTERPOLASI SEBAGAI MEDIA PEMBELAJARAN

APLIKASI SIMULASI METODE PENCARIAN LINIER, BINER DAN INTERPOLASI SEBAGAI MEDIA PEMBELAJARAN APLIKASI SIMULASI METODE PENCARIAN LINIER, BINER DAN INTERPOLASI SEBAGAI MEDIA PEMBELAJARAN Diajukan Untuk Memenuhi Persyaratan Guna Gelar Sarjana Strata I Teknik Informatika Universitas Muhammadiyah Malang

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI 27 BAB 3 ANALISIS DAN PERANCANGAN APLIKASI 3.1 Analisis Pada subbab ini akan diuraikan tentang analisis kebutuhan untuk menyelesaikan masalah jalur terpendek yang dirancang dengan menggunakan algoritma

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Kecerdasan buatan merupakan sub-bidang ilmu komputer yang khusus ditujukan untuk membuat software dan hardware yang sepenuhnya bisa menirukan beberapa fungsi

Lebih terperinci

PENGEMBANGAN SHORTEST PATH ALGORITHM (SPA) DALAM RANGKA PENCARIAN LINTASAN TERPENDEK PADA GRAF BERSAMBUNG BERARAH BERUNTAI

PENGEMBANGAN SHORTEST PATH ALGORITHM (SPA) DALAM RANGKA PENCARIAN LINTASAN TERPENDEK PADA GRAF BERSAMBUNG BERARAH BERUNTAI PENGEMBANGAN SHORTEST PATH ALGORITHM (SPA) DALAM RANGKA PENCARIAN LINTASAN TERPENDEK PADA GRAF BERSAMBUNG BERARAH BERUNTAI Oliver Samuel Simanjuntak Jurusan Teknik Informatika UPN Veteran Yogyakarta Jl.

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN BAB 3 ANALISIS DAN PERANCANGAN 3.1 Gambaran Umum Manusia mempunyai kemampuan untuk belajar sejak dia dilahirkan, baik diajarkan maupun belajar sendiri, hal ini dikarenakan manusia mempunyai jaringan saraf.

Lebih terperinci

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom PENDAHULUAN Brigida Arie Minartiningtyas, M.Kom Langkah dalam proses pembuatan suatu program atau software : Mendefinisikan masalah dan menganalisanya Tujuan dari pembuatan program Parameter-parameter

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Problema logaritma diskrit adalah sebuah fundamental penting untuk proses pembentukan kunci pada berbagai algoritma kriptografi yang digunakan sebagai sekuritas dari

Lebih terperinci

Algoritma & Pemrograman

Algoritma & Pemrograman Algoritma dan Pemrograman Review Algoritma & Pemrograman Ptputraastawa@gmail.com Ptputraastawa.wordpress.com Sistem Komputer Sebuah sistem komputer terdiri dari : Hardware (perangkat keras) Software (perangkat

Lebih terperinci