Perbandingan algoritma brute force , divide and conquerohohervin
comparing brute force algorithms, divide and conquer algorithm, and decrease and conquer algorithms.
advantage and weakness each algorithm
indonesian version.
Perbandingan algoritma brute force , divide and conquerohohervin
comparing brute force algorithms, divide and conquer algorithm, and decrease and conquer algorithms.
advantage and weakness each algorithm
indonesian version.
Kelompok algoritma ririn and friends STT wastukancanaRirin Indah
ini tentang algoritma pengurutan, kami dari jurusan Teknik Informatika Semester 3 di Sekolah Tinggi Teknologi Wastukancana Purwakarta Jawa Barat Indonesia
Sebagai salah satu pertanggungjawab pembangunan manusia di Jawa Timur, dalam bentuk layanan pendidikan yang bermutu dan berkeadilan, Dinas Pendidikan Provinsi Jawa Timur terus berupaya untuk meningkatkan kualitas pendidikan masyarakat. Untuk mempercepat pencapaian sasaran pembangunan pendidikan, Dinas Pendidikan Provinsi Jawa Timur telah melakukan banyak terobosan yang dilaksanakan secara menyeluruh dan berkesinambungan. Salah satunya adalah Penerimaan Peserta Didik Baru (PPDB) jenjang Sekolah Menengah Atas, Sekolah Menengah Kejuruan, dan Sekolah Luar Biasa Provinsi Jawa Timur tahun ajaran 2024/2025 yang dilaksanakan secara objektif, transparan, akuntabel, dan tanpa diskriminasi.
Pelaksanaan PPDB Jawa Timur tahun 2024 berpedoman pada Peraturan Menteri Pendidikan dan Kebudayaan RI Nomor 1 Tahun 2021 tentang Penerimaan Peserta Didik Baru, Keputusan Sekretaris Jenderal Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi nomor 47/M/2023 tentang Pedoman Pelaksanaan Peraturan Menteri Pendidikan dan Kebudayaan Nomor 1 Tahun 2021 tentang Penerimaan Peserta Didik Baru pada Taman Kanak-Kanak, Sekolah Dasar, Sekolah Menengah Pertama, Sekolah Menengah Atas, dan Sekolah Menengah Kejuruan, dan Peraturan Gubernur Jawa Timur Nomor 15 Tahun 2022 tentang Pedoman Pelaksanaan Penerimaan Peserta Didik Baru pada Sekolah Menengah Atas, Sekolah Menengah Kejuruan dan Sekolah Luar Biasa. Secara umum PPDB dilaksanakan secara online dan beberapa satuan pendidikan secara offline. Hal ini bertujuan untuk mempermudah peserta didik, orang tua, masyarakat untuk mendaftar dan memantau hasil PPDB.
2. 2
Pengertian Sorting
Proses mengurutkan data yang berada dalam suatu
tempat penyimpanan, dengan urutan tertentu yaitu
urutan naik (ascending) dari nilai terkecil hingga
terbesar atau urutan turun (descending) dari nilai
terbesar hingga nilai terkecil.
Dilihat dari tempat penyimpanan data, sort dibedakan
antara external sort bila datanya ada dalam media
external atau external storage seperti harddisk dan
internal sort bila datanya ada dalam internal storage
atau memory computer.
3. 3
Tujuan Sorting
• Mendapatkan kemudahan dalam pencarian
anggota dari suatu himpunan, disamping
dapat mempercepat mengetahui data
terbesar dan data terkecil
4. 4
Metode sorting
• Bubble sort
• Selection sort
• Insertion sort
• Shell sort
• Merge sort
• Radix sort
• Quick sort
• Heap short
• Proses yang terjadi
pada pengurutan
adalah
– Perbandingan data
– Pertukaran data
Metode Sorting
5. 5
Bubble Sort
Bubble artinya gelembung dan gelembung selalu
mengapung.
Prinsip proses pengurutan dengan menggunakan
metode bubble sort adalah
menempatkan (mengapungkan) nilai terbesar (jika urut
ascending) atau nilai terkecil (jika urut descending) pada
elemen ujung paling kanan pada tahap per tahapnya.
6. 6
Bubble Sort
Sudah ada array satu dimensi sudah ada isinya,
diilustrasikan sebagai berikut :
Akan diurutkan ascending sehingga dihasilkan
urutan data seperti berikut:
7. 7
Bubble Sort
Maka proses pengurutan tahap demi tahap dengan menggunakan
metode bubble sort adalah sebagai berikut :
8. 8
Bubble Sort
Dari array diatas yang terdiri dari 6 elemen
dibutuhkan proses sebanyak 5 tahap maka untuk N
elemen dibutuhkan (N-1) tahap proses pengurutan.
Selanjutnya proses tahap per tahap akan diuraikan
lebih rinci lagi.
Pada proses setiap tahap algoritma yang digunakan
adalah proses banding (compare) dan tukar (swap).
Bukan semata-mata meletakkan nilai terbesar ke
ujung kanan, melainkan membandingkan nilai-
nilai yang ada pada masing-masing elemen.
10. 10
Rumus Bubble Sort
for (K = 0 ; K < N-1 ; K++)
{
for (i = 0 ; i < N-2-K ; i++)
{
if ( A[i] > A[i+1] )
{
x = A[i];
A[i] = A[i+1];
A[i+1] = x;
}
}
}
11. 11
Selection Sort
Metode selection sort ini menggunakan proses
pencarian (searching) kemudian tukar nilai yang dicari
dengan nilai pada elemen awal.
Misalnya untuk pengurutan ascending, dicari nilai
terkecil pertama kemudian tukar dengan elemen ke-0,
selanjutnya dicari nilai terkecil kedua dan tukar
dengan elemen ke-1 dan seterusnya.
13. 13
Rumus Selection Sort
for ( i=0 ; i <= N-2 ; i++)
{
kecil = i;
for ( k = i+1 ; k <= N-1 ; k++ )
{
if (A[k] > A[j])
{
kecil = k;
}
}
temp = A[i];
A[i] = A[kecil];
A[kecil] = temp;
}
14. 14
Insertion Sort
• Metode ini dilakukan dengan penyisipan
nilai data untuk suatu array misal A, yang
tidak terurut ke dalam suatu tempat kosong
misal C dan memastikan nilai data C selalu
dalam keadaan terurut.
15. 15
Insertion Sort
Tahap 1 :
Dimulai dari A[1]
Simpan nilai A[1] pada sebuah variabel (misal x)
Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri
A[1] satu per satu jika nilai tersebut lebih besar dari x
Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.
Tahap 2 :
Simpan nilai A[2] pada variabel x.
Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri
A[2] satu per satu jika nilai tersebut lebih besar dari x
Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.
Tahap berikutnya dan seterusnya hingga terakhir tahap ke N-1 (untuk array
dengan N elemen).
Instruksi pergeseran ke kanan adalah A[i]=A[i - 1], sehingga nilai A[i] akan
hilang (ditimpa oleh nilai A[i-1] oleh karena itu pada awal tahap A[i] disimpan
pada sebuah variabel.
18. 18
Quick Sort
• Metode pembagian dan penguasaan
• Array misal A yang tidak terurut dibagi menjadi 2
sub bagian yakni array kiri dan array kanan.
• Proses pengurutan kedua sub bagian array
menggunakan rekursif dan kemudian
menggabungkan kembali 2 sub bagian array yang
terurut untuk menghasilkan keseluruhan array
yang terurut
19. 19
R
u
m
u
s
Q
u
i
c
k
S
o
r
t
void quick(int a[], int left, int right)
{
int i,j, x, temp;
i = left;
j = right;
x = a[(left+right)/2];
do
{
while(a[i]<x && i<right)
++i;
while(a[j]>x && j>left)
--j;
if(i<=j)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
++i;
--j;
}
}while(i <= j);
if(left<j)
quick(a, left,j);
if(i<right)
quick(a, i, right);
}
20. 20
Merge Sort
• Pengurutan data yang jumlahnya besar,
dimana tidak semuanya dapat dimuat dalam
memori utama, sehingga harus disimpan
dalam penyimpanan sekunder berupa berkas
21. 21
R
u
m
u
s
M
e
r
g
e
S
o
r
t
void MergeSort(int x[], int n)
{
long aux[8], i, j, k, L1, L2, size, U1, U2; size = 1;
while(size < n){
L1 = 0; k = 0;
while(L1+size < n){
L2 = L1 + size;
U1 = L2 -1;
U2 = (L2+size-1 < n) ? L2+size-1 : n-1;
for(i=L1, j=L2; i<=U1 && j<=U2; k++)
if(x[i] <= x[j]) aux[k] = x[i++];
else aux[k] = x[j++];
for(;i <= U1; k++)
aux[k] = x[i++];
for(;j <= U2; k++)
aux[k] = x[j++];
L1 = U2 + 1;}
for(i=L1;k<n;i++) aux[k++] = x[i];
for(i=0;i<n;i++) x[i] = aux[i];
size *=2;}
}
22. 22
Heap Sort
• Heap merupakan pohon biner tanpa pointer
dan mirip seperti pohon biner yang hampir
penuh. Semua simpul (daun) terletak pada
dua cabang terbawah dan simpul daun pada
cabang paling bawah terletak di sebelah kiri
sejauh mungkin
• Nilai dalam setiap simpul adalah lebih besar
atau sama dengan anaknya
23. 23
Rumus Heap Sort
void HeapSort(int a[], int size)
{
int i, f, s;
for(i=1;i<size;i++)
{
int e = a[i];
s = i;
f = (s-1)/2;
while(s > 0 && a[f] > e)
{
a[s] = a[f];
s = f;
f = (s-1)/2;
}
a[s] = e;
}
for(i=size; i>0; i--)
{
int value = a[i];
a[i] = a[0];
f = 0;
if(i==1)
s = -1;
else
s = 1;
if(i > 2 && a[2] > a[1])
s = 2;
while(s >= 0 && value < a[s])
{
a[f] = a[s];
f = s;
s = 2*f+1;
if(s+1 <= i-1 && a[s] < a[s+1])
s = s+1;
if(s > i-1)
s = -1;
}
a[f] = value;
}
}
24. 24
Shell Sort
jarak = N/2;
while(jarak > 0)
{
for(i=0; i<=N-jarak; i++)
{
j=i+jarak;
if(data[i] >data[j])
{
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
jarak = jarak/2;
}
Metode pengurutan dengan cara penukaran sepasang
elemen dengan jarak tertentu
25. 25
Tugas Praktikum
Buatlah program untuk menyimpan dan
mengurutkan data-data struct mahasiswa yang
terdiri dari 3 field yaitu NIM, NamaMhs, Nilai.
Kemudian isikan secara acak/tidak berurut) contoh
data dari 5 mahasiswa yang masing-masing
mengandung NIM, NamaMhs, Nilai.
Selanjutnya gunakan algoritma pengurutan untuk
mengurutkan data mahasiswa berdasarkan
NamaMhs kemudian tampilkan hasil
pengurutannya