Penulisan algoritme vs program
Ke napa b e lajar algo ritme dan pe mro graman?
Profesi di banyak bidang (tidak hanya bidang komputer) melibatkan:
Pengolahan data yang banyak Algo ritm e dan Pe m ro gram an
Pengambilan kesimpulan berdasarkan infor masi
Komputer memungkinkan: Kuliah # 1
Pengerjaan teknik lama dengan lebih efisien (pencar ian, pengur utan, dll)
Kontrak Perkuliahan •
Pengembangan teknik-teknik bar u (kecerdasan buatan, dll)
Pendahuluan • Banyak teknik komputasi yang ter inspirasi dar i bidang lain:
- Pembuatan algor itme
Jar ingan syaraf tir uan Si mul ated anneal i ng (dar i pembuatan baja) Algor itme genetika Algor itme koloni semut (dar i per ilaku semua dalam mencar i makanan)
DEPARTEMEN I LMU KOMPUTER
I NSTI TUT PERTANI AN BOGOR Co nto h pe ne rapan Kiat Suks e s
(banyak dipakai di Statistika: quick count, computati onal stati sti cs
Sadari perbedaan mata kuliah ini dengan yang lainnya kecerdasan buatan) Membuat solusi sendir i, bukan semata mengikuti langkah-
Klimatologi: simulasi iklim, prediksi musim, pengolahan dan langkah yang telah ditetapkan penyajian data stasiun cuaca (cari: NOAA dan IRI/ LDEO Climate
Perbanyak latihan membuat algoritme Data Library)
Perbanyak latihan membuat program Matematika: computati onal mathemati cs (pembuktian dengan
Buatlah soal-soal baru (mis. dengan memvariasikan soal yang komputer, metode numerik) ada) untuk latihan
Fisika: simulasi partikel, pengolahan data fisika elementer, Aktif bertanya baik di kelas, lab, maupun di milis
(banyak metode numerik)
computati onal physi cs
Kecurangan dalam pengumpulan tugas tidak akan membantu Biologi: bioinformatika di ujian
Teknik sipil: studi struktur, simulasi (banyak metode numerik)
DEPARTEMEN I LMU KOMPUTER I NSTI TUT DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR PERTANI AN BOGOR Me mb uat
Pro gram Ko m pute r Pro gram Ko mpute r .
Komputer hanyalah sebuah mesin Pemrograman komputer harus dilakukan secara Komputer bekerja sesuai perintah atau instruksi yang sistematis, dimulai dengan merancang atau mendesain diberikan.
langkah-langkah yang tepat yang menjelaskan jawaban dari suatu masalah.
Perintah atau instruksi yang diberikan kepada komputer untuk memecahkan suatu masalah disebut
program Langkah-langkah yang disusun secara berstruktur dan komputer. terurut untuk menjawab suatu persoalan dengan
Program komputer ini memandu kerja dari komputer yang
menggunakan bahasa manusia inilah yang sering disebut secara berstruktur disusun oleh manusia. dengan algoritme.
Bahasa yang digunakan untuk menyusun program komputer disebut bahasa pemrograman komputer .
DEPARTEMEN I LMU KOMPUTER DEPARTEMEN I LMU KOMPUTER I NSTI TUT
Langkah Me mb uat
Pro gram Ko mpute r Pe nulis an algo ritm e vs pro gram
Sebenarnya, cara menuliskan algoritme adalah bebas, sedangkan program dituliskan sesuai bahasa pemrograman
Fase pem ecah an m asalah
Namun, agar dapat dipahami oleh orang lain, maka penulisan
M ASALAH
algoritme cenderung baku, sering disebut sebagai . Salah satu contoh:
pseudocode ALGORI TM E procedure jumlah {
Lan gk ah su lit read a, b c
a+b print c
PROGRAM KOM PU TER
Fase im plem en t asi, } codin g
DEPARTEMEN I LMU KOMPUTER I NSTI TUT DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR PERTANI AN BOGOR
Co nto h Algo ritme # 1
Me njumlahkan dua b ilangan b ulat Algo ritm e vs Pro gram (Co nto h # 1 )
ALGORITME 1a. MENJUMLAHKAN DUA BILANGAN
Algoritm e Pro gram 1.
baca dua buah bilangan bulat (misalnya a dan b).
#include <stdio.h>
2. jumlahkan dua bilangan tersebut dan simpan hasilnya ke 1. baca a dan b.
peubah c (c a + b).
2. c a + b.
int main() 3. cetak nilai c. 3. cetak nilai c.
{ short int a, b, c; ALGORITME 1b. MENJUMLAHKAN DUA BILANGAN scanf("%hd %hd", &a, &b);
1. baca a dan b.
c = a + b; 2. c a + b.
printf("%hd\n", c); 3. cetak nilai c. }
DEPARTEMEN I LMU KOMPUTER I NSTI TUT DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR PERTANI AN BOGOR
Co nto h Algo ritme # 2 Me ne ntukan ke lulusan dari tiga nilai Pro gram C Co nto h # 2
Perumusan masalah: #include <stdio.h> Diber ikan tiga buah nilai ujian. Jikarata-rata dar i tiga nilai kurang dar i 50, maka statusnyaadalahTIDAK LULUS, sedangkan lainnya
int main() (lebih besar atau sama dengan 50) dinyatakan LULUS. { procedure kelulusan { short int nil1, nil2, nil3, r; scanf("%hd %hd %hd", &nil1, &nil2, &nil3); read nil1, nil2, nil3 r (nil1+nil2+nil3)/3 r = (nil1 + nil2 + nil3)/3; if (r < 50) then print " TIDAK LULUS " if (r < 50) printf("TIDAK LULUS\n");
" “
else print LULUS else printf("LULUS\n"); }
} DEPARTEMEN I LMU KOMPUTER I NSTI TUT DEPARTEMEN I LMU KOMPUTER I NSTI TUT Latihan Ke las DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR
Buat langkah-langkah untuk melakukan hal-hal berikut: 1. Menjumlahkan 4 bilangan bulat.
read(a,b,c); pr int(sum);
Dituliskan dengan suatu nama yang unik, terdir i dar i alphanumer ic, tetapi har us dimulai dengan hur uf atau
underscore .
Case- sensitive
(var iabel X berbeda dengan var iabel x) Contoh: a, b, c, n, sum, ..... Pada contoh # 1, mana saja yang termasuk variabel?
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Ele me n Pse udo c o de :
Perintah/ instruksi adalah satuan operasional dari suatu algoritme. Dinyatakan dalam kalimat sehari-hari yang mudah dipahami dan konsisten. Diakhiri tanda titik koma (;) Contoh:
DEPARTEMEN I LMU KOMPUTER I NSTI TUT Ele me n Pse udo c o de : EKSPRESI dan ASSIGNMENT
VARIABEL
Ekspresi adalah operasi yang akan dievaluasi (diproses) untuk menghasilkan suatu nilai. Ekspresi dapat ber sifat ar itmetika(menghasilkan angka) maupun logika (menghasilkan kondisi TRUE atau FALSE ). Assignment atau penugasan adalah pember ian suatu nilai di sisi kanan ke suatu penampung (mis. var iabel) di sisi kir i.
Nilai di sisi kanan dapat ber upa nilai literal, var iabel lain, atau suatu ekspresi.
Tanda “= “ menggantikan tanda “
” Bukan ber makna kesamaan
Contoh:
sum = 0; a = -7; max = 9.513; x = n; b = a + 4; c = 4 / x; c = a + b; sum = sum + x;
DEPARTEMEN I LMU KOMPUTER I NSTI TUT
Variabel adalah elemen dari algoritme untuk menyimpan nilai tertentu pada suatu saat, dan pada saat yang lain nilai ini dapat diubah menjadi nilai lainnya sesuai kebutuhan. Beberapa catatan agar mudah dipindah ke program C
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Ele me n Pse udo c o de :
2. Menentukan bilangan terbesar dan terkecil dari tigabilangan bulat.
a, kecil
3. Memeriksa apakah suatu bilangan bulat adalah positif, negatif, atau 0. Jika positif, cetak kata 'POSITIF‘ ; jika negatif, cetak 'NEGATIF‘ .
4. Menentukan apakah sebuah bilangan bulat habis dibagi a ataukah tidak (a > 0).
5. Menentukan apakah sebuah bilangan bulat adalah bilangan genap atau ganjil.
Algo ritm e apakah ini? DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR
1. Baca (a, b, c)
≥ besar
b, selainnya: besar
Variabel Perintah atau instruksi Assignment atau penugasan dan ekspresi Struktur kendali aliran Komentar Catatan: pseudocode yang kita gunakan mengadopsi beberapa ketentuan bahasa pemrograman C agar mudah diubah ke bahasa pemrograman C
b, kecil a 3.
Jika c ≥ besar, maka besar c
4. Jika c
≤ kecil, maka kecil c
5. Cetak (besar, kecil)
Ele m e n Ps e udo c o de
INSTRUKSI/ PERINTAH
Ele me n Pse udo c o de : STRUKTUR KENDALI ALIRAN
// Memeriksa apakah b habis dibagi oleh a procedure habisDibagi { read(b,a); t = b mod a;
// Mencetak bilangan 1, 2, sampai dengan n procedure printN { read(n); // sampai bilangan berapa? c = 0; // inisialisasi while (c<n) { // selama c kurang dari n c=c+1; // nilai c sebelumnya ditambah 1 print(c); }
DEPARTEMEN I LMU KOMPUTER I NSTI TUT Co nto h # 4 Algo ritme
) yang biasa digunakan pramugari untuk menghitung banyak penumpang pesawat yang masuk sampai jumlah penumpang yang seharusnya tercapai. Di awal, counter diset ke 0 (disebut inisialisasi, misalnya c= 0). Setelah itu, tombol ditekan sehingga nilai sebelumnya bertambah 1 (c= c+ 1). Hal ini dilakukan seterusnya selama (while) c kurang dari n sambil mencetak nilai c.
counter
Perumusan masalah: Masalah ini mirip dengan mesin penghitung (
Masalah: Buat algoritme mencetak bilangan 1, 2, 3, sampai dengan n (n> 0)
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Co nto h # 4 Masalah dan Pe rumusannya
// Perhatikan tanda “==“ untuk tes kesamaan if (t == 0) // Periksa nilai t print(" YA"); else print(" TIDAK"); }
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Co nto h # 3 Algo ritme
Struktur kendali aliran adalah suatu bentuk atau struktur yang memiliki peranan khusus untuk mengatur atau mengendalikan urutan pengerjaan satu atau lebih operasi atau instruksi. Struktur kondisi (
Pemecahan masalah: Untuk menentukan apakah satu bilangan (misal b) habis dibagi oleh a, dapat dilakukan dengan menentukan sisa pembagian, yaitu menggunakan operasi modulo (mod). Jika bilangan b mod a= 0 maka bilangan b tersebut berarti habis dibagi oleh a, dan algoritme akan mencetak teksYA. Selainnya, akan mencetak teksTIDAK.
Masalah: Buat algoritme menentukan apakah suatu bilangan bulat habis dibagi oleh a (a> 0)
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Co nto h # 3 Masalah dan Pe rumusannya
Komentar adalah suatu catatan tambahan yang dituliskan ke dalam algor itme dengan tujuan untuk memperjelas, tetapi tidak mempengar uhi operasi apa pun didalam algor itme. Diber i notasi awal ”/ / ” Dapat dituliskan sebagai bar is ter pisah atau setelah suatu per nyataan. Mulai tanda “/ / ” hingga akhir bar is tidak diproses (tidak ber pengar uh pada per ilaku dan hasil program) Contoh: // Algoritme menjumlahkan dua bilangan bulat // Dibuat pada 2 September 2012
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Ele me n Pse udo c o de : KOMENTAR
Struktur lainnya: continue, exit, return
Struktur pengulangan (looping): for, while Per ulangan berdasarkan syarat/ kondisi ter tentu
): if, if – else, switch Pilihan berdasarkan syarat/ kondisi ter tentu
condi ti onal
} DEPARTEMEN I LMU KOMPUTER I NSTI TUT
- 23
5
8 Contoh output:
1
3
5
7 DEPARTEMEN I LMU KOMPUTER I NSTI TUT
PERTANI AN BOGOR LATIHAN # 3
Masalah: Buat algor itme mencetak bilangan bulat dimulai dar i n sampai dengan 1.
Contoh input:
5 Contoh output:
4
Masalah: Buat algoritme mencetak bilangan bulat ganjil (gasal) dari 1 sampai dengan n.
3
2
1 DEPARTEMEN I LMU KOMPUTER I NSTI TUT
LATIHAN # 4
Masalah: Buat algor itme menghitung jumlah dar i beberapabilangan bulat. Input:
Beberapabilangan bulat dan diakhir i dengan nilai minus 99 atau -99 (bilangan terakhir ini tidak dijumlahkan)
Output: Jumlah dar i bilangan masukan selain bilangan terakhir (minus 99)
Contoh input:
20 -8 0 26 37 14 -99
Contoh output:
Contoh input:
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR LATIHAN # 2
Me n-trac e algo ritm e
4
Men-
trace
algoritme adalah suatu proses untuk menelusuri langkah demi langkah dari suatu algoritme dan menentukan Dalam pemrograman, proses ini disebut juga sebagai proses
debug .
Tips: Ikuti langkah demi langkah Catat setiap per ubahan nilai dar i suatu var iabel Jikamenemukan suatu pola ter tentu,
output
akhir dapat langsung ditentukan tanpa mengikuti algor itme sampai selesai (hanyadilakukan oleh orang yang sudah sangat memahami algor itme)
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Co nto h m e n-trac e algo ritm e
// Misal input n=4 procedure printN { read(n); c = 0; while (c<n) { c=c+1; print(c); }
} DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR n c ou t pu t
1
Contoh input (nilai a b c): 2 3 4 Contoh output:
2
3
4
1
2
3
4 STOP LATIHAN # 1
Masalah: Buat algoritme mencetak hasil perhitungan
b
2 - 4ac.
89 DEPARTEMEN I LMU KOMPUTER I NSTI TUT