Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

dokumen-dokumen yang mirip
ANALISIS ALGORITMA INSERTION SORT, MERGE SORT DAN IMPLEMENTASINYA DALAM BAHASA PEMROGRAMAN C++

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

Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

Perbandingan Performa Kombinasi Algoritma Pengurutan Quick-Insertion Sort dan Merge-Insertion Sort

Journal Speed Sentra Penelitian Engineering dan Edukasi Volume 9 No

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Gambar 13.1 Ilustrasi proses algoritma sorting

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 1 Maret 2013

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

ALGORITMA PENGURUTAN & PENCARIAN

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

STRUKTUR DATA SORTING ARRAY

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

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Sorting Algorithms. Divide and Conquer

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Analisis Kecepatan Sorting Dengan Notasi Big O

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

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB VI SORTIR ATAU PENGURUTAN

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Algoritma dan Struktur Data. Searching dan Sorting

Modul Praktikum 6 Pemograman Berorientasi Objek

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

Outline STRUKTUR DATA. VII. Sorting

STRUKTUR DATA (3) sorting array. M.Cs

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

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Algoritma Bubble Sort dan Quick Sort

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

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

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Teknik Pengurutan Kartu Remi

BAB 3 ANALISA SISTEM

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

Powered by icomit.wordpress.com

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 12 & 13

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil

Algoritma Sorting (Selection Insertion)

Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

BAB 2 LANDASAN TEORI

BAB VI Pengurutan (Sorting)

Bab Tujuan. 6.2 Insertion Sort

Analisis Algoritma Bubble Sort

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

Pengurutan (Sorting) Algoritma Pemrograman

Simulasi Pengurutan Data Dengan Metode Seleksi

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

METODE DEVIDE AND CONQUER

ANALISIS ALGORITMA QUICK SORT, MERGE SORT DAN IMPLEMENTASINYA DALAM BAHASA PEMROGRAMAN PYTHON. Disusun Oleh : Nouval Raafi Adly ( )

SORTING (PENGURUTAN DATA)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-9 Pengurutan (Sorting) 2

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

SORTING (Pengurutan)

SATUAN ACARA PERKULIAHAN(SAP)

Kompleksitas Algoritma Sorting yang Populer Dipakai

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

7. SORTING DAN SEARCHING

Bubble Sort dan Shell-Sort. Yuliana Setiowati

BAB II TINJAUAN PUSTAKA

STRATEGI DIVIDE AND CONQUER

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Simple Sorting Techniques

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

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

Sorting. Selection Sort. Straight insertion Sort. Merge Sort Paradigma Divide-and-Conquer. Quicksort

Kompleksitas Algoritma

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

RESUME ALGORITMA MERGE SORT DAN REKURENS

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

BAB 8 SORTING DAN SEARCHING

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

SEARCHING & SORTING. Pendahuluan

ANALISA PERBANDINGAN KOMPLEKSITAS ALGORITMA SELECTIONSORT DAN INSERTIONSORT

BAB 1 PENDAHULUAN Latar Belakang

BAB III ANALISIS DAN KEBUTUHAN ALGORITMA

Algoritma dan Struktur Data

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Pengertian Algoritma Pengurutan

Praktikum 9. Pengurutan (Sorting) Quick Sort, Merge Sort

MODUL IV PENCARIAN DAN PENGURUTAN

Heap Tree dan Kegunaannya dalam Heap Sort

Politeknik Elektronika Negeri Surabaya

ALGORITMA DIVIDE AND CONQUER

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

SORTING (BAGIAN II) Proses kelima

Transkripsi:

Analisa Perbandingan Algoritma Insertion Dan Merge Dalam PENGURUTAN DATA Pada C++ Dan Java Ardiyansyah Komputerisasi Akuntansi, AMIK BSI Pontianak ardiyansyah.arq@bsi.ac.id Abstract - Ordering data interpreted as a rearrangement or sort the data that was originally inserted at random and then into data sequences. The purpose of sorting the data itself, namely to simplify the search data. Data sorting method is also needed by programmers in designing applications or programs due to facilitate the processing of data, particularly data on a large scale. Comparison of the data sorting method, the algorithm used is algorithm Insertion and Merge. As for implementation using the programming language C ++ and Java. Then the source code of the two algorithms are implemented in each programming language will be changed so that the data entered by the user's request will generate random data. After that, the two algorithms are compared and tested in the sequencing data. And the results obtained from testing and comparison made is that in C ++ algorithm Merge is faster and showed better performance than the Insertion algorithm. Whereas in Java Insertion algorithm is faster and better than Merge algorithm. Especially for the amount of data being entered > 10000. The Insertion algorithm is superior in memory usage or storage space than Merge algorithm for Insertion algorithm does not use recursion in the sort routine. Keywords: Data Ordering Methods, Algorithms Insertion, Merge algorithm. Abstrak - Data Pengurutan diartikan sebagai penataan ulang atau mengurutkan data yang awalnya disisipkan pada urutan data acak dan kemudian ke. Tujuan dari pemilahan data itu sendiri, yaitu untuk mempermudah pencarian data. metode pengurutan data juga dibutuhkan oleh programmer dalam merancang aplikasi atau program karena memudahkan pengolahan data, terutama data dalam skala besar. Perbandingan data metode pengurutan, algoritma yang digunakan adalah Algoritma Insertion dan Merge. Adapun implementasi menggunakan bahasa pemrograman C ++ dan Java. Kemudian kode sumber dari dua algoritma diimplementasikan dalam setiap bahasa pemrograman akan diubah sehingga data yang dimasukkan oleh permintaan pengguna akan menghasilkan data acak. Setelah itu, kedua algoritma dibandingkan dan diuji dalam data sequencing. Dan hasil yang diperoleh dari pengujian dan perbandingan yang dibuat adalah bahwa dalam algoritma C ++ Merge yaitu lebih cepat dan menunjukkan kinerja yang lebih baik daripada Algoritma Insertion. Sedangkan pada Algoritma Java Insertion lebih cepat dan lebih baik dari Algoritma Merge. Terutama untuk jumlah data yang dimasukkan > 10000. Penyisipan ini unggul dalam penggunaan memori atau ruang penyimpanan dari Algoritma Merge untuk algoritma Insertion tidak menggunakan rekursi dalam rutinitas semacam. Kata Kunci: Data Ordering Methods, Algoritma Insertion, Algoritma Merge. A. PENDAHULUAN ing atau pengurutan Data diartikan sebagai penyusunan kembali atau mengurutkan data yang diinput secara acak, kemudian berakhir dengan data yang sudah terurut dengan teratur sebagai output. Penerapan dalam pengurutan data sering juga ditemui dalam kehidupan sehari-hari, sebagai contoh penerapannya adalah absensi siswa yang diurutkan berdasarkan abjad nama siswa atau nis siswa. Pengurutan data dilakukan dengan tujuan mempermudah dalam pencarian data dan mempercepat dalam mengetahui data terbesar dan data terkecil. Misalkan dalam penyeleksian nilai siswa untuk memperoleh mana siswa yang mendapatkan nilai tertinggi dan nilai terendah. Dalam penyeleksian tersebut dilakukanlah pengurutan data berdasarkan nilai siswa yang paling tinggi hingga nilai siswa yang paling rendah. Pengurutan data juga dibutuhkan dalam pemrograman karena dalam melakukan perancangan aplikasi atau program biasanya diperlukan sebuah pengurutan data untuk memudahkan dalam pemrosesan data tersebut. Banyak algoritma sorting yang sering digunakan dan diperlukan dalam pembuatan aplikasi atau program. Oleh karena itu, pemahaman terhadap beberapa algoritma sorting perlu diketahui dan diimplementasikan ke dalam program. Ada banyak metode sorting yang dapat digunakan yaitu: bubble sort, bi-directional bubble sort, selection sort, shaker sort, insertion sort,merge, in-place Merge, shell sort, heap sort, quick sort, swap sort dan lain sebagainya. Pada penenelitian ini, akan membahas dua metode pengurutan, yaitu Insertion dan Merge. Kedua metode tersebut akan dibandingkan dengan menggunakan dua ISSN : 2338 8161 7

