-->

I'M Bayu Pradika

Graphic Designer . Web Developer . Programmer

About Me

Hello

I'mBayu Pradika

Coder and Game Developer

I am Bayu Pradika I am an IT student at the University of Riau, I have an understanding of C#, C++, and Java languages. I have Skill in web and application development for a year in Programmer organization

'

Web Design

UX/UI Design

Wordpress

Android Development

What I do?

Graphic

Photography

Development

Responsive

Wordpress

Android Development

My Experience

Apple Inc.

2015-Today

Art & Creative director

Facebook Inc.

2012-2015

Web designer & developer

IBM Inc.

2011-2012

Mid-level designer

My Latest Projects

Mengenal Lebih Jauh: Contoh Penerapan Kecerdasan Buatan dalam Kehidupan Nyata

Kecerdasan buatan (Artificial Intelligence, AI) telah menjadi salah satu teknologi terdepan yang mengubah cara kita berinteraksi dengan dunia sekitar. Dari kendaraan otonom hingga asisten virtual di smartphone kita, AI telah mengambil peran penting dalam berbagai aspek kehidupan kita. Artikel ini akan menjelajahi beberapa contoh konkret penerapan kecerdasan buatan dalam kehidupan nyata yang telah mengubah cara kita bekerja, berkomunikasi, bermain, dan hidup secara keseluruhan. 

Kendaraan Otonom 
Salah satu contoh paling mencolok dari AI dalam kehidupan nyata adalah perkembangan kendaraan otonom. Perusahaan seperti Tesla, Waymo, dan Uber telah mengembangkan mobil yang dapat mengemudi sendiri dengan bantuan sistem AI. AI memungkinkan mobil ini untuk mendeteksi rute, menghindari tabrakan, dan mengambil keputusan di jalan. Ini memiliki potensi untuk mengurangi kecelakaan lalu lintas dan meningkatkan efisiensi transportasi. 

Asisten Virtual 
Asisten virtual seperti Siri, Google Assistant, dan Alexa adalah contoh lain dari penerapan AI dalam kehidupan sehari-hari. Mereka menggunakan pemahaman bahasa alami untuk menjawab pertanyaan, memberikan informasi, dan menjalankan perintah suara. Selain itu, AI di balik asisten ini dapat mempelajari preferensi pengguna dan memberikan rekomendasi yang lebih relevan seiring berjalannya waktu. 

Diagnostik Kesehatan 
AI telah mengambil peran penting dalam dunia kesehatan dengan kemampuannya dalam menganalisis data medis. Algoritma AI dapat membantu dalam mendeteksi penyakit seperti kanker, diabetes, dan penyakit jantung dengan akurasi yang tinggi. Contohnya adalah penggunaan citra medis seperti MRI dan CT scan untuk membantu dokter dalam mendiagnosis dan merencanakan perawatan yang lebih baik. 

Penerjemah Otomatis 
Penerjemah otomatis yang menggunakan teknologi AI seperti Google Translate telah memudahkan komunikasi antarbahasa di seluruh dunia. Mereka dapat menerjemahkan teks dan ucapan secara real-time, memungkinkan orang untuk berkomunikasi dengan lebih mudah dan efisien tanpa harus menguasai beberapa bahasa asing. 

Perdagangan dan Keuangan 
Dalam dunia keuangan, AI digunakan untuk menganalisis data pasar saham, memprediksi pergerakan harga, dan mengelola portofolio investasi. Algoritma perdagangan berbasis AI dapat melakukan perdagangan dengan cepat dan efisien, dan bahkan digunakan dalam perdagangan frekuensi tinggi. 

Rekomendasi Konten 
Layanan streaming seperti Netflix dan platform e-commerce seperti Amazon menggunakan AI untuk memberikan rekomendasi konten yang lebih baik kepada pengguna. Ini berdasarkan riwayat penelusuran dan preferensi sebelumnya, yang membantu pengguna menemukan film, acara TV, atau produk yang lebih sesuai dengan minat mereka. 

