Algoritma
Algoritma
Minggu 1
Sesi 2
Pengenalan Algoritma dan
Pemrograman
3. Pseudo-code (Pseudo-code)
Secara etimologis, Algoritma berasal dari kata Al Khwarizmi / algorism. Dimana kata
algorism digunakan untuk proses perhitungan aritmatika dengan menggunakan
bahasa Arab. Tetapi, dalam pengertian lain, algoritma adalah urutan langkah demi
langkah yang logis untuk menyelesaikan masalah yang disusun secara sistematis.
1. Read nama
2. Print nama
Dalam bahasa C pseudo-code tersebut dapat diubah menjadi :
char nama[100];
scanf(“%s”, nama); //read nama
printf(“nama : %s”, nama); //print nama
Flow chart ini merupakan penggambaran yang dibuat untuk mengidentifikasi proses
dari permasalahan yang akan diselesaikan. Terdapat 3 proses yang dibuat untuk
menyelesaikan permasalahan : input, process, dan output.
Start
Input Angka
Input Hitung
Hitung = Angka%2
YA
Hitung = “GENAP”
0?
Tidak
“GANJIL”
End
Dari penggambaran flow chart tersebut dapat terlihat bagaimana penggambaran cara
jalan dari code pemrograman yang akan dirancang nantinya.
a. Sequence process
Pada sequence proses seluruh instruksi dikerjakan sesuai dengan satu demi satu
sesuai dengan susunan dari instruksi pertama hingga instruksi terakhir. Instruksi
kedua akan dikerjakan setelah instruksi pertama selesai dikerjakan.
Bahasa C dirancang oleh Dennis M. Ritchie di Bell Laboratories pada tahun 1972.
Bahasa C dikembangkan dari bahasa BCPL dan bahasa B. Bahasa BCPL
dikembangkan oleh Martin Richards pada tahun 1967 sebagai bahasa untuk menulis
sistem operasi dan compiler. Pada tahun 1970 Ken Thompson merancang bahasa B
dengan memasukkan feature BCPL. Bahasa B dirancang dengan tujuan untuk
digunakan membuat sistem operasi UNIX untuk komputer DEC PDP-7 pada
Algoritma adalah urutan langkah demi langkah yang logis untuk menyelesaikan masalah
yang disusun secara sistematis.
Pseudo-code dapat diartikan juga sebagai cara untuk menuliskan sebuah algoritma secara
high-level (level tingkat tinggi). Dalam penulisan pseudo-code biasanya dituliskan dengan
kombinasi bahasa yang mudah dimengerti (bahasa manusia) dan notasi matematika dan
biasanya sebuah pseudo-code tidak terlalu detail jika dibandingkan dengan kode
pemrograman (source code).
Minggu 2
Sesi 3
Format Input &Output
1. C Standard library
2. C Structure
3. Comments in C
4. Escape Sequences in C
5. Character, Identifier, Keyword in C
6. Variable
7. Data Type
8. Constant
9. Size Of
10. Input & Output Operation
11. Input & Output Formatting
12. Input & Output Example
1. C Standard library
C adalah bahasa komputer yang paling banyak digunakan, dimana memiliki sifat yang
umum dan lebih mudah digunakan dan lebih efektif dalam menyelesaikan berbagai
permasalahan dibandingkan bahasa pemrograman yang lainnya. Seorang programer
diberikan keleluasaan dalam mengimplementasikan bahasa pemrograman C ke dalam
bentuk-bentuk instruksi program.Standart library C merupakan satu set fungsi,
konstanta, file header yang dapat digunakan untuk membuat program dengan bahasa
pemrograman C. Berikut beberapa fungsi standart library yang ada pada bahasa
pemrograman C:
Standart library in C Definition
(ctype.h) Character handling functions (header)
Pada contoh tersebut fungsi printf akan jalan jika standart library<stdio.h> tersedia.
2. C Structure
Bahasa C merupakan bahasa pemrograman yang struktural hal ini dikarenakan :
3. Comments in C
Komen di bahasa pegraman C digunakan untuk perintah yang tidak akan dijalankan
ketika program tersebut di compile.
Terdapat 2 cara dalam melakukan komen di bahasa C :
1. Dengan menggunakan /*komen untuk lebih dari 1 baris */
2. Dengan menggunakan //komen untuk 1 baris
/*--------------------------
My First Program
--------------------------
*/
#include<stdio.h>
void main(){
printf (“Hello,
BINUSIAN\n”);
}
// This program will simply
print out a message
4. Escape Sequences in C
Escape sequence digunakan untuk mewakili karakter khusus atau tertentu dalam
string literal dan karakter literal.
Berikut merupakan data-data escape sequence pada bahasa C :
Integer constant adalah sebuah bilangan bulat. Integerconstant juga dapat berupa
bilangan basis 10 (desimal), basis 8(oktal), atau basis 16(heksadesimal). Konstanta
diawali dengan bilangan 0. Dan konstanta heksadesimal diawali dengan 0x atau 0X.
Floating-point konstan adalah sebuah bilangan pecahan(bilangan desimal).
Character desimal adalah sebuah karakter ASCII. Biasanya diapit dengan tanda petik
tunggal. String konstan adalah kumpulan karakter ASCII yang diapit oleh tanda petik
ganda.
Escape sequence adalah karakter yang diawali dengan backlash (garis miring
terbalik). Setiap escapesequence memiliki arti tertentu (sesuai dengan tabel pada
penjelasan ke 4).
9. Size Of
Size of merupakan operator yang digunakan untuk mengetahui ukuran dari tipe data
dalam bahasa C. Lihatlah contoh berikut ini :
- putchar();
Merupakan fungsi yang menampilkan karakter pada monitor.
Berikut contoh fungsi putchar();
- puts();
Merupakan fungsi yang digunakan untuk menambahkan karakter dan
memindahkan kursor ke baris baru.
b. Input
Instruksi masukkan (input) adalah fungsi yang digunakan untuk membaca data.
Berikut data-data operasi input pada bahasa C:
- scanf();
Merupakan fungsi yang digunakan untuk membaca sejumlah masukkan (input)
sesuai dengan format dan disimpan pada alamat variabel. Jumlah format yang
ditetapkan harus sama dengan jumlah variabel yang diberikan.
Berikut contoh fungsi scanf();
- gethcar();
Merupakan fungsi yang digunakan untuk mengembalikan karakter berikutnya.
Menunggu input-an enter.
Berikut contoh penggunaan getchar();
1. Standart library C merupakan satu set fungsi, konstanta, file header yang dapat
digunakan untuk membuat program dengan bahasa pemrograman C.
2. Bahasa C merupakan bahasa pemrograman yang struktural hal ini dikarenakan :
Bahasa pemrograman C hanya memiliki 1 fungsi utama (fungsi main)
Bahasa pemrograman C sangat case sensitif.
Antara statement 1 dan statement 2 terlihat perbedaanya yaitu ketika fungsi printf
dengan Printf maka statement 2 akan tidak dikenali dalam bahasa C.
Setiap pernyataan pada bahasa C harus diakhiri dengan ; (semi-colon).
3. Komen di bahasa pegraman C digunakan untuk perintah yang tidak akan dijalankan
ketika program tersebut di compile.
4. Escape sequence digunakan untuk mewakili karakter khusus atau tertentu dalam
string literal dan karakter literal.
5. Karakter, Identifier, Keyword in C
- Karakter pada bahasa C
Bahasa program C ditulis dengan menggunakan sebagian dari karakter ASCII
(American Standard Code for Information Interchange).
- Identifier pada bahasa C
Identifier adalah nama berbagai elemen program sepeti : nama variabel, nama
fungsi (function), nama tipe data, dan lain-lainnya.
- Keyword pada bahasa C
Keyword adalah merupakan identifier yang telah didefinisikan oleh bahasa C.
Keyword pada bahasa C adalaha reserved word yang artinya dicadangkan dan tidak
boleh digunakan untuk keperluan lain (nama variabel, nama fungsi (function), nama
tipe data, dan lain-lainnya.
6. Variabel adalah tempat yangdigunakan untuk menampung data. Jenis data yang dapat
ditampung pada suatu variabel harus ditentukan terlebih dahulu tipe datanya.
7. Data yang ingin dioleh dengan menggunakan bahasa C harus dapat memiliki tipe
yang jelas.
8. Konstanta adalah suatu nilai konstan, dimana nilai tersebut tidak berubah nilainya
dalam sebuah program.
1. http://en.cppreference.com/w/cpp/language/escape
2. http://www.cplusplus.com/reference/cstdio
3. Paul J. Dietel,Harvey M. Deitel,. 2010. C : how to program. PEAPH. New Jersey. ISBN:978-0-
13-705966-9 Chapter 9
Minggu 3
Sesi 4
Operator, Operan, dan Aritmatika
3. Operator Arimatika
Operator aritmatika adalah operator yang digunakan untuk pengolahan aritmatika
seperti penjumlahan, pengurangan, perkalian, pembagian, dua bilangan (bulat atau
pecah), sisa bagi 2 bilangan bulat, penambahan dan pengurangan nilai antar variabel.
Dan menghitung hasil sisa bagi dengan menggunakan simbol % yang disebut sebagai
modulo.
Berikut contoh dari operator aritmatika modulo pada bahasa C :
Selain combined operator seperti yang telah dijelaskan diatas, terdapat pula operator
singkat untuk menggantikan fungsi x = x + 1 atau x += 1, yaitu dengan
menggunakan increment atau decrement operator.
Perlu diperhatikan bahwa bila menuliskan ++x tidaklah salah, melainkan hal tersebut
mempunyai arti yang berbeda dengan x++. Perhatikan contoh dibawah ini:
Nilai x yang tercetak diatas adalah 2 karena operasi x++ sudah dijalankan. Perhatikan
potongan program berikut ini:
Nilai x berubah menjadi 2 setelah proses x++ berhasil dieksekusi, tetapi bila mencetak
nilai x++ maka nilai pada saat itu belum ditambahkan dengan 1.
Berbeda dengan x++, perhatikan contoh berikut:
Operasi ++x akan langsung dieksekusi yang artinya nilai x langsung ditambahkan satu
pada saat itu juga.
4. Operator Relasional
Operasi relasional adalah operator yang digunakan untuk membandingkan 2 nilai
sejenis. Kedua nilai tersebut dapat berupa konstanta atau variabel. Jika hasil
perbandingan benar maka nilai pengembaliannya akan menjadi 1 (true), jika salah
maka nilai pengembaliannya akan menjadi 0 (false).
Berikut adalah beberapa operator pembanding dan contoh serta hasil dari penggunaan
operator tersebut:
5. Kondisional ekspresi
Kondisional ekpresi merupakan operasi bersyarat dimana operator ini bersifat triadic
(trinary operator) yang membutuhkan 3 operan dan dikenal juga sebagai ekspresi
bersyarat (conditional expression). 3 operan yang diperlukan terdiri dari atas 1
ekspresi yang akan diuji dan memiliki 2 ekspresi pilihan. Kondisional ekpresi
menggunakan simbol (:?). Berikut contoh dari kondisional ekspresi pada bahasa C:
p !p Example
true false !(1>2) is true, because (1>2) is false
false true !(1>0) is false, because (1>0) is true
Not operator digunakan untuk membalikkan hasil dari suatu perbandingan. Seperti
pada contoh diatas, ketika 1>2 bernilai salah, maka ketika diberikan tanda ‘!’, hasil
dari operasi logic tersebut adalah benar.
p1 p2 p1 && p2 Example
false false false (2>3) && (5>5) is false
Because both (2>3) and (5>5) are false
false true false (2>3) && (6>5) is false
Because (2>3) is false
true false false (6>5) && (2>3) is false
Because (2>3) is false
true true true (3>2) && (5>=5) is true
Because both (3>2) and (5>=5) are true
Operasi AND akan bernilai benar jika dan hanya jika kedua kondisi (atau semua
kondisi) harus bernilai benar/true. Bila ada satu saja syarat yang idak dipenuhi (salah)
maka hasil dari operasi AND bernilai false.
p1 p2 p1 || p2 Example
(2>3) || (5>5) is false
false false false
Because both (2>3) and (5>5) are false
(2>3) || (6>5) is true
false true true
Because (6>5) is true
(6>5) || (2>3) is true
true false true
Because (6>5) is true
(3>2) || (5>=5) is true
true true true
Because both (3>2) and (5>=5) are true
Kebalikan dari operasi AND, bila ada satu saja kondisi yang benar maka hasil dari
operasi OR bernilai benar(true). Operasi OR bernilai salah jika dan hanya jika kedua
kondisi (semua kondisi yang ada) bernilai salah(false).
7. Operator Bitwise
Operator bitwise adalah operator yang memperlakukan operan-operannya sebagai
sebuah nilai tunggal, operator bitwise memperlakukan operan-operannya sebagai
kuantitas yang terdiri atas bit-bit. Berikut tabel-tabel operator bitwise yang ada pada
bahasa C :
Minggu 4
Sesi 5
Program Control: Selection &
Repetition
1. Pemilihan (Selection)
2. Perulangan (Repetition)
3. Break Vs. Continue
4. Go to dan Label
5. Error Type
Pada contoh potongan program diatas, misalkan nilai dari radius adalah 5. Program
akan mengeksekusi perintah yang ada di blok if tersebut bila syarat terpenuhi.
Pertama-tama akan dilakukan pengecekan apakah nilai radius saat ini bernilai lebih
dari atau sama dengan 0? Jawabannya adalah benar, 5 >= 0, maka program akan
menghitung nilai dari area, dan kemudian akan dicetak nilai dari radius dan area
tersebut. Bila tidak, maka tidak ada statement yang akan dieksekusi(dijalankan).
Pada program tersebut meminta inputan yang akan ditampung pada variabel angka.
Fungsi seleksi dilakukan dimana terdapat dua buah kondisi yang dihubungkan dengan
logical operator OR “||”, yang berarti bahwa bila salah satu kondisi terpenuhi atau
benar maka expression tersebut akan bernilai benar. Andaikan angka bernilai 200,
maka program akan mengecek apakah angka < 0? Jawabannya adalah salah (false),
kemudian program akan mengecek kembali kondisi berikutnya apakah angka > 100?
200 bernilai lebih dari 100, maka kondisinya adalah benar. Karena relasi yang ada
adalah OR, maka nilai akhir dari syarat ini adalah benar, sehingga program akan
mencetak “Wrong input”.
Bila melihat kembali pada program yang ada, pada blok statement if ataupun else
tidak terdapat tanda kurung kurawal buka dan tutup “{“ “}” yang biasanya digunakan
untuk menandakan batasan blok. Hal ini dapat dilakukan jika hanya ada satu
statement yang akan dieksekusi pada blok tersebut. Bila terdapat lebih dari satu
statement yang ingin dilakukan pada blok statement if, maka perlu digunakan tanda
kurung kurawal buka dan tutup “{“ “}” sebagai penanda.
- nested if
Nested if merupakan jenis variasi yang digunakan bila memiliki lebih dari satu syarat
dan syarat tersebut saling berkaitan. Yang dimasud dengan nested adalah di dalam if
atau if-else statement terdapat if atau if-else statement lainnya. Tidak ada batasan
maximum untuk if di dalam if tersebut. Berikut adalah contoh nested if:
- switch-case
Switch – case adalah salah satu cara seleksi yang digunakan untuk memilih satu dari
sejumlah alternatif. Seleksi yang dilakukan pada switch statement berdasarkan pada
sebuah status. Format penulisan statement switch itu sendiri dapat dilihat dibawah
ini :
switch (switch-expression)
{
case value1: statement(s)1;
break;
case value2: statement(s)2;
break;
…
case valueN: statement(s)N;
break;
default: statement(s)-for-default;
}
Dibawah ini adalah contoh program sederhana yang menerapkan switch statement
dalam melakukan seleksi. Seleksi dilakukan terhadap hasil input user berupa bilangan
integer yang disimpan ke dalam variable number. Yang menjadi switch expression
adalah nilai sisa dari number dibagi dua (modulus). Statement di case 0 akan
dijalankan bila sisa bagi bernilai 0, dan statement di case 1 akan dijalankan bila sisa
bagi tersebut bernilai 1. Di dalam setiap statement case juga diberikan keyword break.
Program sederhana ini merupakan contoh dari penentuan apakah sebuah angka
merupakan bilangan ganjil atau genap.
- Conditional expression
Jenis terakhir dari seleksi statement dapat juga dilakukan dengan bentuk conditional
expression. Format yang digunakan adalah sebagai berikut:
2. Perulangan (Repetition)
Dalam iterasi ini instruksi yang dikerjakan berulang-ulang harus memiliki nilai
variabel pengendali kondisi yang harus selalu berubah setiap iterasi terjadi agar iterasi
dapat berakhir. Pada bahasa C menyediakan 3 instruksi iterasi yaitu :
- for
For digunakan untuk mengulang suatu statement yang dideklarasikan berdasarkan
suatu kondisi atau syarat tertentu.
Format penggunaan For:
o Jika hanya 1 statement yang dijalankan dalam perulangan
for ([initialization];[condition];[increment/decrement])
<statement>
Contoh:
for ( int i = 0; i < 5; i++) {
printf(“Value of i is = %d“ , i);
printf(“Loop number %d”, (i+1));
}
Pada potongan program di atas, kedua statement yang terdapat didalam for akan
dijalankan selama kondisi i < 5 terpenuhi. Dalam hal ini, awalnya nilai i adalah 0 dan
ketika proses dilakukan, nilai i akan ditambahkan satu point (increment i++), dan
proses dilakukan terus.
- while
While digunakan untuk mengulang suatu statement selama expression yang diberikan
didalamnya bernilai benar, jika bernilai salah, maka statement yang dideklarasikan di
dalamnya tidak akan diulang.
while (expression) { <block statement> }
Contoh :
Pada potongan program di atas, program akan melakukan pengecekan terlebih dahulu
apakah nilai i < 5, jika benar, maka program akan mengulang kedua statement yang
terdapat di dalam while.
- do-while
Do...While digunakan untuk mengulan suatu statement yang dideklarasikan sesudah
keyword Do dan setelah menjalankan statement tersebut, dilakukan pengecekan
terhadap expression yang diberikan, apakah bernilai benar atau salah. Jika bernilai
benar, maka statement tesebut akan diulang kembali. Jika bernilai salah, maka
statement tersebut hanya akan dijalankan satu kali tanpa dilakukan pengulangan.
do{ <block statement> }while (expression);
Contoh :
int i = 0;
do{
printf(“Value of i is %d“, i);
i++;
}while (i < 5);
Pada potongan program di atas, program akan menjalankan terlebih dahulu kedua
statement di dalam do kemudian dilakukan pengecekan apakah nilai i < 5, jika benar,
maka program akan kembali mengulang kedua statement tersebut.
3. Break Vs. Continue
Break merupakan instruksi yang menyebabkan proses keluar dari instruksi for, while,
do-while, switch.
Continue dapat menyebabkan proses mengabaikan (melewati) instruksi selanjutnya
dan melanjutkan proses iterasi berikutnya pada instruksi for, while, do-while.
Berikut contoh program continue pada bahasa C:
a. Lupa untuk memberikan tanda kurung batas blok if. Perlu diingat bahwa
Anda boleh menghilangkan penulisan “{“ “ }” sebagai penanda pada if statement
jika hanya terdapat satu statement pada blok tersebut. Lihat contoh berikut:
Pada potongan program diatas, bila syarat radius >=0 terpenuhi maka program akan
menjalankan statement if yaitu area = radius * radius * PI. Kemudian program akan
melanjutkan untuk mengeksekusi statement berikutnya (dalam konteks melanjutkan
pengeksekusian program yang berada diluar blok if. Bila syarat radius >=0 tidak
terpenuhi, maka program tidak akan menjalankan perhitungan area, tetapi akan
langsung mengeksekusi statement System.out.println, karena statement tersebut tidak
termasuk statement didalam blok if.
b. Memberikan tanda “;” pada akhir persyaratan if. Hal ini akan menyebabkan
error. Ingat bahwa tanda titik koma “;” digunakan untuk menandakan akhir dari
sebuah statement.
c. Perulangan dalam pengecekan nilai. Pada contoh dibawah ini terlihat bahwa
statement if akan dijalankan bila syarat/kondisi bernilai benar/true. Maka secara
tersirat if akan melakukan pengecekan apakah nilai dari variable yang dicek bernilai
benar.
Th
Equivalent
Anda dapat melihat blok else pada kolom sebelah kiri cukup ambigu, apakah blok else
tersebut merupakan blok else milik if(i>j) atau if(i>k). Seharusnya blok else
tersebut ditulis seperti potongan program disebelah kanan. Bila Anda ingin membuat
else untuk milik if(i>j), maka Anda perlu memberikan tanda “{ }” untuk
membatasi statement blok if(i>j) tersebut.
SIMPULAN
1. Fungsi seleksi digunakan untuk mengaplikasikan alternaive pilihan. Ada beberapa jenis
seleksi: if statement, if-else statement, nested if statement, switch statement, dan
conditional expression.
2. Semua macam dari if statement merupakan struktur control yang berdasarkan pada
expression. Bergantung pada nilai true atau false yang dihasilkan dari expression tersebut
(syarat seleksi), seleksi if ini akan memilih satu dari dua pilihan.
3. Switch statement adalah struktur control yang bergantung pada tipe dari switch-
expression yang hanya dapat mengaplikasikan tipe char, byte, short, atau int.
4. Keyword break bersifat pilihan (optional), tetapi biasanya digunakan pada setiap kahir
case statement dengan tujuan untuk memberhentikan pengeksekusian program yang
tersisa dalam switch statement. Jika break statement tidak digunakan, maka case
5. Ada 3 jenis sintaks perulangan yang dapat digunakan, yaitu while, do-while dan for.
6. Break merupakan instruksi yang menyebabkan proses keluar dari instruksi for, while, do-
while, switch.
7. Continue dapat menyebabkan proses mengabaikan (melewati) instruksi selanjutnya dan
melanjutkan proses iterasi berikutnya pada instruksi for, while, do-while.
8. Bahasa C menyediakan cara untuk menyediakan lompatan goto melalui label dengan
fungsi yang sama.
9. Penggunaan goto ini sangat tidak dianjurkan dalam bahasa pemrograman dikarenakan
akan membuat struktur code menjadi tidak teratur, dan membuat sulit untuk melacak
aliran kontrol dari sebuah program.
10. Beberapa macam tipe error pada bahasa C :
a. Compile time-error
b. Link-time error
c. Run-time error
d. Logical error
2. Paul J. Dietel,Harvey M. Deitel,. 2010. C : how to program. PEAPH. New Jersey. ISBN:978-0-
13-705966-9 Chapter 3 & 4
Minggu 5
Sesi 6
Pointer dan Array
1. Pointer
2. Array
4. String
Array adalah suatu tipe data terstruktur yang bertipe data sama dan berjumlah tetap
(berdasarkan apa yang ditentukan) dan diberi suatu nama tertentu (sesuai variabel).
Elemen-elemen array tersusun secara berurutan. Susunan tersebut membuat array
memiliki alamat yang bersebelahan / berdampingan dalam memori sesuai dengan
besar pemakaian memoritipe data yang digunakan. Namun, perlu diingat, walaupun
elemen-elemen nya tersusun secara berurutan, array tetap dapat diakses secara acak di
dalam memori. Array juga dapat berupa array 1 dimensi, 2 dimensi, bahkan n-
dimensi.
0 1 2 3 4 5 6 7 indeks
10 44 2 7 25 56 32 40 value
1d2 1d4 1d6 1d8 1da 2dc 2de 1ed alamat
Deklarasi Array :
data_typearray_name[size];
contoh :
charnama[26];
Contoh diatas berarti anda memesan tempat di memori computer sebanyak 26
tempat dengan indeks yang dapat digunakan dari index 0 sampai index 25.
a. Inisialisasi array 1D
Untuk memasukkan suatu nilai kedalam sebuah array, dapat dilakukan dengan
beberapa cara, salah satu caranya adalah :
Untuk membuat array yang multi dimensi (contohnya pada penggunaan array
dalam konsep matrix). Dapat dilakukan inisialisasi dengan cara:
intvariabel[x][y] = {
{1, 2, ..., n},
{1, 2, ..., n},
... dst
};
Dalam hal ini jumlah array yang dapat digunakan adalah mulai dari index [0][0]
sampai dengan index [x-1][y-1]. Contoh:
int matrix[3][3] = {
{11, 12, 13},
{21, 22, 23},
{32, 31, 33},
};
Contoh di atas berarti program akan memasukkan kumpulan angka yang
berjumlah 9 tersebut kedalam array matrix yang akan menghasilkan: Matrix
[0][0] = 11 Matrix [0][1] = 12 Matrix [0][2] = 13 Matrix [1][0] = 21 Matrix [2][0]
= 32 Matrix [2][2] = 33 Dan seterusnya. Matrix yang dapat digunakan adalah
mulai dari index [0][0] sampai dengan [2][2] yang bila dihitungakan berjumlah 9
buah.
2. Pointer
Pointer adalah suatu variabel yang berisi alamat memori dari suatu variabel lain.
Pointer dilambangkan dengan operator “ * ” dan biasanya digunakan untuk
memanipulasi isi variabel di dalam memori. Contoh penggunaannya adalah:
int a = 5;
int b = 3;
int *p;
p = &a; //1
b = *p; //2
int *ap[10];
Dari contoh di atas dapat dilihat bahwa variable ap adalah sebuah kumpulan variabel
yang dapat menyimpan 10 alamat dari variabel lain. Index dari pointer tersebut
dimulai dari *ap[0] sampai dengan *ap[9].
Pointer constant adalah pointer yang tidak dapat ditetapkan dengan nilai baru pada
saat run-time. Dalam hal ini array merupakan salah satu contoh pointer constant.
Berikut contoh pointer constant :
Pointer variabel adalah pointer yang diberikan dengan nilai baru pada saat run-time.
Dengan contoh sebagai berikut :
int *ptr; //ptr is pointer variable
4. String
String adalah kumpulan karakter ASCII. Dalam bahasa C terdapat 2 cara
mendeklarasikan variable string, satu sebagai pointer to character dan yang lain
sebagai array of character. Penanda akhir string dilakukan dengan null character
(‘\0’).
Berikut contoh array of character pada bahasa C:
labelPtr = label;
String adalah array of character dimana sebuah string ini dapat dimanipulasi layaknya
sebuah array. Pada bahasa C menyediakan beberapa standart function yang dapat
digunakan untuk manipulasi string. Function ini tersimpan pada header string.h.
Berikut beberapa fungsi string manipulasi yang ada pada bahasa C :
a. strlen()
Fungsi ini mengembalikan angka yang menyatakan panjangnya suatu string tanpa
menghitung adanya null karakter pada ujung string.
Berikut adalah penggambaran dari fungsi strlen() pada bahasa C:
b. strcpy(s1,s2)
Fungsi ini menyalin string dari s2 ke s1, s2 dapat berupa variable atau string
constant. Berikut adalah contoh penggunaan fungsi strcpy() pada bahasa C:
c. strncpy(s1,s2,n)
Fungsi ini menyalin string dari s2 ke s1 sebanyak n karakter, s2 dapat berupa
variable atau string constant. Berikut adalah contoh penggunaan fungsi strncpy()
pada bahasa C :
d. strcat(s1,s2)
Fungsi ini berguna untuk menambahkan nilai string dari s2 keakhir string s1, s2
dapat berupa variable atau string constant. Berikut adalah contoh penggunaan
fungsi strcat() pada bahasa C :
e. strncat(s1,s2,n)
Fungsi ini berguna untuk menambahkan n karakter pada string dari s2 keakhir
string s1, s2 dapat berupa variable atau string constant. Berikut adalah contoh
penggunaan fungsi strcat() pada bahasa C :
f. strcmp(s1,s2)
Fungsi ini berguna untuk membandingkan antara string s1 danstring s2, sescara
alfabetis. Berikut adalah contoh penggunaan fungsi strcmp() pada bahasa C :
1. Array
Array adalah suatu tipe data terstruktur yang bertipe data sama dan berjumlah tetap
(berdasarkan apa yang ditentukan) dan diberi suatu nama tertentu (sesuai variabel).
2. Pointer
Pointer adalah suatu variabel yang berisi alamat memori dari suatu variabel lain.
Pointer dilambangkan dengan operator “*” dan biasanya digunakan untuk
memanipulasi isi variabel di dalam memori.
3. Pointer Constant & Pointer Variable
Pointer constant adalah pointer yang tidak dapat ditetapkan dengan nilai baru pada
saat run-time.
Pointer variabel adalah pointer yang diberikan dengan nilai baru pada saat run-time.
4. String
String adalah kumpulan karakter ASCII. Dalam bahasa C terdapat 2 cara
mendeklarasikan variable string, satu sebagai pointer to character dan yang lain
sebagai array of character. Terdapat fungsi string manipulasi yang dapat digunakan
dalam bahasaC :
– strlen()
– strcpy(s1,s2)
– strncpy(s1,s2,n)
– strcat(s1,s2)
– strncat(s1,s2,n)
– strcmp(s1,s2)
3. http://www.tutorialspoint.com/c_standard_library/string_h.htm
4. Paul J. Dietel,Harvey M. Deitel,. 2010. C : how to program. PEAPH. New Jersey. ISBN:978-0-
13-705966-9 Chapter 6 & 7
Minggu 6
Sesi 10
Function and Recursion
1. Modular Programming
2. Function
3. Identifier Scoping
4. Passing Parameter
5. Recursion
a. Rancangan program besar akan dapat dibagai menjadi modul-modul yang lebih
kecil.
b. Modul-modul yang telah disederhanakan dapat dikerjakan oleh beberapa orang.
c. Mempermudah dalam mencari kesalahan karena alur logika yang telah terstruktur,
dan kesalahan dapat ditelusuri dari 1 modul saja.
d. Modul ini dapat digunakan berkali-kali jika diperlukan (software reusability).
e. Dapat melakukan modifikasi pada suatu modul tanpa mengganggu program secara
keseluruhan.
f. Mempermudah dokumentasi.
- Fan-in yang tinggi : makin sering suatu modul dipanggil oleh pemakai, semakin
tinggi nilai fan-in.
- Fan-out yang rendah : makin sedikit (spesifik) tugas yang ada pada suatu modul,
makin rendah fan-out.
- Self-contained : kemampuan memenuhi kebutuhannya sendiri.
Pada program tersebut terlihat bahwa terdapat 2 fungsi yang digunakan, yaitu
printf(), dan sqrt(). Kedua fungsi tersebut dapat digunakan jika memanggil
headerlibrary. Dimana header library dari printf() adalah #include <stdio.h>, dan
headerlibrary dari sqrt() adalah #include <math.h>
b. Programmer-defined function.
Programmer-defined function adalah fungsi-fungsi yang dibuat oleh programmer
sesuai kebutuhan program. Function yang dibuat dapat digunakan dalam 1
program saja atau dibuat menjadi library yang berisi fungsi-fungsi sejenis.
Return type : return type adalah tipe data dari nilai kembali function. Beberapa
function melakukan oeprasi yang diinginkan tanpa memerlukan pengembalian
nilai. Dalam hal ini, void dapat digunakan menjadi return-type yang tidak
memerlukan pengembalian nilai.
Function name : penamaan function, digunakan untuk mempermudah
pemanggilan function. Penamaan function sama halnya dengan syarat penamaan
variabel.
Parameters : sebuah parameter seperti sebuah tempat. Ketika function dipanggil,
maka pemanggilan tersebut akan melewati paramter ini. Nilai parameter ini
disebut sebagai aktual atau argumen. Banyaknya dan jenis parameter sesuai
dengan jumlah parameter yang dipanggil pada function lainnya atau functionmain.
Function body :function body mengandung kumpulan penyataan yang
mendefinisikan apa yang function tersebut lakukan.
3. Identifier Scoping
a. Globalidentifier
Global identifer merupakan identifier yang dideklarasikan di luar function dan
ditempatkan di atas semua function dalam suatu program. Jangkauannya biasanya
meliputi seluruh program. Identifier yang dideklarasikan secara global, dapat
dideklrasikan kembali di dalam function.
b. Localidentifier
Local identifier merupakan identifier yang dideklrasikan di dalam function,
termasuk dalam daftar parameter. Jangkauannya terbatas pada function itu sendiri.
- Keuntungan :
o Transfer data antar function menjadi mudah.
- Kerugian :
o Jika program semakin besar, maka semakin besar juga kecendurngan
terjadinya kesalahan.
o Sulit melacak kesalahan.
o Data tidak terjaga dengan baik, setiap function dapat mengubah isi variabel
tanpa sepengetahuan function lainnya.
Jika satu function memanggil function yang lain untuk melakukan tugas tertentu,
kepada function yang dipanggil (called function) diberikan seluruh data yang
diperlukan untuk melakukan tugas yang diberikan oleh function pemanggil. Setelah
melakukan tugas function yang dipanggil mengembalikan hasil proses kepada
function pemanggil (calling function). Pengiriman data trsebut melalui parameter
yang menjadi interface (penghubung) suatu modul dengan modul yang lain.
Pengiriman paramter di dalam bahasa C terdapat 2 jenis yaitu :
- Call by value
Call by value, adalah pengiriman ke function lain berupa nilai (r-value). Nilai
parameter aktual akan disalin ke parameter formal. Dengan cara ini nilai
parameter aktual tidak berubah sekalipun terjadi perubahan nilai parameter
formal. Berikut contoh program function call by value pada bahasa C :
Pada program tersebut dapat dilihat pada saat di functionmain memanggil fungsi
tukar untuk memelakukan tugas penukaran variabel a dan b. Maka fungsi tukar
akan melakukan tugasnya dan mengembalikan hasil proses yang ada dalam fungsi
tukar tersebut.
- Call by reference
Pemanggilan dengan alamat yang dilakukan dengan cara mengirimkan alamat-
alamat variabel melalui parameter aktualnya ke function yang dipanggil. Function
yang dipanggil kemudian menampung alamat-alamat ini pada variabel-variabel
pointer yang terdapat dalam daftar parameter formal. Dengan cara pemanggilan
ini, jika terdapat perubahan terhadap data yang dikirimkan, perubahan yang terjadi
tidak hanya secara lokal saja. Semua perubahan data yang dilakukan pada function
yang dipanggil akan otomatis mengubah data pada function yang memanggil. Hal
ini disebabkan informasi yang dikirimkan ke function yang dipanggil adalah
alamat data tersebut, sehingga perubahan teradap data dilakukan langsung di
tempat data itu tersimpan. Call by reference disebut juga call by location.
Berikut adalah contoh dari function call by reference pada bahasa C :
Pada program ini hasil nilai yang telah ditukar tidak dapat dicetak langsung pada
fungsi tukar. Hal ini dikarenakan jika mencetak langsung dari fungsi tukar maka
yang akan dicetak adalah alamat dari nilai x, dan y. Karena nilai x dan y berasal
dari alamat &a, dan &b.
5. Recursion
Rekursif (recursion) adalah suatu proses yang memanggil dirinya kembali. Dalam
bahasa C rekursif dilakukan oleh function. Function yang memanggil dirinya sendiri
disebut sebagai recursive function. Berikut adalah bentuk sintaks fungsi recursif pada
bahasa C :
void recursion()
{
recursion(); /* function calls itself */
}
int main()
{
recursion();
}
Jika sebuah masalah dapat diselesaikan dengan cara iteratif maka gunakan iteratif.
Jika penyelesaian dengan iteratif memerlukan algoritma yang cukup rumit maka dapat
meggunakan pendekatan rekursif karena rekursif memerlukan sumber daya yang
banyak.
1. Modular Programming
Dalam pembuatan perancangan program yang baik biasanya digunakan kosep
pemrograman modular. Konsep ini merupakan meyode untuk memecahkan suatu
masalah menjadi bagian-bagian yang lebih kecil (ke dalam modul-modul). Function
Function merupakan sekelompok pernyataan yang digunakan berasama-sama untuk
melakukan tugas. Pada program C memiliki setidaknya 1 fungsi utama, yaitu main();
dan pada suatu program dapat membuat fungsi lainnya selain fungsi main();.
Function pada bahasa C dibagi menjadi 2 kelompok yaitu :
- Standart library function.
- Programmer-defined function
2. Identifier Scoping
a. Globalidentifier
Global identifer merupakan identifier yang dideklarasikan di luar function dan
ditempatkan di atas semua function dalam suatu program.
b. Localidentifier
Local identifier merupakan identifier yang dideklrasikan di dalam function,
termasuk dalam daftar parameter. Jangkauannya terbatas pada function itu sendiri.
3. Passing Parameter
Jika satu function memanggil function yang lain untuk melakukan tugas tertentu,
kepada function yang dipanggil (called function) diberikan seluruh data yang
diperlukan untuk melakukan tugas yang diberikan oleh function pemanggil.
- Call by value
- Call by reference / location
4. Recursion
Rekursif (recursion) adalah suatu proses yang memanggil dirinya kembali. Dalam
bahasa C rekursif dilakukan oleh function.
1. Paul J. Dietel,Harvey M. Deitel,. 2010. C : how to program. PEAPH. New Jersey. ISBN:978-0-
13-705966-9 Chapter 5
2. Functions in C: http://aelinik.free.fr/c/ch15.htm
4. http://www.programiz.com/c-programming/library-function
5. http://www.cprogramming.com/tutorial/c/lesson16.html
Minggu 7
Sesi 11
Structure & Union
1. Structure
2. Typedef
3. Union
4. Enumeration
Structure atau struct merupakan struktur data yang menggabungkan beberapa data
yang berbeda tipe (heterogen) tetapi data tersebut saling berkaitan. Misalnya data
mengenai StudentId, nama, dan IPK seorang mahasiswa. Ketiga data ini memiliki tipe
data yang berbeda tetapi masih saling berhubungan yaitu data akademik seorang
mahasiswa. Dengan megngunakan structmaka data ini bisa diolah per-elemen (per
field) atau secara keseluruhan (per struct, per record). Berikut contoh sintaks struct
pada bahasa C :
struct [type_name]
{
member definition;
member definition;
...
member definition;
} [one or more structure variables];
Untuk mengakses field struct gunakan dotoperator yaitu nama variabel struct diikuti
titik dan nama field. Berikut adalah hasil output dari contoh inisialisasi sturct diatas :
2. Typedef
3. Union
union [type_name]
{
member definition;
member definition;
...
member definition;
} [one or more union variables];
Pada contoh program tersebut terlihat bahwa memori terbesar adalah charstr sebesar
20 byte maka memori yang dibutuhkan adalah sebesar 20 byte. Dari program tersebut
akan menghasilkan output sebagai berikut :
4. Enumeration
Enumeration adalah tipe data yang ditetapkan oleh pengguna yang terdiri dari
konstanta integral dan setiap konstanta tersebut diberikan nama. Berikut sintaks enum
pada bahasa C :
1. Structure atau struct merupakan struktur data yang menggabungkan beberapa data
yang berbeda tipe (heterogen) tetapi data tersebut saling berkaitan.
2. Typedef, yang dapat digunakan untuk membuat tipe penamaan baru. Misalnya typedef
dapat digunakan dengan struct untuk mendefinisikan tipe data baru dan kemudian tipe
data ini digunakan untuk mendefinisikan variabel struct.
3. Union digunakan untuk kongsi (menggabungkan) memori. Dengan menggunakan
union, suatu lokasi memori dapat ditempati oleh dua atau beberapa variabel dengan
masing-masing tipe data yang berbeda.
4. Enumeration adalah tipe data yang ditetapkan oleh pengguna yang terdiri dari
konstanta integral dan setiap konstanta tersebut diberikan nama.
Minggu 8
Sesi 12
Memory Allocation
1. Static
3. Command Execution
4. Memory Allocation
5. Macro
6. Pointer to Function
7. C Preprocessor
1. Static
Static merupakan salah satu keyword yang ada pada bahasa C dimana keyword ini
digunakan untuk menandai atau menetapkan suatu kondisi. Berikut adalah contoh
sintaks penggunaan static pada bahasa C :
Static tidak seperti global variabel pada C, akses fungsi static dibatasi untuk setiap
file yang di tetapkan dengan keyword static. Karena itu, jika ingin membatasi akses ke
fungsi yang telah dibuat maka fungsi tersebut harus di buat menjadi static. Berikut
contoh fungsi static untuk membatasi akses pada bahasa C :
Jika file1.c dan file2.c dieksekusi maka akan terjadi error. Hal ini dikarenakan fungsi
fun1 pada file1.c dideklrasikan sebagai fungsi static sehingga tidak dapat digunakan
pada file2.c.
Tipe data void merupakan tipe data yang tidak megembalikan nilai. Void digunakan
dalam 3 jenis situasi :
3. Command Execution
int main ()
{
inti;
printf ("Checking if processor is available...");
if (system(NULL)) puts ("Ok");/* command execution */
else exit (EXIT_FAILURE);
printf ("Executing command DIR...\n");
i=system ("dir");
printf ("The value returned was: %d.\n",i);
return 0;
}
4. Memory Allocation
Memory allocation adalah alokasi memori yang dibutuhkan oleh suatu program saat
menjalankan eksekusi pada program tersebut. Memori yang digunakan merupakan
RAM yang dikelola oleh operating system (OS) yang akan digunakan oleh program.
Pada memory allocation ini juga tedapat de-allocation yang gunanya adalah melepas
memory (RAM) yang telah digunakan kembali ke OS. Terdapat 2 jenis memory
allocation yaitu :
a. Satic
Static adalah memory allocation yang telah ditetapkan sebelumnya. Biasanya
disimpan pada local stack memory. Dapat di de-allocated pada saat program
berakhir. Contoh dari static memori adalah struct, array.
b. Dynamic
Saat mengeksekusi suatu program dan ternyata ukuran array yang telah
ditentukan tidak cukup atau kurang dibanding memory yang diperukan. Maka
salah satu cara untuk mengatasi ini adalah dynamic memory dimana
memungkinkan sebuah program untuk lebih fleksibel mendapatkan ruang
memory. Terdapat 4 jenis memory allocation yang dapat digunakan pada bahasa C
:
- malloc() : alokasi membutuhkan ukuran byte dan mengembalikan pointer pada
byte pertama pada memory yang dialokasikan. Berikut sintaks dari malloc
pada bahasa C :
ptr=(cast-type*)malloc(byte-size)
ptr=realloc(ptr,newsize);
free(ptr);
5. Macro
Pointer to function adalah penempatan alamat dari suatu fungsi dalam memori.
Berikut sintaks pointer tofunction pada bahasa C :
return_type (* pointer_name)(parameter);
Pada program tersebut terdapat 2 cara untuk memberikan nilai pada fungsi cetak yaitu
dengan cara 1 atau dengan cara 2. Hasil output dari program tersebut adalah :
7. C Preprocessor
C preprocessor bukan bagian dari compiler, tetapi merupakan langkah yang terpisah
dalam proses kompilasi.C Preprocessor hanyalah alat pengganti teks dan
menginstruksikan compiler untuk melakukan diperlukan pra-pengolahan sebelum
kompilasi yang sebenarnya. Preprocessor ini biasanya dibuat sebagai CPP.
1. Static merupakan salah satu keyword yang ada pada bahasa C dimana keyword ini
digunakan untuk menandai atau menetapkan suatu kondisi.
2. Tipe data void merupakan tipe data yang tidak megembalikan nilai. Void digunakan
dalam 3 jenis situasi :
a. Function return as void :void exit (int status);
b. Function arguments as void: int rand(void);
c. Pointers to void
3. Command execution merupakan pemanggilan prosesor untuk dijalankan.
4. Memory allocation adalah alokasi memori yang dibutuhkan oleh suatu program saat
menjalankan eksekusi pada program tersebut. Memori yang digunakan merupakan
RAM yang dikelola oleh operating system (OS) yang akan digunakan oleh program.
Terdapat 2 jenis memory allocation yaitu :static dan dynamic.
5.
6. Macro pada bahasa C memungkinkan nilai-nilai konstan dapat digunakan di seluruh
code program. Macro sendiri bukan merupakan variabel dan tidak dapat diubah
seperti melakukan perubahan nilai pada variabel.
7. Pointer to function adalah penempatan alamat dari suatu fungsi dalam memori.
8. C preprocessor bukan bagian dari compiler, tetapi merupakan langkah yang terpisah
dalam proses kompilasi.
11. http://www.techonthenet.com/c_language/constants/create_define.php
12. http://www.cprogramming.com/tutorial/function-pointers.html
13. http://www.tutorialspoint.com/cprogramming/c_preprocessors.htm
Minggu 9
Sesi 13
File Processing
2. Open File
3. Close File
3. Close File
Setelah selesai di proses (openfile) maka file harus ditutup dengan memanggil
functionfclose() atau fcloseall().
- fclose() : function ini menutup file stream tertentu. Apabila proses berhasil maka
dikembalikan 0. Apabila terjadi kesalahan saat menutup file maka
dikembalikanEOF(end of file).Berikut sintaks untuk fclose pada bahasa C :
- fgetc (input)
Fungsi ini digunakan untuk membaca karakter dari file stream. Apabila proses
pembacaan berhasil maka dikembalikan karakter yang terbaca. Apabila gagal
membaca karakter pada file maka akan dikembalikan EOF (end of file). Berikut
deklarasi dari fgetc pada bahasa C :
intfgetc ( FILE * stream );
Berikut contoh program penggunaan fgetc pada bahasa C:
- fputs (output)
fungsi ini digunakan untuk menulis sejumlah karakter string yang diakhiri NULL
ke file stream, tetapi karakter NULL tersebut tidak ikut dituli spada file, dan tidak
ada juga penambahan karakter pada new line. Apabila proses penulisan berhasil
maka fungsi ini akan mengembalikan sebuah bilangan positif, jika gagal maka
akan mengembalikan EOF. Berikut deklarasi fputs pada bahasa C :
intfputs ( const char * str, FILE * stream );
Berikut contoh program penggunaan fputs pada bahasa C:
- fgets (input)
Fungsi yang digunakan untuk membaca sebanyak n karakter dari file stream.
Fungsi ini akan berhenti membaca setelah membaca seluruh karakter atau
membaca new line. Karakter new line yang terbaca akan ditambahkan pada akhir
string. Apabila proses berhasil maka fungsi ini akan mengembalikan string
tersebut (yang dibaca), jika fungsi ini gagal terbaca maka akan mengembalikan
NULL. Berikut adalah deklarasi fgets pada bahasa C :
Yang ditampilkan hanya 1 kalimat “Hello Word” saja dikarenakan setelah kata
tersebut terdapat new line kata berikutnya yaitu “Ini Merupakan fungsi fputs”.
- fscanf (input)
Fungsi ini membaca data dari filestream kedalam field-field sesuai format.
Apabila proses berhasil membaca maka fungsi ini akan mengembalikan bilangan
yang menyatakan jumlah field yang berhasil di baca. Apabila tidak ada field yang
berhasil dibentuk maka akan dikembalikan angka 0. Apabila EOF maka akan
dikembalikan EOF. Berikut deklarasi dari fscanf pada bahasa C :
- fprintf (output)
fungsi ini digunakan untuk menulis data berformat kedalam file stream sesuai
Berikut adalah contoh program penggunaan fscanf dan fprintf pada bahasa C :
1. File digunakan untuk penyimpanan data yang bentuknya adalah permanen bukan
sementara. File dapat disebut juga sebagai kumpulan record.Stream adalah
kumpulan karakter yang disusun dalam baris-baris yang berpindah dari satu media
ke media lain pada sistem komputer.
2. Openfile adalah dimana dilakukan manipulasi terhadap sebuah file yang diawali
dengan mengaktifkan file tersebut melalui function fopen(). Sehingga function-
function untuk membaca dan menulis data ke dalam file dapat dikerjakan selama
program berjalan.
3. Close file adalah proses selanjutnya ketika suatu fileselesai di proses (dibuka)
maka file harus ditutup dengan memanggil functionfclose() atau fcloseall().
4. Input dan outputfile memiliki fungsi yang sama dengan input dan output pada
fungsi bahasa C. Yang membedakan adalah input dan output yang dilakukan
menggunakan file sebagai informasi yang dimasukkan dan dikeluarkan.
Minggu 10
Sesi 14
Sorting & Searching
1. Sorting
2. Bubble Sort
3. Selection Sort
4. Insertion Sort
5. Quick Sort
6. Merge Sort
7. Searching
8. Linear Search
9. Binary Search
10. Interpolation Search
5. Quick Sort
Algoritma quick sort bekerja dengan membagi sekumpulan data menjadi 2 bagian
sedemikian rupa sehingga elemen tertentu (elemen ke-i) berada tepat pada posisinya,
semua elemen yang nilainya lebih kecil dari elemen ke-i berada pada di sebelah kiri
elemen ke-i dan semua elemen yang nilainya lebih besar dari elemen ke-i berada di
sebelah kanan elemen ke-i.
a[kiri], a[kiri+1], ... , a[i-1] < a[i] < a[i+1], a[i+2], ..., a[kanan]
Selanjutnya elemen-elemen pada posisi sebelah kiri elemen ke-i di-sort kembali
dengan cara yang sama, sama halnya dengan elemen-elemen pada posisi sebelah
kanan elemen ke-i.
9. Binary Search
Binary search (pencarian biner) adalah pencarian data yang dilakukan mulai dari
pertengahan kumpulan data yang telah diurutkan berdasarkan nilai kunci. Apabila
nilai kunci yang dicari lebih besar daripada nilai kunci data pertengahan maka
kemungkinan data yang dicari berada pada paruh akhir data (tengah ke bawah).
Dengan cara ini lingkup data pencarian berkurang setengah setiap kalinya sehingga
proses pencarian akan lebih cepat selesai dibandingkan linear search. Berikut
algoritma dari binary search :
telepon tersebut. Pencarian ini disebut dengan interpolation search. Posisi relatif
kunci pencarian dihitung dengan rumus :
1. Dalam pengolahan data sering kali data tersebut perlu diurutkan (disusun) untuk
mempermudah proses data tersebut. Proses pengurutan data tersebut disebut dengan
sorting. Salah satu tujuan dari sorting adalah untuk mempercepat pencarian data
(searching, retrieving).
Berdasarkan perbandingan nilai data maka sorting dapat dilakukan dengan 2 cara yatu
ascending dan descending.
2. Bubblesort merupakan teknik sorting yang sederhana dan mengikuti prinsip bubble
(gelembung udara). Pengurutan dalam algoritma ini menggunakan perbandingan di
antara 2 data.
3. Algoritma selection sort membagi proses pengurutan menjadi putaran-putaran. Pada
putaran pertama diseleksi data dengan nilai terkecil dan data ini ditempatkan pada posisi
indeks terkecil (data[0]).
4. Algoritma insertion sort prosesnya sama seperti seseorang mengurutkan kartu. Selembar
demi selembar kartu diambil dari kumpulan kartu dan disisipakan pada posisi yang tepat.
5. Algoritma quick sort bekerja dengan membagi sekumpulan data menjadi 2 bagian
sedemikian rupa sehingga elemen tertentu (elemen ke-i) berada tepat pada posisinya,
semua elemen yang nilainya lebih kecil dari elemen ke-i berada pada di sebelah kiri
elemen ke-i dan semua elemen yang nilainya lebih besar dari elemen ke-i berada di
sebelah kanan elemen ke-i.
6. Algoritma merge sort adalah pengurutan dengan cara penggabungan. Dua kumpulan
data yang masing-masing telah diurutkan digabung menjadi satu. Penggabungan dimulai
dengan menggabungkan kelompok data dengan jumlah elemen terkecil.
7. Dalam data yang telah tersimpan dalam file adakalanya data tersebut akan dilakukan
pencarian informasi atau retrieval yang dilakukan untuk mendapatkan informasi tertentu.
8. Linear search adalah salah satu teknik pencarian data secara berurutan dari data pertama
hingga data dengan kunci pencarian ditentukan atau sampai data yang telah dicari
ternyata tidak ditemukan. Linear search ini dilakukan terhadap data yang tidak diurutkan
(sort) berdasarkan kunci tertentu sehingga tidak diketahui posisi data yang ingin dicari.
9. Binary search (pencarian biner) adalah pencarian data yang dilakukan mulai dari
pertengahan kumpulan data yang telah diurutkan berdasarkan nilai kunci.
10. Thompson Susabda Ngoen, 2006. Pengantar Algoritma dengan Bahasa C. Salemba
Teknika. ISBN : 979-9549-25-6. Bagian 11 dan 12.