I. PENGANTAR ALGORITMA - WordPress.com

13 downloads 191 Views 631KB Size Report
ALGORITMA : urutan langkah-langkah logis penyelesaian masalah yang disusun secara .... perbedaan antara belajar algoritma program dan belajar bahasa ...
[email protected] TIF UWKS

2009

DESAIN DAN ANALISIS ALGORITMA

I. PENGANTAR ALGORITMA    ALGORITMA PEMROGRAMAN  Definisi Algoritma  ALGORITMA  :  urutan  langkah‐langkah  logis  penyelesaian  masalah  yang  disusun  secara  sistematis.  Algoritma menurut Kamus Besar Bahasa Indonesia adalah Urutan logis pengambilan keputusan untuk  pemecahan masalah .  Definisi Pemrograman  PROGRAM  :  suatu  bentuk  dan  aturan  untuk  menyelesaikan  sesuatu  yang  tersetruktur  dan  teratur,  dalah  hal  pemrograman  yang  dimaksut  adalah  bentuk  dan  aturan yang  merupakan  cara  kerja  yang  ada didalam suatu komputer (merupakan proses dalam PC)  Jadi  Algoritma  Pemrograman  adalah  bagaimana  langkah‐langkah  yang  ditempuh  atau  diputuskan  untuk  menyelesaikan  suatu  permasalahan  dengan  menggunakan  aturan  serta  proses  yang  berada  didalam komputer/PC. Sehingga dalam menyelesaiakan suatu permasalahan dituntut untuk berfikir  dengan langkah‐langkah yang runtut seakan‐akan seperti langkah‐langkah yang akan di jalankan oleh  sebuah  sistem  komputer,  karena  hasil  pemikiran  tersebut  atau  langkah‐langkah  tersebut  akan  diimplementasikan dan dilaksanakan oleh komputer.  Yang  bisanya  menjadi  sebuah  kesulitan  dalam  permulaan  belajar  adalah  jika  kita  belum  bisa  menyadari bahwa sebenarnya cara kerja otak kita juga seperti sebuah sistem komputer. Perbedaan  mendasarnya  kita  tidak  menyadari  dikarenakan  sudah  otomatis  dan  menjadi  suatu  kebiasaan  otak  kita dalam berfikir sehingga suatu langkah akan bisa terlewati. Contohnya : jika kita sudah terbiasa  memakai pisau roti untuk memotong roti maka ketika ada pilihan pisau yang lain kita akan langsung  mengabaikannya,  tetapi  jika  kita  belum  terbiasa  memakai  pisau  roti  bahkan  belum  tau  mana  yang  dimaksut  dengan  pisau  roti  maka  kita  akan  mencoba  pilihan  yang  ada  dengan  pemikiran  jika  yang  digunakan salah masih bisa mencoba pilihan lainnya. Cara berfikir itulah yang disebut suatu langkah‐ langkah yang harus ditempuh untuk menyelesaikan suatu masalah yang pada contoh diatas  adalah  untuk memotong roti.  Contoh lain Algoritma dalam kehidupan sehari‐hari : 

 

Page 1 

[email protected] TIF UWKS

2009

DESAIN DAN ANALISIS ALGORITMA

Proses 

Algoritma 

Langkah dalam Algoritma 

Membuat Kue 

Resep Kue 

Ambil  3buah telur, ambil kuning telur dan kocok,… 

Membuat baju 

Pola Baju 

Potong kain sesuai pola,…. 

Isi Voucher HP 

Panduan 

Tekan nomor 555, tekan 1 untuk isi pulsa , …. 

Ke Monas 

Perjalanan 

Beli 

Tiket 

Pesawat,Ke 

bandara 

Juanda, 

Turun

Cengkareng,...... 

