Anda di halaman 1dari 9

SHELL SORT

Dibuat Untuk Memenuhi Tugas Mata Kuliah


Perancangan dan Analisis Algoritma

Disusun Oleh:
Muhammad Kamal Azmi (3125141769)

Program Studi Matematika


Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Negeri Jakarta

2016
Daftar Isi

Daftar Isi i

1 PENDAHULUAN 1
1.1 Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Pembatasan Masalah . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Rumusan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 Manfaat Penulisan . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.5 Sistematika Penulisan . . . . . . . . . . . . . . . . . . . . . . . . 2

2 PEMBAHASAN 3
2.1 Sejarah Shell Sort . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Proses Pengurutan Shell Sort . . . . . . . . . . . . . . . . . . . 3

3 KESIMPULAN 6

i
Abstrak

Shell Sort merupakan proses sorting yang bertujuan untuk menyusun datum-
datum pada suatu data hingga terurut. Shell sort menggunakan jarak-jarak
antardatum tertentu pada setiap proses perbandingannya. Semakin kecil jarak
pada suatu proses Shell Sort, maka proses sorting akan semakin mendekati
hasil akhir.
Bab 1

PENDAHULUAN

1.1 Latar Belakang


Sorting adalah sebuah proses merangkai benda atau elemen ke dalam urut-
an tertentu atau dalam himpunan yang berbeda, dan oleh karena itu dia me-
miliki dua arti umum yang berbeda, yaitu pengurutan (merangkai benda yang
sejenis, sekelas, dll, dalam urutan yang teratur) dan kategorisasi (pengelom-
pokan dan pemberian label kepada benda dengan sifat yang serupa).
Metode Shell Sort diawali dari ide membandingkan data-data dengan jarak
tertentu dengan suatu ketentuan. Dan ketika jarak yang di maksud sudah
bernilai satu, maka proses terakhir telah dimasuki.

1.2 Pembatasan Masalah


Permasalahan yang akan dibahas ialah jenis Shell Sorting

1.3 Rumusan Masalah


Berdasarkan latar belakang diatas terdapat permasalahan yang akan diba-
has penulis yaitu:

1. Bagaimana proses Shell Sort dilakukan

1.4 Manfaat Penulisan


1. Bagi Penulis

1
(a) Menyelesaikan tugas mata kuliah Perancangan dan Analisis Algo-
ritma
(b) Mengetahui cara kerja Shell Sort

1. Bagi Pembaca
Memperkaya pengetahuan tentang jenis-jenis sorting

1.5 Sistematika Penulisan


Karya tulis ini secara keseluruhan terdiri dari 3 bab yaitu pendahuluan,
pembahasan dan kesimpulan, dilengkapi dengan daftar pustaka yang memuat
sumber-sumber meteri referensi. Sistematika pembahasan pada tugas akhir ini
adalah sebagai berikut: Bab I Pendahuluan, pada bab ini dijelaskan tentang
latar belakang masalah, perumusan masalah yang dihadapi di dalam menyusun
karya tulis, pembatasan masalah, tujuan dibuatnya karya tulis dan sistematika
pembahasan laporan karya tulis yang menjelaskan sekilas dari isi tiap bab yang
terdapat pada karya tulis ini. Bab II Pembahsan, pada bab ini dibahas menge-
nai proses pengurutan oleh Shell Sort. Bab III Kesimpulan, bab ini merupakan
bab akhir laporan yang memuat kesimpulan dari pembahasan masalah yang
ada dalam karya tulis ini. Selain itu juga dimuat mengenai saran-saran pe-
nulis untuk mengembangkan sistem pendukung keputusan dalam tugas akhir
ini. Daftar pustaka pada bagian akhir makalah yang memuat daftar sumber
materi yang ada dalam karya tulis ini.

2
Bab 2

PEMBAHASAN

2.1 Sejarah Shell Sort


Metode ini disebut juga dengan metode pertambahan menurun (dimini-
shing increament). Metode ini dikembangkan oleh Donald L. Shell pada tahun
1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengu-
rutkan data dengan cara membandingkan suatu data dengan data lain yang
memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan. Pro-
ses pengurutan dengan Metode Shell dapat dijelaskan pada sub-bab berikut-
nya.

2.2 Proses Pengurutan Shell Sort


