Anda di halaman 1dari 11

MAKALAH STRUKTUR DATA & ALGORITMA

“SHELL SORT”

Di Susun Oleh :

FAZLUR RAHMAN 310121023601


FA’IQ FARIZAN 310121023584
JOSHUA PRISTIADI D. 310121023587
NATHANAEL EKA PUTRA 310121023585
ABDUL AZIS 310121023633

PROGRAM STUDI TEKNIK INFORMATKA


SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
(STMIK) BANJARBARU
2022
FOTO ANGGOTA KELOMPOK

Nathanael Eka Putra Joshua Pristiadi Dananjaya Fa’iq Farizan


(310121023585) (310121023587) (310121023584)

Fazlur Rahman Abdul Azis


(310121023601) (310121023633)

i
KATA PENGANTAR

Puji syukur kita panjatkan ke hadirat Tuhan Yang Maha Esa yang telah memberikan
rahmat dan hidayah-Nya sehingga tugas makalah Struktur Data & Algoritma ini dapat
diselesaikan tepat waktu.
Tak lupa kami juga mengucapkan terima kasih kepada Bapak Khairullah, M.Kom.
selaku dosen Struktur Data & Algoritma yang telah memberikan tugas ini sehingga kami dapat
lebih memahami materi yang ada.
Demikian makalah ini dibuat, apabila terdapat kesalahan penulisan, atau pun adanya
ketidaksesuaian materi yang diangkat pada makalah ini maka kami mohon maaf. Mohon saran
dan kritik terhadap makalah ini sehingga kami dapat membuat makalah yang lebih baik
dikemudian hari.

Banjarmasin, 18 Juni 2022

Penulis

ii
DAFTAR ISI

FOTO ANGGOTA KELOMPOK........................................................................................... i


KATA PENGANTAR ..............................................................................................................ii
DAFTAR ISI........................................................................................................................... iii
BAB I ......................................................................................................................................... 1
PEMBAHASAN ....................................................................................................................... 1
A. Pengertian Shell Sort .................................................................................................... 1
B. Algoritma Shell Sort ..................................................................................................... 1
C. Contoh Shell Sort .......................................................................................................... 2
D. Kelebihan & Kekurangan Shell Sort .......................................................................... 3
E. Kompleksitas Waktu Shell Sort ................................................................................... 3
F. Kompleksitas Waktu Asimptotik Shell Sort............................................................... 4
BAB II ....................................................................................................................................... 6
PENUTUP ................................................................................................................................. 6
A. Kesimpulan .................................................................................................................... 6
DAFTAR PUSTAKA ............................................................................................................... 7

iii
BAB I

PEMBAHASAN

A. Pengertian Shell Sort


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.
Proses pengurutan dengan metode Shell dapat dijelaskan sebagai berikut :

1. Menentukan jarak mula-mula dari data yang akan dibandingkan, yaitu N / 2.

2. Data pertama dibandingkan dengan data dengan jarak N / 2.

3. Apabila data pertama lebih besar dari data ke N / 2 tersebut maka kedua data tersebut ditukar.

4. Kemudian data kedua dibandingkan dengan jarak yang sama yaitu N / 2.

5. Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-j selalu
lebih kecil daripada data ke-(j + N / 2).

Pada 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 tersebut maka kedua data tersebut ditukar. Kemudian data kedua dibandingkan dengan jarak
yang sama yaitu N / 4. Demikianlah seterusnya hingga seluruh data dibandingkan sehingga
semua data ke-j lebih kecil daripada data ke-(j + N / 4).
Pada proses berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. Demikian seterusnya
sampai jarak yang digunakan adalah 1.

B. Algoritma Shell Sort


Algoritma metode Shell dapat dituliskan sebagai berikut :

1. Jarak = N

2. Selama (Jarak > 1) kerjakan baris 3 sampai dengan 9

1
3. Jarak = Jarak / 2. Sudah = false

4. Kerjakan baris 4 sampai dengan 8 selama Sudah = false

5. Sudah = true

6. j = 0

7. Selama (j < N – Jarak) kerjakan baris 8 dan 9

