Dokumen tersebut membahas tentang pengaturan data berdasarkan pengurutan dan pencarian. Terdapat penjelasan mengenai beberapa metode pengurutan seperti bubble sort, selection sort, dan insertion sort beserta contoh kode programnya. Juga dibahas mengenai implementasi algoritma rekursi untuk menghasilkan permutasi dan faktorial.
2. Pengurutan adalah upaya mengatur
sekumpulan data berdasar pada urutan
(naik atau turun)
Pencarian adalah upaya
mencari/mendapatkan satu atau lebih objek
dari sekumpulan data
STRUKTUR DATA
3. Sorting
Pengurutan data dalam struktur data sangat
penting untuk data yang beripe data numerik
ataupun karakter.
Pengurutan dapat dilakukan secara ascending
(urut naik) dan descending (urut turun)
Pengurutan (Sorting) adalah proses menyusun
kembali data yang sebelumnya telah disusun
dengan suatu pola tertentu, sehingga tersusun
secara teratur menurut aturan tertentu.
Contoh:
Data Acak : 5 6 8 1 3 25 10
Ascending : 1 3 5 6 8 10 25
Descending : 25 10 8 6 5 3 1
STRUKTUR DATA
4. 6 (enam) metode pengurutan
yang akan dipaparkan
Penyisipan Langsung (Straight Insertion Sort)
Penyisipan Biner (Binary Insertion Sort)
Seleksi (Selection Sort)
Gelembung (Bubble Sort)
Shell (Shell Sort)
Quick (Quick Sort)
STRUKTUR DATA
5. 2 (dua) metode pencarian
yang akan dipaparkan
Pencarian Pencarian
Sekuensial Biner
(Sequential Search) (Binary
Search)
STRUKTUR DATA
6. Algoritma pengurutan adalah algoritma untuk meletakkan
kumpulan elemen data ke dalam urutan tertentu,
berdasarkan satu atau beberapa kunci dalam tiap–tiap
–
elemen
2 (dua) model urutan yaitu model urut naik (increase sort)
dan urut turun (decrease sort).
Contoh: Data 5,2,4,6.
Diurut naik menjadi 2,4,5,6 Diurut turun menjadi 6,5,4,2.
(Mengapa perlu Pengurutan dilakukan agar data
pengurutan?) dapat dilihat dengan mudah.
STRUKTUR DATA
7. Bubble Sort
Metode sorting termudah
Diberi nama “Bubble” karena proses pengurutan
secara berangsur-angsur bergerak/berpindah ke
posisinya yang tepat, seperti gelembung yang
keluar dari sebuah gelas bersoda.
Bubble Sort mengurutkan data dengan cara
membandingkan elemen sekarang dengan
elemen berikutnya.
STRUKTUR DATA
8. Bubble Sort (2)
Pengurutan Ascending :Jika elemen sekarang lebih
besar dari elemen berikutnya maka kedua elemen
tersebut ditukar.
Pengurutan Descending: Jika elemen sekarang lebih
kecil dari elemen berikutnya, maka kedua elemen
tersebut ditukar.
Algoritma ini seolah-olah menggeser satu per satu
elemen dari kanan ke kiri atau kiri ke kanan,
tergantung jenis pengurutannya.
Ketika satu proses telah selesai, maka bubble sort
akan mengulangi proses, demikian seterusnya dari 0
sampai dengan iterasi sebanyak n-1.
Kapan berhentinya? Bubble sort berhenti jika seluruh
array telah diperiksa dan tidak ada pertukaran lagi
yang bisa dilakukan, serta tercapai perurutan yang
telah diinginkan.
STRUKTUR DATA
12. Bubble Sort (6)
Dengan prosedur diatas, data terurut naik
(ascending), untuk urut turun (descending)
silahkan ubah bagian:
if (data[j]<data[j-1]) tukar(&data[j],&data[j-1]);
Menjadi:
if (data[j]>data[j-1]) tukar(&data[j],&data[j-1]);
“The bubble sort is an easy algorithm to program,
but it is slower than many other sorts”
STRUKTUR DATA
13. Selection Sort
Merupakan kombinasi antara sorting dan searching
Untuk setiap proses, akan dicari elemen-elemen yang
belum diurutkan yang memiliki nilai terkecil atau terbesar
akan dipertukarkan ke posisi yang tepat di dalam array.
Misalnya untuk putaran pertama, akan dicari data dengan
nilai terkecil dan data ini akan ditempatkan di indeks
terkecil (data[0]), pada putaran kedua akan dicari data
kedua terkecil, dan akan ditempatkan di indeks kedua
(data[1]).
Selama proses, pembandingan dan pengubahan hanya
dilakukan pada indeks pembanding saja, pertukaran data
secara fisik terjadi pada akhir proses.
STRUKTUR DATA
15. Insertion Sort
Mirip dengan cara orang mengurutkan kartu,
selembar demi selembar kartu diambil dan
disisipkan (insert) ke tempat yang seharusnya.
Pengurutan dimulai dari data ke-2 sampai dengan
data terakhir, jika ditemukan data yang lebih
kecil, maka akan ditempatkan (diinsert) diposisi
yang seharusnya.
Pada penyisipan elemen, maka elemen-elemen
lain akan bergeser ke belakang
STRUKTUR DATA
19. Soal
Carilah 3 metode sorting lainnya dan
tuliskan dalam paper beserta source code,
cara dan analisis dan tiap-tiap metode
sorting yang ada!
STRUKTUR DATA
20. Implementasi Algoritma Rekursi1_Faktorial
dalam pascal
Program Rekursi1_Faktorial;
uses crt, dos;
Var n_faktorial,x : longint;
Function faktorial (n: longint) : longint;
Begin
if (n = 0) or (n = 1) then
faktorial := 1
else
faktorial := n * faktorial ( n - 1);
End;
Begin
Writeln('Masukan bilangan n yang anda inginkan');
Readln (x);
n_faktorial := Factorial(x);
Writeln (x, '! adalah ', n_faktorial);
End.
STRUKTUR DATA
21. Contoh Pemakaian Rekursi (Permutasi).
Untuk menampilkan semua permutasi dari N karakter ’A’, ’B’, ’C’, dan
seterusnya, diperlukan rekursi karena proses permutasi akan
menampilkan karakter yang sama secara berulang.
Contoh : Permutasi untuk n = 2 adalah :
A B
B A
Contoh : Permutasi untuk n = 3 adalah :
A B C
A C B
B A C
B C A
C A B
C B A
STRUKTUR DATA
22. Prosedur DoPermutasi
Procedure DoPermutasi (Input/Output A: TPermutasi ;
mulai :byte)
{prosedur untuk mengerjakan hitungan permutasi untuk n objek}
{K.Awal : sebuah nilai n diberikan untuk menyatakan banyaknya objek}
{K.Akhir: Susunan huruf alphabet sebagai permutasi dari n objek dan
dicetak ke piranti keluaran}
DEKLARASI
i : byte;
Temp : char;
STRUKTUR DATA
23. DESKRIPSI:
If ( mulai = N ) then
For i 1 to N do
write ( A [ i ] )
Endfor
Else
For i mulai to N do
temp A [ i ]
A [ i ] A [ mulai ]
A [ mulai ] temp
DoPermutasi (A, mulai +1)
Endfor
Endelse
Endif
STRUKTUR DATA
24. Contoh :
Algoritma Permutasi yang memanggil prosedur bernama DoPermutasi.
Algoritma Permutasi
{Algoritma program utama menentukan permutasi dari n obejk}
{K.Awal : nilai n yang menyatakan banyak objek berupa huruf aplhabet
sudah terdefinisi}
{K.Akhir: susunan permutasi yang mungkin dari n objek berupa huruf
alphabet dan dicetak ke piranti keluaran}
DEKLARASI
Const Max = 10
Type TPermutasi = array [ 1..10 ] of char
Procedure DoPermutasi (Input/Output A: TPermutasi ;
mulai :byte)
{prosedur dengan parameter formal input/output}
STRUKTUR DATA
25. DESKRIPSI:
If ( mulai = N ) then
for i ← 1 to N do
write ( A [ i ] )
endfor
else
for i ← mulai to N do
temp ← A [ i ]
A[i] ← A [ mulai ]
A [ mulai ] ← temp
DoPermutasi (A, mulai +1)
endfor
endif
STRUKTUR DATA