## ANALISIS PERBANDINGAN PENGGUNAAN ALGORITMA PENGURUTAN DATA DENGAN METODA BUBBLE SORT, METODA SELECTION SORT, METODA INSERTION SORT
1) Darma Indra Gultom
1 Jurusan Teknik Komputer, Politeknik Bisnis Indonesia Jl.Sriwijaya No. 9(C-E), Pematangsiantar, Sumut - Indonesia email: darmagultomdarmagultom@gmail.com

## Abstract
Management  of  an  organization  take  conclusion  and  decision    pursuant  to  data  owned.  Data  then process to get information to take conclusion and decision. Got data generally in a state of  not sort, this matter resulted various situation in field which cannot be avoided. Got data type  can  in  the  form  of  number,  character,  sentence,  date  of  and  others.  In  doing  sorting  data  which sum  up  its  data  maximal  five  data,  done  easily  in  the  manual.  Problem  generally emerge  when data amount have reached tens of data, even hundreds of or more amount of data  to  sort. Such  problem  of      time  and  correctness  that  is  needed  in  sorting  data  in  the  manual.This  problem overcome  with  algorithm  of  data  sequence    such  as  method  of  bubble  sort,  method  of  selection  sort, method of insertion sort use computer. Application to build algorithm  of  data  sequence  use  language of  pemograman  Java.  Data  which  process  of integer. Showed by a lot of steps done every method for the same data and the same result.
keywords : Data, sorting, algorithm, method, Java

## 1. PENDAHULUAN
Dalam  kehidupan  sehari  –  hari  kita  biasa menjumpai    usia    seseorang  berapa  tahun, tanggal   lahir,   alamat,   nomor   rumah, ukuran baju,  no  induk  kependudukan,  foto  hasil  ronsen, dan lain sebagainya. Hal di atas merupakan data, yang  dapat  diolah  secara  statistik.  Hasil pengolahan  data  bisa  memberikan    informasi untuk  menghasilkan  kesimpulan  dan  keputusan. Salah  satu  contoh  dari  usia  ,  satu  rumah  sakit dapat  membuat  kesimpulan  pada  range  umur berapa  yang  paling  banyak  datang  berobat  atau opname  pada  rumah  sakit    tersebut    per    tahun dan    perbulan.  Kalau  perlu  penyakit  apa  yang biasa diderita.

## 1.1. Latar Belakang
Manajemen    suatu    organisasi    biasanya memiliki keterbatasan sumber daya, baik sumber daya pembiayaan maupun sumber
daya personal dalam menjalankan organisasinya. Mengatasi keterbatasan sumber daya, manajemen  harus  membuat  keputusan  yang tepat untuk memaksimalkan penggunaan sumber daya  yang    ada.    Keputusan    didapat    dari    data yang  dikumpulkan,  kemudian  data  diolah menjadi informasi untuk mengambil kesimpulan dan  keputusan.  Keputusan  manajemen  yang menentukan tumbuh kembangnya suatu organisasi. Jadi keputusan harus diambil dengan tepat.

## 1.2. Perumusan Masalah
Permasalahan  yang  sering  muncul  adalah  data yang  tidak  terturut.  Hal  ini disebabkan situasi dan kondisi lapangan yang tidak memungkinkan      setiap      data  yang  diterima langsung  diurutkan.  Bila  banyak    data    yang diurutkan    maksimal  lima  data,  hal  ini  tidak begitu  masalah  dilakukan  secara  manual.  Bila banyak data
yang diurutkan puluhan atau ratusan  atau ribuan atau  jutaan  atau  lebih  besar  lagi, akan menjadi masalah  dilakukan  secara  manual.  Permasalahan yang dimaksud penggunaan  waktu dan  ketelitian dalam pengurutan data.

## 1.3. Tujuan dan Manfaat Penelitian
Tujuan Penelitian : Penerapan     pemograman     Java     untuk algoritma  pengurutan  data  seperti  metoda bubble sort, metoda selection sort, metoda insertion sort menggunakan komputer. Manfaat Penelitian :
Membandingkan    setiap    metoda    bubble sort, metoda  selection  sort,  metoda  insertion  sort untuk algoritma pengurutan data.