bahasa pemrograman yaitu C++ dan Java. Perbandingan tersebut dilakukan untuk mengetahui mana diantara kedua metode tersebut yang paling cepat dalam pengurutan data dan mudah untuk diterapkan. Kemudian dari kedua metode tersebut akan dilihat ruang atau memori mana yang lebih efektif untuk digunakan. B. TINJAUAN PUSTAKA 1. Algoritma Menurut Sjukani (2009:1) Algoritma pada dasarnya adalah alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis yang dapat dimengerti oleh orang lain. Sedangkan menurut Suarga (2012:1) algoritma merupakan susunan langkah yang pasti, yang bila diikuti maka akan mentransformasi data input dan output berupa informasi. Dari menurut para ahli bahwa algoritma adalah susunan langkah yang pasti dari alur pikiran yang dituangkan dalam bentuk tertulis sehingga menjadi sebuah informasi yang dimengerti oleh orang lain. Menurut Donald Kunth dalam buku Suarga (2012:4) Sebuah algorima juga harus memenuhi kriteria sebagai berikut: 1. Input Suatu algoritma memiliki input atau kondisi awal sebelum dilaksanakan, bisa berupa nilai-nilai peubah yang diambil dari himpunan kusus. 2. Output Suatu algoritma akan mengahsilkan output setelah dilaksanakan atau algoritma akan mengubah kondisi awal menjadi kondisi akhir, dimana nilai output diperoleh dari nilai input yang telah diproses melalui algoritma. 3. Definiteness Langkah-langkah yang dituliskan dalam algoritma terdefinisi dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma. 4. Finiteness Suatu Algoritma harus memberi kondisi akhir setelah jumlah langkah yang terbatas jumlahnya dilakukan terhadap setiap kondisi awal atau input yang diberikan. 5. Effectiveness Setiap langkah dalam algoritma bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya didapatkan suatu yang diharapkan. 6. Generality Setiap langkah alhoritma berlaku untuk setiap himpunan input yang sesuai dengan persoalan yang diberikan, tidak hanya untuk himpunan tertentu. a. Insertion Salah satu algoritma sorting yang paling sederhana adalah insertion sort. Insertion disebut-sebut sebagai metode pertengahan. Artinya, metode ini memiliki kecepatan ratarata antara metode primitif (bubble dan selection) dan modern (merge dan quick) (Saptadi dan Sari, 2012:2). Proses yang terjadi pada pengurutan dengan menggunakan metode Insertion dimulai dari data ke-2, kemudian disisipkan tempat yang sesuai. Data pada posisi pertama diandaikan memang suda pada tempatnya (Utami dan Sukirisno, 2005:239). Metode insertion sort adalah metode pengurutan data yang paling sederhana yaitu dengan menyisipkan data sesuai dengan posisi yang tepat dan pengurutan dimulai dari data ke- 2. i. Algoritma dan Pseudocode Ide dari algoritma ini dapat dianalogikan seperti mengurutkan kartu. Penjelasan berikut ini menerangkan bagaimana algoritma Insertion bekerja dalam pengurutan kartu (Saptadi dan Sari, 2012:2). Gambar 1. Analogi Metode Insertion Anggaplah bahwa terdapat sebuah meja yang berisi setumpuk kartu. Meja ini melambangkan kondisi larik sebelum diurutkan. Langkah-langkah pengurutan adalah sebagai berikut: a. Ambil kartu pertama dari meja, letakan di tangan kiri. b. Ambil kartu kedua dari meja, bandingkan dengan kartu yang berada di tangan kiri, kemudian pada urutan yang sesuai setelah urutan. c. Ulangi proses hingga seluruh kartu pada meja telah diletakkan berurutan pada tangan kiri. ISSN : 2338 8161 8

