BAB 2 TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA

BAB 2 LANDASAN TEORI

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

STRATEGI DIVIDE AND CONQUER

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Analisis Kecepatan Sorting Dengan Notasi Big O

Penerapan Pohon Dalam Heap Sort

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

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

ALGORITMA PENGURUTAN & PENCARIAN

BAB 2 LANDASAN TEORI

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat

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

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

BAB VI SORTIR ATAU PENGURUTAN

Heap Tree dan Kegunaannya dalam Heap Sort

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

UNIVERSITAS GUNADARMA

MODUL IV PENCARIAN DAN PENGURUTAN

Decrease and Conquer

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Algoritma dan Struktur Data

BAB II TINJAUAN PUSTAKA

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

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

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen

Algoritma dan Struktur Data. Searching dan Sorting

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

Kompleksitas Algoritma Sorting yang Populer Dipakai

STRUKTUR DATA SORTING ARRAY

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

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

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Struktur Data. Pertemuan 2

Analisis Algoritma Bubble Sort

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

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Algoritma dan Struktur data

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

BAB I PENDAHULUAN Latar Belakang

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

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

Solusi UTS Stima. Alternatif 1 strategi:

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

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

Langkah Awal menuju Analisis Kompleksitas Algoritma

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

UNIVERSITAS GUNADARMA

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

BAB 2 LANDASAN TEORI

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

BAB VI Pengurutan (Sorting)

BAB VII ALGORITMA DIVIDE AND CONQUER

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

Pengurutan (Sorting) Algoritma Pemrograman

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Analisis Algoritma. Jimmy Tirtawangsa. Universitas Telkom 2014

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

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

BAB II LANDASAN TEORI

Syarat dan Ketentuan yang berlaku:

STRUKTUR DATA (3) sorting array. M.Cs

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

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

Brigida Arie Minartiningtyas, M.Kom

SATUAN ACARA PENGAJARAN

BAB 3 ANALISA SISTEM

JARINGAN UNTUK MERGING

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

STRUKTUR DATA. Deskripsi Mata Kuliah

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

Gambar 13.1 Ilustrasi proses algoritma sorting

Kompleksitas Algoritma

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

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

Outline STRUKTUR DATA. VII. Sorting

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Bab 1 Pengantar Struktur Data

PERTEMUAN 15 REVEW/QUIZ

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Kompleksitas Algoritma

Penerapan Struktur Data Pohon dalam Implementasi Algoritma Heapsort dan Tinjauan Kompleksitas Waktunya

Pengertian Algoritma Pengurutan

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

7. SORTING DAN SEARCHING

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

RENCANA PEMBELAJARAN SEMESTER

Transkripsi:

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. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar (Rosa dan Shalahuddin 2010). Kriteria Algoritma yang baik : a. Tepat, benar, sederhana, standar dan efektif. b. Logis, terstruktur dan sistematis. c. Semua operasi terdefinisi. d. Semua proses harus berakhir setelah sejumlah langkah dilakukan. e. Ditulis dengan bahasa yang standar dengan format pemrograman agar mudah untuk diimplementasikan dan tidak menimbulkan arti ganda. Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat masakan. Bila langkah -langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut(munir 2007).