Kesimpulan 
Kecerdasan buatan telah mengubah cara kita hidup, bekerja, dan berinteraksi dengan dunia. Contoh penerapan AI dalam kehidupan nyata yang telah disebutkan di atas hanyalah sebagian kecil dari potensi yang dimilikinya. Dengan perkembangan teknologi AI yang terus berlanjut, kita dapat dengan yakin mengharapkan lebih banyak inovasi dan perubahan yang akan membantu kita menjalani kehidupan yang lebih efisien, aman, dan bermakna. Namun, penting untuk mempertimbangkan juga implikasi etika dan privasi seiring dengan pertumbuhan kecerdasan buatan ini.

Contoh Program Bahasa C++ Tentang Searching



1. Buatlah workspace menggunakan C++.

#include <stdio.h>

#include <stdlib.h>

#define MAX 10 

int Data[MAX];

int SequentialSearch(int x)

{

int i = 0;

bool ketemu = false;

while ((!ketemu) && (i < MAX)){

if(Data[i] == x)

ketemu = true;

else

i++;

}

if(ketemu)

return i;

else

return -1;

}

int main()

{

int i;

//pembangkit bilangan random 

srand(0);

//membangkitkan bilangan integer random 

printf("\nDATA : ");

for (i = 0; i < MAX; i++)

{

Data[i] = rand()/1000+1;

printf("%d ", Data[i]);

}

int Kunci;

printf("\nKunci : ");

scanf("%d", &Kunci);

int ketemu = SequentialSearch(Kunci);

if(ketemu>0)

printf("Data ditemukan pada posisi %d", ketemu);

else

printf("Data tidak ditemukan");

}




2. Buatlah project baru SEARCHING yang berisi file C source untuk metode pencarian sequential search dan binary search.

#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int Data[MAX];
// Prosedur menukar data 
void Tukar (int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
// Prosedur pengurutan metode Quick Sort
void QuickSort(int L, int R)
{
int i, j, x;
x = Data[(L+R)/2];
i = L;
j = R;
while (i <= j){
while(Data[i] < x)
i++;
while(Data[j] > x)
j--;
if(i <= j){
Tukar(&Data[i], &Data[j]);
i++;
j--;
}
}
if(L < j)
QuickSort(L, j);
if(i < R)
QuickSort(i, R);
}
// Fungsi pencarian biner
int BinarySearch(int x)
{
int L = 0, R = MAX-1, m;
bool ketemu = false;
while((L <= R) && (!ketemu))
{
m = (L + R) / 2;
if(Data[m] == x)
ketemu = true;
else if (x < Data[m]) 
R = m - 1;
else
L = m + 1;
}
if(ketemu)
return m;
else
return -1;
}
int main()
{
int i;
//pembangkit bilangan random 
srand(0);
//membangkitkan bilangan integer random 
printf("\nDATA : ");
for (i = 0; i < MAX; i++)
{
Data[i] = rand()/1000+1;
printf("%d ", Data[i]);
}
//mengurutkan data
QuickSort(0, MAX-1);
int Kunci; 
printf("\nKunci : "); 
scanf("%d", &Kunci);
int ketemu = BinarySearch(Kunci);
if(ketemu>0)
printf("Data ditemukan pada posisi %d", ketemu);
else
printf("Data tidak ditemukan");
}





Algoritma Dan Struktur Data C++ BAB XIII ( Searching)

  

Searching

printf("Hallo Para Programmer!!"); 

printf("Disini Saya Akan Membahas Mengenai Algoritma Pengurutan Dalam Bahasa C/C++"); 

printf("Algoritma Pengurutan Yang Saya Bahas Adalah Quick Sort Dan Merge Sort");

printf("Terus Ikuti Blog Ini Untuk Mendapatkan Artikel Bermanfaat Selanjutnya yah");

printf("Selamat Belajar!!");


    Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan (successful) atau tidak ditemukan (unsuccessful). 

    Ada dua macam teknik pencarian yaitu pencarian sekuensial (sequential search) dan pencarian biner (binary search). Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak terurut. Sebaliknya, pencarian biner digunakan pada data yang sudah dalam keadaan urut.


1. Pencarian Berurutan (Sequential Search) 

    Algoritma pencarian dapat dijelaskan sebagai berikut : pencarian dimulai dari data paling awal, kemudian ditelusuri dengan menaikkan indeks data, apabila data sama dengan kunci pencarian dihentikan dan diberikan nilai pengembalian true, apabila sampai indeks terakhir data tidak ditemukan maka diberikan nilai pengembalian false.

Ilustrasi dari algoritma pencarian biner adalah sebagai berikut :




Data[4]=3 sama dengan kunci=3 maka data ditemukan dan diberikan nilai pengembalian i (posisi) dan proses dihentikan. Apabila data tidak ditemukan, maka fungsi akan mengembalikan nilai -1

2. Pencarian Biner (Binary Search) 
    Salah satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner tidak dapat dilakukan. 
Ilustrasi dari algoritma pencarian biner adalah sebagai berikut :



Data[1]=3 sama dengan kunci=3 maka data ditemukan dan diberikan nilai pengembalian i (posisi) dan proses dihentikan. Apabila data tidak ditemukan, maka fungsi akan mengembalikan nilai -1.

Contoh Program Bahasa C++ Tentang Quick Sort Dan Merge Sort



1. algoritma pengurutan quick sort secara ascending
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 20
int Partition(int arr[], int p, int r)
{
int i, j;
int pivot, temp;
pivot = arr[p]; // pivot pada index 0
i = p;
j = r;
while (i <= j)
{
while (pivot < arr[j])
j--;
while (pivot > arr[i])
i++;
if (i < j)
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
j--;
i++;
}
else
return j;
}
return j;
}
void QuickSort(int arr[], int p, int r)
{
int q;
if (p < r)
{
q = Partition(arr, p, r);
QuickSort(arr, p, q);
QuickSort(arr, q + 1, r);
}
}
int main()
{
int data_awal[MAX], data_urut[MAX];
int i;
time_t k1, k2;
printf("Sebelum pengurutan : \n");
for (i = 0; i < MAX; i++)
{
srand(time(NULL) * (i + 1));
data_awal[i] = rand() % 100 + 1;
printf("%d ",
data_awal[i]);
}
printf("\nSetelah pengurutan : \n");
for (i = 0; i < MAX; i++)
data_urut[i] = data_awal[i];
time(&k1);
QuickSort(data_urut, 0, MAX - 1);
time(&k2);
for (i = 0; i < MAX; i++)
printf("%d ", data_urut[i]);
printf("\nWaktu = %ld\n", k2 - k1);
}




