Monday, December 17, 2018

Searching dan Sorting

Searching dan Sorting

searching dan sorting adalah komponen dalam pemograman yang sangat dibutuhkan. didalam suatu perusahaan atau aplikasi, data yang ada didalamnya itu sangatlah banyak.nah disinilah peran dari searching dan sorting untuk membantu mencari data dan mengatur data.


Searching dari namanya sendiri mempunyai arti (mencari), mempunyai fungsi untuk mencari suatu data didalam sebuah coding atau storage.

ada 3 tipe searching :
1. linear search
2. Binary search
3. Interpolation search

Linear search adalah program searching yang paling mudah dipahami dan paling sederhana. kelebihan dari linear search ini adalah apabila data-data yang diinginkan berada diawal sehingga prosesnya berlangsung cepat. tetapi apabila data yang diinginkan berada diakhir, prosesnya berlangsung lama.


n : total record of array x.
For each x[i], 0 £  i £ n-1, check whether x[i] = key.
If x[i] = key, then the searched data is found in index=i. Finished.
If x[i] ¹ key, then continue searching until the last data which is i = n-1.
If i= n-1 and x[i] ¹ key, it means the data is not exist in the list, and set index = -1. 
Finished




Binary search adalah program searching yang dapat digunakan jika data yang ingin dicari sudah berurutan(dapat dilakukan sorting sebelum menggunakan binary search). kelebihannya itu binary search hanya membutuhkan proses yang relatif cepat. kekurangannya, binary search lebih rumit dan tidak semudah linear search untuk memahaminya 



n : total record of array x.
left=0,  right= n-1.
mid =(int) (left + right)/2. 
If x[mid]=key then index = mid. Finished.
If x[mid]<key then left = mid+1.
If x[mid]>key then right = mid-1.
If left £ right and x[mid] ¹ key, then repeat point 3.
If x[mid] ¹ key then index = -1. Finished.



interpolation search program searching untuk mencari nilai key yang ada dalam array diindeks yang diperintahkan oleh nilai-nilai kunci. tipe searching ini didasari dari cara mencari nomor telepon pada buku telepon.


Looking for a mid value by entering into the interpolation formula
If data[mid] > sought data, high = mid – 1
If data[mid] < sought data, low = mid + 1

It will be looped until the requirements point ** are not met then return (-1), data not found


Sorting

sorting adalah salah satu bagian program yang berfungsi untuk mengurutkan data sesuai dengan apa yang diinginkan(ascending atau descending).

sorting dibagi 2 :
1. simple
2. advance

simple sendiri ada 3 jenis caranya :
1. bubble sort
2. selection sort
3. insertion sort

bubble sort
 merupakan cara sorting yang paling mudah, yaitu dengan mengurutkan data-data dengan melakukan pengecekan terhadap setiap data dari awal ke paling akhir yang kemudian menempatkan data ditempat yang tepat.


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
merupakan cara sorting dengan mengurutkan data melalui proses pencarian data terbesar dan terkecil baru kemudian memindahkan ketempat yang tepat.


for(i=0; i<N-1; i++){      /* N=number of data */
  Set idx_smallest equal to i
  for(j=i+1; j<N; j++){
  If array[ j ] < array [ idx_smallest ] then idx_smallest = j
    }
  Swap array[ i ] with array[ idx_smallest ]
}



Insertion sort
merupakan cara sorting dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada. cara ini bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan.


for(i=1; i<n; i++) {
     x = A[i], insert x to its suitable place between A[0] and A[i-1].
}

Advance ada 3 cara :
1. Quick sort
2. Merge sort

Quick Sort
merupakan cara sorting dengan menjadikan salah satu data sebagai patokan atau pivot. setelah
menentukan pivot baru mulai mengurutkan data.


void QuickSort(int left, int right)
{
      if(left < right){
            //arrange elements  R[left],...,R[right] that
            //producing new sequence:
            R[left],...,R[J-1] < R[J] and R[J+1],...,R[right] > R[J].
            QuickSort(left, J-1);
            QuickSort(J+1, right);
       }
}


Merge Sort
merupakan cara sorting dengan cara membagi data menjadi beberapa kelompok, kemudian didalam
kelompok itu diurutkan (ascending atau descending) lalu di gabung dengan kelompok lain dan
diurutkan, hal ini diulang sampai semua kelompok-kelompok kecil itu menjadi satu kelompok.


