Minggu, 16 Desember 2018

SORTING & SEARCHING

Sorting adalah sebuah fungsi yang digunakan untuk mengurutkan beberapa data.

Dalam pemograman pada bahasa C memiliki cara untuk mengurutkan data. Konsep sorting dapat memudahkan untuk mengurutkan data acak. Macam-macam metode sorting dalam bahasa C antara lain :
1. Bubble Sort

Bubble sort adalah metode pengurutan data dengan cara melakukan penukaran data tepat di sebelahnya secara terus menerus sampai dipastikan dalam satu iterasi tidak ada lagi perubahan. Jika tidak ada perubahan maka data sudah terurut.

Proses pengurutan Bubble Sort

Berikut merupakan proses pengurutan Bubble Sort dengan array "7 9 4 1 5".

Proses pertama :

(7 9 4 1 5) menjadi (7 9 4 1 5)
(7 9 4 1 5) menjadi (7 4 9 1 5)
(7 4 9 1 5) menjadi (7 4 1 9 5)
(7 4 1 9 5) menjadi (7 4 1 5 9)

Proses kedua :

(7 4 1 5 9) menjadi (4 7 1 5 9)
(4 7 1 5 9) menjadi (4 1 7 5 9)
(4 1 7 5 9) menjadi (4 1 5 7 9)
(4 1 5 7 9) menjadi (4 1 5 7 9)

Proses ketiga :

(4 1 5 7 9) menjadi (1 4 5 7 9)
(1 4 5 7 9) menjadi (1 4 5 7 9)
(1 4 5 7 9) menjadi (1 4 5 7 9)
(1 4 5 7 9) menjadi (1 4 5 7 9)

contoh :

#include <stdio.h>

int main()
{
    int i,j,n,t, A[100];
    printf("Masukkan banyak data : "); scanf("%d", &n);

    for(i=1; i<=n; i++)
    {
        printf("Data %d = ", i); scanf("%d", &A[i]);
    }

    for(i=1; i<=(n-1); i++)
    {
        for(j=n; j>=(i+1); j--)
        {
            if(A[j-1]>A[j])
            {
                t=A[j-1];
                A[j-1] = A[j];
                A[j] = t;
            }
        }
    }

    printf("\nUrutannya adalah : ");
    for(i=1; i<=n; i++)
    {
        printf("%d ", A[i]);
    }
    printf("\n");
    return 0;
}

2. Insertion Sort

Insertion Sort merupakan metode pengurutan data dengan menempatkan setiap elemen data pada posisinya dengan cara melakukan perbandingan. Metode ini sama seperti mengurutkan karti, dimana jika suatu kartu dipindah tempatkan posisinya, maka kartu lainnya akan bergeser sesuai kondisi pemindahan kartu tersebut.

Proses pengurutan Insertion Sort :

  2    3    9    6    4    5    1
  2    3    9    6    4    5    1
  2    3    9    6    4    5    1
  2    3    6    9    4    5    1
  2    3    4    6    9    5    1
  2    3    4    5    6    9    1
  1    2    3    4    5    6    9  

contoh :


#include <stdio.h>


int main ()
{
    int angka[100];
    int i, j, a, n;

    printf("Masukkan jumlah data : "); scanf("%d", &n);
    printf("Masukkan data :\n");
    for (i = 0; i < n; ++i)
    {
        printf("Data ke-%d = ", i+1); scanf("%d", &angka[i]);
    }

    for (i = 0; i < n; ++i)
    {
        for (j = i + 1; j < n; ++j)
        {
            if (angka[i] > angka[j])
            {
                a = angka[i];
                angka[i] = angka[j];
                angka[j] = a;
            }
        }
    }

    printf("\nSorting dalam bentuk descending\n");
    for (i = 0; i < n; ++i)
    {
        printf("%d\t", angka[i]);
    }
    return 0;
}

3. Selection Sort

Selection Sort merupakan kombinasi antara sorting dan searching. Metode ini sangat sederhana karena setiap proses akan dicari elemen-elemen yang belum diurutkan yang terkecil (ascending) atau terbesar (descending) yang akan ditukarkan ke posisi yang tepat di dalam array.

Proses pengurutan Selection Sort :

  7    5    1    9    2    6    4  
  1    5    7    9    2    6    4
  1    2    7    9    5    6    4
  1    2    4    9    5    6    7
  1    2    4    5    9    6    7
  1    2    4    5    6    9    7
  1    2    4    5    6    7    9 
  1    2    4    5    6    7    9   

contoh :


#include <stdio.h>