2. algoritma pengurutan merge sort secara ascending.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 20
void Merge(int arr[], int left, int median, int right)
{
 int temp[MAX];
 int kiri1, kanan1, kiri2, kanan2, i, j;
 kiri1 = left;
 kanan1 = median;
 kiri2 = median + 1;
 kanan2 = right;
 i = left;
 while ((kiri1 <= kanan1) && (kiri2 <= kanan2))
 {
  if (arr[kiri1] <= arr[kiri2])
  {
   temp[i] = arr[kiri1];
   kiri1++;
  }
  else
  {
   temp[i] = arr[kiri2];
   kiri2++;
  }
  i++;
 }
 while (kiri1 <= kanan1)
 {
  temp[i] = arr[kiri1];
  kiri1++;
  i++;
 }
 while (kiri2 <= kanan2)
 {
  temp[i] = arr[kiri2];
  kiri2++;
  i++;
 }
 j = left;
 while (j <= right)
 {
  arr[j] = temp[j];
  j++;
 }
}
void MergeSort(int arr[], int l, int r)
{
 int med;
 if (l < r)
 {
  med = (l + r) / 2;
  MergeSort(arr, l, med);
  MergeSort(arr, med + 1, r);
  Merge(arr, l, med, r);
 }
}
int main()
{
 int data_awal[MAX], data_urut[MAX];
 int i;
 time_t k1, k2;
 printf("Sebelum pengurutan : \n");
 for (i = 0; i < MAX; i++)
 {
  srand(time(NULL) * (i + 1));
  data_awal[i] = rand() % 100 + 1;
  printf("%d ", data_awal[i]);
 }
 printf("\nSetelah pengurutan : \n");
 for (i = 0; i < MAX; i++)
 data_urut[i] = data_awal[i];
 time(&k1);
 MergeSort(data_urut, 0, MAX - 1);
 time(&k2);
 for (i = 0; i < MAX; i++)
 printf("%d ", data_urut[i]);
 printf("\nWaktu = %ld\n", k2 - k1);
}



