Anda di halaman 1dari 10

ALGORITMA DAN PEMROGRAMAN KOMPUTER

SHELL SORT
Guna memenuhi tugas akhir semester dua mata kuliah Algoritma dan
Pemrograman
Pembimbing : Nur Hadi Waryanto, M.Eng.

Disusun oleh :
Kelompok 3
Ery Hikmannisa Damayanti

( 14305141042 )

Lathif Al Rasyid

( 14305141052 )

Dhina Windy Astari

( 14305144005 )

Putri Anjaswati Pramana

( 14305144016 )

Matematika E 2014

PRODI MATEMATIKA
JURUSAN PENDIDIKAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS NEGERI YOGYAKARTA

KATA PENGANTAR
Assalamualaikum, wr.wb.
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa karena
berkat limpahan rahmat dan hidayatNya sehingga penulis dapat menyusun
makalah ini tepat pada waktunya. Makalah ini membahas tentang shell sort.
Dalam penyusunan makalah ini, penulis banyak mendapat tantangan dan
hambatan akan tetapi dengan bantuan dari berbagai pihak tantangan ini bisa
teratasi. Oleh karena itu, penulis mengucapkan terimakasih yang sebesar-besarnya
kepada semua pihak yang telah membantu dalam penyusunan makalah ini.
Semoga bantuannya mendapat balasan yang setimpal dari Tuhan Yang Maha Esa.
Penulis menyadari bahwa makalah ini masih jauh dari kesempurnaan baik
dari bentuk penyusunan maupun materinya. Kritik konstruktif dari para pembaca
sangat penulis harapkan untuk penyempurnaan makalah selanjutnya.
Akhir kata semoga makalah ini dapat memberikan manfaat bagi kita semua.
Wassalamualaikum.wr.wb

Yogyakarta, 28 Mei 2015


Penulis

DAFTAR ISI

Kata Pengantar...........................................................................................................
Daftar Isi.....................................................................................................................
BAB I - Pendahuluan.................................................................................................
1.1........................................................................ Latar Belakang Masalah
................................................................................................................
1.2..................................................................................................... Tujuan
................................................................................................................
1.3.................................................................................. Rumusan Masalah
................................................................................................................
BAB II - Pembahasan.................................................................................................
2.1. Pengertian shell sort..............................................................................
2.2. Cara memilih sequence number............................................................
2.3. Analisismetode shell sort......................................................................
2.4. Proses pengurutan shell sort..................................................................
2.5. Kelebihan dan Kekurangan Shell Sort..................................................
BAB III - Penutup......................................................................................................
3.1. Kesimpulan...........................................................................................
Daftar Pustaka............................................................................................................
Lampiran

BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Dalam pemrosesan suatu data tidak lepas dari struktur dan beberapa
table (array). Table adalah suatu tipe yang mengacu pada sebuah atau
sekumpulan elemen dan dapat diakses melalui index. Elemen dari table dapat
diakses langsung jika dan hanya jika index terdefinisi (ditentukan harganya
dan sesuai dengan domain yang didefinisikan untuk index tersebut). Struktur
tersebut dipakai untuk mempresentasikan sekumpulan data yang bertipe sama
(missal: integer, karakter) dan disimpan dalam urutan yang sesuai dengan
definisi index secara kontinu dalam memori komputer. Untuk makalah ini
akan dibahas table dengan sekumpulan elemen yang bertipe integer.
Pemrosesan terhadap struktur data table dapat dilakukan secara linear ataupun
rekursif.
Pemrosesan terurut terhadap suatu table adalah pemrosesan terurut
tanpa mark. Akses terhadap elemen-elemen yang ada dalam table dilakukan
dengan memanfaatkan keterurutan index. Elemen table dengan index terkecil
adalah elemen pertama dari table. Elemen selanjutnya dapat diakses melalui
sukses orindeks. Kondisi berhenti adalah jika indeks sudah mencapai harga
indeks terbesar yang terdefinisi. Struktur data table tidak mungkin kosong.
Jika kita mendefinisikan suatu table, maka minimal mengandung sebuah
elemen.
Pemrosesan yang paling sering dilakukan terhadap suatu table
bertipe integer adalah pencarian nilai (searching) dan pengurutan nilai
(sorting). Untuk pencarian nilai dan pengurutan nilai terdapat beberapa
macam jenis algoritma yang dapat digunakan dengan tingkat keefektifan yang
berbeda. Untuk pencarian nilai, ada beberapa jenis metode yaitu dengan
Boolean dan tanpa Boolean (salah satutipe data penting di Java). Untuk
pengurutan nilai ada beberapa jenis algoritma yaitu count sort (pengurutan
dengan mencacah). Selection sort (pengurutan dengan menyeleksi), insertion