Kartu-kartu pada tangan kiri tersebut menunjukan kondisi larik sesudah diurutkan. Pseudocode untuk algoritma Insertion adalah sebagai berikut (Saptadi dan Sari, 2012:3): insertionsort(data[],n) for(i = 1; i < n; i++) pindahkan seluruh elemen data[j] yang lebih besar daripada data[i] sebanyak satu posisi; geser data[ i ] pada posisi yang tepat; ii. Kompleksitas Algoritma Kondisi terbaik (best case) tercapai jika data telah terurut. Hanya satu perbandingan dilakukan untuk setiap posisi i, sehingga terdapat n 1 perbandingan atau O(n) (Saptadi dan Sari, 2012:3). Gambar 2. Kondisi Best Case pada Insertion Kondisi terburuk (worst case) tercapai jika data telah urut namun dengan urutan yang terbalik. Pada kasus ini, untuk setiap i, elemendata[i] lebih kecil dari elemen data[0],,data[i-1], masing-masing dari elemen dipindahkan satu posisi (Saptadi dan Sari, 2012:3). Menurut Utami dan Sukrisno (2005:252) Metode Merge adalah menggabungkan dua buah array yang sudah terurut. Menurut Saptadi dan Sari (2012:3) Merge adalah metode pengurutan yang menggunakan pola divide and concuer. Langkah kerja dari Merge (Saptadi dan Sari, 2012:3): 1. Divide Memilah elemen elemen dari rangkaian data menjadi dua bagian dan mengulangi pemilahan hingga satu elemen terdiri maksimal dua nilai. 2. Conquer Mengurutkan masing-masing elemen. 3. Kombinasi Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan. Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian. Dari pengertian dan langkah kerja dari merge sort diatas dapat disimpulkan bahwa merge sort adalah metode pengurutan dengan memisahkan elemen-elemen dari rangkaian data menjadi dua bagian, mengurutkan setiap elemen yang sudah dibagi menjadi dua bagian dan menggabungkan kembali dua buah array yang sudah terurut menjadi rangkaian data yang berurutan. i. Algoritma dan Pseudocode Algoritma Merge sebenarnya sederhana (Saptadi dan Sari, 2012:4): bagi larik menjadi dua sama besar, urutkan bagian pertama, urutkan bagian kedua,lalu gabungkan. Sebagai contoh, jika terdapat data berupa 38, 27, 43, 3, 9,82, dan 10 maka ilustrasi pengurutannya adalah sebagai berikut: Gambar 3. Kondisi Worst Case pada Insertion Untuk setiap iterasi i pada kalang for terluar, selalu ada perbandingan i, sehingga jumlah total perbandingan untuk seluruh iterasi pada kalang ini adalah (Saptadi dan Sari, 2012:3): b. Merge Gambar 4. Ilustrasi Merge Pseudocode untuk Merge (Saptadi dan Sari,2012:4) adalah sebagai berikut: mergesort(data) if data memiliki setidaknya dua elemen ISSN : 2338 8161 9