Algoritma Dan Struktur Data C++ BAB XII (Quick Sort Dan Merge Sort)

 


Quick Sort & Merge Sort

printf("Hallo Para Programmer!!"); 

printf("Disini Saya Akan Membahas Mengenai Algoritma Pengurutan Dalam Bahasa C/C++"); 

printf("Algoritma Pengurutan Yang Saya Bahas Adalah Quick Sort Dan Merge Sort");

printf("Terus Ikuti Blog Ini Untuk Mendapatkan Artikel Bermanfaat Selanjutnya yah");

printf("Selamat Belajar!!");


1. Algoritma Quick Sort 

    Metode quick sort dikembangkan oleh C.A.R Hoare.Secara garis besar metode ini dijelaskan sebagai berikut. Misalnya kita ingin mengurutkan data A yang mempunyai N elemen. Kita pilih sembarang elemen dari data tersebut, bisanya elemen pertama, misalnya X. kemudian semua elemen tersebut disusun dengan menempatkan X pada posisi J sedemikian rupa sehingga elemen ke 1 sampai ke J 1 mempunyai nilai lebih kecil dari X dan elemen J+1sampai ke N mempunyai nilai lebih besar dari X. Sampai saat ini kita sudah mempunyai dua sub data (kiri dan kanan). Langkah berikutnya diulang untuk setiap sub data.



2. Algoritma Merge Sort 
    Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data mu.Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel. 
    Algoritma merge sort membagi tabel menjadi dua tabel yang sama besar. Masing-masing tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk membentuk tabel yang terurut.Implementasi dasar dari algoritma merge sort memakai tiga buah tabel, dua untuk menyimpan elemen dari tabel yang telah di bagi dua dan satu untuk menyimpan elemen yang telah terurut.Namun algoritma ini dapat juga dilakukan langsung pada dua tabel, sehingga menghemat ruang atau memori yang dibutuhkan. 
    Algoritma Merge umumnya memiliki satu set pointer p0..n yang menunjuk suatu posisi di dalam satu set daftar L0..n .Pada awalnya mereka menunjuk item yang pertama pada setiap daftar. Algoritmanya sebagai berikut:
Selama p0..n masih menunjuk data yang di dalam sebagai pengganti pada akhirnya: 
- Melakukan sesuatu dengan data item yang menunjuk daftar mereka masing masing. 
- Menemukan pointers points untuk item dengan kunci yang paling rendah; membantu salah satu pointer untuk item yang berikutnya dalam daftar

CONTOH : 
Contoh penerapan atas sebuah larik sebagai data sumber yang akan diurutkan {3, 9, 4, 1, 5, 2} adalah sebagai berikut: 
- Larik tersebut dibagi menjadi dua bagian, {3, 9, 4} dan {1, 5, 2} 
- Kedua larik kemudian diurutkan secara terpisah sehingga menjadi {3, 4, 9} dan {1, 2, 5} 
- Sebuah larik baru dibentuk yang sebagai penggabungan dari kedua larik tersebut {1}, sementara nilai-nilai dalam masing larik {3, 4, 9} dan {2, 5} (nilai 1 dalam elemen larik ke dua telah dipindahkan ke larik baru) 
- langkah berikutnya adalah penggabungan dari masing-masing larik ke dalam larik baru yang dibuat sebelumnya.



Contoh Program Tentang Bubble Sort dan Shell sort

 


1. Bubble sort secara ascending

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define MAX 20

void BubbleSort(int arr[])

{

 int i, j, temp;

 for (i = 0; i < MAX - 1; i++)

 {

  for (j = 0; j < MAX - i - 1; j++)

  {

   if (arr[j] > arr[j + 1])

   {

    temp = arr[j + 1];

    arr[j + 1] = arr[j];

    arr[j] = temp;

   }

  }

 }

}

int main()

