SlideShare a Scribd company logo
1 of 17
Download to read offline
SHELL SORT
Nama : 1. Apriyanti 13312320
2. Bella Angriani 13312294
3. Endah Yushairani 13312362
4. Intan Purnama Sari 13312532
Kelas : TI A SP
Mata Kuliah : Struktur Data
TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER
PERGURUAN TINGGI TEKNOKRAT
BANDAR LAMPUNG
2014
KATA PENGANTAR
Assalamu’alaikum Wr. Wb
Puji dan Syukur Penulis Panjatkan ke Hadirat Tuhan Yang Maha Esa karena berkat limpahan
Rahmat dan Karunia-Nya sehingga penulis dapat menyusun makalah ini tepat pada waktunya.
Makalah ini membahas Shell Sort.
Dalam penyusunan makalah ini, penulis banyak mendapat tantangan dan hambatan akan tetapi
dengan bantuan dari berbagai pihak tantangan itu bisa teratasi. Olehnya itu, penulis
mengucapkan terima kasih 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 pembaca sangat penulis harapkan untuk
penyempurnaan makalah selanjutnya.
Akhir kata semoga makalah ini dapat memberikan manfaat kepada kita sekalian.
Wassalamu’alaikum Wr. Wb
Bandar Lampung, 18 Agustus 2014
Penulis
DAFTAR ISI
Kata Pengantar.................................................................................................................... i
Daftar Isi ............................................................................................................................. ii
ABSTRAK.......................................................................................................................... 1
BAB I PENDAHULUAN................................................................................................... 1
BAB II PEMBAHASAN
2.1. Pengertian Pengurutan Cangkang (Shell Sort)...................................................... 5
2.2. Metode Shell Sort ................................................................................................ 5
2.3. Kelebihan dan Kekurangan Shell Sort.................................................................. 9
2.4. Source Code Shell Sort ......................................................................................... 9
BAB III PENUTUP
3.1. Kesimpulan........................................................................................................... 13
DAFTAR PUSTAKA......................................................................................................... 14
1
5
ABSTRAK
Makalah ini membahas dan menganalisa tentang kompleksitas algoritma dari berbagai jenis
pemrosesan tabel pada paradigma pemrograman prosedural. Jenis pemrosesan tabel yang
akan dibahas pada makalah ini adalah pengurutan nilai (sorting).
Jenis-jenis algoritma pengurutan nilai yang akan dibahas pada makalah ini adalah count sort
(pengurutan dengan mencacah), selection sort (pengurutan dengan menyeleksi), insertion sort
(pengurutan dengan penyisipan), quick sort (pengurutan cepat), merge sort (pengurutan
dengan penggabungan),shell sort (pengurutan cangkang, dan bubble sort (pengurutan
gelembung). Algoritma pengurutan nilai yang dibahas pada makalah ini adalah algoritma
untuk pemrosesan tabel yang berisi data bertipe integer.
Masing-masing jenis algoritma mempunyai tingkat kemangkusan (keefektifan) yang berbeda
Kemangkusan (keefektifan) dari suatu algoritma dapat diukur dari berapa jumlah waktu dan
ruang (space/memory) yang dibutuhkan untuk menjalankan algoritma tersebut. Algoritma yang
mangkus adalah algoritma yang dapat meminimumkan kebutuhan waktu dan ruang. Semakin
sedikit ruang yang dibutuhkan untuk menjalankan suatu algoritma, maka semakin mangkus
algoritma tersebut. Dan semakin sedikit waktu yang dibutuhkan untuk menjalankan suatu
algoritma, maka semakin mangkus algoritma tersebut. 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 IF2153 Matematika Diskrit, maka kompleksitas ruang tidak akan dibahas pada
makalah ini. Makalah ini hanya akan membahas dan menganalisa kompleksitas waktu untuk
masing-masing jenis algoritma.
2
BAB I
PENDAHULUAN
Dalam pemrosesan suatu data tidak lepas dari struktur data berupa tabel (array). Tabel
adalah suatu tipe yang mengacu pada sebuah atau sekumpulan elemen dan dapat diakses
melalui indeks. Elemen dari tabel dapat diakses langsung jika dan hanya jika indeks
terdefinisi (ditentukan harganya dan sesuai dengan domain yang didefinisikan untuk indeks
tersebut). Struktur data ini dipakai untuk merepresentasikan sekumpulan data yang bertipe
sama (misal : integer, karakter) dan disimpan dengan urutan yang sesuai dengan definisi
indeks secara kontigu dalam memori komputer. Untuk makalah ini akan dibahas tabel
dengan sekumpulan elemen yang bertipe integer. Pemrosesan terhadap struktur data tabel
dapat dilakukan secara linear (sequential) ataupun rekursif.
Pemrosesan terurut terhadap suatu tabel adalah pemrosesan terurut tanpa mark. Akses
terhadap elemen-elemen yang ada dalam tabel dilakukan dengan memanfaatkan keterurutan
indeks. Elemen tabel dengan indeks terkecil adalah elemen pertama dari tabel. Elemen
selanjutnya dapat diakses melalui suksesor indeks. Kondisi berhenti adalah jika indeks
sudah mencapai harga indeks terbesar yang telah terdefinisi. Struktur data tabel tidak
mungkin kosong. Jika kita mendefinisikan suatu tabel, maka minimal mengandung sebuah
elemen.
Skema umum pemrosesan terhadap tabel integer adalah (ditulis dalam notasi algoritmik)
sebagai berikut.
KAMUS UMUM PEMROSESAN TABEL INTEGER
constant Nmin: integer = 1 constant Nmax: integer = 100
{Nmin dan Nmax : batas bawah dan batas atas yang ditentukan}
type Infotype: integer
{suatu tipe terdefinisi, yaitu integer}
T: array [Nmin..Nmax] of infotype
{tabel T yang didefinisikan dengan indeks dari Nmin sampai Nmax dengan elemen
bertipe infotype}
3
procedure Inisialisasi
{persiapan yang harus dilakukan sebelum pemrosesan}
procedure Proses (input x:int)
{proses terhadap “current- element” pada tabel T}
procedure Terminasi
{penutuoan yang harus dilakukan setelah pemrosesan selesai}
SKEMA PEMROSESAN TABEL T UNTUK INDEKS [Nmin..Nmax]
{traversal tabel T untuk indeks bernilai Nmin..Nmax}
Skema:
Inisialisasi i ← Nmin iterate
Proses (Ti)
stop : i = Nmax {EOP}
i ← i + 1 {Next element} Terminasi
Skema pemrosesan tersebut hanyalah skema umum dari pemrosesan terhadap sebuah tabel.
Tidak menutup kemungkinan suatu proses terhadap tabel dapat mempunyai skema yang
berbeda dari skema umum.
Pemrosesan yang paling sering dilakukan terhadap suatu tabel bertipe integer adalah
pencarian nilai (searching) dan pengurutan nilai (sorting). Untuk pencarian dan pengurutan
nilai terdapat berbagai macam jenis algoritma yang dapat digunakan dengan tingkat
keefektifan yang berbeda. Untuk pencarian nilai, ada beberapa jenis metode yaitu pencarian
secara linear (sequential search) dan pencarian biner (binary search) untuk table yang telah
terurut nilainya (sorted tabel). Pencarian secara linear mempunyai dua jenis metode yaitu
dengan boolean dan tanpa boolean. 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),
shell sort (pengurutan cangkang), dan bubble sort (pengurutan gelembung).
Masing-masing metode mempunyai kelebihan dan kekurangan, dari panjang pendeknya
kode, kompleksitas kode, waktu pemrosesan, memori yang digunakan, kompatibilitas, dan
lain sebagainya. Namun keefektifan suat u algoritma dapat diukur atau dihitung dengan
menggunakan teori kompleksitas algoritma yang dipelajari pada mata kuliah 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
4
dengan struktur data yang digunakan dan di luar bahasan mata kuliah IF2153 Matematika
Diskrit, maka kompleksitas ruang tidak akan dibahas pada makalah ini. Makalah ini hanya
akan membahas dan menganalisa kompleksitas waktu untuk masing- masing jenis algoritma.
Kompleksitas waktu untuk algoritma-algoritma yang dibahas akan dinyatakan dengan
notasi O besar (Big-O notation). Definisi dari notasi O besar adalah, jika sebuah algoritma
mempunyai waktu asimptotik O(f(n)), maka jika n dibuat semakin besar, waktu yang
dibutuhkan tidak akan pernah melebihi suatu konstanta C dikali dengan f(n). Jadi f(n)
adalah adalah batas atas (upper bound) dari T(n) untuk n yang besar.
O(n) dihitung berdasarkan banyaknya jumlah operasi perbandingan yang dilakukan dalam
algoritma tersebut.
5
BAB II
METODE PEMBAHASAN
2.1.Pengertian Pengurutan Cangkang (Shell Sort)
Shell sort merupakan salah satu sorting algoritma pada sebuah deklarasi array ([]).
Proses shell sort berbeda dengan sorting algoritma yang lainnya, pada sorting algoritma yang
lainnya lebih banyak menukarkan data secara berurutan atau memindah satu persatu. Selain
itu proses pengurutan data akan berhenti jika proses = jumlah data – 1.
Pengurutan data pada sorting algoritma shell sort berbeda dengan yang lainnya, banyak yang
mengatakan bahwa proses terakhir shell sort sama atau mirip dengan proses insertion sort
karena bentuk atau prosesnya yang juga hampir sama dengan sorting Insertion sort.
Pada pengurutan data ini kita terlebih dahulu harus membuat sub list – sub list yang di
dasarkan pada jarak antar data yang di tentukan. Jarak yang di telah di tentukan biasanya di
lambangkan dengan k, biasanya jarak yang paling di gunakan pada sorting ini saat melakukan
pengurutan data yaitu k5, k3, dan k1. Artinya, dari data yang akan di tentukan atau ditukar
dengan data yang lain berjarak 5, 3 atau 1 data saja.
2.2. Metode Shell Sort
Pemilihan Sequence number :
1. Disarankan jarak mula-mula dari data yang akan dibandingkan adalah (N/2)+1).
2. Pada proses berikutnya, digunakan jarak (N/4)+1).
3. Pada proses berikutnya, digunakan jarak (N/8)+1).
4. Demikian seterusnya sampai jarak yang digunakan adalah 1.
Proses Pengurutannya :
1. Untuk jarak (N/2)+1:
- Data pertama (i=0) dibandingkan dengan data dengan jarak (N/2)+1. Apabila data pertama
lebih besar dari data ke (N/2)+1) tersebut maka kedua data tersebut ditukar.
- Kemudian data kedua (i=1) dibandingkan dengan jarak yang sama yaitu (N/2)+1) = elemen
6
ke-(i+N/2)+1.
- Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-i selalu
lebih kecil dari pada data ke-(i+N/2)+1.
2. Ulangi langakah-langkah diatas untuk jarak = (N/4)+1 kemudian lakukan pembandingan dan
pengurutan sehingga semua data ke-i lebih kecil daripada data ke-(i+N/4)+1.
3. Ulangi langakah-langkah diatas untuk jarak = (N/8)+1 kemudian lakukan pembandingan dan
pengurutan sehingga semua data ke-i lebih kecil daripada data ke-(i+N/8)+1.
4. Demikian seterusnya sampai jarak yang digunakan adalah 1 atau data sudah terurut .
Misal kita ingin mengurutkan data dengan type pengurutan Descending, data yang akan di
urutkan adalah 29, 60, 55, 43, 19, 99, 90, 30.
Proses 1 buatlah k5.
Ingat sorting array [] selalu di mulai dari 0.
Dari data di atas maka akan mengalami perubahan seperti di bawah ini.
Dapat kita lihat data yang mengalami perubahan adalah data ke [0] dan data ke [1] dengan
pasangannya data ke [5] dan data ke [6]. Data ke [0] (29) dan data ke [5] (99) mengalami
perubahan karena data ke [5] lebih besar dari data ke [0].
Perubahan ke 2 pada data ke [1] dengan pasangannya data ke [6], mengalami perubahan
karena data ke [6] (90) lebih besar dari data ke [1] (60). Sehingga k5 menghasilkan data
7
Selanjutnya adalah proses k3, artinya jarak pindah data adalah 3 dari data yang akan di
pindahkan.
Proses k3
Dari proses k3 maka akan mengalami perubahan yaitu
Dari perubahan tersebut dapat kita lihat, pertukaran pertama yaitu data k3 [0], [3] dan [6].
Pada data ke [0] dengan data ke [3] tidak mengalami perubahan karena data ke [0] (99) lebih
besar dari data ke [3] (49). Tetapi mengalami perubahan saat data ke [3] bertemu dengan data
ke [6] yaitu 60 lebih besar dari pada 49.
Pertukaran garis k3 yang ke 2, mengalami perubahan saat data ke [4] bertemu dengan data ke [7]
karena data ke [7] lebih besar dari data ke [4].
Pengurutan shell sort yang terakhir adalah proses k1 yang artinya membandingkan data
secara satu persatu dengan data berikutnya.
8
Proses k1
Mengalami perubahan seperti gambar di bawah ini
Proses di lakukan berdasarkan urutan kolom atau data terbesar maka data tersebut akan di
eksekusi atau di pindahkan dengan data yang sesuai atau yang semestinya menepati posisi
data tersebut.
Pada proses k1 terdapat 3 kali pemidahan data.
Proses1
Data ke [3] di pindah ke posisi data ke [2] karena lebih besar dari data ke [2].
Proses selanjutnya, proses2
Data ke [6] dipindah ke posisi data [4] karena lebih besar dari data [4]
Proses terkahir, proses3
9
Data ke [6] dipindah menjadi data ke [5] karena lebih besar dari data ke [5]. Proses selesai,
data telah terurut sesuai denga type pengurutnan yaitu descending. Untuk pengurutan data
dalam bentuk ascending sama saja, hanya berbeda pada peletakannya saja yaitu data berawal
dari data yang paling rendah ke data yang paling besar nilainya.
2.3. Kelebihan dan Kekurangan Shell Sort
Kelebihan
1. Algoritma ini sangat rapat dan mudah diimplementasikan.
2. Operasi pertukarannya hanya dilakukan sekali saja.
3. Waktu pengurutan dapat lebih ditekan.
4. Mudah menggabungkannya kembali.
5. Kompleksitas selection sort relative lebih kecil.
Kekurangan
1. Membutuhkan metode tambahan.
2. Sulit untuk membagi masalah.
2.4. Source Code Shell Sort
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 100
#define INPUT 'i'
#define OUTPUT 'o'
#define _MY_DEBUG
#if defined(_MY_DEBUG)
#define TRACE_LINE printf("nn- Program Statistics :n1. File : %sn2. Date : %sn3.
Time : %sn",__FILE__,__DATE__,__TIME__);
#else
#define TRACE_LINE
#endif
10
// int CheckForBadSorting(int*, const int);
void ShellSortPass(int*, const int, const int);
void ShellSort(int*, const int);
void InputOutput(int*, const int, const char);
void FreeBuffer(int*);
int main(int argc, char* argv[]) {
system("COLOR 5");
int *buffer = NULL, max;
printf("Implementasi Shell SortnMasukkan jumlah data [MAX:100] : ");
scanf("%d",&max);
fflush(stdin);
if((max > 0) && (max <= MAX)) {
buffer = (int*)calloc(max,sizeof(int));
InputOutput(buffer,max,INPUT);
printf("nData yang anda masukkan : ");
InputOutput(buffer,max,OUTPUT);
ShellSort(buffer,max);
printf("nData setelah disorting : ");
InputOutput(buffer,max,OUTPUT);
FreeBuffer(buffer);
/* if(CheckForBadSorting(buffer,max)) {
goto MARK;
} else {
InputOutput(buffer,max,OUTPUT);
} */
} /* MARK : if(buffer != NULL) {
FreeBuffer(buffer);
} */
TRACE_LINE;
getch();
fflush(stdin);
return(EXIT_SUCCESS);
}
/* int CheckForBadSorting(int* buffer, const int max) {
int i;
for(i = 1; i < max; ++i) {
if(buffer[i-1] > buffer[i]) {
printf("Bad Sorting!");
11
return(1);
}
}
return(0);
} */
void ShellSortPass(int* buffer, const int max, const int interval) {
int i;
for(i = 0; i < max; ++i) {
int j, tmp = buffer[i];
for(j = i-interval; j >= 0; j -= interval) {
if(buffer[j] <= tmp) {
break;
} buffer[j+interval] = buffer[j];
} buffer[j+interval] = tmp;
}
}
void ShellSort(int* buffer, const int max) {
int CiuraIntervals[] = {701, 301, 132, 57, 23, 10, 4, 1},
IntervalIdx = 0, interval = CiuraIntervals[0];
double ExtendCiuraMultiplier = 2.3;
if(max > interval) {
while(max > interval) {
--IntervalIdx;
interval = (int)(interval*ExtendCiuraMultiplier);
}
} else {
while(max < interval) {
++IntervalIdx;
interval = CiuraIntervals[IntervalIdx];
}
}
while(interval > 1) {
++IntervalIdx;
if(IntervalIdx >= 0) {
interval = CiuraIntervals[IntervalIdx];
} else {
interval = (int)(interval/ExtendCiuraMultiplier);
} ShellSortPass(buffer,max,interval);
12
}
}
void InputOutput(int* buffer, const int max, const char STAT) {
int i;
if('i' == STAT) {
for(i = 0; i < max; ++i) {
printf("%d. Data ke-%d : ",(i+1),(i+1));
scanf("%d",&buffer[i]);
fflush(stdin);
}
} else if('o' == STAT) {
for(i = 0; i < max; ++i) {
printf("%d ",buffer[i]);
}
}
}
void FreeBuffer(int* buffer) {
free(buffer);
buffer = NULL;
}
OUTPUT:
13
BAB III
PENUTUP
3.1. Kesimpulan
Pengurutan nilai (sorting) adalah operasi yang paling sering dilakukan pada sebuah
tabel. Jenis algoritma untuk pengurutan nilai sangat banyak dengan tingkat keefektifan yang
berbeda - beda untuk masing-masing kasus.
Untuk melakukan pengurutan nilai, algoritma yang paling sederhana dan paling
mudah dimengerti adalah algoritma count sort. Namun algoritma ini tidak efektif untuk
digunakan pada tabel dengan range yang besar.
Algoritma-algoritma pengurutan nilai lainnya, dapat dibagi menjadi dua kelompok.
Algoritma berkompleksitas O(n2
), yaitu pengurutan gelembung (bubble sort), pengurutan
dengan penyisipan (insertion sort), pengurutan dengan menyeleksi (selection sort), dan
pengurutan cangkang (shell sort). Algoritma berkompleksitas O(n log n), yaitu pengurutan
dengan penggabungan (heap sort), pengurutan dengan penggabungan (merge sort), dan
pengurutan cepat (quick sort).
14
DAFTAR PUSTAKA
[1] Munir, Rinaldi. (2003). Matematika Diskrit. Departemen Teknik Informatika, Institut
Teknologi Bandung.
[2] Liem, Inggriani. (2003). Catatan Kuliah Algoritma dan Pemrograman. Departemen
Teknik Informatika, Institut Teknologi Bandung.
[3] Bucknall,Julian (2001). Algorithms and Data Structures. Wordware Publishing.
[4] Wikipedia. Pencarian biner. http://id.wikipedia.org
[5] Michael Lamont. The sorting algorithms. http://linux.wku.edu/~lamonml/algor/sort/in
dex.html.
[6] Computer Science. http://www.cs.hope.edu.