## 2. METODE PENELITIAN
Metode   penelitian   dalam   perbandingan penggunaan   algoritma  pengurutan     data dengan    metoda    bubble    sort,    metoda selection    sort,    metoda    insertion    sort terbagi dalam dua tahapan. Tahap pertama meliputi  pengumpulan  data  dan  variabel. Berdasarkan     cara     memperoleh     data, menggunakan   data   primer   karena   data langsung     dikumpulkan     sendiri     oleh peneliti dari objek penelitian. Berdasarkan sifat data,  menggunakan  data  kuantitatif karena data   angka   pasti.   Berdasarkan waktu pengumpulannya            data, menggunakan cross     section/insidentil karena data dikumpulkan pada satu  waktu tertentu. Penggunaan    variabel    interval karena    nilai variabel    yang    digunakan memiliki satuan(unit) nilai yang sama. Tahap  kedua meliputi  pengembangan  dan pengujian  dengan data  yang  sama  pada aplikasi menggunakan           bahasa pemograman java.

## 2.1. Pengurutan(Sorting)
Data  yang  ter-urut,  memudahkan  kita melakukan  perbaikan,  penyisipan  data baru, penghapusan dan penggabungan.
Secara umum ada 2 jenis pengurutan data : a. Ascending Data  diurutkan  dari  nilai  yang  paling kecil ke nilai yang paling besar b. Descending Data  diurutkan  dari  nilai  yang  paling besar ke nilai yang paling kecil.

## 2.2. Metoda Bubble Sort
Prinsip :           Kumpulan  data  dengan index  ke  1...n.  Lakukan  looping  jika ditemukan   data   dengan   nilai   lebih kecil  setelah  data  dengan  nilai  lebih besar,  maka  data  dengan  nilai  lebih kecil    dipindahkan    sebelum    data dengan nilai lebih besar.
Hasil    :           Ascending Langkah : 1.  Lakukan  perulangan  dari  data[  1  ] sampai dengan data[ n – 1].
2.  Menggunakan  i=2…(n-1),  data[  1  ] dibandingkan ke data[ 2 ] sampai data[ n-1 ].
3.  Jika  data[  i  ]  >  data[  i+1  ]  lakukan pertukaran data :
temp = data[ i ] ; data[ i ]  = data[ i +1] ; data[ i +1]  = temp ;

## 2.3.. Metoda Selection Sort
Prinsip :           Kumpulan  data  dengan index  ke  1...n.  Nilai  data  ke-1 dibandingkan dengan nilai data ke 2...n mencari  nilai  data  terbesar.  Setelah ketemu  nilai  data  terbesar,  temp=nilai data  ke-n,  dipindahkan  nilai  data terbesar  ke  posisi  index  data  ke-n, posisi  index  nilai  data  terbesar  diisi temp.  Nilai  data  ke-1  dibandingkan dengan  nilai  data  ke  2...(n-1)  mencari nilai   data   terbesar.   Setelah   ketemu nilai data  terbesar  dipindahkan ke  data ke-(n-1), dan seterusnya.
Hasil    :           Ascending
Langkah :
1.  Lakukan   looping   dari   data   ke-1 sampai  data  ke-n,  mencari  data terbesar. Seterusnya:
a.  Catat   elemen   ke   berapa   data terbesar, contoh data[i].
b.  lakukan pertukaran data : temp = data[ i ] ; data[ i ]  = data[ n] ;
data[ n]  = temp ;
2.  Lakukan   looping   dari   data   ke-1 sampai  data  ke-(n-1),  mencari  data terbesar. Seterusnya:
a.  Catat   elemen   ke   berapa   data terbesar, contoh data[i].
b.  lakukan pertukaran data :
temp = data[ i ] ; data[ i ]  = data[ n-1] ; data[ n-1]  = temp ;
3.  Lakukan   looping   dari   data   ke-1 sampai  data  ke-(n-2),  mencari  data terbesar. Seterusnya:
a.  Catat   elemen   ke   berapa   data terbesar, contoh data[i].
data ke-3   dan     setelah nilai data ke-3 > nilai data ke-3
Data ke-3 < data ke 4, jika ya Dan seterusnya.

