Algoritma dan Pemrogramman (10)

Pada pertemuan ini, kami hanya me-review materi-materi yang sudah lewat. Kami diberikan berbagai contoh codingan kasus yang berisi semua materi-materi yang sudah lewat, seperti File Read/Write, Struct, Function, dsb.

Semua codingan-codingannya bisa ditemukan di situs http://a-l-g-o-r-i-t-m-a.blogspot.co.id/

Kelihatannya tidak ada lagi yang perlu ditulis, karena materi-materi semua sudah ada pada postingan-postingan sebelumnya, jadi tidak perlu ada yang dicatat 🙂

 

Algoritma dan Pemrogramman (9)

Sorting adalah proses mengurutkan suatu data.

Ada 4 cara sorting yang biasa dipakai, yaitu:
1. Bubble Sort = Sorting dengan menukar dari belakang hingga depan sehingga yang paling depan akan menjadi nilai yang terkecil
2. Selection Sort = Sorting dengan menukar index ke-i dengan nilai terkecil ke-i
3. Quick Sort
4. Merge Sort

Searching adalah proses mencari suatu data. Ada 3 jenis proses searching yang biasa dipakai, yaitu:

1. Linear search = Pencarian secara brute force, dimana mencari dari index ke-0 hingga index ke-(N-1)
2. Binary search = Pencarian dengan mengambil posisi tengah, lalu melihat apakah nilai yang dicari lebih besar atau lebih kecil dengan nilai posisi tengah
3. Interpolation search = Sama seperti binary search, hanya saja menggunakan rumus untuk menentukan index pembanding, bukan mengambil tengah.

Algoritma dan Pemrogramman (8)

File Processing

File adalah collection of record
Record adalah collection of field (kolom)
Field adalah sebuah blok byte
Byte adalah kumpulan bit.

Ada 2 jenis file, yaitu:
1. Text file: File yang disimpan dalam format text (ASCII) yang bisa dibuka dengan aplikasi text standar

2. Binary file: File yang hanya bisa dibuka oleh aplikasi tertentu/proprietary file.

Cara membuka file di C:
fopen() ==> membuka file
fclose() ==> menutup file

Lalu menggunakan fungsi fscanf dan fprintf untuk membaca dan mencetak file.

Algoritma dan Pemrogramman (7)

Function and Recursion

Modular Programming adalah pemrogramman dimana program dibagi menjadi module, dimana module tersebut diimplementasikan dalam fungsi-fungsi

Library Function adalah fungsi standar dari C compiler

User defined function adalah fungsi yang didefinisikan/dibuat oleh developer sendiri

return-value-type function-name(parameter-list)
{
statement;
}

Function Prototype berfungsi untuk memastikan fungsi diketahui oleh initiator/caller

return-value-type function-name(parameter-list);

Identifier Scoping:
> Local: Dibatasi hanya berada pada sebuah fungsi
> Global: Bisa didapatkan dimanapun dalam program

Recursive: Fungsi yang memanggil dirinya sendiri

Algoritma dan Pemrogramman (5)

Pointer adalah variable yang menyimpat almat dari variable lain

Contoh:
int i, *ptr;
ptr = &i;
*ptr = 5; //sama saja dengan i = 5

Pointer to Pointer adalah variable yang menyimpan alamat dari variable pointer

Contoh:
int i, *ptr, **ptr_ptr;
ptr = &i;
ptr_ptr = &ptr;
*ptr = 5; //sama saja dengan i = 5
**ptr_ptr = 9; //sama saja dengan *ptr = 9 dan juga i = 5

Array adalah variable yang menyimpan banyak data
Array bersifat homogen, yang berarti hanya menyimpan satu jenis tipe data serta bersifat random access, yaitu bisa diakses secara individu, tidak perlu sequential (berurut)

Misal ada sebuah array ‘A’, maka mengakses ‘A’ sama saja dengan ‘&A[0]’ (pointer dari A[0]). Bila mengakses ‘*(A+2)’ maka sama saja dengan ‘&A[2]’ (pointer dari A[2])

