Tuesday, December 18, 2018

Sorting dan Searching

Sorting

Tipe-tipe sorting :
  1. Ascending, yaitu mengurutkan dari nilai terkecil ke nilai terbesar
  2. Descending, yaitu mengurutkan dari nilai terbesar ke nilai terkecil
Simple Sort:
  1. Bubble Sort
  2. Selection Sort
  3. Insertion Sort
Intermediate Sort :
  1. Quick Sort
  2. Merge Sort
Bubble Sort

Membandingkan 2 nilai dengan sebelahnya.

Algorithm:



Selection Sort


Algorithm :

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

Algorithm :


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




































Quick Sort

Algorithm :


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

Merge Sort adalah sorting algoritma yang menggunakan divide-and-conquer algoritma.

Divide yang artinya membagi input data menjadi 2 disjoint subsets
Conquer yang artinya menggabungkan solusi dari setiap subset


Searching

Searching suatu data pada sekumpulan data merupakan proses yang sangat penting. Proses pencarian 
dilakukan untuk mengetahui apakah data yang dicari terdapat pada sekumpulan data yang ada.

Jenis Searching :
1. Sequential / Linear Search
2. Binary Search

Linear/Sequential Search

Linear search dapat dilakukan pada data yang belum teruturu mau pun sudah terurut. Pencarian
dilakukan dengan melakukan penelusuran data satu-persatu kemudian dicocokan dengan data yang 
dicari.

Algorithm : 
1. n : total record of array x.
2. For each x[i], 0 £  i £ n-1, check whether x[i] = key.
3. If x[i] = key, then the searched data is found in index=i. Finished.
4. If x[i] ¹ key, then continue searching until the last data which is i = n-1.
5. 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

Pencarian biner, hanya dapat dilakukan pada data yang sudah terurut. Bila data belum terurut dan 
akan dilakukan pencarian menggunakan metode ini, maka terlebih dahulu harus diurutkan.
Untuk data yang besar metode ini lebih efektif dibandingkan Linear Search

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


Sekian dan terimakasih. Semoga dapat membantu teman-teman :).

Moses Stefano Christofel
moses.christofel@binus.ac.id
skyconnectiva.com
2201754766




File Processing

Files and Streams

Input dan output text dari manapun text berasal dan kemanapun text ditampilkan/disimpan, text dianggap sebagai aliran character (stream of character). Stream character bisa berawal dari keyboard atau file. Tempat penyimpanan file bisa di hardisk, disket atau MMC/SD card dan cara pengaksesan filenya sama saja yaitu:

  • Buat pointer ke struct File
misal : File *pointer_file


  • File dibuka dengan fungsi fopen(namafile,mode)
misal : fopen("namafile.txt", "r")

mode akses file antara lain:
  1. "r" artinya dile hanya untuk dibaca.
  2. "w" artinya buat file baru untuk ditulis.
  3. "a" artinya isi file bisa ditambah
  4. "r+" artinya file bisa ditulis dan dibaca.
  5. "w+" artinya file bisa dibaca dan ditulis. Jika ada file yang sama akan di replace
  6. "a+" artinya file akan dibaca atau ditulis. Jika dile tidak ada file baru akan di buat.

  • File dibaca/ditulis/edit dengan fungsi-fungsi : fputc, fgetc, fputs, fgets, fscanf, fprintf, fseek, putc, getc, putw.
misal : fgetc(pointer_file), fgets(string_buff, Ukuran buff, pointer_file)

  • Close File
int fclose(FILE *stream);

fclose akan return 0 jika sukses, dan EOF jika eror.


Sekian untuk materi nya . Semoga bisa bermanfaat bagi kawan-kawan :)


Moses Stefano Christofel


Structure & Union

Struct

Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang berada dalam satu nama yang sama dan memiliki kaitan satu sama lain. Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri.









Cara mengakses Struct





Local Structure


Nested Structure

Nested Structure adalah data structure di dalam data structure, dengan cara penggunaan tipe structure yang telah dideklarasikan sebelumnya menjadi bagian dari anggota data structure lain.

Array of Structure





Union

Sama seperti struct, union juga dapat menampung beberapa item data yang sama maupun berbeda. Pada umumnya tipe union digunakan untuk menangani dua atau tiga variabel dengan tipe data yang mirip seperti int dan char, float dan double, dll



Sekian untuk materi hari ini. Semoga dapat membantu kalian semua :).

Moses Stefano Christofel
2201754766



Cloud Computing

Komputasi awan (Cloud Computing)

Cloud Computing adalah gabungan pemanfaatan teknologi komputer dan pengembangan berbasis Internet.