More Related Content

What's hot

Fathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur dataFathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur dataSTMIK
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data ArraySimon Patabang
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program rKhair Norrasid
 
Makalah input dan output device
Makalah input dan output deviceMakalah input dan output device
Makalah input dan output deviceAndhi Pratama
 
Algoritma dan Struktur Data - Merge Sort
Algoritma dan Struktur Data - Merge SortAlgoritma dan Struktur Data - Merge Sort
Algoritma dan Struktur Data - Merge SortKuliahKita
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomataBanta Cut
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar KriptografiRoziq Bahtiar
 
Makalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan dataMakalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan dataAli Must Can
 
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)difa febri
 
Matematika Diskrit - 10 pohon - 02
Matematika Diskrit - 10 pohon - 02Matematika Diskrit - 10 pohon - 02
Matematika Diskrit - 10 pohon - 02KuliahKita
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAri Septiawan
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )istiqlal
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01KuliahKita
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)Kelinci Coklat
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanReskidtc
 

What's hot (20)

Fathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur dataFathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur data
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data Array
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program r
 
Makalah input dan output device
Makalah input dan output deviceMakalah input dan output device
Makalah input dan output device
 
Merge sort
Merge sortMerge sort
Merge sort
 
Algoritma dan Struktur Data - Merge Sort
Algoritma dan Struktur Data - Merge SortAlgoritma dan Struktur Data - Merge Sort
Algoritma dan Struktur Data - Merge Sort
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi
 
Makalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan dataMakalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan data
 
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
 
Matematika Diskrit - 10 pohon - 02
Matematika Diskrit - 10 pohon - 02Matematika Diskrit - 10 pohon - 02
Matematika Diskrit - 10 pohon - 02
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 
Linked List
Linked ListLinked List
Linked List
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 

Viewers also liked

C Program : Shell Sort
C Program : Shell SortC Program : Shell Sort
C Program : Shell SortMeita Jayani
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingDea Rokhmatun Iradewa
 
Algoritma dan Struktur Data - Sorting beserta Metode nya
Algoritma dan Struktur Data - Sorting beserta Metode nya Algoritma dan Struktur Data - Sorting beserta Metode nya
Algoritma dan Struktur Data - Sorting beserta Metode nya Muhammad abbie
 
Lapopran praktikum struktur data pertemuan 2 Sorting
Lapopran praktikum struktur data pertemuan 2 SortingLapopran praktikum struktur data pertemuan 2 Sorting
Lapopran praktikum struktur data pertemuan 2 SortingAdy Achirul
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarianWandi Parlente
 
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAH
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAHKarya tulis ilmiah SMS GATEWAY UNTUK SEKOLAH
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAHAchmad Sayfudin
 

Viewers also liked (14)

C Program : Shell Sort
C Program : Shell SortC Program : Shell Sort
C Program : Shell Sort
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Modul 2 sorting
Modul 2   sortingModul 2   sorting
Modul 2 sorting
 