2.2. Algoritma Pengurutan ( Sorting ) Algoritma merupakan urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Sedangkan pengurutan adalah proses pengaturan sekumpulan objek berdasarkan urutan atau susunan tertentu, dapat berupa pengurutan menaik (ascending) atau menurun (descending). (Sharma at all 2008). Contoh, sebuah larik atau array terdiri dari kumpulan bilangan : [3,12,1,50,33,5,28] Hasil pengurutan menaik (ascending) : [1,3,5,12,28,33,50] Hasil pengurutan menurun (descending) : [50,33,28,12,5,3,1] Sebuah algoritma dikatakan baik jika menghasilkan nilai yang benar, efektif dan efisien. Efektif yaitu tepat sasaran, jelas dan tidak rancu dalam menjalankan aksi-aksinya serta menghasilkan data yang benar. Efisien yaitu penghematan proses dari sebuah algoritma, seperti running time dan penggunaan memori. Metode atau algoritma pengurutan dapat diklasifikasikan menjadi : 1. Metode atau algoritma pengurutan internal, yaitu pengurutan yang dilakukan di dalam larik itu sendiri. Datanya disimpan di dalam memori komputer. 2. Metode atau algoritma pengurutan eksternal, yaitu pengurutan yang datanya disimpan di dalam disk storage. Metode ini disebut juga pengurutan arsip. Sedangkan berdasarkan kestabilan (stability), algoritma pengurutan dapat dibagi menjadi dua jenis, yaitu : 1. Metode pengurutan stabil (stable sorting algorithm), merupakan algoritma pengurutan yang menjaga/mempertahankan (maintenance) urutan dari beberapa elemen array yang bernilai sama. 2. Metode pengurutan tidak stabil (non stable sorting algorithm), merupakan metode pengurutan yang tidak menjaga/mempertahankan (maintenance) urutan dari beberapa elemen array yang bernilai sama. Dengan kata lain, urutan beberapa elemen yang sama berbeda antara sebelum dan sesudah pengurutan.

Algoritma memiliki dua skema, yaitu iteratif dan rekursif. Iteratif yaitu algoritma yang melakukan perulangan biasa, sedangkan rekursif adalah algoritma yang melakukan perulangan dengan melakukan pemanggilan terhadap dirinya sendiri. Contoh algoritma pengurutan yang termasuk dalam skema iteratif, yaitu pengurutan apung (bubble sort) dan selection sort, Contoh algoritma pengurutan yang termasuk dalam skema rekursif, yaitu pengurutan merge (merge sort), pengurutan heap (heap sort) dan pengurutan cepat (quick sort). Tidak semua algoritma tersebut hanya memiliki satu skema, misalnya algoritma pengurutan seleksi atau selection sort yang dapat menggunakan skema rekursif, namun di dalam penelitian ini selection sort yang dibahas menggunakan skema iteratif (Fanani 2008). 2.3. Kompleksitas Algoritma Efisiensi sebuah algoritma tergantung dari beberapa hal, diantaranya adalah : Kinerja CPU Kinerja Memori Kinerja Disk Kinerja Jaringan Algoritma memiliki kompleksitas, kompleksitas merupakan acuan utama utama untuk mengetahui kecepatan dari sebuah algoritma. Kompleksitas dibagi menjadi tiga, yaitu (Rao and Ramesh 2012) : 1. Best case (Ω), yaitu kompleksitas algoritma dimana algoritma tersebut berjalan dalam kondisi terbaik. 2. Average case ( ), yaitu kompleksitas algoritma dimana algoritma tersebut berjalan dalam kondisi sedang, biasanya inputnya secara acak. 3. Worst case (Ο), yaitu kompleksitas algoritma dimana algoritma tersebut berjalan dalam kondisi terburuk.

2.4. Growth Function Kinerja sebuah algoritma biasanya di ukur dengan mengacu pada kondisi terburuknya, yaitu worst case yang dilambangkan dengan notasi Big O. Notasi Big O adalah fungsi yang berkaitan dengan kelajuan proses dan kelajuan pertambahan data (Suryani 2013). Tabel 2.1 Tabel Notasi Big O Notasi Nama Contoh Aplikasi O(1) Konstan Menentukan apakah suatu bilangan ganjil atau genap O(log * n) Iterasi Logaritmik Algoritma pencarian Hopcraff dan Ullman untuk himpunan disjoint O(log n) Logaritmik Pencarian dalam list terurut dengan Binary Search Algorithm O((log n) c ) Polilogaritmik Menentukan bilangan prima dengan AKS primality test O(n) Linear Pencarian dalam list tidak terurut O(n log n) Linearitmik Mengurutkan list dengan Heapsort O(n 2 ) Kuadratik Mengurutkan list dengan Insertion Sort O(n c ),c>1 Poliomial Pencarian shortest path dengan algoritma Floyd Warshall O(c n ) Eksponensia Pencarian solusi untuk traveling salesmen problem O(n!) Faktorial Menyelesaikan traveling salesmen problem dengan menggunakan brute force O(2 cn ) Dobel Eksponensial Pencarian himpunan lengkap dari AC-unifiers (associative-commutative unifiers) (Sumber : Mcgeoch, 2012)

