Tuesday, December 18, 2018

Sorting and Searching

SORTING
fungi sorting dalam bahasa C adlah untuk meng-sort atau mengurutkan data dalam suatu variabel.

ada dua tipe sorting yaitu :
- ascending
- descending

Bubble Sort
merupakan proses pengurutan yang secara berangsur-angsur berpindah ke posisi yang tepat karena itulah dinamakan Bubble yang artinya gelembung.
dalam coding:

void Bubble(int *DataArr, int n)
{
    int i, j;
    for(i=1; i<n; i++)
    for(j=n-1; j>=i; j--)
    if(DataArr[j-1] > DataArr[j])
               Swap(&DataArr[j-1],&DataArr[j]);
}
void Bubble(int *DataArr, int n)
{
    int i, j;
    for(i=1; i<n; i++)
    for(j=n-1; j>=i; j--)
    if(DataArr[j-1] > DataArr[j])
               Swap(&DataArr[j-1],&DataArr[j]);
}

Selection Sort
sorting dengan mengurutkan  dan memindahkan data berdasarkan yang terkecil ke terbesar 

Quick sort
mengurutkan data berdasarkan pivot

Merge Sort
mengurutkan data dan memindahkannya dengan membagi-bagi data

SEARCHING
digunakan untuk mencari data dalam bahasa C 

Tipe tipe nya yaitu:
- Binary Search
#include <stdio.h> 
#include <stdlib.h> 
    int main(){ 
    int tabInt[10] = {12,23,29,34,56,60,67,78,84,99}; 
    int i,j,k; 
    int cariData,ketemu; 
    printf("Masukkan data yang dicari = "); 
    scanf("%d",&cariData); 
    i = 0; j = 9;ketemu = 0; 
        while((ketemu == 0) && (i<=j)){ 
            k = (int)(i + j) / 2; 
            if(tabInt[k] == cariData){ 
            ketemu = 1; 
        } 
        else{ 
            if(tabInt[k] > cariData){ 
                j = k - 1; 
            } 
            else{ 
                i = k + 1; 
            } 
        } 
    } 
    if(ketemu==1){ 
        printf("Data %d terdapat pada kumpulan data\n",cariData ); 
    }else{ 
        printf("Data %d tidak terdapat pada kumpulan data\n",cariData ); 
    } 
}
-Linear Search
Proses pencarian Linear Search yaitu pencarian Beruntun yang membandingkan Nilai yang dicari dengan setiap Nilai yang ada di Elemen array secara beruntun pada umum nya ( secara Squence ) 

-Interpolation Search
 pada interpolation search kita akan membagi data menurut rumus sebagai berikut:

Posisi = ( kunci – data[low] / data[high] – data[low] ) * ( high – low ) + low
Contoh Programnya
#include<stdio.h>
int main()
{
  //deklarasi variable
  int A[10], i,j,k,tkr,low,high,pos,tm;
  //proses penginputan data
  for(i=0;i<10;i++)
  {
    printf("data ke-%d:",i+1);
    scanf("%d",&A[i]);
  }
  //Input data yang akan dicari
  printf("Masukkan data yang akan anda cari:");
  scanf("%d",&k);
  //proses pengurutan data
  for(i=0;i<10;i++)
  {
    for(j=i+1;j<10;j++)
    {
        if (A[i]>A[j])
        {
            tkr=A[i];
            A[i]=A[j];
            A[j]=tkr;
        }
    }
  }
  //proses pencarian data
  tm=0;
  high=9;
  low=0;
  do
  {
      pos = ((k - A[low]) / (A[high] - A[low]))*(high-low) + low;
      if (A[pos] == k)
        {
            tm++;
            break;
        }
      if (A[pos] > k)
      high = pos-1;
            else
      if (A[pos] < k)
      low = pos + 1;
  }
  while(k >= A[low] && k <= A[high]);
  if (tm>0)
  {
     printf("data %d yang dicari ada dalam array\n",k);
  }
  //jika tidak ditemukan
  else
  {
     printf("data tidak ditemukan dalam array\n");
  }
 getch();
 return 1;
}

File Processing

pengertian: adalah sebuah proses membuat, menyimpan dan mengakses file

dalam bahasa C , menggunakan fopen();

jenis kode :

1. “r”   Membuka file untuk dibaca
2. “w”  Mencipatakan file untuk ditulis
3. “a”  Membuka file untuk menambahkan data
4. “r+”  Membuka file untuk baca/tulis
5. “w+”  Menciptakan file untuk baca/tulis
6. “a+”  Membuka file untuk baca/menambahkan
7. “rb”    Membuka File (binary) untuk di baca
8. “wb”  Menciptakan file (binary) untuk ditulis

Cloud

apa itu Cloud?
adalah sebuah tools atau sistem yang digunakan untuk menyimpan data yang bisa diakses oleh seseorang atau banyak.
misalnya Google Drive, dropbox
Hasil gambar untuk cloud computing services

FUNCTION & RECURSIVE

Apa itu Function?
sekumpulan kode yang digunakan untuk menjalankan suatu program
Keunggulan:
  1. Dapat digunakan berulang-ulang
  2. Dapat menyelesaikan beberapa masalah
function dibagi menjadi 2 yaitu:
  • Standard libary function
  • Used defined functions
contoh:

int  A(int x, int y)
{
      return x*y;

int main( ){
    printf("%d",pow(2,3 ));
    return 0;
apa itu recursive?
merupakan function yang digunakan untuk memanggil function itu sendiri.
contoh
nt factorial (int x)
{
if (x == 0 || x == 1)
return 1;
else
return x * factorial(x-1);
}
POINTER & ARRAY

Pointer adalah variabel yang menyimpan nilai variabel lain
setiap pointer menggunakan "*"
contoh penggunaan pointer

int a;
int *ptr;
ptr=&a;

contoh syntax
int a;
int *ptr;
int **ptr;
ptr=&a;
printf("%d",ptr);

fungsi array:
array digunakan untuk menghitung banyak value dalam satu variabel
ada beberapa jenis dimensi array misalnya
  • array satu dimensi
contoh : int a[10];

  • array dua dimensi
contoh : int a[10][20];
  • array tiga dimensi
contoh : int a[10][20][15];
Repitition

Pengertian Repitition dan fungsinya:
Repittition adalah metode dalam bahasa C yang digunakan untuk melakukan looping atau pengulangan
ada beberapa cara untuk melakukan ini, tapi saya hanya akan menjelaskan dengan For

For

syntax:

  • for(exp1; exp2; exp3) statement;

atau
  • for(exp1;exp2;exp3){

                statement1;
                statement2;
                .......
}

contoh:

for (int i=0; i<5; i++)
                   printf ("*")

maka akan tercetak : *****

dalam looping, haruslah jelas sehingga tidak terjadi namanya infinite loop