Struktur data 1
Struktur data 1Struktur data 1
Struktur data 1
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah Sorting
 
Algoritma dan Struktur Data - Sorting beserta Metode nya
Algoritma dan Struktur Data - Sorting beserta Metode nya Algoritma dan Struktur Data - Sorting beserta Metode nya
Algoritma dan Struktur Data - Sorting beserta Metode nya
 
Lapopran praktikum struktur data pertemuan 2 Sorting
Lapopran praktikum struktur data pertemuan 2 SortingLapopran praktikum struktur data pertemuan 2 Sorting
Lapopran praktikum struktur data pertemuan 2 Sorting
 
Shell sort slide
Shell sort slideShell sort slide
Shell sort slide
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian
 
circular linked list
circular linked listcircular linked list
circular linked list
 
Shell sort[1]
Shell sort[1]Shell sort[1]
Shell sort[1]
 
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAH
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAHKarya tulis ilmiah SMS GATEWAY UNTUK SEKOLAH
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAH
 
Makalah budidaya ikan gurame
Makalah budidaya ikan gurameMakalah budidaya ikan gurame
Makalah budidaya ikan gurame
 

Similar to SHELL SORT ALGORTIMA

Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritmaChusnul Khotimah
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1asep lufian
 
Aplikasi text mining untuk automasi penentuan tren topik skripsi dengan metod...
Aplikasi text mining untuk automasi penentuan tren topik skripsi dengan metod...Aplikasi text mining untuk automasi penentuan tren topik skripsi dengan metod...
Aplikasi text mining untuk automasi penentuan tren topik skripsi dengan metod...ym.ygrex@comp
 
Tugas Sorting Algoritma - Yoki satria
Tugas Sorting Algoritma - Yoki satriaTugas Sorting Algoritma - Yoki satria
Tugas Sorting Algoritma - Yoki satriayoki satria
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data SortingBintangWijaya5
 
BERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.pptBERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.pptAgusPurwadi20
 
Pertemuan viii Sorting
Pertemuan viii SortingPertemuan viii Sorting
Pertemuan viii SortingPutra Andry
 
Pengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptPengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptsosbudbappeda41
 
introductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganintroductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganssuser89dc1c
 
Pengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur dataPengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur dataBagusMahardika8
 