Awan adalah metafora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan komputer. Awan (cloud) dalam sebuah cloud computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya.



Cloud Computing merupakan suatu paradigma dimana informasi secara permanen tersimpan di server di internet da tersimpan secara sementara di komputer pengguna. Komputasi awan saat ini merupakan trend teknologi terbaru, dan contoh bentuk pengembangan dari teknologi Cloud Computing ini adalah iCloud.


Manfaat Cloud Computing

  • Skalabilitas, yaitu dengan cloud computing kita bisa menambah kapasitas penyimpanan data kita tanpa harus membeli perlatan tambahan contohnya harddisk, dll.
  • Aksesibilitas, yaitu kita bisa mengakses data kapanpun dan dimanapun kita berada, asal kita terkoneksi dengan internet, sehingga memudahkan kita mengakses data disaat yang penting.
  • Keamanan, yaitu data kita dapat terjamin keamanannya oleh penyedia layanan cloud computing, sehingga bagi perusahaan yang berbasis IT, data bisa disimpan secara aman di penyedia cloud computing.

Masalah yang dihadapi

Komputasi awan merupakan sarana penyimpanan data melalui jaringan internet maka internet wajib bagi pemakai komputasi awan apabila terjadi masalah dalam internet maka akan menyebabkan komputer tersebut menjadi lambat karena proses yang terlalu lama. Masalah lain adalah jika suatu perusahaan menggunakan komputasi awan dalam penyimpanan datanya maka akan sangat tergantung pada vendor (penyedia layanan komputasi awan) karena perusahaan tersebut tidak mempunyai server langsung dalam komputasi awan dan juga apabila vendor mempunyai layanan backup yang buruk atau server pada vendor rusak akan menyebabka kerugian besar pada perusahaan tersebut karena semua data yang tersimpan pada vendor akan mengalami masalah.


Contoh Cloud Computing

  • Google Drive
  • OneDrive
  • Dropbox
  • Dll


Sekian saja mengenai cloud computing. Semoga bermanfaat bagi teman-teman :).

Moses Stefano Christofel
2201754766

Function dan Recursion

Function

Function merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya terpisah dari profram yang memanggilnya. Function merupakan elemen utama dalam bahasa C karena bahasa C sendiri terbentuk dari kumpulan fungsi-fungsi.




Contoh dari Function:



Identifier Scoping

Identifier Scoping :

  1. Local
  2. Global
Local Identifier
  • Identifier yang di declare di sebuah function termasuk parameter
  • Cakupannya terbatas dalam sebuah fungsi
Global Identifier
  • Identifier yang di declare diluar function dan diletakan di paling atas dari sebuah Code
  • Global identifier bisa di declare ulang di dalam subprogram
  • Cakupannya luas 


Passing Parameter
  • Passing parameter by value
  • Passing parameter by location



Recursive

Recursive adalah sebuah function yang dapat memanggil functionnya sendiri

Contoh penggunaan adalah mencari nilai n!(faktorial) dan fibonnaci



Iterative vs Recursive




Sekian pelajaran tentang function dan recursive. Semoga dapat membantu kalian semua :).


Moses Stefano Christofel
2201754766



Pointers dan Arrays

Pointers

Apa itu pointers ?

Pointer adalah suatu variabel yang menunjuk ke alamat memory variabel yang lainnya.


Syntax :
<type> *nama_pointer;

Operator yang paling sering digunakan dalam pointer adalah : *(content of) dan &(address of)

Contoh :


Konsep dari Pointer



Pointer to Pointer

Pointer to pointer adalah sebuah variabel yang menyimpan alamat dari sebuah pointer lain

Syntax :
<type> **pointer_pointer

Contoh :


Konsep dari Pointer to Pointer



Array

Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama.

Nilai-nilai data di suatu larik disebut dengan elemen-elemen larik.

Syntax :
type nilai_array[value_dim];

Contoh:
int A[10];

Array 1 dimensi

Elemen sebuah array dimulai index ke 0


Inisialisasi Array

Array dapat dimasukan nilai-nilainya, array selanjutnya akan bernilai 0 jika tidak di deklarasikan




Assigning Values

Array dapat dijumlahkan oleh sesama array


Contoh penggunaan array yang baik dan benar


Array 2 dimensi

Syntax :
type nama_array[row][column];

Contoh:
int A[3][4]



Sekian saja pelajaran tentang pointer dan array. Semoga dapat membantu agan-agan semua :).


Moses Stefano Christofel
2201754766



Sorting dan Searching

Sorting Tipe-tipe sorting : Ascending, yaitu mengurutkan dari nilai terkecil ke nilai terbesar Descending, yaitu mengurutkan dari ni...