Minggu 1
Sesi 2
Definisi Algoritma
Definisi Pseudocode
Notasi Matematika & Deret
Pengantar Analisis Algoritma
Induksi Matematika
Fungsi Rekursif
Langkah – langkah Pembuatan Algoritma
Perhitungan Waktu Pemrosesan dan Tingkat Pertumbuhan
Kesimpulan
A. Definisi Algoritma
Kata “Algoritma” berasal dari Ahli Matematika Persia, Abu Ja’fer
Mohammed Ibn Musa al Khowarizmi. Algoritma sendiri mempunyai arti sebagai
kumpulan proses komputasi yang memproses input menjadi output. Secara umum,
Algoritma dapat digambarkan sebagai urutan proses yang perlu dilakukan untuk
menyelesaikan suatu tugas. Algoritma biasanya digambarkan sebagai alat untuk
menyelesaikan masalah komputasi yang telah dispesifikasikan dengan baik.
1. Input: nol atau beberapa nilai input yang dimasukkan dari luar
B. Definisi Pseudocode
Pseudocode merupakan salah satu metode untuk menggambarkan
algoritma dalam bentuk high – level specification. Pada umumnya pseudocode
merupakan penggabungan dari penggunaan bahasa inggris yang menggambarkan
proses kerja dan notasi matematika.
Pseudocode pada umumnya menyerupai bahasa pemrograman dikarenakan
mempunyai struktur bahasa dan proses yang baku dan jelas. Pseudocode pada
umumnya dipakai untuk menggambarkan algoritma dari suatu bagian proses yang
kompleks untuk menggambarkan secara detail proses kerja dari algoritma
tersebut. Berikut merupakan contoh bentuk dari pseudocode.
BEGIN
END IF
END
1.
a 1 a 2 .... a n ak
k 1
n n n
c a k bk c a k
2. bk
k 1 k 1 k 1
n n
3. f k f k
k 1 k 1
n n 1
n
4. k 1 2 ..... n n 2
k 1 2
n
5. H n
1 1
2
1
3
1
4
..... 1
n
1
k
ln n 0 1
k 1
scanf(“%d”,&n); //1
a = b + c; //n2
b = c; //n2
c = a; //n2
fx ( ( 5 x x ) x )) 6
2
i0 j0
Dari persamaan tersebut terlihat terdapat dua sigma, dimana sigma yang
pertama menunjukkan perulangan dengan indeks i, sedangkan sigma kedua
menunjukkan perulangan j. x menyatakan statement dan 6 merupakan konstanta
pada algoritma diatas.
E. Induksi Matematika
Induksi matematika digunakan untuk melakukan pengujian dari dua
bentuk persamaan matematika. Pada mata kuliah ini, bentuk persamaan
n ( n 1)
n
i
2
i 1
k ( k 1)
1 2 3 ... k
2
k ( k 1)
1 2 3 ... k ( k 1 ) ( k 1)
2
k ( k 1) k ( k 1) 2 ( k 1)
( k 1)
2 2 2
k ( k 1) ( k 1 )( k 2 )
( k 1)
2 2
k ( k 1) ( k 1 )(( k 1 ) 1 )
( k 1)
2 2
F. Fungsi Rekursif
Fungsi merupakan sebagian baris atau tahapan dari algoritma yang
dikelompokkan tersendiri atau biasa disebut modul. Pembentukan ini ditujukan
agar proses algoritma yang berulang dapat dikelompokan tersendiri dan untuk
menjalankannya cukup melalui pemanggilan fungsi ini saja.
Pemanggilan fungsi dapat berlangsung dari fungsi utama, fungsi lain,
maupun fungsi itu sendiri. Dalam pemanggilan fungsi, pengiriman nilai dapat
dilakukan agar fungsi yang dipanggil dapat mengakses nilai yang dikirim. Bentuk
pengiriman nilai yang ada berupa pengirimin berupa nilai (passing by value) dan
pengiriman berupa alamat (passing by address). Pada pengiriman berupa nilai
yang dikirim hanya nilai saja, jadi lebih bersifat melakukan duplikasi nilai ke
variabel yang terdapat pada fungsi pemanggil atau biasa disebut parameter
sehingga perubahan atau pengolahan nilai pada fungsi pemanggil tidak akan
if(n<2)
return 1;
else
return n * faktorial(n-1);
Dari contoh diatas terlihat bahwa ketika fungsi faktorial dipanggil, fungsi
tersebut akan memanggil fungsi factorial lainnya. Berikut merupakan
penggambarannya untuk pemanggilan fungsi faktorial(5).
Faktorial(5)
Faktorial(4)
Hasil = 5 x Faktorial(3)
Faktorial(4); Hasil = 4 x Faktorial(2)
Hasil = 3 x Faktorial(1)
Faktorial(3)
Faktorial(2) Hasil = 2 x
Faktorial(1)
Hasil = 2 x 1 Return 1
Hasil = 3 x 2
Hasil = 4 x 6 Return 2
Hasil = 5 x 24 Return 6
Return 24
Return 120
Pada mata kuliah ini akan menitikberatkan pada analisa dan perancangan
algoritma. Dimana awalnya akan dipelajari bagaimana cara mengubah algoritma
ke dalam persamaan matematika yang dilanjutkan dengan pembuktian dari
algoritma yang telah diubah ke dalam bentuk persamaan matematika untuk
menguji nilai ketepatan dari algoritma tersebut terhadap persamaan dasar.
Kemudian akan dilanjutkan dengan pembelajaran terkait dengan fungsi
rekursif. Fungsi rekursif ini nantinya akan sangat dipakai dalam pemecahan
masalah menggunakan metode dynamic programming. Hal yang perlu
diperhatikan dalam perancangan algoritma baik dari segi tahapan maupun analisa
akhir algoritma.
1. Sridhar, S., (2015), Design and Analysis of Algorithm. Delhi: Oxford University
Press.
2. Horowitz, E., Sahni, S., & Rajasekaran, S., (1997), Computer Algorithms C++.
New York: Computer Science Press.