Kontrak Perkuliahan
Kontrak PerkuliahanKontrak Perkuliahan
Kontrak Perkuliahanformatik
 
Kontrak Perkuliahan
Kontrak PerkuliahanKontrak Perkuliahan
Kontrak Perkuliahanformatik
 
Paper Metode Sorting
Paper Metode SortingPaper Metode Sorting
Paper Metode SortingNurul Habibah
 

Similar to SHELL SORT ALGORTIMA (20)

Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritma
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1
 
Msw a4 format
Msw a4 formatMsw a4 format
Msw a4 format
 
Siti rohmatul khoiriah
Siti rohmatul khoiriahSiti rohmatul khoiriah
Siti rohmatul khoiriah
 
Aplikasi text mining untuk automasi penentuan tren topik skripsi dengan metod...
Aplikasi text mining untuk automasi penentuan tren topik skripsi dengan metod...Aplikasi text mining untuk automasi penentuan tren topik skripsi dengan metod...
Aplikasi text mining untuk automasi penentuan tren topik skripsi dengan metod...
 
Tugas Sorting Algoritma - Yoki satria
Tugas Sorting Algoritma - Yoki satriaTugas Sorting Algoritma - Yoki satria
Tugas Sorting Algoritma - Yoki satria
 
Belajar Python.docx
Belajar Python.docxBelajar Python.docx
Belajar Python.docx
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
 
BERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.pptBERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.ppt
 
Pertemuan viii Sorting
Pertemuan viii SortingPertemuan viii Sorting
Pertemuan viii Sorting
 
struktur data
struktur datastruktur data
struktur data
 
Ni luh dewi pradnyawati
Ni luh dewi pradnyawatiNi luh dewi pradnyawati
Ni luh dewi pradnyawati
 
Ni luh dewi pradnyawati
Ni luh dewi pradnyawatiNi luh dewi pradnyawati
Ni luh dewi pradnyawati
 
Pengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptPengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.ppt
 
introductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganintroductions struktur data dalam pengembangan
introductions struktur data dalam pengembangan
 
Pengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur dataPengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur data
 
Kontrak Perkuliahan
Kontrak PerkuliahanKontrak Perkuliahan
Kontrak Perkuliahan
 
Kontrak Perkuliahan
Kontrak PerkuliahanKontrak Perkuliahan
Kontrak Perkuliahan
 
Sorting insert binary
Sorting insert binarySorting insert binary
Sorting insert binary
 
Paper Metode Sorting
Paper Metode SortingPaper Metode Sorting
Paper Metode Sorting
 

More from Bella Angriani

SWOT Analysis - English for Business 2
SWOT Analysis - English for Business 2SWOT Analysis - English for Business 2
SWOT Analysis - English for Business 2Bella Angriani
 
Dialog making an appointment
Dialog making an appointmentDialog making an appointment
Dialog making an appointmentBella Angriani
 
Makalah Dasar penulisan ilmiah
Makalah Dasar penulisan ilmiahMakalah Dasar penulisan ilmiah
Makalah Dasar penulisan ilmiahBella Angriani
 
Penerapan komputer dalam bidang industri
Penerapan komputer dalam bidang industriPenerapan komputer dalam bidang industri
Penerapan komputer dalam bidang industriBella Angriani
 
Persentasi membangun e government
Persentasi membangun e governmentPersentasi membangun e government
Persentasi membangun e governmentBella Angriani
 

More from Bella Angriani (7)

Presentation risc
Presentation riscPresentation risc
Presentation risc
 
Mandriva linux ppt
Mandriva linux pptMandriva linux ppt
Mandriva linux ppt
 
SWOT Analysis - English for Business 2
SWOT Analysis - English for Business 2SWOT Analysis - English for Business 2
SWOT Analysis - English for Business 2
 
Dialog making an appointment
Dialog making an appointmentDialog making an appointment
Dialog making an appointment
 
Makalah Dasar penulisan ilmiah
Makalah Dasar penulisan ilmiahMakalah Dasar penulisan ilmiah
Makalah Dasar penulisan ilmiah
 
Penerapan komputer dalam bidang industri
Penerapan komputer dalam bidang industriPenerapan komputer dalam bidang industri
Penerapan komputer dalam bidang industri
 
Persentasi membangun e government
Persentasi membangun e governmentPersentasi membangun e government
Persentasi membangun e government
 

Recently uploaded

presentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesiapresentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesiaNILAMSARI269850
 
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...MetalinaSimanjuntak1
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxNurindahSetyawati1
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...Kanaidi ken
 
aksi nyata sosialisasi Profil Pelajar Pancasila.pdf
aksi nyata sosialisasi  Profil Pelajar Pancasila.pdfaksi nyata sosialisasi  Profil Pelajar Pancasila.pdf
aksi nyata sosialisasi Profil Pelajar Pancasila.pdfsdn3jatiblora
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CAbdiera
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptPpsSambirejo
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMIGustiBagusGending
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)MustahalMustahal
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxRizkyPratiwi19
 
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.pptppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.pptAgusRahmat39
 
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxPPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxdpp11tya
 
Latsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNSLatsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNSdheaprs
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfChananMfd
 
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxMODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxSlasiWidasmara1
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfWidyastutyCoyy
 
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITASMATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITASbilqisizzati
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...Kanaidi ken
 

Recently uploaded (20)

presentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesiapresentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesia
 
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docx
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
 
aksi nyata sosialisasi Profil Pelajar Pancasila.pdf
aksi nyata sosialisasi  Profil Pelajar Pancasila.pdfaksi nyata sosialisasi  Profil Pelajar Pancasila.pdf
aksi nyata sosialisasi Profil Pelajar Pancasila.pdf
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.pptppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
 
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxPPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
 
Latsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNSLatsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNS
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
 
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxMODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITASMATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
 