Jadi bisa disimpulkan bahwa dalam algoritma harus sudah jelas langkah‐langkah yang akan diambil,  sudah  ada  alternatif  atau  langkah  lain  yang  sudah  direncanakan  sebelumnya  jika  terjadi  kegagalan  pada  langkah  tertentu.  Dimana  semua  langkah  yang  jelas  itu  merupakan  suatu  pemilihan  atau  pemikiran  logika  (yang  dapat  diterima  akal  dan  dibuktikan).  Walaupun  logika  bisa  mengerti  tetapi  jika  struktur  algoritma  tidak  menemukan  langkah‐langkah  dalam  penyelesaiannya  maka  bisa  diumpamakan ”seseorang yang mengerti cara menyelesaikan masalah tetapi tidak tahu jalan mana  yang ditempuh untuk bisa menyelesaiakn masalah tersebut”.  Jika  algoritma  kita  sudah  terlatih  dengan  baik  maka  untuk  pemrograman  hanyalah  merupakan  bahasa yang digunakan untuk menuliskan algoritma kita kedalam suatu Komputer. Bahasa tersebut  yang  akan  dikenali  dan  dimengerti  oleh  sistem  komputer  sehingga  komputer  akan  melaksanakan  semua  apa  yang  sudah  dituliskan  dengan  bahasa  pemrograman.  Jadi  bisa  disimpulkan  bahawa  jika  algoritma  sudah  terlatih  maka  beda  bahasa  pemrograman  halnya  seperti  kita  beda  bahasa  antara  suku atau bangsa di dunia ini.      KONSEP DASAR ALGORITMA PEMROGRAMAN  Berfikir Logis dengan Algoritma  Bagaimana  bagaimana  cara  berpikir  logis  ala  algoritma  itu.  Algoritma  jangan  dibayangkan  sebuah  tabel  matematik  dengan  angka‐angka  yang  jelimet/rumit  dan  membuat  mata  sakit.  Algoritma.  Seperti penjelasan diatas, Algoritma adalah runtutan langkah‐langkah logis penyelesian masalah yang  disusun  secara  sistematis  atau  kalau  menurut  Kamus  Besar  Bahasa  Indonesia  didefinisikan  sebagai  urutan logis pengambilan putusan untuk pemecahan masalah. Jadi jelas bukan masalah perhitungan  dengan  angka‐angka  jelimet  ,tetapi  dititikberatkan  pada  proses  berpikirnya  yang  dilakukan  secara   

Page 2 

[email protected] TIF UWKS

2009

DESAIN DAN ANALISIS ALGORITMA

logis.  Gampang  dan  sangat  dibutuhkan  dalam  kehidupan  sehari‐hari.  Sebenarnya  dalam  bidang  apapun  kita  pasti  memerlukan  cara  berpikir  logis  untuk  menyelesaikan  tantangan/permasalahan  yang kita hadapi.  Kata Logis merupakan kata kunci dalam Algoritma. Langkah‐langkah dalam Algoritma harus logis dan  harus  dapat  ditentukan  bernilai  salah  atau  benar.  Seperti  contoh  yang  ada  diatas  dalam  tatacara  membuat  kue  atau  masakan  yang  dinyatakan  dalam  suatu  resep  juga  dapat  disebut  sebagai  algoritma.  Pada  setiap  resep  selalu  ada  urutan  langkah‐lankah  membuat  masakan.  Bila  langkah‐ langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu‐ibu yang mencoba suatu  resep  masakan  akan  membaca  satu  per  satu  langkah‐langkah  pembuatannya  lalu  ia  mengerjakan  proses secara runtut sesuai yang di baca.  Secara  umum,  pihak  (benda)  yang  mengerjakan  proses  disebut  pemroses  (processor).  Pemroses  tersebut  dapat  berupa  manusia,  komputer,  robot  atau  alat‐alat  elektronik  lainnya.  Pemroses  melakukan  suatu  proses  dengan  melaksanakan  atau  “mengeksekusi”  algoritma  yang  menjabarkan  proses tersebut.  Melaksanakan  Algoritma  berarti  mengerjakan  langkah‐langkah  di  dalam  Algoritma  tersebut.  Pemroses  mengerjakan  proses  sesuai  dengan  algoritma  yang  diberikan  kepadanya.  Juru  masak  membuat  kue  berdasarkan  resep  yang  diberikan  kepadanya,  pianis  memainkan  lagu  berdasarkan  papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti  oleh pemroses. Jadi suatu pemroses harus :   1

Mengerti setiap langkah dalam Algoritma  

2

Mengerjakan operasi yang bersesuaian dengan langkah tersebut.  

  Langkah Penyusun Algoritma dalam suatu proses  Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma hasrus  ditulis  dalam  notasi  bahasa  pemrograman  sehingga  dinamakan  program.  Jadi  program  adalah  perwujudan  atau  implementasi  teknis  Algoritma  yang  ditulis  dalam  bahasa  pemrogaman  tertentu  sehingga dapat dilaksanakan oleh komputer.  Algoritma  berisi  langkah‐langkah  penyelesaian  suatu  masalah.  Langkah‐langkah  bisa  berupa  runtunan,  pemilihan,  dan  pengulangan.  Ketiga  langkah  itulah  yang  menyusun  algoritma.  Belajar   

Page 3 

[email protected] TIF UWKS

2009

DESAIN DAN ANALISIS ALGORITMA

memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar  tentang  metodologi  pemecahan  masalah,  kemudian  menuangkannya  dalam  suatu  notasi  tertentu  yang  mudah  dibaca  dan  dipahami  (belajar  logika  program).  Sedangakan  belajar  bahasa  pemrograman  berarti  belajar  memakai  suatu  bahasa  aturan‐aturan  tata  bahasanya,  instruksi‐ instruksinya,  tata  cara  pengoperasian  compiler‐nya,  dan  memanfaatkan  instruksi‐instruksi  tersebut  untuk  membuat  program  yang  ditulis  hanya  dalam  bahasa  itu  saja.  Sehingga  bisa  dijabarkan  perbedaan antara belajar algoritma program dan belajar bahasa pemrograman sebagai berikkut;     Belajar Algoritma program / Memprogram   •

Belajar memprogram ≠ belajar bahasa pemrograman.  



Belajar  memprogram  adalah  belajar  tentang  strategi  pemecahan  masalah,  metodologi  dan  sistematika  pemecahan  masalah  kemudian  menuliskannya  dalam  notasi  yang  disepakati  bersama.  



Belajar memprogram adalah  bersifat pemahaman persoalan, analisis dan sintesis.   



Belajar memprogram, titik berat pada designer program atau langkah program berjalan. 

  Belajar Bahasa Pemrograman   •

Belajar  bahasa  pemrograman  adalah  belajar  memakai  suatu  bahasa  pemrograman,  aturan  sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa.   



Belajar  bahasa  pemrograman  ,  titik  berat  pada  coder/coding  (menuliskan  sintaks/bahasa  program pada komputer)  

  Produk yang dihasilkan pemrogram/programer :   •

Program dengan rancangan yang baik (metodologis, sistematis).   



Dapat dieksekusi oleh mesin.  



Berfungsi dengan benar.  



Sanggup melayani segala kemungkinan masukan.  



Disertai dokumentasi.  



Belajar memprogram, titik berat pada designer program atau langkah – langkah dalam membuat 

 

Page 4 

[email protected] TIF UWKS S

2009

DESA AIN DAN ANALISIS A A ALGORITMA A

progrram (algoritm ma program m)    Tahap Pe enyelesaian Masalah 

    Kriteria P Pemilihan Algoritma  1. Ada Output  A 2. Effektifitas dan Efisiensi   3. Ju umlah Langkkahnya Berhingga   4. Berakhir   5. Terstruktur  

Aloritm ma  dikatakkan  baik  jiika  :  Suatuu  algoritma  harus  menghasilkan  output  o yg  teepat  guna  (efektif)  dalam  wakktu  yg  relattif  singkat  &  & pengguna aan  memorri  yg  relatif  f sedikit  (efe fesien)  dgn  ga & prosed durnya berakkhir baik dlm m keadaan d diperoleh suatu solusi attaupun tdk  langkah  yg berhingg ada solussinya.“     

Page 5

[email protected] TIF UWKS

2009

DESAIN DAN ANALISIS ALGORITMA

CONTOH :  Langkah‐langkah ketika akan mengirimkan surat kepada teman:  1. Tulis surat pada secarik kertas surat  2. Ambil sampul surat atau amplop  3. Masukkan surat ke dalam amplop  4. Tutup amplop surat dengan lem perekat  5. Tulis  alamat  surat  yg  dituju,  jika  tdk  ingat,  lebih  dahulu  ambil  buku  alamat  &  cari  alamat yg dituju, lalu tulis alamat tsb pd amplop surat.  6. Tempelkan perangko pada amplop surat  7. Bawa  surat  ke  kantor  pos  utk  diserahkan  pd  pegawai  pos  atau  menuju  ke  bis  surat  untuk memasukkan surat ke dlm kotak/bis surat.     Langkah‐langkah  penyelesaian  untuk  masalah  menentukan  akar  kuadrat  dari  suatu  bilangan  Bulat  Positif yg di Input  :  1. Baca bilangan Bulat Positif yg diinput, sebut saja sebagai A  2. Dinyatakan Nilai B adalah 0  3. Hitung Nilai C yg berisikan Nilai B dikalikan Nilai B  4. Jika Nilai C sama dengan Nilai A, maka Nilai B adalah Akar dari Nilai A, lalu stop.  5. Jika tidak, maka Nilai B akan bertambah 1  6. Kembali ke langkah pada No. 3         Penulisan Algoritma  •

Menggunakan bahasa natural  (Bahasa manusia: Indonesia, Inggris)  o Kelemahannya  masih sering membingungkan (ambigu) / sulit dipahami. 



Menggunakan Flowchart  o Baik karena alur algoritma dapat dilihat secara visual, tetapi  repot pembuatannya jika  algoritma panjang   

 

