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