int main()
{
    int a,b,temp,total;
    int data[20];
    printf("Masukkan jumlah data = ");scanf("%d",&total);
    for(a=0;a<total;a++)
    {
        printf("masukkan nilai pada INDEX ke %d = ",a+1);scanf("%d",&data[a]);
    }

    for(a=0;a<total-1;a++)
    {
        for(b=a+1;b<total;b++)
        {
            if(data[a]>data[b])
            {
                temp=data[b];
                data[b]=data[a];
                data[a]=temp;
            }
        }
    }

    printf("\n\nData setelah diurut : ");
    for(a=0;a<total;a++)
    {
        printf("%d  ",data[a]);
    }
    printf("\n");

    return 0;
}

4. Counting Sort

Counting sort adalah suatu metode pengurutan dimana dalam proses pengurutannya yaitu dengan menentukan posisi elemen suatu nilai. Jadi pada prosesnya dibutuhkan suatu rentang nilai yang sudah diketahui dan pada prosesnya menentukan jumlah nilai yang nilainya lebih kecil dari elemen lain agar dapat menentukan posisi nilai tersebut. Proses Counting Sort ini terbilang efisien dan efektif serta prosesnya tidak memakan waktu lama.

contoh :

#include <stdio.h>

int main()
{
    int L[20], temp, i, j, n=6, idx;
    printf("Masukkan 6 Element : \n");

    for(i=0; i<n; i++)
    {
        printf("Masukkan Bilangan : "); scanf("%d", &L[i]);
    }

    printf("\nSebelum di sorting : ");
    for(i=0; i<n; i++)
    {
        printf("%d ", L[i]);
    }

    for(i=0; i<(n-1); i++)
    {
        idx=i;
        for(j=i+1; j<n; j++)
        {
            if(L[j]<L[idx])
            {
                idx=j;
            }
        }
        temp=L[i];
        L[i]=L[idx];
        L[idx]=temp;
    }

    printf("\nSetelah Sorting : ");
    for(i=0; i<n; i++)
    {
        printf("%d ", L[i]);
    }
    printf("\n");
    return 0;
}

CLOUD

Cloud Computing atau komputasi awan adalah proses pengolahan daya komputasi (baik CPU, RAM, Network Speeds, Software, OS maupun Storage) melalui jaringan (biasanya lewat internet). Jadi transfer data yang terjadi bukan secara fisik dan sumber daya komputasi yang dimiliki berada di lokasi pengguna yang memakai layanannya.

Jenis - jenis cloud computing dapat dibedakan menjadi berikut :

1. Public Cloud
     Public Cloud adalah Cloud Computing Service yang dapat diakses dengan publik. Public Cloud biasanya digunakan untuk mengunakan service website tersebut. Contoh Public Cloud Service adalah: Amazon, Facebook, Google dan lain-lain yang dapat diakses oleh publik untuk digunakan servicenya, Public Cloud juga memiliki kelebihan yaitu :
- Lebih Cost Effective(Lebih Murah)
-Server dimaintenance oleh provider
-Lokasi flexible

2.Private Cloud
     Private Cloud adalah Cloud Computing Service yang dapat diakses secara private. Private Cloud biasanya digunakan dalam organisasi/perusahaan. Private Cloud juga mempunyai server yang biasa terletak didalam lokasi organisasi/perusahaan tersebut juga. Kelebihan Private Cloud adalah :
-Lebih aman
-lebih flexible untuk digunakan oleh organisasi dan perusahaan.



FILE PROCESSING

File menurut wikipedia yaitu identitas dari data yang disimpan di dalam berkas sistem yang dapat diakses dan diatur oleh pengguna. Penggunaan dan pengoperasian file pasti selalu dibutuhkan terutama bagi seorang programmer untuk mengolah sebuah data pada file.



Terdapat 3 mode utama pada file yaitu r (read), w (write), dan a (append). Operasi utama pada file diantaranya membaca, menutup, menghapus, dan mengubah.

Membuat file :

Untuk membuat sebuah file yang kita perlukan hanyalah menggunakan fungsi FILE yang dilanjutkan pointer nama variabel file tersebut, FILE *nama variabel;. contohnya yaitu :

FILE *fp;

Membuka file :

Untuk membuka sebuah file dibutuhkan sebuah fungsi fopen, directory serta nama file dan mode file,  nama variabel file = fopen("nama file", "mode file");. Contohnya :

fp = fopen("data.txt", "r");

Menulis data ke file :

Terdapat banyak fungsi untuk menulis sebuah file diantaranya ada fungsi fputs ada fprintf. Untuk menggunakan fputs deklarasinya yaitu fputs(namavaariabel,namafile);. Sedangkan untuk menggunakan fprintf deklarasinya yaitu fprintf(namafile, "kontanta char", nama variabel);.