Page 6 

[email protected] TIF UWKS S



2009

DESA AIN DAN ANALISIS A A ALGORITMA A

M Menggunaka an Pseudoco ode  o Sudah h  dekat  dengan  bahasa  pemrogram man,  tetapi  sulit  dimengerti  oleh  orang  o yang  belum m tahu pemrograman  

  nalisa Algoritma  Tahap An 1. Bagaimana m merencanakaan algoritma   Dengaan Mendefin nisikan masaalah.  Conto oh : Permasaalahan mengghitung luas lingkaran, d dengan data yang diketaahui adalah  diame eter lingkaraan.  Rumu us :  ∏ . r2 de engan  Phi ==  3.14 atau 2 22    2. Bagaimana m menyatakan ssuatu algorittma (menuliis algoritma))  ‐

Misalnya D Dengan psud docode  

Suatu  cara    penulissan  algoritma  agar  ide  dan  logika  daari  algoritm ma  dapat  disampaikan//diekspresikan menggun nakan gaya b bahasa pemrograman teertentu.     

             

Page 7

[email protected] TIF UWKS S



2009

DESA AIN DAN ANALISIS A A ALGORITMA A

Dengan flo owchart / diagram alir 

Program  Flow wchart,  yaittu  bagan  yang  menggambar‐kan  urutan  logikaa  dari  suatu u  prosedur  pemecahan m masalah. 

    3. Bagaimana vaaliditas suatu algoritma..  Untukk  melihat  kesesuaian  k g dari  pembuatan/ p /akhir  dari  dengan  tujjuan  dan  goal  algoritma ersebutt.  nar berarti teelah sesuai  Misalkkan apakah benar nilai ssuatu algorittma akan ganjil , jika ben dengaan tujuan alggoritma, jika salah haruss membuat aalgoritma laggi.    Menganalisa suatu Algoriitma.  4. Bagaimana M U Untuk meliha at effisiensi d dan  efektifittas dari suattu algoritma,, dapat dilihat dari: 

 



Waktu u Tempuh dari Suatu Alggoritma  



Jumlah memori yaang digunakkan   Page 8

[email protected] TIF UWKS



2009

DESAIN DAN ANALISIS ALGORITMA

Hal‐hal yang dapat mempengaruhi waktu tempuh adalah :   9 Banyaknya langkah.   9 Besar dan jenis input data.   9 Jenis Operasi.   9 Komputer dan kompilator 

  

  5. Bagaimana Menguji  Program dari suatu Algoritma   Pengujian Tahap Debuging   

 

 

Untuk mengecek kesalahan program, Baik sintaksis maupun logika. 

Pengujian Tahap Profiling   Untuk  menentukan  waktu  tempuh  dan  banyak  nya  memori  program  yang  digunakan.   SIFAT ALGORITMA   Aspek Penting Algoritma :  ƒ

Finite Æ algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas  

ƒ

Definite  Æ  setiap  langkah  didefinisikan  secara    tepat,  tidak  boleh  membingungkan  (ambigu) 

ƒ

Input Æ sebuah algoritma memiliki nol/lebih input sebelum dijalankan  

ƒ

Output Æ algoritma memiliki satu/lebih output, yang biasanya bergantung kepada input 

ƒ

Effective  Æ  setiap  algoritma  diharapkan  memiliki  sifat  efektif.  (setiap  langkah  harus  sederhana  dan sehingga dapat dikerjakan dalam waktu yang masuk akal) 

ƒ

 

Langkah‐langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses:  1. Sequence  Process  Æ  instruksi  dikerjakan  secara  berurutan  satu  persatu  dimulai  dari  langkah pertama sampai terakhir.  2. Selection  Process  Æ  instruksi  pemilihan  proses  (percabangan),    sehingga  apabila  memenuhi persyaratan tertentu maka instruksi akan dikerjakan.  Contoh :   jika pembayaran tunai diberi diskon 10%    

Page 9 

[email protected] TIF UWKS

2009

DESAIN DAN ANALISIS ALGORITMA