## 3. HASIL DAN PEMBAHASAN
// Berkas: bubble.java class Bubble { public   static   void   main(String[] args)
{
int[] data = {5, 10, 6, 7, 2, 12, 1};
int i,j,temp;
for (j=0 ;j <= 6; j++)
System.out.print(data[j]+" ");
System.out.println("
\n\n"); b.  lakukan pertukaran data : temp = data[ i ] ; data[ i ]  = data[ n-2] ; data[ n-2]  = temp ;
i++)
for (j=0 ;j < 6; j++) { for   (i=0   ;i   <   6;
if
4.   dan   seterusnya   Lakukan   looping dari data ke-1 sampai data ke-2

## 2.4. Metoda Insertion Sort
Prinsip :   Kumpulan   data   dengan index ke 1...n. Data ke-1 > data ke-2. Jika  ya  temp  =  Data  ke-1,     Data ke-1= data ke-2,  Data ke-2= temp
(data[i]>data[i+1])
{
temp=data[i];
data[i]=data[i+1];
data[i+1]=temp;
} } for (j=0 ;j <= 6; j++)
Data ke-2 > data ke 3, jika ya looping   i=1..2,   dari   data   ke-1 sampai data ke-2
Letakkan  data  ke-3  pada  posisi, sebelum   nilai   data   ke-3   <   nilai \n\n"); } System.out.print(data[j]+" "); System.out.println(" }
Hasil:
Data Awal :          5  10  6  7  2  12  1 5  >   10 False   5  10  6  7  2  12  1 10  >    6 True    5  6  10  7  2  12  1 10  >    7 True    5  6  7  10  2  12  1 10  >    2 True    5  6  7  2  10  12  1 10  >   12 False   5  6  7  2  10  12  1 12  >    1 True    5  6  7  2  10  1  12 args)
12, 1};
public   static   void   main(String[] { int[] data = {5, 10, 6, 7, 2, int i,j,temp,max,byk; for (j=0 ;j <=6; j++)
5  >  6 False  5  6  7  2  10  1  12                       S ystem.out.print(data[j]+" ");
System.out.println(); 6  >  7 False  5  6  7  2  10  1  12 7  >  2 True  5  6  2  7  10  1  12 System.out.println(); 7  >  10 False  5  6  2  7  10  1  12 max=0; 10  >    1 True    5  6  2  7  1  10  12 10  >   12 False   5  6  2  7  1  10  12 5  >    6 False   5  6  2  7  1  10  12 6  >    2 True    5  2  6  7  1  10  12 6  >    7 False   5  2  6  7  1  10  12 i++) byk=6; for (j=0 ;j <6; j++) { for  (i=0  ;i<=byk; if 7  >    1 True    5  2  6  1  7  10  12 7  >   10 False   5  2  6  1  7  10  12 10  >   12 False   5  2  6  1  7  10  12 (data[max]<data[i]) max=i; temp=data[max]; 5  >  2 True  2  5  6  1  7  10  12 data[max]=data[byk]; 5  >  6 False  2  5  6  1  7  10  12 data[byk]=temp; 6  >  1 True  2  5  1  6  7  10  12 byk=byk-1; 6  >  7 False  2  5  1  6  7  10  12 max=0; 7  >  10 False  2  5  1  6  7  10  12 10  >   12 False   2  5  1  6  7  10  12 2  >    5 False   2  5  1  6  7  10  12 5  >    1 True    2  1  5  6  7  10  12 5  >    6 False   2  1  5  6  7  10  12 6  >    7 False   2  1  5  6  7  10  12 7  >   10 False   2  1  5  6  7  10  12 10  >   12 False   2  1  5  6  7  10  12 2  >    1 True    1  2  5  6  7  10  12 2  >    5 False   1  2  5  6  7  10  12 } Hasil } for (j=0 ;j <= 6; j++) System.out.print(data[j]+" "); System.out.println(); System.out.println(); } 5  >    6 False   1  2  5  6  7  10  12 6  >    7 False   1  2  5  6  7  10  12 7  >   10 False   1  2  5  6  7  10  12 Data Awal               5  10   6   7   2  12   1 byk 5 10  >   12 False   1  2  5  6  7  10  12 data 5 > 12 FALSE 1  2  5  6  7  10  12 data 10 > 1 TRUE         5   1   6   7    2  12 Press any key to continue . . . // Berkas: SelectionSort.java class SelectionSort { 10 5   1   6   7   2  12  10 byk 4
1   2   5   6   7  10  12 Press any key to continue . . . Hasil : // Berkas: Insertion.java Data Awal :    5 10 6 7 2 12 1 data pembanding: 10 class Insertion 5 >  10 False 5 10 6 7 2 { public   static   void   main(String[] args) 12 1 data pembanding: 6 { 10 >   6 True 5 6 10 7 2 int[] data = {5, 10, 6, 7, 2, 12, 1}; 12 1 5 >    6 False 5 6 10 7 2 int i,j,k,temp,temp2,max,byk,l; 12 1 data pembanding: 7 for (j=0 ;j <=6; j++) 10 >   7 True 12 1 5 6 7 10 2
data 5 > 2 TRUE          2    1    6    7    5  12 10 data 1 > 12 FALSE
data 6 > 10 FALSE 2   1   6   7   5  12  10
byk 3 data  2  >  7  FALSE
data  1  >  5  FALSE data 6 > 12 FALSE data 7 > 10 FALSE 2   1   6   7   5  12  10
System.out.print(data[j]+" "); System.out.print("\n\n");
for (j=0 ;j<6; j++) {
temp=data[j+1]; k=j+1;
for (i=k ;i>0; i--) { if  (data[i- 1]>temp)
byk 2
data 2 > 6 FALSE data 1 > 7 FALSE
data 6 > 5 TRUE          2    1    5    7    6  12 10
data 7 > 12 FALSE data 6 > 10 FALSE
2   1   5   7   6  12  10
byk 1 i=0; data[i]=data[i-1]; data[i-1]=temp; }
{ } else { data 2 > 1 TRUE          1    2    5    7    6  12 10 data 2 > 5 FALSE }//for j }//for i data 5 > 7 FALSE
data 7 > 6 TRUE          1    2    5    6    7  12
10 data 7 > 12 FALSE
data 12 > 10 TRUE        1   2   5   6   7  10
12 1   2   5   6   7  10  12 for (j=0 ;j <= 6; j++) System.out.print(data[j]+" "); System.out.println("\n\n"); }
}
12                                                                                   Summer School Modern 6 >   1 True              2 5 1 6 7 10 12 5 >   1 True              2 1 5 6 7 10 2. Computational  Science.  August  15-26, 2011, Oldenburg, Germany. 2016.   Data   Structure   &   Algorithms 12 2 >   1 True              1 2 5 6 7 10 12 1 2 5 6 7 10 12 3. Tutorialspoint  Simply  Easy  Learning. Tutorials Point (I) Pvt. Ltd. Clifford     A.     Shaffer.     2012.    Data Structures   and   Algorithm   Analysis.
Press any key to continue . . .

