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 Climate

  Data 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 csSi 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