sekian dari saya tentang searching dan sorting, bila ada kekurangan atau kesalahan dapat dibantu dengan menulis dikolom komentar
semoga bermanfaat

File Processing

FILE PROCESSING

File processing adalah salah satu fungsi dalam bahasa pemograman yang berfungsi untuk menulis, membaca, atau menyimpan suatu data dalam bentuk file.
file processing juga dapat mengubah apa yang ada didalam file.

untuk menggunakan file processing, harus dimulai dengan "fopen()"

dalam file processing terdapat beberapa kode :
1. "r" berfungsi membuka file untuk dibaca
2. "w" berfungsi membuat file untuk ditulis
3. "a" berfungsi untuk membuka file untuk menambahkan data
4. "r+" berfungsi untuk membuka file untuk dibaca / ditulis
5. "w+" berfungsi untuk membuka file untuk dibaca/ tulis
6. "a+" berfungsi untuk membuka file untuk dibaca/ menambahkan data
7. "rb" berfungsi untuk membuka file binary untuk dibaca
8. "wb" berfungsi untuk membuka file binary untuk ditulis

setelah menggunakan file processing ini, didalam codingan harus ditutup dengan fclose()


contoh penulisan file processing :

1. 

size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); 



2.

size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); 

sekian dari saya tentang file processing. bila ada kesalahan atau kekurangan dapat dibantu dengan menulis di kolom komentar
semoga bermanfaat

Cloud Computing

CLOUD COMPUTING

cloud computing adalah sebuah teknologi yang membuat internet menjadi pusat pengelolaan data. orang yang ingin masuk ke dalam cloud harus menggunaan hak aksesnya, yaitu melalui login.

teknologi ini diterapkan ke perusahaan-perusahaan besar di dunia, contohnya google, IBM, telkom, dll.

ada 4 macam cloud:
1. private
2. public
3. community
4. hybrid

private, sesuai dari namanya dalam cloud ini hanya ada satu pengguna. sedangkan public, didalam satu server dapat diakses oleh banyak orang.
hybrid dapat digunakaan untuk public maupun private.
community dapat digunakaan oleh beberapa perusahaan yang mempunyai kesamaan tujuan.

keuntungan :
1. murah
2. fleksibel
3. mudah diakses

kekurangan :
1. tidak bisa dijalankan tanpa koneksi internet
2. sulit untuk membackup data
3. keamanan tidak terlalu baik sehingga privasi pengguna terganggu.


sekian dari saya tentang cloud computing, bila ada kekurangan atau kesalahan dapat dibantu dengan menulis di kolom komentar
semoga bermanfaat.


Function & Recursive

Function 

Function adalah bagian dari prosedur yang dimana mempunyai fungsi untuk mengembalikan nilai.
Ada 2 macam function :
1. Library function
2. User-defined function

library function itu standar function yang sudah terprogram dalam bahasa C, cenderung bersifat global, sedangkan user-defined function itu function yang dibuat sendiri oleh user atau pengguna, sehingga function jenis ini termasuk function non global atau private.

contoh function

#include <stdio.h>
int maximum (int x, int y){
      int max = x;
      if ( y > max)   max = y;
      return max
}
void main () {
     int a,b;
     printf("Input 2 even values : ");
     scanf("%d %d", &a, &b);
     printf("Largest value : %d\n",maximum(a,b));
}
Recursive

recursive adalah sebuah fungsi yang ada di bahasa C. 
recursive berfungsi untuk memanggil dirinya sendiri dan mengembalikannya hanya satu nilai.

contoh :


int Fib(int n) {

   int f;
   if(n==0) f = 0;
      else if(n==1) f = 1;
         else f = Fib(n-2) + Fib(n-1);
   return f;
}

sekian dari saya tentang function dan recursive. bila ada kesalahan atau kekurangan dapat dibantu dengan menulis di kolom komentar.
semoga bermanfaat.

Sunday, December 16, 2018

Pointer dan Array

Pointer


Pointer adalah sebuah variabel yang berisikan alamat dari variabel lain. Pointer berfungsi untuk memanggil nilai dari variabel lain.

Cara menggunakan pointer sangatlah mudah, hanya tinggal menambahkan "*" atau "&" didepan variabel. "*" digunakan untuk memanggil nilai dari alamat variabel lain sedangkan "&" untuk memanggil alamat variabel lain tsb.

contoh :
int x;
int *ptr;
ptr=&x;
*ptr=75;

Array


