Sort
Puji syukur kehadiran Tuhan Yang Maha Esa atas limpahan rahmat dan lindungan-
nya. Akhirnya makalah ini kami selesaikan dengan lancar. Makalah ini kami susun
untuk memenuhi tugas mata kuliah Dasar-Dasar Logika.selain itu Kami menyusun
makalah ini untuk menambah wawasan untuk memahami.
Mungkin makalah yang kami buat ini belum sempurna karena kami juga masih
dalam tahap belajar, oleh karena itu kami menerima saran ataupun kritikan dari
segala pihak agar makalah selanjutnya bisa lebih baik dari sebelumnya. Dalam
makalah ini saya membahas tentang “Pengertian Logika dan Ruang Lingkup
Logika Semoga makalah yang Kami buat ini bisa bermanfaat bagi pembaca.
DAFTAR ISI
KATA PENGANTAR………………………………………………………………………………….
DAFTAR ISI……………………………………………………………………………………………
BAB I PENDAHULUAN
1.1 LATAR BELAKANG…………………………………………………………………………….
1.2 RUMUSAN MASALAH………………………………………………………………………….
1.3 TUJUAN………………………………………………………………………………………….
BAB II PEMBAHASAN
2.1 PENGERTIAN SORTING……………………………………………………………………..
2.2 RADIX SORT………………………………………………………………………………….
2.3 PEMROSESAN RADIX SORT………………………………………………………………..
2.4 PROGRAM RADIX SORT DALAM BAHASA C++…………………………………………
2.5 QUICK SORT………………………………………………………………………………….
2.6 IMPLEMENTASI QUICK SORT PADA C++……………………………………………….
2.7 SHELL SORT…………………………………………………………………………………
1.3 Tujuan
Mempermudah pekerjaan manusia dalam bidang informasi
Mempermudah pekerjaan manusia dalam bidang statistic.
Mempermudah pekerjaan manusia dalam bidang komputerisasi lainya terutama dalam
bidang pencarian data
Data akan teratur (sistematis)
BAB II
PEMBAHASAN
2.1 Pengertian sorting
Ada banyak alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah untuk
dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan. Data yang
terurut dengan baik juga mudah untuk dihapus jika sewaktu-waktu data tersebut tidak diperlukan
lagi. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk menyisipkan data
atapun melakukan penggabungan data
Metode metode sorting meliputi :
Radix Sort
Quick Sort
Shell Sort
2.2 Radix Sort
Ide dasar dari metode Radix sort ini adalah mengkategorikan data-data
radix lainnya.
Dalam kenyataannya banyak sekali algoritma Radix sort yang berbeda- beda
walaupun ide dasarnya sama. Radix sort mengurutkan data berdasarkan posisi digit
dalam angka atau karakter dalam string. Radix sort digunakan untuk mengurutkan
paling signifikan.
//Add the count of the previous buckets to acquire the indexes after the end of each
bucket location in the array
for (i = 1; i < BASE; i++)
bucket[i] += bucket[i - 1]; //similar to count sort algorithm i.e. c[i]=c[i]+c[i-1];
//Starting at the end of the list, get the index corresponding to the a[i]'s key,
decrement it, and use it to place a[i] into array b.
for (i = n - 1; i >= 0; i--)
b[--bucket[(a[i] / exp) % BASE]] = a[i];
#ifdef SHOWPASS
printf("\nPASS : ");
print(a, n);
#endif
}
}
int main()
{
int arr[MAX];
int i, n;
printf("Enter total elements (n <= %d) : ", MAX);
scanf("%d", &n);
n = n < MAX ? n : MAX;
printf("\nARRAY : ");
print(&arr[0], n);
radixsort(&arr[0], n);
printf("\nSORTED : ");
print(&arr[0], n);
printf("\n");
return 0;
}
Outputnya sebagai berikut :
Pada algoritma quick sort diatas terdapat dua metod, yang pertama metodQuick
Sort itu sendiri yang bersifat rekursif dan metod Partition yang digunakan untuk
mengetahui penanda sehingga data tersebut terpecah menjadi dua. Algoritma dijalankan
selama nilai low kurang dari high, apabila nilai low sama dengan nilai high, artinya jumlah
elemen array hanya ada satu. Variabel p digunakan untuk menampung nilai pivot yang
digunakan untuk acuan pemecahan array. Sebelum dipecah menjadi dua, array tersebut
dipartisi dulu untuk menentukan index pivot. Setelah diketahui index keberapa yang
menjadi pivot maka array terpecah menjadi dua. Pada array pertama bagian kiri, nilai
lownya tetap nol dan nilai highnya pivot-1. Sedangkan pada array sisi kanan, nilai lownya
adalah pivot+1 dan highnya array.length-1.
int Ar[n];
void quickSort(int arr[], int left, int right); int main()
{
int jumlahBil=5;
cout<<"Masukkan jumlah bilangan dalam arry [Maksimal 20]"<<endl; cin>>jumlahBil;
int Ar[jumlahBil];
for(int i=0; i<jumlahBil;i++)
{
cout<<"Bilangan ke-"<< i+1 << endl; cin>>Ar[i];
}
quickSort(Ar,0,jumlahBil-1); ); cout<<"Data yang telah diurutkan"<<endl; for(int i=0;
i<jumlahBil;i++)
{
cout<<Ar[i]<<"\n";
}
}
void quickSort(int arr[], int left, int right)
{int i = left, j = right; int tmp;
int pivot = arr[(left + right) / 2]; while (i <= j)
{
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j)
{
tmp = arr[i];
Disisni kita membandingkan nilai dalam setiap sub-daftar dan menukarkannya (jika perlu) dalam
larik aslinya. Setelah langkah ini, array baru akan terlihat seperti ini
Kemudian, kita mengambil interval 2 dan celah ini menghasilkan dua sub-daftar - {14, 27, 35,
42}, {19, 10, 33, 44}
Kami membandingkan dan menukar nilai, jika diperlukan, dalam larik asli. Setelah langkah ini,
array akan terlihat seperti ini –
Akhirnya, kita mengurutkan sisa array menggunakan interval nilai 1. Shell sort
menggunakan semacam penyisipan untuk mengurutkan array.
3.1 KESIMPULAN
Dari penjelasan diatas bahwa sorting dibagi menjadi beberapa bagian, diantaranya : insertion
sort, marge sort, radix sort, quick sort, dan shell sort Yang memiliki kelebihan dan
kekurangan tersendiri. Dari beberapa shorting tersebut memiliki tujuan yang sama, yaitu
mengurutkan data untuk mempermudah pencarian dan data akan menjadi sistematis.
3.2 SARAN
Penulis sangat mengharapkan kritik dan saran bagi pembaca yang sifatnya membangun