{

 int data_awal[MAX], data_urut[MAX];

 int i;

 time_t k1, k2;

 printf("Sebelum pengurutan : \n");

 for (i = 0; i < MAX; i++)

 {

  srand(time(NULL) * (i + 1));

  data_awal[i] = rand() % 100 + 1;

  printf("%d ", data_awal[i]);

 }

 printf("\n\nSetelah pengurutan : \n");

 for (i = 0; i < MAX; i++)

  data_urut[i] = data_awal[i];

 time(&k1);

 BubbleSort(data_urut);

 time(&k2);

 for (i = 0; i < MAX; i++)

  printf("%d ", data_urut[i]);

 printf("\n\nWaktu = %ld\n", k2 - k1);

}




2. Shell sort secara ascending
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#define MAX 20
void ShellSort(int arr[])
{
 int i, jarak, temp;
 bool did_swap = true;
 jarak = MAX;
 while (jarak > 1)
 {
  jarak = jarak / 2;
  did_swap = true;
  while (did_swap)
  {
   did_swap = false;
   i = 0;
   while (i < (MAX - jarak))
   {
    if (arr[i] < arr[i + jarak])
    {
     temp = arr[i];
     arr[i] = arr[i + jarak];
     arr[i + jarak] = temp;
     did_swap = true;
    }
    i++;
   }
  }
 }
}
int main()
{
 int data_awal[MAX], data_urut[MAX];
 int i;
 time_t k1, k2;
printf("-------------------------------------------------------------------\n");
printf("Program Shell Sort Secara Descending\n");
printf("-------------------------------------------------------------------\n\n");
printf("Data Kamu Sebelum pengurutan : \n");
for(i=0; i<MAX; i++){
  srand(time(NULL) * (i + 1));
  data_awal[i] = rand() % 100 + 1;
  printf("%d ", data_awal[i]);
}
printf("\n\nData Kamu Setelah pengurutan : \n");
for(i=0; i<MAX; i++)
data_urut[i] = data_awal[i];
time(&k1);
ShellSort(data_urut);
time(&k2);
for(i=0; i<MAX; i++)
printf("%d ", data_urut[i]);
printf("\n\nWaktu = %ld\n", k2-k1);
}





Algoritma Dan Struktur Data C++ BAB XI (Bubble Sort Dan Shell Sort)


Bubble Sort Dan Shell Sort

printf("Hallo Para Programmer!!"); 

printf("Disini Saya Akan Membahas Mengenai Algoritma Pengurutan Dalam Bahasa C/C++"); 

printf("Algoritma Pengurutan Yang Saya Bahas Adalah Bubble Sort Dan Shell Sort");

printf("Terus Ikuti Blog Ini Untuk Mendapatkan Artikel Bermanfaat Selanjutnya yah");

printf("Selamat Belajar!!");

1. Algoritma Bubble Sort
    Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.
    Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung.
    Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma ini termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran dari algoritma bubble sort. Misalkan kita mempunyai sebuah array dengan. Elemen-elemen “4 2 5 3 9”. Proses yang akan terjadi apabila digunakan algoritma bubble sort adalah sebagai berikut.
Pass pertama
(4 2 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 4 3 5 9)
Pass kedua
(2 4 3 5 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
Pass ketiga
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)

    Dapat dilihat pada proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut. Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga dilakukan karena definisi terurut dalam algoritma bubble sort adalah tidak ada satupun penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk memverifikasi keurutan array tersebut.

2. Algoritma Shell Sort
    Metode shell sort dikembangkan oleh Donald L. Shell pada tahun 1959. Dalam metode ini jarak antara dua elemen yang dibandingkan dan ditukarkan tertentu. Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah pertama, kita ambil elemen pertama dan kita bandingkan dan kita bandingkan dengan elemen pada jarak tertentu dari elemen pertama tersebut. Kemudain elemen kedua kita bandingkan dengan elemen lain dengan jarak yang sama seperti jarak yang sama seperti diatas. Demikian seterusnya sampai seluruh elemen dibandingkan. Pada langkah kedua proses diulang dengan langkah yang lebih kecil, pada langkah ketiga jarak tersebut diperkecil lagi seluruh proses dihentikan jika jarak sudah sama dengan satu.