Pointer variable adalah pointer yang bisa diassign saat runtime
Pointer constant adalah pointer yang tidak bisa diakses saat runtime. Array termasuk dalam pointer constant.

Two Dimensional Array adalah array yang memiliki 2 dimensi, dengan penginisialisasian: array_name[row][col]

Algoritma dan Pemrogramman (4)

Repetition: Instruksi yang diulang beberapa kali. Fungsi-fungsi Repetition:

For:
for(exp1; exp2; exp3) state;

for(exp1; exp2; exp3){
state;
}

Exp 1 = Inisialisasi
Exp 2 = Kondisional (berjalan selama bernilai true (not zero) dan berhenti jika bernilai false (zero))
Exp 3 = Increment/Decrement

While:
while(exp) statement;

while(exp){
statement;
}

Exp = Bool Expression. Akan berjalan selama bernilai true (not zero) dan berhenti jika bernilai false (zero)

Do-While:
do{
statement;
} while (exp);

Statement dijalankan terlebih dahulu baru dicek di fungsi while

break = berfungsi untuk menghentikan looping
continue = berfungsi untuk mengskip looping pada kondisi tersebut

Algoritma dan Pemrogramman (3)

IF:

if(bool exp) statement; //Cara 1

if(bool exp) {  //Cara 2
statement;
}

 

IF ELSE:

if(bool exp) statement1;
else statement2;
//Cara 1

if(bool exp) {  //Cara 2
statement1;
}
else{
statement2;
}

NESTED IF: adalah adanya If di dalam If

SWITCH:

switch(exp){
Case const1: statement1; break;
Case const2: statement2; break;

Case constN: statementN; break;
default: statement;
}

 

TERNARY:

variable = (a>b)?a:b;

//Cara pendek dari
if(a>b){
variable = a;
}
else{
variable = b;
}

Algoritma dan Pemrogramman (2)

Operator adalah simbol untuk memanipulasi suatu nilai untuk mendapatkan nilai yang baru

Operand adalah nilai yang dimanipulasi

Operator dari jumlah operandnya dibagi menjadi 3:
1. Unary Operator – Operator yang terdiri dari 1 operand
2. Binary Operator – Operator yang terdiri dari 2 operand
3. Ternary Operator – Operator yang terdiri dari 3 operand

Operator dari tipe operasinya dibagi menjadi:
1. Assignment Operator: a = b (memasukkan nilai variable b ke dalam variable a)
2. Arithmetic Operator: +, -, *, /, %, ++, –, ( )
3. Relational Operator: ==, !=, <, >, <=, >=, ?: (conditional assignment)
4. Logical Operator: &&, ||, !, ^ (xor)
5. Bitwise Operator (memanipulasi nilai binary): &, |, ^, ~ (complement), >> (shift right), << (shift left)

Algoritma dan Pemrogramman (1)

OOP adalah Object Oriented Programming dimana ada sebuah class yang mengandung method-method yang bisa digunakan oleh Programmer lain untuk mengembangkan program.

OOP memiliki beberapa komponen, yaitu:

Inherit
Inherit seperti hubungan bapak dengan anak, dimana anak mengandung segala sifat bapak. Namun, tidak wajib ditunjukkan

Encapsulation
Bersifat Private, yang ada di dalamnya tidak dapat dibuka, kecuali diset menjadi public, entah sebagian atau seluruhnya

Interface
Seperti hubungan bapak dan anak, namun sifat dari sang ‘bapak’ tidak perlu ditunjukkan.

Polymorphism
Dapat menggunakan method atau objek secara efektif

Algoritma dapat dijelaskan dengan 3 cara:

1. Pseudocode:
Dalam bentuk kata-kata

2. Flowchart:
Dalam bentuk gambar aliran data, sehingga lebih mudah dimengerti

3. NS Diagram