2.5. Notasi Asimptotik Notasi asimptotik digunakan untuk menentukan kompleksitas suatu algoritma dengan melihat waktu tempuh (running time) sebuah algoritma. Waktu tempuh algoritma merupakan fungsi : N R suatu algoritma dengan algoritma lainnya. Notasi asimptotik dapat dituliskan dengan beberapa simbol, yaitu : Notasi Big O, yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas. Notasi Little o, yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas namun tidak secara ketat terikat (not asymptotically tight). Notasi Theta ( ), yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas dan bawah. Notasi Omega ( ), yaitu notasi asimptotik sebuah fungsi algoritma untuk batas bawah, notasi ini berlawanan dengan notasi little-o. 2.6. Pengertian Selection Sort Selection sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan. Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar(swap) dan begitu seterusnya(triono 2010). Dalam tesis ini penulis menambahkan 2 metode pengurutan data dengan selection sort yang baru, yaitu: 1. Selection Sort Model Insert 2. Selection Sort Model New List Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.

Algoritma selection sort memilih elemen maksimum/minimum array, lalu menempatkan elemen maksimum/minimum itu pada awal atau akhir array (tergantung pada urutannya ascending /descending). Selanjutnya elemen tersebut tidak disertakan pada proses selanjutnya. Karena setiap kali selection sort harus membandingkan elemen-elemen data, algoritma ini termasuk dalam comparison-based sorting. Seperti pada algoritma Bubble Sort, proses memilih nilai maksimum / minimum dilakukan pada setiap pass. Jika array berukuran N, maka jumlah pass adalah N-1 (Nugroho 2005). Terdapat pendekatan dalam metode pengurutan dengan Selection Sort : 1. Algoritma pengurutan maksimum (maximum selection sort), yaitu memilih elemen maksimum sebagai basis pengurutan. 2. Algoritma pengurutan minimum (minimum selection sort), yaitu memilih elemen minimum sebagai basis pengurutan 2.7. Pengertian Merge Sort Metode pengurutan merge sort adalah metode pengurutan lanjut, sama dengan metode Quick Sort. Metode ini juga menggunakan konsep devide and conquer yang membagi data S dalam dua kelompok yaitu S1 dan S2 yang tidak beririsan (disjoint). Proses pembagian data dilakukan secara rekursif sampai data tidak dapat dibagi lagi atau dengan kata lain data dalam sub bagian menjadi tunggal. Setelah data tidak dapat dibagi lagi, proses penggabungan (merging) dilakukan antara sub-sub bagian dengan memperhatikan urutan data yang diinginkan (ascending/kecil ke besar atau descending/besar ke kecil). Proses penggabungan ini dilakukan sampai semua data tergabung dan terurut sesuai urutan yang diiginkan. Kompleksitas algoritma merge sort adalah O(n log n)( Fenwa at all 2012). Secara umum, algoritma merge sort dapat diimplementasikan secara rekursif. Fungsi rekursif adalah sebuah fungsi yang didalam implementasinya memanggil dirinya sendiri. Pemanggilan diri sendiri ini berakhir jika kondisi tertentu terpenuhi (terminated condition is true). Pada contoh berikut ini, terminated condition dari proses rekursif mergesort akan berakhir jika data tidak dapat dibagi lagi (data tunggal telah diperoleh). Dengan kata lain, proses pembagian data dilakukan terus selama S.size > 1 (belum tunggal) ( Fenwa at all 2012).

Ide algoritma ini hampir mirip dengan QuickSort, yaitu melakukan partisi. Kecuali bahwa algoritma ini melakukan partisi tanpa kriteria. Jadi, data set (X[l]... X[r]) di partisi langsung ke du sub data set dengan jumlah data yang sama (X[l]... X[(l+r)/2], dan X[(l+r)/2+1]... X[r]). Lalu secara rekursif melakukan Merge Sort untuk masing-masing data set. Karena kedua data set itu bisa overlapping (tidak seperti pada Quick Sort) maka setelah kedua sub data set terurut masih memerlukan proses penggabungan (Merging). Merging ini memerlukan ruang tambahan yaitu suatu array yang sama panjangnya dengan panjang kedua subset untuk menyimpan hasilnya (Bhalchandra dan Deshmukh 2010). void MergeSort(int l,int r) { if (l < r) { MergeSort(l, (l+r)/2); MergeSort((l+r)/2,r); Merging(); } } Algoritma ini memiliki kompleksitas O(n log n). 2.8. Struktur Data Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien. Sedangkan data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol. Secara garis besar tipe data dapat dikategorikan menjadi : 1. Tipe data sederhana/dasar a. Tipe data sederhana tunggal - Integer - Real - Boolean, dan