Jika dilakukan secara kredit maka diskon 0 %.  (dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.  3. Iteration Process Æ suatu instruksi yang dikerjakan berulang‐ulang selama beberapa kali  selama masih memenuhi suatu kondisi.   4.   NOTASI ALGORITMA  Notasi  algoritma  sangatlah  penting  untuk  belajar  Algoritma  pemrograman,  karena  notasi  algoritma  bukan  notasi  bahasa  pemrograman,sehingga  siapapun  dapat  membuat  notasi  algoritma  yang  berbeda.  Hal  yang  penting  mengenai  notasi tersebut  adalah  mudah  dibaca  dan  dimengerti.  Meskipun notasi  algoritma  bukan  notasi  baku  namun  kepatuhan  terhadap  notasi  perlu  diperhatikan  untuk  menghindari kekeliruan.    Dengan Notasi Algoritma kita menuliskan langkah‐langkah berfikir kita dalam betuk diskripsi yang  urut dengan menggunakan bahasa kita sendiri (bukan bahasa program).      Notasi Algoritma terbagi atas beberapa ,yaitu :  1. Notasi I : mendiskripsikan penyelesaiaan masalah.   

Sebelum  menyelesaiakn  permasalahan  harus  terlebih  dahulu  bisa  mendiskripsikan 

permasalahannya sehingga bisa menemukan diskripsi untuk penyelesaian permasalahannya.  Contoh :  ‐ Diskripsi Permasalahanya : Cara untuk pulang ke Surabaya  ‐ Diskripsi cara penyelesaian masalahnya :  Untuk pulang ke Surabaya perlu menghitung biaya yang dikeluarkan dengan asumsi naik pesawat dan  naik  kereta‐api  maka  selisih  biaya  tidak  banyak  tetapi  waktu  yang  ditempuh  untuk  dengan  naik  kereta‐api lebih lama daripada naik pesawat. Karena anak masih kecil dan takut capek dijalan maka  dipilih waktu yang tercepat sampai di Surabaya.     

Page 10 

[email protected] TIF UWKS

2009

DESAIN DAN ANALISIS ALGORITMA

2. Notasi  II : menyatakan langkah‐langkah algoritma dengan untaian kalimat deskriptif..  Yang  dimaksut  disini  kita  menuliskan  langkah‐langkah  apa  yang  harus  di  lakukan  dalam  menyelesaian  suatu  permasalahan.  Langakah‐langkah  tersebut  merupakan  proses  yang  beruntut  dan  urut.  Dalam  penulilsanya  bisa  kita  lakukan  dengan  menggunakan  penomoran  atau  pengkodean  yang  lain.  Misalkan  (Langkah  1,  langkah  2,.........atau  langkah  A,  Langkah  B,......).  Dalm pemilihan kata untuk notasi pertama bisa dilakukan dengan kalimat‐kalimat yang lebih  deskriptif dan dengan bahasa yang mudah dimengerti. Misalkan :   ƒ

suatau proses diawali dengan kata kerja  seperti 'baca', 'hitung' , 'ganti'  dan sebagainya. 

ƒ

Sedangkan  pernyataan  kondisional  dinyatakan  dengan  'jika....'  ,   'maka....'. 

Notasi  ini  bagus  untuk  algoritma  yang  pendek  ,namun  untuk  masalah  yang  besar  notasi  ini  tidak  mungkin  dipakai.Selain  itu,  konversi  dari  notasi  algoritma  ke  bahasa  pemrograman  cendrung relatif sukar. Sehingga penggunaan notasi ini harus di pisah‐pipsahkan dalam proses  yang kecil/sederhana tidak diperbolehkan suatu algoritma yang panjang menggunakan hanya  satu buah notasi.  Pemakaian  notasi  1  akan  efektif  jika  dalam  algoritma  yang  pendek,  sehingga  jika  algoritmanya panjang kita harus bisa membagi‐bagi dalam bagian yang pendek.  Contoh : dari notasi I dibuat notasi II : 

-

-

Pulang mudik 2 orang dewasa 1 anak umur 6 tahun. 

-

Naik kereta api 

-

Jika ya maka lama perjalanan 10 jam 

-

Jika tidak naik pesawat yang lama perjalanan 45 menit 

 

3. Notasi  III: menggunakan diagram alir(flow‐chart).  Jika  notasi  I  sudah  selesai  maka  kita  bisa  membuat  langkah‐langkah  dari  notasi  I  tersebut  kedalam  bentuk Flowchart. Dalam membuat flowchart terdapat aturan baku untuk symbol‐symbolnya. 

 

Page 11 

[email protected] TIF UWKS

2009

DESAIN DAN ANALISIS ALGORITMA

Symbol  tersebut  dapat  dilihat  pada  halam  selanjutnya,  dan  akan  dipelajari  secara  mendalam  pada  pertemuan selanjutnya.  4. Notasi IV: menggunakan bahasa program untuk menjabarkan hasil dari flowchart  Dalam menuliskan dalam bahasa program kita menyesuikan dengan aturan‐aturan penulisan sesuai  dengan baha program yang digunakan, misalnya Visual Basic,Delphi,Pascal,C#,C++, dan lain‐lain.      Continue …. 

 

Page 12