Array adalah sekumpulan data yang mempunyai tipe data yang sama tetapi disimpan di satu variabel, yang membedakannya adalah indeksnya. dalam array, indeksnya dimulai dari 0. maksimal jumlah indeks dalam array biasanya tergantung dari inisialisasinya.

Array penggunaannya itu sangatlah simpel, cukup menambahkan "[ ]" setelah variabel.
contohnya

int A[5];


angka 5 dalam [ ] diatas menunjukkan jumlah maksimal indeks array dalam variabel A.

Array sendiri dibagi menjadi 3 bagian,
1. Array 1 dimensi
2. Array 2 dimensi
3 Array 3 dimensi

Array 1 dimensi,


#include<stdio.h>
int SIZE = 5;
void main() {
  int i, j;
  int n[SIZE] = {15, 9, 1, 7, 5};
  for( i=0 ; i<= SIZE ; i++) {
  printf("%5d ", n[i]);
  for ( j=1; j<=n[i] ; j++) printf("%c","*");
  printf("\n");
  }

}



Array 2 dimensi,



#include <stdio.h>
void main() {
  int two_dim[3][5] = {1, 2, 3, 4, 5,
        10, 20, 30, 40, 50,
        100, 200, 300, 400, 500};
  int i, j;
  for (i=0; i<3; i++){
  for (j=0; j<5; j++) printf("%6d", two_dim[i][j]);
  printf("\n");
  }

}


Array 3 dimensi



int x[3][2][4] = {{{1,2,3,4}, {5,6,7,8}},
                          {{11,12,13,14}, {15,16,17,18}},
                          {{21,22,23,24}, {25,26,27,28}}
       };  
   void main() {
     int x[4][3][5] = {{{1, 2, 3}, {0, 4, 3, 4}, {1, 2}},
     {{9, 7, 5}, {5, 7, 2}, {9}},       
     {{3, 3, 5}, {2, 8, 9, 9}, {1, 2, 1}},
     {{0}, {1}, {0, 1, 9}}
    };
     printf(“%5d”, x[2][1][3]);
  } 


sekian dari saya tentang pointer dan array. Bila ada kesalahan atau kekurangan dapat membantu saya dengan menuliskannya di kolom komentar.
semoga bermanfaat.





Thursday, October 11, 2018

Bahasa C : Repetition

Bahasa C adalah salah satu bahasa pemograman yang paling diketahui oleh banyak orang. Dalam bahasa C sendiri terdapat banyak perintah, salah satunya adalah perintah repetition. Repetition sesuai dari namanya adalah pengulangan, repetition merupakan perintah atau instruksi dalam bahasa C yang berfungsi untuk mengulang suatu statement. Repetition juga dikenal dengan nama Looping.


Perintah repetition ada 3 jenis :
1. For
2. While
3. Do-while


pada saat ini saya akan membahas tentang perintah repetition jenis For. Repetition For ini digunakan untuk menuliskan jenis pengulangan yang banyaknya sudah pasti atau telah diketahui sebelumnya. Oleh karena itu, kita harus melakukan inisialisasi nilai untuk kondisi awal pengulangan dan juga harus menuliskan kondisi untuk menghentikan proses pengulangan.Untuk penjelasan dari penulisan repetition For sebagai berikut.


for(exp1; exp2; exp3) statement;
or:
for(exp1; exp2; exp3){
  statement1;
  statement2;
  …….
 }
exp1 :  initialization
exp2 :  conditional
exp3 :  increment or decrement

exp1, exp2 and exp3 are optional



salah satu contoh dari repetition For untuk pengulangan dari 1 sampai 10 dan sebaliknya sebagai berikut.


#include<stdio.h>
int main()
{
    int x;
    for( x = 1 ;  x <= 10 ;  x++ ) printf( "%d\n", x );
    return(0);

angka 1 sampai 10,




#include<stdio.h>
int main()
{
    int x;
    for( x = 10 ;  x >= 1 ;  x-- ) printf( "%d\n", x);
    return(0);

angka 10 sampai 1



Repetition For ada yang disebut sebagai Nested Repetition, hal ini terjadi ketika terdapat repetition for didalam suatu perintah yang sebelumnya sudah ada repetition For, singkatnya adalah For didalam For. contohnya adalah sebagai berikut.

int x, y;
for (x=1;x<=5;x++)
     for (y=5; y>=1; y--)
           printf(”%d %d ”,x,y);

Sekian dari saya, bila ada kesalahan dapat diberi tahu dengan menulis di kolom komentar. 
Semoga bermanfaat, Terima Kasih