Contoh dari proses pengurutan dengan menggunakan metode Shell Sort :



Contoh Program C++ Tentang Insertion Sort Dan Selection Sort

 


Insertion Sort

1. Insertion Sort Secara Ascending

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#define MAX 20

void InsertionSort(int arr[]) 

{

 int i, j, key; 

 for (i=1; i<MAX; i++) 

 { 

  key = arr[i]; 

  j = i-1;  

  while(j>=0 && arr[j]>key)

  { 

   arr[j+1] = arr[j]; 

   j--; 

  }

  arr[j+1] = key; 

 }

}

int main ()

{

 int data_awal[MAX], data_urut[MAX]; 

 int i; 

 time_t k1, k2;

 printf("Data sebelum pengurutan : \n"); 

 for(i=0; i<MAX; i++)

 {

  srand(time(NULL) * (i+1)); 

  data_awal[i] = rand() % 100 + 1; 

  printf("%d ", data_awal[i]); 

 }

 printf("\n\nData setelah pengurutan : \n"); 

 for(i=0; i<MAX; i++) 

 data_urut[i] = data_awal[i]; 

 time(&k1); 

 InsertionSort(data_urut); 

 time(&k2); 

 for(i=0; i<MAX; i++)

 printf("%d ", data_urut[i]);

 printf("\n\nWaktu = %ld\n", k2-k1); 

}



2. Selection Sort Secara Ascending

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define MAX 20

void SelectionSort(int arr[])

{

 int i, j, temp, min, min_id;

 i = 10;

 while (i < MAX - 1)

 {

  min_id = i;

  min = arr[i];

  for (j = i + 1; j < MAX; j++)

   if (arr[j] < min)

   {

    min = arr[j];

    min_id = j;

   }

  temp = arr[min_id];

  arr[min_id] = arr[i];

  arr[i] = temp;

  i++;

 }

}

main()

{

 int data_awal[MAX], data_urut[MAX];

 int i;

 time_t k1, k2;

 printf("Sebelum pengurutan : \n");

 for (i = 0; i < MAX; i++)

 {

  srand(time(NULL) * (i + 1));

  data_awal[i] = rand() % 100 + 1;

  printf("%d ", data_awal[i]);

 }

 printf("\n\nSetelah pengurutan : \n");

 for (i = 0; i < MAX; i++)

  data_urut[i] = data_awal[i];

 time(&k1);

 SelectionSort(data_urut);

 time(&k2);

 for (i = 0; i < MAX; i++)

  printf("%d ", data_urut[i]);

 printf("\n\nWaktu = %ld\n", k2 - k1);

}



Algoritma Dan Sruktur Data C++ BAB X (Insertion sort dan Selection sort)

 

  

Insertion Sort & Selection Sort

printf("Hallo Para Programmer!!"); 

printf("Disini Saya Akan Membahas Mengenai Algoritma Pengurutan Dalam Bahasa C/C++"); 

printf("Algoritma Pengurutan Yang Saya Bahas Disini Adalah Insertion Sort Dan Selection Sort");

printf("Terus Ikuti Blog Ini Untuk Mendapatkan Artikel Bermanfaat Selanjutnya yah");

printf("Selamat Belajar!!");


1. Algoritma Insertion Sort

Salah satu algoritma sorting yang paling sederhana adalah insertion sort. Algoritma insertion sort pada dasarnya memilah data yang akan urutkan menjadi 2 bagian, yang belum diurutkan dan yang sudah diurutkan. Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tak ada lagi elemen tersisa pada bagian array yang belum diurutka.

Metode insection sort merupakan metode yang mengurutkan bilangan- bilangan yang telah terbaca, dan berikutnya secara berulang akan menyisipkan bilangan-bilangan dalam array yang belum terbaca ke sisi kiri array yang telah terurut. Kita mengambil pada bilangan yang paling kiri. Bilangan tersebut dikatakan urut terhadap dirinya sendiri karena bilangan yang di bandingkan baru 1.

 3

 10

 4

 6

 8

 9

 7

 2

 1

 5