mergesort (separuh kiri dari data); mergesort (separuh kanan dari data; merge (kedua bagian ke dalam suatu urutan); : Sedangkan pseudocode untuk merge itu sendiri adalah: merge (arrayl, pertama, terakhir) tengah = (pertama + terakhir) / 2; il=0; i2=pertama; i3=tengah+1; while kedua sub larik dari array1 memiliki elemen if arrayl[i2] < arrayl[i3] temp[il++] = arrayl[i2++]; else temp[il++]=arrayl[i3++]; masukkan ke dalam temp sisa elemen dari arrayl; masukkan ke arrayl isi dari temp; ii. Kompleksitas Algoritma Kompleksitas algoritma untuk larik dengan n elemen dan jumlah pergeseran (T) dihitung melalui relasi rekursif berikut ini (Saptadi dan Sari, 2012:4): Gambar 5. Kondisi Worst Case Pada Merge Pada kondisi ini (Saptadi dan Sari, 2012:4): Kedua persamaan tersebut untuk selanjutnya diperluas seperti berikut (Saptadi dan Sari, 2012:4): Adapun M(n) dihitung lewat cara berikut (Saptadi dan Sari, 2012:4): Dengan mengenali pola yang ada, maka dapat dituliskan persamaan: Dengan 2i=n dan I=n log n dan memasukan nilai awal persamaan: Memilih i=log n sedemikian sehingga n=2i, maka diperoleh (Saptadi dan Sari, 2012:4): Kasus terburuk (worst case) terjadi bila selama pemanggilan fungsi rekursif merge, nilai terbesar dari setiap elemen terletak di larik yang berbeda (Saptadi dan Sari, 2012:4). Hal ini memaksa fungsi merge untuk melakukan pengurutan secara berpindah-pindah antar larik, sebagaimana digambarkan berikut Maka kompleksitas pada kondisi worst case adalah O(n log n) (Saptadi dan Sari, 2012:4). Kasus terbaik (best case) untuk metode ini dijumpai pada kondisi dimana elemen memiliki elemen memiliki nilai terbesar yang lebih dibandingkan dengan seluruh nilai pada elemen yang lain (Saptadi dan Sari, 2012:4), sebagai berikut ini: ISSN : 2338 8161 10

double awal=gettickcount(); {fungsi yang diuji} Double akhir= GetTickCount(); Kemudian tambahkan fungsi untuk mengisikan data secara acak: Serta menambahkan 2 file header yaitu: Gambar 6. Kondisi Best Case pada Merge Pada sekenario ini hanya n/2 perbandingan dari elemen yang diperlukan. Menggunakan peroses perhitungan yang sama sebagaimana dalam kasus terburuk diperoleh (Saptadi dan Sari, 2012:4): #include <time.h> #include <windows.h> Waktu eksekusi dapat diketahui dengan menggunakan selisih antara variabel awal dan akhir, seperti berikut: cout<<endl<<endl; cout<<"waktu Eksekusi : "<<(akhirawal)<<" "<<"MS"; b. Bahasa Pemrograman Java Fungsi yang digunakan untuk menampilkan waktu eksekusi program pada Java sebagai berikut: Dengan kata lain diperoleh juga kompleksitas yang sama, O(n log n) (Saptadi dan Sari, 2012:4). 2. PEMBAHASAN a. Pengujian Pengujian ini dilakukan untuk mengetahui dan membandingkan kecepatan eksekusi program dari algoritma Insertion dan Merge terhadap data yang dimasukan dengan jumlah tertentu, baik pada bahasa pemrograman C++ maupun pada Java. Pengujian ini meliputi beberapa prosedur, antara lain: 1. Perangkat yang digunakan Perangkat yang digunakan pada pengujian ini adalah Borland C++ 5.02 dan NetBeans DE 7.3 platform Windows 7 Professional dan komputer notebook dengan Spesifikasi: a. Intel Pentium R Processor P62000 2.13GHz (2CPUs) b. Intel R HD Graphics c. 1,00 GB RAM 2. Mengubah Kode Sumber Pengubahan kode sumber pada setiap algoritma berfungsi untuk menampilkan waktu eksekusi program, baik pada C++ maupun Java. a. Bahasa Pemrograman C++ Fungsi yang digunakan untuk menampilkan waktu eksekusi program pada C++ sebagai berikut: long awal = System.currentTimeMillis(); {fungsi yang diuji} long akhir = System.currentTimeMillis(); Kemudian tambahkan fungsi untuk mengisikan data secara acak: for(int i=0; i<n; i++) { data[i] = (int)(math.random()* N); } Waktu eksekusi dapat diketahui dengan menggunakan selisih antara variabel awal dan akhir, seperti berikut: System.out.print("Waktu Eksekusi = "+(akhirawal)+" Ms"); Dengan mengubah kode sumber didalam script kodingnya baik pada C++ maupun pada Java, difungsikan untuk menampilkan kondisi larik baik saat data belum terurut maupun data yang sudah terurut. 3. Eksekusi Program Dalam pengujian ini dilakukan eksekusi program pada kedua metode tersebut baik di C++ maupun Java. Jumlah data yang di input mulai dari 10000 hingga 100000 dengan kenaikan 10000 disetiap eksekusi dilakukan. Insertion pada C++: ISSN : 2338 8161 11

Gambar 11. Hasil Pengujian Insertion Pada C++ Merge pada C++: Gambar 12. Hasil Pengujian Merge Pada C++ Insertion pada Java: Gambar 13. Hasil Pengujian Insertion Pada Java Merge pada Java: Gambar 14. Hasil Pengujian Merge Pada Java b. Hasil Akhir Hasil akhir yang diperoleh dari pengujian dari kedua metode pada tiap bahasa pemrograman akan dicatat ke dalam tabel, kemudian digambarkan ke dalam bentuk diagram batang dan grafik, sebagai berikut: 1. Tabel Pencatatan Hasil Eksekusi Pada C++ Tabel 1. Hasil Waktu Eksekusi Pada C++ Jumlah Data Waktu Eksekusi (MS) Insertion Merge 10000 63 15 20000 156 31 30000 343 47 40000 578 62 50000 905 62 60000 1280 78 70000 1747 78 80000 2277 94 90000 2886 109 100000 3557 125 2. Tabel Pencatatan Hasil Eksekusi Pada Java Tabel 2. Hasil Waktu Eksekusi Pada Java Jumlah Waktu Eksekusi (MS) Data Insertion Merge 10000 78 3837 20000 265 5148 30000 577 8721 40000 967 10640 50000 1529 13275 60000 2168 15850 70000 2933 22277 80000 3838 26832 90000 4836 29749 100000 5944 45646 ISSN : 2338 8161 12

3. Hasil Waktu Eksekusi Pada C++ Yang di Gambarkan Dalam Bentuk Grafik 4. Untuk ruang atau memori yang dibutuhkan, algoritma Merge membutuhkan memori atau ruang yang lebih besar dikarenakan algoritma ini memakai dua elemen terpisah dan dilakukan secrara rekursif. DAFTAR PUSTAKA Gambar 15. Hasil Akhir Pengujian Insertion dan Merge Pada C++ 4. Hasil Waktu Eksekusi Pada Java Yang di Gambarkan Dalam Bentuk Grafik [1] Saptadi Arief Hendra, Desi Windi Sari. 2012. Analisis Algoritma Insertion, Merge dan Implementasinya Dalam Bahasa Pemrograman C++. Vol. 4 No 2. 2012. [2] Sjukani Moh. 2009. Algoritma (Algoritma dan Struktur Data 1) Dengan C, C++, dan Java, Edisi 5 Teknik-teknik Dasar Pemrograman Komputer. Jakarta: Mitra Wacana Media. [3] Suaraga. 2012. Algoritma dan Pemrograman. Yogyakarta: Andi. [4] Utami, Sukrisno. 2005. 10 Langkah Belajar Logika dan Algoritma, Menggunakan Bahasa C dan C++ di GNU/LINUX. Yogyakarta:Andi. Gambar 16. Hasil Akhir Pengujian Insertion dan Merge Pada C++ 4. KESIMPULAN Dari hasil implementasi, pengujian dan hasil akhir dari perbandingan yang telah dilakukan dapat di simpulkan sebagaimana berikut ini: 1. Dari hasil implementasi dari kedua bahasa pemrograman baik C++ maupun Java, algoritma Insertion lebih mudah untuk diterapkan dibandingkan algoritma Merge karena perintah yang digunakan tidak panjang seperti perintah Merge. 2. Dari hasil pengujian pada C++ diketahui bahwa algoritma Merge lebih cepat dibandingakan dengan algoritma insertion sort, terutama untuk jumlah data yang dimasukan diatas dari 10000. 3. Sedangkan hasil pengujian pada Java diketahui bahwa algoritma Insertion lebih cepat dibandingkan algoritma Merge, terutama untuk jumlah data > 10000. ISSN : 2338 8161 13