Tuesday, 18 December 2018

Algorithm & Programming: File Processing

Dalam sebuah program, file digunakan sebagai tempat penampungan data-data selama operasi program. Tanpa file, data yang biasa diolah program hanya akan tersimpan sementara dalam memory dan akan hilang ketika program close. Dengan penyimpanan berbasis file, data yang diolah program dapat tersimpan terus walaupun program telah closed ataupun komputer telah di shutdown.

Definisi file :
File merupakan kumpulan dari record.
Record merupakan kumpulan dari field.
Field merupakan satu blok dari byte.
Byte merupakan kumpulan dari bit.

Text File merupakan file yang pola penyimpanan datanya dalam bentuk karakter.
Binary File merupakan file yang pola penyimpanan datanya di dalam disk berbentuk biner, yaitu seperti bentuk pada memory RAM.

Buffer Area merupakan bagian dari memori yang digunakan sebagai tempat sementara sebelum data dipindahkan ke dalam file.
Syntax : FILE *fp;

Open File
Syntax : FILE *fopen (const char *filename, const char *mode);

Macam-macam mode yang dapat digunakan untuk Open File adalah:

"r"     : membuka file untuk dibaca. Jika file tidak ada, maka akan bernilai NULL
"w"   : membuka file untuk ditulis. Jika sebelumnya sudah ada nama file yang sama, maka akan dilakukan overwrite file dengan file yang baru.
"a"    : membuka file untuk ditambahkan datanya di paling bawah baris terakhir pada nama file yang sebelumnya sudah ada. Jika file tidak ada, maka file baru akan dibuat secara otomatis.
"r+"   : sama dengan "r", namun dapat ditulis juga.
"w+" : sama dengan "w", namun dapat dibaca juga.
"a+"  : sama dengan "a", namun dapat dibaca juga.

Close File
Syntax : fclose(FILE *stream);

Input File : Membaca data dari file.
Syntax : fscanf(FILE *stream, const char *format[, argument]...);

Output File : Menulis data untuk disimpan ke dalam file.
Syntax : fprintf(FILE *stream, const char *format[, argument]...);

Cara mengetahui jika pointer sudah sampai pada end-of-file adalah dengan menggunakan
Syntax : feof(FILE *stream);






Algorithm & Programming: Searching & Sorting

Sorting adalah proses pengurutan data. Dengan sorting, proses pencarian atau searching dapat dilakukan dengan lebih cepat.

Terdapat 2 tipe sorting, yaitu:
- Ascending   : pengurutan dari data terkecil ke data terbesar.
- Descending : pengurutan dari data terbesar ke data terkecil.

Terdapat 2 sorting algorithm, yaitu:

- Internal sorting  :
  Pengurutan terhadap sekumpulan data yang disimpan di dalam memori utama komputer.

- External sorting :
  Pengurutan terhadap sekumpulan data yang disimpan di dalam memori sekunder.
  Hal ini biasanya dilakukan pada data yang memiliki volume besar.

Adapun macam-macam cara melakukan sorting sebagai berikut:

- Bubble Sort :
Merupakan cara melakukan sorting yang paling sederhana, namun kurang efektif jika digunakan untuk mencari data yang memiliki jumlah yang banyak.
Cara bekerjanya adalah dengan membandingkan 1 nilai dengan nilai yang ada di 1 index setelahnya

- Selection Sort :
Cara bekerjanya adalah dengan memilih elemen dengan nilai yang paling rendah dan menukarnya dengan elemen yang terpilih dengan elemen i.
Nilai i dimulai dari 0/1 sampai ke n, di mana n merupakan jumlah total elemen dikurangi 1.

- Insertion Sort :
Cara bekerjanya adalah membagi data yang akan diurutkan menjadi 2 bagian, yaitu yang belum diurutkan dan yang sudah diurutkan. Elemen pertama akan diambil dari bagian yang belum diurutkan dan diletakkan sesuai posisinya pada bagian yang telah diurutkan.

- Quick Sort :
Proses pengurutan ini termasuk ke dalam intermediate sorting.
Pada cara ini, algoritma nya dirumuskan berdasarkan pada pola divide-and-conquer.
Berbeda dengan merge sort, quick sorting hanya mengikuti langkah berikut:
    - Divide
    - Conquer

- Merge Sort :
Proses pengurutan ini termasuk ke dalam intermediate sorting.
Pada cara ini, algoritma nya dirumuskan dalam 3 langkah berpola divide-and-conquer, yaitu:
   - Divide
   - Conquer
   - Kombinasi

Searching adalah proses pencarian suatu data dengan menggunakan keyword tertentu.

Macam-macam algoritma searching, yaitu:

- Linear Search :
Proses searching ini merupakan proses yang paling sederhan, di mana dalam proses searching ini dibandingkan value array nya. Jika sama, maka itu lah data yang dicari.
Dalam proses ini, data tidak perlu diurutkan terlebih dahulu.

- Binary Search :
Proses searching ini dapat digunakan dengan baik pada array yang berjumlah kecil dan tidak berurutan. Namun tidak efektif jika digunakan untuk array yang berjumlah besar

- Interpolation Search :
Proses searching ini hampir sama dengan Binary Search. Analogi untuk proses searching ini adalah ketika kita mencari nama di buku nomor telephone.












 
 


Tuesday, 4 December 2018

Function, Recursion and Cloud Computing

Function adalah implementasi penggunaan module untuk suatu program, di mana program tersebut dibagi-bagi menjadi beberapa module sesuai dengan tugasnya masing-masing.

Function disebut juga sebagai sub-program.

Function di C dibagi menjadi 2, yaitu:
- Library function : function yang telah disediakan dalam suatu library.
- User-defined function : function yang dibuat sendiri oleh pengguna.

Recursive Function adalah suatu proses di mana fungsi memanggil dirinya sendiri.

Contoh:



Cloud Computing adalah pusat penyimpanan atau pengelolaan data dengan mengandalkan teknologi internet. 
Contohnya adalah Google Drive.

3 model pengiriman dalam Cloud Computing:
- Software as a Service (SaaS)
- Platform as a Service (PaaS)
- Infrastructure as a Service (IaaS)

4 model penyebaran dalam Cloud Computing:
- Public cloud
- Private cloud
- Hybrid cloud
- Community cloud