Contohnya :

fputs(data,fp);
fprintf(fp, "%s", data);

ARRAY N POINTER

ARRAY

Array adalah sekumpulan variable yang bertipe data sama yang dibedakan oleh indeks. Suatu Array mempunyai jumlah komponen yang banyaknya tetap. Banyaknya komponen dalam suatu larik ditunjukan oleh suatu indek untuk membedakan variabel yang satu dengan variabel yang lainnya. Dalam bahasa C. 

Variabel array dalam Borland C++, dapat digolongkan menjadi Dua buah dimensi.

  •  Array Satu Dimensi
  •  Array Dua Dimensi

contoh array satu dimensi :

#include <stdio.h> 
int main()
     int n; 
     int angka[100]; 
     printf("Masukkan banyaknya bilangan yang diinginkan : "); 
     scanf("%d", &n); fflush(stdin); 
     for(int i=0; i<n; i++)
     { 
            printf("Masukkan angka ke %d : ", i+1); 
            scanf("%d", &angka[i]); fflush(stdin); 
      } 
      for(int i=0; i<n; i++)
      { 
            printf("Angka ke %d : %d\n", i+1, angka[i]); 
      } 
 getchar(); 
 return 0; 
}
contoh array dua dimensi :

#include <stdio.h> 
int main()
{
      int n; 
      int nama[100][100]; 
      printf("Masukkan banyaknya nama yang diinginkan : "); 
      scanf("%d", &n); fflush(stdin); 
      for(int i=0; i<n; i++)
      { 
            printf("Masukkan nama ke %d : ", i+1); 
            scanf("%[^\n]", &nama[i]); fflush(stdin); 
      } 
      for(int i=0; i<n; i++)
      { 
          printf("Nama ke %d : %s\n", i+1, nama[i]); 
      } 
 getchar(); 
return 0; 
}
POINTER

Pointer adalah suatu variabel yang menunjuk ke alamat memory variabel yang lainnya. Suatu pointer bukan berisi dengan suatu nilai data seperti halnya pada variabel biasa, variabel pointer berisi dengan suatu alamat. Untuk mendeklarasikan variabel pointer kita menggunakan tanda asterik / bintang (*) didepan variabel yang di deklarasikan pada tipe data tertentu. Tanda ini juga dapat dipakai untuk mengakses nilai dari variabel yang telah ditunjuk. Untuk mendapatkan alamat dari variabel pointer kita menggunakan tanda &
contoh pointer :

#include <stdio.h>
main()
{
     int *ptr; 
     int k; 
      k=7; 
      printf("Isi variabel k = %d",k); 
      printf("\nAlamat variabel k = %d",&k); 
      printf("\nAlamat variabel *ptr = %d",&ptr); 
      printf("\nIsi variabel *ptr = %d",ptr); ptr=&k; 
      printf("\nAlamat variabel *ptr = %d",&ptr); 
      printf("\nIsi variabel *ptr = %d",ptr); 
      printf("\nIsi dari alamat %d = %d",ptr,*ptr); 
      printf("\n"); 
}

REPETITION

Repetition dalam programming adalah suatu proses pengulangan yang dilakukan berkali kali hingga mencapai kondisi yang telah diberikan. Contoh yang paling sering digunakan dalam PR dan tugas adalah menerima input hingga mencapai angka yang kita input pada awalnya.
dalam bahasa C kita memiliki beberapa cara untung repetition yaitu :
1. for
2. while
3.do while
berikut contoh programnya

FOR         

Contoh program:
                
               Program for untuk mencetak "Hello World" sebanyak 5 kali

              
 #include <stdio.h>
                
        int main() {

            for(int i=0; i<5; i++) {

                printf("%d. Hello World\n", i); 
                // diberi i agar tahu i keberapa 
            }
            return 0;
        } 

WHILE

 contoh program:

               Program for untuk mencetak "Hello World" sebanyak 5 kali
                
   #include <stdio.h>
                
        int main() {
            int i = 0;
            while(i < 5 ) {
                printf("%d. Hello World\n", i); 
                // diberi i agar tahu i keberapa
                i++; 
            }
            return 0;
        } 
DO WHILE

contoh program:
                
               Program for untuk mencetak "Hello World" sebanyak 5 kali
                
              #include <stdio.h>
                
        int main() {
            int i = 0;
            do {
                printf("%d. Hello World\n", i); 
                // diberi i agar tahu i keberapa
                i++; 
            } while(i < 5 ); 
            return 0;
        }