8. Jika (Data[j] > Data[j + Jarak] maka tukar Data[j], Data[j + Jarak]. Sudah = true

9. j = j + 1

C. Contoh Shell Sort

1. Proses pertama, jarak=(N/2)+1=(8/2)+1=5

2. Proses kedua, jarak=(N/4)+1=(8/4)+1=3

3. Proses ketiga, jarak=(N/8)=(8/4)=1

2
D. Kelebihan & Kekurangan Shell Sort
Kelebihan shell sort :
1. Operasi pertukarannya hanya dilakukan sekali saja.
2. Algoritma ini sangat rapat dan mudah untuk diimplementasikan..
3. Waktu pengurutan dapat lebih ditekan.
4. Mudah menggabungkannya kembali.

Kekurangan/kelemahan selection sort :

1. Membutuhkan method tambahan.


2. Sulit untuk membagi masalah.

E. Kompleksitas Waktu Shell Sort


Kompleksitas waktu dari algoritma adalah mengukur jumlah perhitungan (komputasi)
yang dikerjakan oleh komputer ketika menyelesaikan suatu masalah dengan menggunakan
algoritma. Kompleksitas waktu merupakan hal penting untuk mengukur efisiensi suatu
algoritma. Kompleksitas waktu dari suatu algoritma yang terukur sebagai suatu fungsi ukuran
masalah. Kompleksitas waktu dari algoritma berisi ekspresi bilangan dan jumlah langkah yang
dibutuhkan sebagai fungsi dari ukuran permasalahan. Kompleksitas ruang berkaitan dengan
sistem memori yang dibutuhkan dalam eksekusi program. Pada tabel di bawah diperlihatkan
kelompok algoritma berdasarkan kompleksitas waktu asimptotiknya.

Contoh:

1. START 1

2. READ int inner, outer; 1


int temp;

3
3. READ int h = 1; 1

4. while (h <= array.length / 3) n

5. h = h * 3 + 1; 1

6. while (h > 0) n

7. READ for (outer = h; outer < array.length; outer++) { n


temp = array[outer];

inner = outer;

8. while (inner > h - 1 && array[inner - h] >= temp) { n


array[inner] = array[inner - h];

inner -= h;

9. array[inner] = temp; n

10. h = (h - 1) / 3; 1

11. READ int [] array = {5,3,0,2,4,1,0,5,2,3,1,4}; 1

12. WRITE ("Before: " + Arrays.toString(array)); 1

13. sort(array); n

14. WRITE ("After: " + Arrays.toString(array)); 1

15. END

6n+8T(n)

F. Kompleksitas Waktu Asimptotik Shell Sort


Notasi asimtotik merupakan himpunan fungsi yang dibatasi oleh suatu fungsi n  N
yang cukup besar. Notasi Asimtotik digunakan untuk menentukan kompleksitas suatu
algoritma dengan melihat waktu tempuh algoritma. Waktu tempuh algoritma merupakan fungsi
: N → R+ . Kompleksitas waktu asaimptotik dibedakan menjadi 3 macam yaitu :

a. Kasus tebaik (best case).

b. Kasus terburuk (worst case).

4
c. Kasus rata-rata(average case).

Contoh:
a. Kasus Terbaik (Best Case)

➢ Jika urutan nilainya sudah tertata darii kecil-besar dan jika hanya ada satu nilai yang tak
urut

b. . Kasus Terburuk (Worst Case)

➢ Jika urutan nilainya terbalik, misalnya besar-kecil

5
BAB II

PENUTUP

A. Kesimpulan

Shell Sort disebut juga dengan metode pertambahan menurun (diminishing increment).
Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang
memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan. Shell Sort memiliki
kelebihan dan kekurangan. Untuk kelebihannya metode ini operasi pertukarannya hanya
dilakukan sekali saja, Sedangkan kekurangannya adalah membutuhkan method tambahan dan
Sulit untuk membagi masalah.

6
DAFTAR PUSTAKA

http://susiharyanti17.blogspot.co.id/2014/01/shell-sort_13.html
https://santozunkhair.wordpress.com/materi/algoritma-dan-kompleksitas-waktu/

Anda mungkin juga menyukai