Haalooooooooooo........., nah jadi hari ini kita akan belajar yang namanya sorting dan searching. sesuai dengan terjemahan indonesianya sorting adalah mengurutkan.
nah sorting itu banyak tapi yang akan saya bahas hari ini adalah bubble sort dan insertion sort.
A. Bubble Sort
nah apasih itu bubble sort, bubble sort adalah proses mengurutkan suatu kumpulan data dengan membandingkan setiap elemen kumpulan data tersebut.
contoh bubble sort adalah pengurutan angka, biasanya kita akan mengambil data dari awal dan membandingkannya dengan data berikutnya, kemudian jika data berikutnya lebih kecil dari data yang telah diambil maka keduanya akan ditukar.

visualisasi bubble sort
cara implementasi dalam bahasa C biasanya kita menggunakan dua looping for :
for( int i = 0 ; i < (jumlah_data) ; i++){
for( int j = 0 ; j < (jumlah_data) ; j++){
if( data[i] > data[j]) {
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
B. Insertion Sort
hampir sama dengan bubble sort, insertion sort disini kita tetap memabandingkan elemen di kumpulan data yang kita punya tetapi jika kita menemui data yang lebih kecil kita akan terus membawa data tersebut kedepan hingga data didepannya lebih kecil atau di awal data.

visualisasi insertion sort
implementasi dalam bahasa c :
for( int i = 0 ; i < (jumlah_data) ; i++){
int temp = data[i];
for( int j = i - 1 ; j >= 0 && temp < data[j] ; j--){
data[j+1] = data[j];
data[j] = temp;
}
}
Kemudian pada searching saya akan membahas linear searching dan binary searching.
A. Linear Search
linear search adalah proses mencari data dengan melihat setiap data dari kumpulan data yang kita punya.
contoh penggunaan :
int arr[5] = { 2,4,3,5,1 }, flag=0, n;
printf("Masukan data yang dicari : ");
scanf("%d", &n);
for(int i = 0 ; i < 5 ; i++){
if(n == arr[i]){
flag==1;
break;
}
}
if(flag==1){
printf("Data tersedia");
}
else{
printf("Data tidak ada");
}
jadi program diatas menjalankan linear searching jadi jika data telah ketemu maka akan mengeluarakan "Data tersedia" jika tiddak maka akan mengeluarkan "Data tidak ada".
B. Binary Search
jika tadi pada linear search kita mengecak semua data, di binary search kita cukup menggunakan rekursif untuk melihat posisi data. dengan membagi array menjadi dua bagian kemudian mengecek posisi data yang kita cari dimana dengan satu kondisi bahwa array yang kita mau cari datany harus sudah terurut.
int arr[10]={1,2,3,4,5,6,7,8,9,10}, flag=0;
int main(){
printf("Masukan data yang dicari : ");
scanf("%d", &n);
search(n,0,9);
if(flag==1){
printf("Data tersedia");
}
else{
printf("Data tidak ada");
}
}
void search(int num, int L, int R){
int mid=(L+R)/2;
if(L<=R){
search(num,L,mid-1);
}
else if(num > arr[mid]){
search(num, mid+1,R);
}
else if(num == arr[mid]){
flag=1;
}
}
}
sekian materi ini semoga dari postingan ini dapat membantu untuk pembelajar bahasa C.
Rafael Jonathan Patrick Tjoa
2201748486
Binus.ac.id
Skyconnectiva.com
Komentar
Posting Komentar