Cek bilangan ke 2 (10) apakah lebih kecil dari bilangan yang ke 1(3).Apabila lebih kecil maka ditukar. Tapi kali ini bilangan ke 1 lebih kecil dari bilangan ke 2 maka tidak ditukar.

  3

10

 4

 6

 8

 9

 7

 2

 1

 5


  3  

 10

 4

 6

 8

 9

 7

 2

 1

 5

 

Pada kotak warna abu2 sudah dalam keadaan terurut. Kemudian membandingkan lagi pada bilangan selanjutnya yaitu bilangan ke 3 (4). Bandingkan dengan bilangan yang ada di sebelah kirinya. Pada kasus ini bilangan ke 2 bergeser dan digantikan bilangan ke 3.

  3  

 10 

  4

  6

  8

  9

  7

  2

  1

  5


  3  

 10 

  4

  6

  8

  9

  7

  2

  1

  5

Lakukan langkah seperti di atas pada bilangan selanjutnya. 4 bilangan pertama sudah dalam keadaan terurut relatif. Ulangi proses tersebut sampai bilangan terakhir disisipkan.

  3  

  4  

 10  

  6  

  8  

  9  

  7  

  2  

  1  

  5 


  3  

  4  

  6  

 10  

  8  

  9  

  7  

  2  

  1  

  5 


  3  

  4  

  6  

  8  

 10  

  9  

  7  

  2  

  1  

  5 


  3  

 4   

  6  

  8  

  9  

 10  

  7  

  2  

  1  

  5 


  3  

 4   

  6  

  7  

  8  

  9  

 10  

  2  

  1  

  5 


  2 

  3  

  4  

  6  

  7  

  8  

  9  

 10  

  1  

  5 


  1 

  2  

  3  

  4  

  6  

  7  

  8  

  9  

 10  

  5 


  1 

  2  

  3  

  4  

  5  

  6  

  7  

  8  

  9  

 10 


2. Algoritma Selection Sort

Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.

Cek seluruh array dan cari array yang mempunyai nilai terkecil index 8 (1).

Setelah ketemu tukar dengan array yang berada di pojok kiri (3).


3

10

4

6

8

9

7

2

1

5


3

10

4

6

8

9

7

2

1

5

Setelah di tukar bagian yang berwarna abu-abu merupakan index yang telah terurutkan.

     1     

10

4

6

8

9

7

2

3

5


Kemudian cari bilangan terkecil selanjutnya (selain di kotak abu-abu) yaitu bilangan 2 dan tukar dengan sebelah array yang telah terurutkan.

     1     

10

4

6

8

9

7

2

3

5


     1     

     2     

4

6

8

9

7

2

3

5

Dua array sudah terurutkan. Kemudian ulangi langkah di atas dan lakukan langkah yang sama yaitu pilih terkecil dan tukar dengan sebelah array yang sudah terurutkan.

     1    

     2    

     4    

     6    

     8    

     9    

     7    

     10   

     3    

     5    



     1    

     2    

    3    

     6    

     8    

     9    

     7    

     10   

     4     

     5    



     1    

     2    

     3     

     6    

     8    

     9    

     7    

     10   

     4     

     5    



     1    

     2    

     3    

     4     

     8    

     9    

     7    

     10   

     6     

     5    



     1    

     2    

     3    

     4    

     8    

     9    

     7    

     10   

     6     

     5    



     1    

     2    

     3     

     4     

     5     

     9    

     7    

     10   

     6

     8     



     1    

     2    

     3     

     4     

     5     

     9    

     7    

     10   

     6     

     8     



     1    

     2    

     3     

     4     

     5     

     6     

     7    

     10   

     9     

     8    



     1    

     2    

     3     

     4     

     5     

     6     

     7    

     10   

     9     

     8     



     1    

     2    

     3     

     4     

     5     

     6     

     7    

     10   

     9     

     8     



     1    

     2    

     3     

     4     

     5     

     6     

     7    

     8    

     9     

     10   



     1    

     2    

     3     

     4     

     5     

     6     

     7    

     8   

     9     

     10    


Categories

Contact Us

BAYU
+62 896-2690-9619
Kampar, Riau, Indonesia