Hal pertama yang harus dilakukan adalah menetukan jarak mula-mula dari
data yang akan dibandingkan, yaitu j1 = N2 , di mana N adalah banyaknya
data. Apabila data pertama lebih dari data ke j1 , maka kedua data yang
bersangkutan dilakukan penukaran, dengan kata lain apabila data pertama
kurang dari data ke j1 maka tidak ada penukaran yang dilakukan. Demikian
seterusnya sampai seluruh data dibandingkan sedemikian hingga semua data
ke-i selalu kurang dari data ke-(i + j1 ).
Pada proses berikutnya, digunakan jarak yaitu j2 = j21 = N4 . Data perta-
ma dibandingkan dengan data dengan jarak j2 seperti pada proses sebelumnya.
Demikianlah seterusnya sehingga seluruh data akan dibandingkan pada pro-
ses ke-3, ke-4 dan seterusnya, dengan jarak berturut j3 = j22 , j4 = j23 dan
seterusnya. Jarak jk dapat dinyatakan sebagai

3
j(k1)
jk = (2.1)
2
yang merupakan bentuk umum jarak pada proses ke-k. Dapat disimpulkan
bahwa apabila suatu jarak jk = 1, maka kita telah memasuki proses terakhir.
Penting untuk diketahui bahwa apabila nilai dari suatu jarak jk bukan me-
rupakan bilangan bulat, maka akan dilakukan pembulatan kebawah. Sehingga,
j(k1)
jk = b c. (2.2)
2
Contoh 1.

Diberikan data: 14, 18, 19, 37, 23, 40, 29, 30, 11. Maka banyaknya data
adalah N = 9
Sehingga j1 = b 29 c = b4, 5c = 4. Artinya, jika kita berada pada indeks ke-
1, maka elemen selanjutnya adalah pada indeks ke-5, dan elemen selanjutnya
ada pada elemen ke-9. Begitu juga apabila kita berada pada indeks ke-2, maka
elemen selanjutnya adalah pada indeks ke-6.
Kita mulai proses pertama dari indeks ke-1, di mana elemen-elemennya
adalah 14, 23, dan 11. Apakah 14 > 23? Tidak. Sehingga tidak dilakukan
penukaran. Karena tidak dilakukan penukaran, kita berjalan ke indeks ke-2.
Pada indeks ke-2, elemen-elemennya adalah 18 dan 40. Apakah 18 > 40?
Tidak. Lalu kita kembali berjalan ke indeks-indeks selanjutnya.
Pada indeks ke-4, yaitu 37, memuat elemen 37 dan 30. Dapat dilihat
bahwa 37 > 30, maka dilakukan penukaran. Setelah itu kita kembali berjalan
ke indeks selanjutnya, yaitu indeks ke-5.
Indeks ke-5 adalah 23, maka elemen yang terkait adalah indeks ke-9 yaitu
11. Perlu diketahui, indeks ke-1 juga elemen yang akan diperhitungkan pada
proses ini karena antarkedua indeks berjarak j1 = 4. Kita bandingkan 23 dan
11. Karena 23 > 11, maka kita lakukan penukaran. Setelah penukaran ter-
sebut, kita bandingkan lagi 11 dengan 14. Dan dilakukan kembali penukaran
karena 14 > 11. Perlu diketahui bahwa apabila pada perbandingan pertama ti-
dak dilakukan penukaran, maka kita tidak akan membandingkan indeks-indeks
sebelumnya. Setelah itu kita berjalan ke indeks selanjutnya.
Maka data sementara hasil dari proses pertama adalah: 11, 18, 19, 30, 16,
40, 29, 37, 23.
Karena seluruh indeks sudah dilewati pada proses pertama, maka kita akan
memasuki proses kedua dengan jarak j2 = j21 = 42 = 2. Lalu kita memulai dari

4
indeks pertama pada proses kedua, dengan elemen-elemennya adalah 11, 19,
14, 29, 23. Dengan proses yang sama, kita bandingkan indeks ke-1 dan ke-3,
di mana tidak dilakukan penukaran karena 11 19.
Lalu kita berjalan ke indeks ke-2, dengan elemen-elemen 18, 30, 40, dan 37.
Kita kembali berjalan ke indeks selanjutnya karena tidak dilakukan penukaran
antara 18 dan 30.
Pada indeks ke-3 yaitu 19, yang kita bandingkan dengan indeks ke-5 yaitu
14, dilakukan penukaran. Karena itu, kita akan membandingkan indeks ke-3
dengan indeks ke-1.
Pada akhir dari proses kedua, data sementara yang didapat adalah: 11, 18,
14, 30, 19, 37, 23, 40, 29. Dan pada proses ketiga, dengan jarak j3 = j22 = 22
menghasilkan array yang sudah tersusun dengan urutan data: 11, 14, 18, 19,
23, 29, 30, 27, 40.

5
Bab 3

KESIMPULAN

Shell Sort adalah membandingkan data dengan jarak-jarak tertentu. Untuk


memperoleh hasil akhir dilakukan proses-proses dengan beberapa jarak, dan
pada proses terakhir jarak ji bernilai satu.

Anda mungkin juga menyukai