SHELL SORT ALGORTIMA

  • 1. SHELL SORT Nama : 1. Apriyanti 13312320 2. Bella Angriani 13312294 3. Endah Yushairani 13312362 4. Intan Purnama Sari 13312532 Kelas : TI A SP Mata Kuliah : Struktur Data TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER PERGURUAN TINGGI TEKNOKRAT BANDAR LAMPUNG 2014
  • 2. KATA PENGANTAR Assalamu’alaikum Wr. Wb Puji dan Syukur Penulis Panjatkan ke Hadirat Tuhan Yang Maha Esa karena berkat limpahan Rahmat dan Karunia-Nya sehingga penulis dapat menyusun makalah ini tepat pada waktunya. Makalah ini membahas Shell Sort. Dalam penyusunan makalah ini, penulis banyak mendapat tantangan dan hambatan akan tetapi dengan bantuan dari berbagai pihak tantangan itu bisa teratasi. Olehnya itu, penulis mengucapkan terima kasih 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 pembaca sangat penulis harapkan untuk penyempurnaan makalah selanjutnya. Akhir kata semoga makalah ini dapat memberikan manfaat kepada kita sekalian. Wassalamu’alaikum Wr. Wb Bandar Lampung, 18 Agustus 2014 Penulis
  • 3. DAFTAR ISI Kata Pengantar.................................................................................................................... i Daftar Isi ............................................................................................................................. ii ABSTRAK.......................................................................................................................... 1 BAB I PENDAHULUAN................................................................................................... 1 BAB II PEMBAHASAN 2.1. Pengertian Pengurutan Cangkang (Shell Sort)...................................................... 5 2.2. Metode Shell Sort ................................................................................................ 5 2.3. Kelebihan dan Kekurangan Shell Sort.................................................................. 9 2.4. Source Code Shell Sort ......................................................................................... 9 BAB III PENUTUP 3.1. Kesimpulan........................................................................................................... 13 DAFTAR PUSTAKA......................................................................................................... 14
  • 4. 1 5 ABSTRAK Makalah ini membahas dan menganalisa tentang kompleksitas algoritma dari berbagai jenis pemrosesan tabel pada paradigma pemrograman prosedural. Jenis pemrosesan tabel yang akan dibahas pada makalah ini adalah pengurutan nilai (sorting). Jenis-jenis algoritma pengurutan nilai yang akan dibahas pada makalah ini adalah count sort (pengurutan dengan mencacah), selection sort (pengurutan dengan menyeleksi), insertion sort (pengurutan dengan penyisipan), quick sort (pengurutan cepat), merge sort (pengurutan dengan penggabungan),shell sort (pengurutan cangkang, dan bubble sort (pengurutan gelembung). Algoritma pengurutan nilai yang dibahas pada makalah ini adalah algoritma untuk pemrosesan tabel yang berisi data bertipe integer. Masing-masing jenis algoritma mempunyai tingkat kemangkusan (keefektifan) yang berbeda Kemangkusan (keefektifan) dari suatu algoritma dapat diukur dari berapa jumlah waktu dan ruang (space/memory) yang dibutuhkan untuk menjalankan algoritma tersebut. Algoritma yang mangkus adalah algoritma yang dapat meminimumkan kebutuhan waktu dan ruang. Semakin sedikit ruang yang dibutuhkan untuk menjalankan suatu algoritma, maka semakin mangkus algoritma tersebut. Dan semakin sedikit waktu yang dibutuhkan untuk menjalankan suatu algoritma, maka semakin mangkus algoritma tersebut. 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 IF2153 Matematika Diskrit, maka kompleksitas ruang tidak akan dibahas pada makalah ini. Makalah ini hanya akan membahas dan menganalisa kompleksitas waktu untuk masing-masing jenis algoritma.
  • 5. 2 BAB I PENDAHULUAN Dalam pemrosesan suatu data tidak lepas dari struktur data berupa tabel (array). Tabel adalah suatu tipe yang mengacu pada sebuah atau sekumpulan elemen dan dapat diakses melalui indeks. Elemen dari tabel dapat diakses langsung jika dan hanya jika indeks terdefinisi (ditentukan harganya dan sesuai dengan domain yang didefinisikan untuk indeks tersebut). Struktur data ini dipakai untuk merepresentasikan sekumpulan data yang bertipe sama (misal : integer, karakter) dan disimpan dengan urutan yang sesuai dengan definisi indeks secara kontigu dalam memori komputer. Untuk makalah ini akan dibahas tabel dengan sekumpulan elemen yang bertipe integer. Pemrosesan terhadap struktur data tabel dapat dilakukan secara linear (sequential) ataupun rekursif. Pemrosesan terurut terhadap suatu tabel adalah pemrosesan terurut tanpa mark. Akses terhadap elemen-elemen yang ada dalam tabel dilakukan dengan memanfaatkan keterurutan indeks. Elemen tabel dengan indeks terkecil adalah elemen pertama dari tabel. Elemen selanjutnya dapat diakses melalui suksesor indeks. Kondisi berhenti adalah jika indeks sudah mencapai harga indeks terbesar yang telah terdefinisi. Struktur data tabel tidak mungkin kosong. Jika kita mendefinisikan suatu tabel, maka minimal mengandung sebuah elemen. Skema umum pemrosesan terhadap tabel integer adalah (ditulis dalam notasi algoritmik) sebagai berikut. KAMUS UMUM PEMROSESAN TABEL INTEGER constant Nmin: integer = 1 constant Nmax: integer = 100 {Nmin dan Nmax : batas bawah dan batas atas yang ditentukan} type Infotype: integer {suatu tipe terdefinisi, yaitu integer} T: array [Nmin..Nmax] of infotype {tabel T yang didefinisikan dengan indeks dari Nmin sampai Nmax dengan elemen bertipe infotype}
  • 6. 3 procedure Inisialisasi {persiapan yang harus dilakukan sebelum pemrosesan} procedure Proses (input x:int) {proses terhadap “current- element” pada tabel T} procedure Terminasi {penutuoan yang harus dilakukan setelah pemrosesan selesai} SKEMA PEMROSESAN TABEL T UNTUK INDEKS [Nmin..Nmax] {traversal tabel T untuk indeks bernilai Nmin..Nmax} Skema: Inisialisasi i ← Nmin iterate Proses (Ti) stop : i = Nmax {EOP} i ← i + 1 {Next element} Terminasi Skema pemrosesan tersebut hanyalah skema umum dari pemrosesan terhadap sebuah tabel. Tidak menutup kemungkinan suatu proses terhadap tabel dapat mempunyai skema yang berbeda dari skema umum. Pemrosesan yang paling sering dilakukan terhadap suatu tabel bertipe integer adalah pencarian nilai (searching) dan pengurutan nilai (sorting). Untuk pencarian dan pengurutan nilai terdapat berbagai macam jenis algoritma yang dapat digunakan dengan tingkat keefektifan yang berbeda. Untuk pencarian nilai, ada beberapa jenis metode yaitu pencarian secara linear (sequential search) dan pencarian biner (binary search) untuk table yang telah terurut nilainya (sorted tabel). Pencarian secara linear mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean. 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), shell sort (pengurutan cangkang), dan bubble sort (pengurutan gelembung). Masing-masing metode mempunyai kelebihan dan kekurangan, dari panjang pendeknya kode, kompleksitas kode, waktu pemrosesan, memori yang digunakan, kompatibilitas, dan lain sebagainya. Namun keefektifan suat u algoritma dapat diukur atau dihitung dengan menggunakan teori kompleksitas algoritma yang dipelajari pada mata kuliah 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
  • 7. 4 dengan struktur data yang digunakan dan di luar bahasan mata kuliah IF2153 Matematika Diskrit, maka kompleksitas ruang tidak akan dibahas pada makalah ini. Makalah ini hanya akan membahas dan menganalisa kompleksitas waktu untuk masing- masing jenis algoritma. Kompleksitas waktu untuk algoritma-algoritma yang dibahas akan dinyatakan dengan notasi O besar (Big-O notation). Definisi dari notasi O besar adalah, jika sebuah algoritma mempunyai waktu asimptotik O(f(n)), maka jika n dibuat semakin besar, waktu yang dibutuhkan tidak akan pernah melebihi suatu konstanta C dikali dengan f(n). Jadi f(n) adalah adalah batas atas (upper bound) dari T(n) untuk n yang besar. O(n) dihitung berdasarkan banyaknya jumlah operasi perbandingan yang dilakukan dalam algoritma tersebut.
  • 8. 5 BAB II METODE PEMBAHASAN 2.1.Pengertian Pengurutan Cangkang (Shell Sort) Shell sort merupakan salah satu sorting algoritma pada sebuah deklarasi array ([]). Proses shell sort berbeda dengan sorting algoritma yang lainnya, pada sorting algoritma yang lainnya lebih banyak menukarkan data secara berurutan atau memindah satu persatu. Selain itu proses pengurutan data akan berhenti jika proses = jumlah data – 1. Pengurutan data pada sorting algoritma shell sort berbeda dengan yang lainnya, banyak yang mengatakan bahwa proses terakhir shell sort sama atau mirip dengan proses insertion sort karena bentuk atau prosesnya yang juga hampir sama dengan sorting Insertion sort. Pada pengurutan data ini kita terlebih dahulu harus membuat sub list – sub list yang di dasarkan pada jarak antar data yang di tentukan. Jarak yang di telah di tentukan biasanya di lambangkan dengan k, biasanya jarak yang paling di gunakan pada sorting ini saat melakukan pengurutan data yaitu k5, k3, dan k1. Artinya, dari data yang akan di tentukan atau ditukar dengan data yang lain berjarak 5, 3 atau 1 data saja. 2.2. Metode Shell Sort Pemilihan Sequence number : 1. Disarankan jarak mula-mula dari data yang akan dibandingkan adalah (N/2)+1). 2. Pada proses berikutnya, digunakan jarak (N/4)+1). 3. Pada proses berikutnya, digunakan jarak (N/8)+1). 4. Demikian seterusnya sampai jarak yang digunakan adalah 1. Proses Pengurutannya : 1. Untuk jarak (N/2)+1: - Data pertama (i=0) dibandingkan dengan data dengan jarak (N/2)+1. Apabila data pertama lebih besar dari data ke (N/2)+1) tersebut maka kedua data tersebut ditukar. - Kemudian data kedua (i=1) dibandingkan dengan jarak yang sama yaitu (N/2)+1) = elemen
  • 9. 6 ke-(i+N/2)+1. - Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-i selalu lebih kecil dari pada data ke-(i+N/2)+1. 2. Ulangi langakah-langkah diatas untuk jarak = (N/4)+1 kemudian lakukan pembandingan dan pengurutan sehingga semua data ke-i lebih kecil daripada data ke-(i+N/4)+1. 3. Ulangi langakah-langkah diatas untuk jarak = (N/8)+1 kemudian lakukan pembandingan dan pengurutan sehingga semua data ke-i lebih kecil daripada data ke-(i+N/8)+1. 4. Demikian seterusnya sampai jarak yang digunakan adalah 1 atau data sudah terurut . Misal kita ingin mengurutkan data dengan type pengurutan Descending, data yang akan di urutkan adalah 29, 60, 55, 43, 19, 99, 90, 30. Proses 1 buatlah k5. Ingat sorting array [] selalu di mulai dari 0. Dari data di atas maka akan mengalami perubahan seperti di bawah ini. Dapat kita lihat data yang mengalami perubahan adalah data ke [0] dan data ke [1] dengan pasangannya data ke [5] dan data ke [6]. Data ke [0] (29) dan data ke [5] (99) mengalami perubahan karena data ke [5] lebih besar dari data ke [0]. Perubahan ke 2 pada data ke [1] dengan pasangannya data ke [6], mengalami perubahan karena data ke [6] (90) lebih besar dari data ke [1] (60). Sehingga k5 menghasilkan data
  • 10. 7 Selanjutnya adalah proses k3, artinya jarak pindah data adalah 3 dari data yang akan di pindahkan. Proses k3 Dari proses k3 maka akan mengalami perubahan yaitu Dari perubahan tersebut dapat kita lihat, pertukaran pertama yaitu data k3 [0], [3] dan [6]. Pada data ke [0] dengan data ke [3] tidak mengalami perubahan karena data ke [0] (99) lebih besar dari data ke [3] (49). Tetapi mengalami perubahan saat data ke [3] bertemu dengan data ke [6] yaitu 60 lebih besar dari pada 49. Pertukaran garis k3 yang ke 2, mengalami perubahan saat data ke [4] bertemu dengan data ke [7] karena data ke [7] lebih besar dari data ke [4]. Pengurutan shell sort yang terakhir adalah proses k1 yang artinya membandingkan data secara satu persatu dengan data berikutnya.
  • 11. 8 Proses k1 Mengalami perubahan seperti gambar di bawah ini Proses di lakukan berdasarkan urutan kolom atau data terbesar maka data tersebut akan di eksekusi atau di pindahkan dengan data yang sesuai atau yang semestinya menepati posisi data tersebut. Pada proses k1 terdapat 3 kali pemidahan data. Proses1 Data ke [3] di pindah ke posisi data ke [2] karena lebih besar dari data ke [2]. Proses selanjutnya, proses2 Data ke [6] dipindah ke posisi data [4] karena lebih besar dari data [4] Proses terkahir, proses3
  • 12. 9 Data ke [6] dipindah menjadi data ke [5] karena lebih besar dari data ke [5]. Proses selesai, data telah terurut sesuai denga type pengurutnan yaitu descending. Untuk pengurutan data dalam bentuk ascending sama saja, hanya berbeda pada peletakannya saja yaitu data berawal dari data yang paling rendah ke data yang paling besar nilainya. 2.3. Kelebihan dan Kekurangan Shell Sort Kelebihan 1. Algoritma ini sangat rapat dan mudah diimplementasikan. 2. Operasi pertukarannya hanya dilakukan sekali saja. 3. Waktu pengurutan dapat lebih ditekan. 4. Mudah menggabungkannya kembali. 5. Kompleksitas selection sort relative lebih kecil. Kekurangan 1. Membutuhkan metode tambahan. 2. Sulit untuk membagi masalah. 2.4. Source Code Shell Sort #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 100 #define INPUT 'i' #define OUTPUT 'o' #define _MY_DEBUG #if defined(_MY_DEBUG) #define TRACE_LINE printf("nn- Program Statistics :n1. File : %sn2. Date : %sn3. Time : %sn",__FILE__,__DATE__,__TIME__); #else #define TRACE_LINE #endif
  • 13. 10 // int CheckForBadSorting(int*, const int); void ShellSortPass(int*, const int, const int); void ShellSort(int*, const int); void InputOutput(int*, const int, const char); void FreeBuffer(int*); int main(int argc, char* argv[]) { system("COLOR 5"); int *buffer = NULL, max; printf("Implementasi Shell SortnMasukkan jumlah data [MAX:100] : "); scanf("%d",&max); fflush(stdin); if((max > 0) && (max <= MAX)) { buffer = (int*)calloc(max,sizeof(int)); InputOutput(buffer,max,INPUT); printf("nData yang anda masukkan : "); InputOutput(buffer,max,OUTPUT); ShellSort(buffer,max); printf("nData setelah disorting : "); InputOutput(buffer,max,OUTPUT); FreeBuffer(buffer); /* if(CheckForBadSorting(buffer,max)) { goto MARK; } else { InputOutput(buffer,max,OUTPUT); } */ } /* MARK : if(buffer != NULL) { FreeBuffer(buffer); } */ TRACE_LINE; getch(); fflush(stdin); return(EXIT_SUCCESS); } /* int CheckForBadSorting(int* buffer, const int max) { int i; for(i = 1; i < max; ++i) { if(buffer[i-1] > buffer[i]) { printf("Bad Sorting!");
  • 14. 11 return(1); } } return(0); } */ void ShellSortPass(int* buffer, const int max, const int interval) { int i; for(i = 0; i < max; ++i) { int j, tmp = buffer[i]; for(j = i-interval; j >= 0; j -= interval) { if(buffer[j] <= tmp) { break; } buffer[j+interval] = buffer[j]; } buffer[j+interval] = tmp; } } void ShellSort(int* buffer, const int max) { int CiuraIntervals[] = {701, 301, 132, 57, 23, 10, 4, 1}, IntervalIdx = 0, interval = CiuraIntervals[0]; double ExtendCiuraMultiplier = 2.3; if(max > interval) { while(max > interval) { --IntervalIdx; interval = (int)(interval*ExtendCiuraMultiplier); } } else { while(max < interval) { ++IntervalIdx; interval = CiuraIntervals[IntervalIdx]; } } while(interval > 1) { ++IntervalIdx; if(IntervalIdx >= 0) { interval = CiuraIntervals[IntervalIdx]; } else { interval = (int)(interval/ExtendCiuraMultiplier); } ShellSortPass(buffer,max,interval);
  • 15. 12 } } void InputOutput(int* buffer, const int max, const char STAT) { int i; if('i' == STAT) { for(i = 0; i < max; ++i) { printf("%d. Data ke-%d : ",(i+1),(i+1)); scanf("%d",&buffer[i]); fflush(stdin); } } else if('o' == STAT) { for(i = 0; i < max; ++i) { printf("%d ",buffer[i]); } } } void FreeBuffer(int* buffer) { free(buffer); buffer = NULL; } OUTPUT:
  • 16. 13 BAB III PENUTUP 3.1. Kesimpulan Pengurutan nilai (sorting) adalah operasi yang paling sering dilakukan pada sebuah tabel. Jenis algoritma untuk pengurutan nilai sangat banyak dengan tingkat keefektifan yang berbeda - beda untuk masing-masing kasus. Untuk melakukan pengurutan nilai, algoritma yang paling sederhana dan paling mudah dimengerti adalah algoritma count sort. Namun algoritma ini tidak efektif untuk digunakan pada tabel dengan range yang besar. Algoritma-algoritma pengurutan nilai lainnya, dapat dibagi menjadi dua kelompok. Algoritma berkompleksitas O(n2 ), yaitu pengurutan gelembung (bubble sort), pengurutan dengan penyisipan (insertion sort), pengurutan dengan menyeleksi (selection sort), dan pengurutan cangkang (shell sort). Algoritma berkompleksitas O(n log n), yaitu pengurutan dengan penggabungan (heap sort), pengurutan dengan penggabungan (merge sort), dan pengurutan cepat (quick sort).
  • 17. 14 DAFTAR PUSTAKA [1] Munir, Rinaldi. (2003). Matematika Diskrit. Departemen Teknik Informatika, Institut Teknologi Bandung. [2] Liem, Inggriani. (2003). Catatan Kuliah Algoritma dan Pemrograman. Departemen Teknik Informatika, Institut Teknologi Bandung. [3] Bucknall,Julian (2001). Algorithms and Data Structures. Wordware Publishing. [4] Wikipedia. Pencarian biner. http://id.wikipedia.org [5] Michael Lamont. The sorting algorithms. http://linux.wku.edu/~lamonml/algor/sort/in dex.html. [6] Computer Science. http://www.cs.hope.edu.