sort (pengurutan dengan penyisipan , quick sort (pengurutan cepat), merge


sort (pengurutan dengan penggabungan), heap sort (pengurutan dengan
tumpukan ), sell sort (pengurutan cangkang), dan bubble sort (pengurutan
gelembung).
Masing-masing metode mempunyai kelebihan dan kekurangan, dan
panjang pendeknya kode, kompleksitas kode, waktu pemrosesan, memori
yang digunakan, komptibilotas, dan lain sebagainya. Namun keefektifan suatu
algoritma dapat diukur atau dihitung dengan menggunakan teori komplesitas
algoritma yang dipelajari pada matematika diskrit. Algoritma yang mangkus
adalah algoritma yang dapat meminimumkan kebutuhan waktu dan ruang.
Namun kebutuhan waktu dan ruang dari suatu algoritma bergantung pada
jumlah data yang diproses dan algoritma yang digunakan. Karena
kompleksitas ruang terkait dengan struktur data yang digunakan dan di luar
bahasan mata kuliah matematika diskrit, maka kompleksitas ruang tidak akan
dibahas dalam makalah ini. Makalah ini hanya akan membahas dan
menganalisa tentang shell sort.

1.2.

Tujuan

1. Untuk mengetahui apa itu shell sort.


2.
3.
4.
5.
1.3.
1.
2.
3.
4.
5.

Untuk mengetahui bagaimana cara memilih sequence number.


Untuk mengetahui bagaimana analisis metode shell sort.
Untuk mengetahui proses pengurutan shell sort.
Untuk mengetahui kelebihan dan kekurangan dari shell sort.
Rumusan Masalah
Apa itu shell sort?
Bagaimana cara memilih sequence number?
Bagaimana analisis metode shell sort?
Bagaimana proses pengurutan shell sort?
Apa kelebihan dan kekurangan dari shell sort?

BAB II
PEMBAHASAN

2.1. Pengertian Shell Sort (Metode Shell)


Metode ini disebut juga dengan metode pertambahan
menurun (diminishing increment). Metode ini dikembangkan
oleh Donald L. Shell pada tahun 1959, sehingga sering
disebut dengan Metode Shell Sort. Metode ini mengurutkan
data dengan cara membandingkan suatu data dengan data
lain

yang

memiliki

jarak

tertentu,

kemudian

dilakukan

penukaran bila diperlukan.


Shell sort ini merupakan salah satu sorting algoritma pada sebuah
deklarasi array. Proses shell sort berbeda dengan sorting algoritma lainnya,
pada sorting algoritma yang lainnya lebih banyak menukarkan data secara
berurutan atau memindahkan secara satu persatu. Selain itu proses
pengurutannya akan berhenti jika proses sama dengan jumlah data dikurangi
satu.
Pengurutan data pada sorting algoritma shell sort berbeda dengan yang
lainnya, banyak yang mengatakan bahwa proses terakhir shell sort hampir
sama atau mirip dengan insertion sort karena bentuk atau prosesnya yang juga
hampir sama dengan insertion sort.

2.2. Memilih Sequence Number


1. Disarankan jarak mula-mula dari data yang akan dibandingkan adalah
(N/2)
2. Pada proses berikutnya, digunakan jarak (N/4)
3. Pada proses berikutnya, digunakan jarak (N/8)
4. Demikian seterusnya sampai jarak yang digunakan adalah 1

2.3. Analisis Metode Shell Sort


Running time dari metode Shell Sort bergantung pada pemilihan
Sequence Numbernya. Disarankan untuk memilih Sequence Number dimulai
dari N/2, kemudian membaginya lagi dengan 2 seterusnya hingga mencapai
1. Shell Sort menggunakan 3 nested loop, untuk mempresentasikan sebuah
pengembangan yang substansial terhadap metode Insertion Sert.

2.4. Proses Pengurutan Shell Sort


Adapun

proses

pengurutannya

akan

dijelaskan

sebagai

berikut :
-

Pertama-tama adalah menentukan jarak mula-mula dari

data yang akan dibandingkan, yaitu

N
2 . Data pertama

dibandingkan dengan data dengan jarak

N
2

data pertama lebih besar dari data ke


data

tersebut

ditukar.

Kemudian

N
.
2

Apabila

, maka kedua
data

kedua

dibandingkan dengan jarak yang sama yaitu

N
2

Demikian seterusnya sampai seluruh data dibandingkan


sehingga semua data ke-j selalu lebih kecil daripada data

ke-(j +
-

N
2 ).

Proses berikutnya, digunakan jarak (

N
2

) / 2 atau

N
4

Data pertama dibandingkan dengan data dengan jarak


N
.
4

Apabila data pertama lebih besar dari data ke

N
4

, maka kedua data tersebut ditukar. Kemudian data

kedua dibandingkan dengan jarak yang sama yaitu


.

Demikian

seterusnya

sampai

seluruh

N
4
data

dibandingkan sehingga semua data ke

kecil daripada data ke-(j +


-

N
4

N
4 ).
N
4

Pada proses berikutnya, digunakan jarak (

N
8

Demikian

selalu lebih

seterusnya

sampai

) / 2 atau

jarak

yang

digunakan adalah 1.

2.5. Kelebihan dan Kekurangan Shell Sort


-

Kelebihan
o Algoritma

ini

sangat

rapat

dan

mudah

untuk

diimplementasikan
o Operasi pertukarannya hanya dilakukan sekali saja
o Waktu pengurutan dapat lebih ditekan
o Mudah menggabungkannya kembali
o Kompleksitas selection sort relatif lebih kecil
Kekurangan
o Membutuhkan method tambahan
o Sulit untuk membagi masalah

BAB III
PENUTUP
3.1.

Kesimpulan
Pengurutan nilai (sorting) adalah operasi yang paling sering

dilakukan pada sebuah table. Jenis algoritma untuk pengurutan nilai sangat
banyak dengan tingkat keefektifan yang berbeda-beda untuk masingmasing kasus. Untuk melakukan pengurutan nilai, algoritma yang paling
mudah dimengerti adalah algoritma count sort. Namun algoritma ini tidak
efektif untuk digunakan pada table dengan range yang besar.
Metode ini disebut juga dengan metode pertambahan
menurun

(diminishing

increment).

Metode

ini

dikembangkan oleh Donald L. Shell pada tahun 1959,


sehingga sering disebut dengan Metode Shell Sort. Metode

ini mengurutkan data dengan cara membandingkan suatu


data dengan data lain yang memiliki jarak tertentu,
kemudian dilakukan penukaran bila diperlukan.
Shell sort ini merupakan salah satu sorting algoritma pada sebuah
deklarasi array. Proses shell sort berbeda dengan sorting algoritma lainnya,
pada sorting algoritma yang lainnya lebih banyak menukarkan data secara
berurutan atau memindahkan secara satu persatu. Selain itu proses
pengurutannya akan berhenti jika proses sama dengan jumlah data
dikurangi satu.
Pengurutan data pada sorting algoritma shell sort berbeda dengan yang
lainnya, banyak yang mengatakan bahwa proses terakhir shell sort hampir
sama atau mirip dengan insertion sort karena bentuk atau prosesnya yang juga
hampir sama dengan insertion sort.

DAFTAR PUSTAKA
http://www.slideshare.net/bellaangriani/makalah-shell-sort
http://nurulkhamiliyah.blogspot.com/2011/12/metode-pengurutan-shellsort.html
Munir, Rinaldi,

(2003),

Matematika

Informatika, Institute Teknologi Bandung.

Diskrit.

Departemen

Teknik