- Karakter b. Tipe data sederhana majemuk misalnya string 2. Struktur data, meliputi : a. Struktur data sederhana - Array - Record b. Struktur data majemuk, yang terdiri dari: - Linier : Stack, Queue, List dan Multilist - No Linier : Pohon Biner (tree) dan Graph Pemakaian struktur data yang tepat didalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efesien dan sederhana. Struktur data yang standar yang biasanya digunakan dibidang informatika adalah List, Multilist, Stack (Tumpukan), Queue (Antrian), Tree ( Pohon ), Graph ( Graf ). Struktur data yang penulisan bahas dalam tesis ini adalah struktur data sederhana yaitu array dan struktur data majemuk yaitu list ( Wahyudi 2004 ). a. Array Array (larik) adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks Array (larik) harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Array merupakan suatu struktur data yang bersifat statis. Array harus dialokasikan terlebih dahulu di dalam memory sebelum kita memakainya. b. List Merupakan suatu struktur data pengembangan dari konsep ADT (Abstrak Data Type) yang bersifat dinamis. List dapat dimanfaatkan secara effektif sesuai dengan keperluan. List juga dapat benar benar dihapus / dibersihkan dari memory. List sebenarnya merupakan suatu type data tersendiri. Di bahasa Visual Studio 2010 Ultimate, List bisa berupa suatu Class ataupun Record. Ciri ciri utama dari List adalah, dia mempunyai minimal dua elemen utama. Elemen elemen itu adalah data dan pointer untuk menunjukkan ke list berikutnya ( Sanjaya 2001).

Tabel 2.2 Perbedaan mendetail antara Array dan List Array List 1. Pengaksesan bersifat Statis 1. Pengaksesan bersifat Dinamis 2. volumenya selalu tetap tidak tergantung 2. ukurannya berubah-ubah disesuaikan pada jumlah data dengan kebutuhan. 3. alokasi memori dilakukan pada saat array 3. alokasi memori ditentukan pada saat didefinisikan. data baru dibuat. 4. pembebasan memori dilakukan pada saat 4. pembebasan memori dilakukan setiap program berhenti. ada penghapusan data. 5. Cara akses bersifat random dengan 5. Cara akses ke masing-masing class menggunakan nomor index. data dilakukan secara linier (selalu dimulai dari elemen pertama). (Sumber : Sanjaya, 2001 ) 2.9. Penelitian Terdahulu Penelitian yang dilakukan oleh Sareen (2013) yang berjudul Comparison of Sorting Algorithms (On the Basis of Average Case) dimana metode merge sort dan pengurutan lain menggunakan memori yang lebih efisien dan kompleksitas waktu terbaik dibandingkan metode selection sort dalam proses pengurutan data, maka dilakukan penelitian untuk menemukan sebuah algortima sorting yang dapat memberikan kompleksitas lebih baik lagi. Penelitian yang dilakukan oleh Tjaru & Setia (2009) yang berjudul Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort, yang menerengakan bahwa algoritma pengurutan data dengan selection sort merupakan algoritma pengurutan paling baruk dari semua metode pengurutan yang ada, maka dengan itu penulisan menambahkan 2 metode pengurutan pengembangan dari metode selection sort yaitu selection sort model insert dan selection sort model new list untuk dilakukan perbandingan terhadap metode yang terbaik sebelumnya yaitu metode merge sort dan juga terhadap metode selection sort. Kedua metode yang penulis tambahkan tersebut dilakukan pengujian dengan menggunakan bahasa pemrograman Visual Studio 2010 Ultimate terhadap 10 sampai 100000 data dengan kelipatan 1000 data yang masing-masingnya bertipe integer.