## 4. KESIMPULAN
4. Edition 3.2. (Java Version).Department of  Computer  Science.  Virginia  Tech. Blacksburg. Varsha  h  Patil.  2012.  Data  Structures Dengan   menggunakan   sampel      7   data awal:  5,  10,  6,  7,  2,  12,  1  dan  data  hasil 5. Using C++. Oxford University Press. Abdul    Kadir.    2012.    Algoritma    & pengurutan yang diinginkan:   1, 2, 5, 6, 7, Pemograman  Menggunakan  Java.  CV Andi Offset. Yogyakarta. 12 1
12 1 12 1 12 1 12 1 12 1 1 12
10 12 6 >    7 False              5 6 7 10 2 data pembanding:   2 10 >   2 True               5 6 7 2 10 7 >    2 True               5 6 2 7 10 6 >    2 True               5 2 6 7 10 5 >    2 True               2 5 6 7 10 data pembanding:   12 10 >  12 False             2 5 6 7 10 data pembanding:   1 12 >   1 True               2 5 6 7 10 10 >    1 True                2 5 6 7 1 7 >   1 True              2 5 6 1 7 10 10,    12.    Didapat    kesimpulan    sebagai berikut:
a.    Metoda  Bubble  Sort,  membutuhkan  36 proses pembandingan data.
b.  Metoda  Selection  Sort,  membutuhkan 20 proses pembandingan data.
c.   Metoda  Insertion  Sort,  membutuhkan 16   proses   pembandingan   data   dan paling  cepat  melakukan  pengurutan data.
Perbandingan ketiga metoda adalah :
Metoda Bubble Sort      :            Metoda
Selection Sort    :            Metoda   Insertion Sort 36         :            20         :            16
9           :            5           :            4

## 5. REFERENSI
1.  Frauke  Liers.  2011.  Basic  Introduction into  Algorithms  and  Data  Structures. Lecture    given    at    the    International