Algoritme dan Pemrograman KONTRAK PERKULIAHAN Link to Dokumen Kontrak Perkuliahan
KONTRAK PERKULIAHAN Algo ritm e dan Pe m ro gram an Link to Dokumen Kontrak Perkuliahan
Kuliah # 1 Kontrak Perkuliahan •
Pendahuluan • Pembuatan algor itme •
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Ke napa b e lajar algo ritme dan
Co nto h pe ne rapan pe mro graman?
(banyak dipakai di Statistika: quick count, computati onal stati sti cs
Profesi di banyak bidang (tidak hanya bidang komputer) melibatkan: kecerdasan buatan)
Pengolahan data yang banyak
Penyajian data dan infor masi Klimatologi: simulasi iklim, prediksi musim, pengolahan dan
Pengambilan kesimpulan berdasarkan infor masi penyajian data stasiun cuaca (cari: NOAA dan IRI/ LDEO ClimateData Library) Komputer memungkinkan:
Pengerjaan teknik lama dengan lebih efisien (pencar ian, pengur utan, dll)
Matematika: computati onal mathemati cs (pembuktian dengan
Pengembangan teknik-teknik bar u (kecerdasan buatan, dll)
komputer, metode numerik) Banyak teknik komputasi yang ter inspirasi dar i bidang lain:
Fisika: simulasi partikel, pengolahan data fisika elementer,
Jar ingan syaraf tir uan
(banyak metode numerik)
computati onal physi cs Si mul ated anneal i ng (dar i pembuatan baja) Algor itme genetika
Biologi: bioinformatika
Algor itme koloni semut (dar i per ilaku semua dalam mencar i makanan)
Teknik sipil: studi struktur, simulasi (banyak metode numerik)
DEPARTEMEN I LMU KOMPUTER DEPARTEMEN I LMU KOMPUTER I NSTI TUT
I NSTI TUT PERTANI AN BOGOR PERTANI AN BOGOR Kiat Suks e s Pro gram Ko m pute r .
Sadari perbedaan mata kuliah ini dengan yang lainnya Komputer hanyalah sebuah mesin Membuat solusi sendir i, bukan semata mengikuti langkah-
Komputer bekerja sesuai perintah atau instruksi yang langkah yang telah ditetapkan diberikan. Perbanyak latihan membuat algoritme
Perintah atau instruksi yang diberikan kepada komputer Perbanyak latihan membuat program untuk memecahkan suatu masalah disebut
program komputer.
Buatlah soal-soal baru (mis. dengan memvariasikan soal yang ada) untuk latihan Program komputer ini memandu kerja dari komputer yang secara berstruktur disusun oleh manusia.
Aktif bertanya baik di kelas, lab, maupun di milis Bahasa yang digunakan untuk menyusun program komputer
Kecurangan dalam pengumpulan tugas tidak akan membantu disebut bahasa pemrograman komputer . di ujian
DEPARTEMEN I LMU KOMPUTER I NSTI TUT DEPARTEMEN I LMU KOMPUTER
Me mb uat Langkah Me mb uat Pro gram Ko mpute r Pro gram Ko mpute r
Pemrograman komputer harus dilakukan secara sistematis, dimulai dengan merancang atau mendesain
Fase pem ecah an langkah-langkah yang tepat yang menjelaskan jawaban m asalah
M ASALAH dari suatu masalah.
Langkah-langkah yang disusun secara berstruktur dan terurut untuk menjawab suatu persoalan dengan
ALGORI TM E Lan gk ah su lit menggunakan bahasa manusia inilah yang sering disebut dengan algoritme.
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
Pe nulis an algo ritm e vs pro gram Me njumlahkan dua b ilangan b ulat
ALGORITME 1a. MENJUMLAHKAN DUA BILANGAN Sebenarnya, cara menuliskan algoritme adalah bebas, sedangkan program dituliskan sesuai bahasa pemrograman
1.
baca dua buah bilangan bulat (misalnya a dan b). tertentu (dalam MK ini: bahasa pemrograman C)
2. jumlahkan dua bilangan tersebut dan simpan hasilnya ke
Namun, agar dapat dipahami oleh orang lain, maka penulisan peubah c (c a + b).
algoritme cenderung baku, sering disebut sebagai 3. cetak nilai c.
. Salah satu contoh:
pseudocode
ALGORITME 1b. MENJUMLAHKAN DUA BILANGAN
procedure jumlah { 1. baca a dan b. read a, b c
a+b 2. c a + b.
print 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
Algo ritm e vs Pro gram (Co nto h # 1 ) Me ne ntukan ke lulusan dari tiga nilai
Perumusan masalah:
Algoritm e Pro gram Diber ikan tiga buah nilai ujian. Jikarata-rata dar i tiga nilai kurang
dar i 50, maka statusnyaadalahTIDAK LULUS, sedangkan lainnya #include <stdio.h> 1. baca a dan b.
(lebih besar atau sama dengan 50) dinyatakan LULUS.
2.
c a + b.
int main()
procedure kelulusan { 3. cetak nilai c.
{
read nil1, nil2, nil3
short int a, b, c; scanf("%hd %hd", &a, &b); r (nil1+nil2+nil3)/3 c = a + b;
if (r < 50) then print " TIDAK LULUS "
printf("%hd\n", c); " “
else print LULUS
}
} DEPARTEMEN I LMU KOMPUTER I NSTI TUT DEPARTEMEN I LMU KOMPUTER I NSTI TUT Pro gram C Co nto h # 2 DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR
#include <stdio.h> int main() { short int nil1, nil2, nil3, r; scanf("%hd %hd %hd", &nil1, &nil2, &nil3); r = (nil1 + nil2 + nil3)/3; if (r < 50) printf("TIDAK LULUS\n"); else printf("LULUS\n");
4. Jika c
DEPARTEMEN I LMU KOMPUTER I NSTI TUT
read(a,b,c); pr int(sum);
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 :
Pada contoh # 1, mana saja yang termasuk variabel?
Case- sensitive (var iabel X berbeda dengan var iabel x) Contoh: a, b, c, n, sum, .....
Dituliskan dengan suatu nama yang unik, terdir i dar i alphanumer ic, tetapi har us dimulai dengan hur uf atau underscore .
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
VARIABEL
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Ele me n Pse udo c o de :
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
Cetak (besar, kecil) Ele m e n Ps e udo c o de
≤ kecil, maka kecil c 5.
Jika c ≥ besar, maka besar c
} Latihan Ke las DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR
b, kecil a 3.
b, selainnya: besar
a, kecil
b, maka: besar
≥
2. Jika a
1. Baca (a, b, c)
Algo ritm e apakah ini? DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR
5. Menentukan apakah sebuah bilangan bulat adalah bilangan genap atau ganjil.
4. Menentukan apakah sebuah bilangan bulat habis dibagi a ataukah tidak (a > 0).
3. Memeriksa apakah suatu bilangan bulat adalah positif, negatif, atau 0. Jika positif, cetak kata 'POSITIF‘ ; jika negatif, cetak 'NEGATIF‘ .
2. Menentukan bilangan terbesar dan terkecil dari tigabilangan bulat.
Buat langkah-langkah untuk melakukan hal-hal berikut: 1. Menjumlahkan 4 bilangan bulat.
INSTRUKSI/ PERINTAH
Ele me n Pse udo c o de : EKSPRESI dan ASSIGNMENT
Struktur lainnya: continue, exit, return
) 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 Co nto h # 4 Masalah dan Pe rumusannya
// Perhatikan tanda “==“ untuk tes kesamaan if (t == 0) // Periksa nilai t print(" YA"); else print(" TIDAK"); }
// Memeriksa apakah b habis dibagi oleh a procedure habisDibagi { read(b,a); t = b mod a;
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Co nto h # 3 Algo ritme
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 pengulangan (looping): for, while Per ulangan berdasarkan syarat/ kondisi ter tentu
Ekspresi adalah operasi yang akan dievaluasi (diproses) untuk menghasilkan suatu nilai. Ekspresi dapat ber sifat ar itmetika(menghasilkan angka) maupun logika (menghasilkan kondisi
): if, if – else, switch Pilihan berdasarkan syarat/ kondisi ter tentu
condi ti onal
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 (
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR Ele me n Pse udo c o de : STRUKTUR KENDALI ALIRAN
sum = 0; a = -7; max = 9.513; x = n; b = a + 4; c = 4 / x; c = a + b; sum = sum + x;
Contoh:
Bukan ber makna kesamaan
Tanda “= “ menggantikan tanda “ ”
Nilai di sisi kanan dapat ber upa nilai literal, var iabel lain, atau suatu ekspresi.
Assignment atau penugasan adalah pember ian suatu nilai di sisi kanan ke suatu penampung (mis. var iabel) di sisi kir i.
FALSE ).
atau
TRUE
DEPARTEMEN I LMU KOMPUTER I NSTI TUT
- 23
5
b
2 - 4ac.
Contoh input (nilai a b c): 2 3 4 Contoh output:
DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR LATIHAN # 2
Masalah: Buat algoritme mencetak bilangan bulat ganjil (gasal) dari 1 sampai dengan n.
Contoh input:
8 Contoh output:
1
3
7 DEPARTEMEN I LMU KOMPUTER I NSTI TUT
LATIHAN # 1
LATIHAN # 3
Masalah: Buat algor itme mencetak bilangan bulat dimulai dar i n sampai dengan 1.
Contoh input:
5 Contoh output:
5
4
3
2
1 DEPARTEMEN I LMU KOMPUTER I NSTI TUT
Masalah: Buat algoritme mencetak hasil perhitungan
3
Co nto h # 4 Algo ritme // Mencetak bilangan 1, 2, sampai dengan n procedure printN { read(n); // sampai bilangan berapa? c = 0;
Tips: Ikuti langkah demi langkah Catat setiap per ubahan nilai dar i suatu var iabel Jikamenemukan suatu pola ter tentu,
// 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 PERTANI AN BOGOR Me n-trac e algo ritm e
Men-
trace
algoritme adalah suatu proses untuk menelusuri langkah demi langkah dari suatu algoritme dan menentukan output akhirnya. Dalam pemrograman, proses ini disebut juga sebagai proses
debug .
output
2
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
4
1
2
3
4
1
4 STOP
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:
89 DEPARTEMEN I LMU KOMPUTER I NSTI TUT PERTANI AN BOGOR