DASAR-DASAR ALGORITMA<br />STMIK AMIKOM YOGYAKARTA<br />NURFATA ALIEM PRABOWO<br />
STRUKTUR DASAR ALGORITMA<br /><ul><li>Algoritma berisi langkah2 proses penyelesaian mslh
Langkah2 proses penyelesaian masalah tersebut dpt membentk konstruksi suatu algoritma, langkah2 tersbt adalah :</li></ul>	...
RUNTUNAN AKSI<br />Sebuahruntunanterdptsatuataulebihpernytaan,setiappernyataandikerjakansecaraberurutansesuaipenulisannya<...
Contoh:<br />Program tukar_isi<br />Diberikan 2 buah ember A & B berisi air berwarnamerah, ember B berisi air berwarnabiru...
<ul><li>Algoritmatukar_isimenjadiinspirasiuntukmempertukarkannilaidr 2 buahnilaidr 2 peubah
Misal A=8 dan B=5, pertukarkannilai A & B, sehingga A=5 dan B=8,maka algoritmanya : </li></ul>isikannilai A kedlm B<br />i...
Isikannilai A kedlm C<br />Isikannilai B kedlm A<br />Isikannilai C kedlm B<br />
2. PEMILIHAN<br />Adaklanyasebuahaksidikerjakanjikakondisidipenuhi<br />Misal:jikalamputraffic light berwarnamerah,makaken...
Bentukumumselection statement:<br />Kondisi:pernsyartnygdptbernilaibenar-salah,aksisetelahthendilakukanhanyajikakondisiben...
Bentuk lain statentcondisional<br />if kondisi then<br />   aksi1<br />Else<br />   aksi2<br />a. <br />	else “kalautdk”. ...
b.nested-if =pemilihanbersarang ad/ apabilapemilihanaksiygdilakukanlebihdr 2 buah,makastrukturpemilihanyamenjdirumit.<br /...
Contoh :<br />iflampu traffic light berwarnamerahthen<br />berhenti<br />else<br />iflampu traffic light berwarnakuningthe...
Contoh:tanpaindentasi<br />iflampu traffic light berwarnamerahthen<br />berhenti<br />Else iflampu traffic light berwarnak...
3.PENGULANGAN<br />Salahkelebihankomputer ad/ kemampuannya u/ melakukanperkerjaansecaraberulang-ulang<br />Contoh:<br />pr...
u/ mengtasihaltersbtdptdigunakanstukrutrpengulanganfor-do, sehinggaalgoritmya:<br />programmenulis_kalimat_500_kali<br />m...
Bentuk2 pengulangan:<br />Forpencacahpengulangandr 1 s/d N do<br />aksi<br />repeat-until=ulangi-sampai: prosespengulangan...
STRUKTUR TEKS ALGORITMA<br />Ada 3 bagian struktur suatu algoritma, yaitu :<br />Bagian Judul (header) <br />Bagian Deklar...
StrukturteksAgoritma :<br />PROGRAM nama_program<br />{penjelasan tentang algoritma yg beisi uraian singkat mengenai masal...
Contoh:<br />PROGRAM luas_lingkaran<br />{menghitung luas lingkaran apabila jari-jari lingkaran sudah diberikan}<br />DEKL...
1. Bagianjudul / header<br />Memuat nama program dan penjelasan(spesifkasi) tentang program <br />Nama program ditulis sin...
2. BagianDeklarasi<br />Mengumumkan semua nama yg akan dipakai, termasuk nama tipenya<br />Nama tersbut berupa:konstanta,v...
Contoh:<br />DEKLARASI<br />{nama konstanta}<br />const N=10 {jumlah data}<br />		const phi=3.14 {nilai phi}<br />{nama va...
FUNCTION apakah_A(input c:char)	  boolean<br />{mengembalikannilai true bila c adalahkarakter ‘A’ atau false bilasebalikny...
tidakbolehmengandungspasi, tandabacadanoperasimatematika<br />Karaktergarisbawah (“_”) dptdigunakanuntukmenggantikanspasi<...
3. BagianAlgortima<br />Bagian ini merupakan inti dari suatu program<br />Berisi deskripsi langkah2 penyelesain masalah be...
Contoh :<br />Algoritma :<br />Read (panjang,lebar)<br />Luas ←panjang*lebar<br />Write (luas)<br />
Translasiteksalgoritmakedlmteks program pascal & C<br />Teks algoritma merupakan hasil pemikiran konseptual, agar dpt dila...
Contoh2 translasi<br />Algoritmik<br />Program luas_segiempat<br />{membaca panjang & lebar yg berbentuk empat persegi pan...
Translasidlmbahasapascal<br />Program luas_segiempat;<br />Uses wincrt;<br />Var<br />panjang,lebar,luas:real;<br />Begin<...
Translasi dlm bahasa C<br />/*program luas_segiempat */<br />/* program untukmenghitungluassegiempat */<br /># include <st...
Contoh1: menghitungkomisi salesman<br />Tulislahagoritmauntukmenghitungkomisiygditerima salesman berdasarkannilaipenjualan...
penyelesain<br />Program komisi<br />{menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg dicapainya. Sa...
Upcoming SlideShare
Loading in …5
×

Dasar dasar algoritma

1,705 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,705
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
92
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dasar dasar algoritma

  1. 1. DASAR-DASAR ALGORITMA<br />STMIK AMIKOM YOGYAKARTA<br />NURFATA ALIEM PRABOWO<br />
  2. 2. STRUKTUR DASAR ALGORITMA<br /><ul><li>Algoritma berisi langkah2 proses penyelesaian mslh
  3. 3. Langkah2 proses penyelesaian masalah tersebut dpt membentk konstruksi suatu algoritma, langkah2 tersbt adalah :</li></ul> 1. runtunan aksi<br /> 2. pemilihan aksi<br /> 3. pengulangan aksi<br />
  4. 4. RUNTUNAN AKSI<br />Sebuahruntunanterdptsatuataulebihpernytaan,setiappernyataandikerjakansecaraberurutansesuaipenulisannya<br />Sebuahinstruksidikerjakansetelahinstruksisebelumnyatelahdilaksanakan<br />Urutaninstruksimenentukankeadaanakhirsuatualgoritma<br />Bilaurutanalgoritmadirubah,makahasilakhirmungkinjugaberubah<br />Runtunanygmempunyaisatu/lebihpernyaaandisbtpenytaangabungan<br />
  5. 5. Contoh:<br />Program tukar_isi<br />Diberikan 2 buah ember A & B berisi air berwarnamerah, ember B berisi air berwarnabiru.pertukarkankeduaisi ember tersbtshg ember A berisi air berwrnabiru & ember B berisi air berwanamerah<br />Algoritma :<br />Tuangkan air dari ember A kedlm ember C<br />Tuangkan air dari ember B kedlm ember A<br />Tuangkan air dari ember C kedlm ember B<br />
  6. 6. <ul><li>Algoritmatukar_isimenjadiinspirasiuntukmempertukarkannilaidr 2 buahnilaidr 2 peubah
  7. 7. Misal A=8 dan B=5, pertukarkannilai A & B, sehingga A=5 dan B=8,maka algoritmanya : </li></ul>isikannilai A kedlm B<br />isikannilai B kedlm A<br />makahasilnya:A=8 & B=8, makaalgoritmapertkarannyasalah.Agaralgirtmanyabenar,makaperludigunakanpeubahbantu,misal C, sehingggaalgoritmanyaadalah:<br />
  8. 8. Isikannilai A kedlm C<br />Isikannilai B kedlm A<br />Isikannilai C kedlm B<br />
  9. 9. 2. PEMILIHAN<br />Adaklanyasebuahaksidikerjakanjikakondisidipenuhi<br />Misal:jikalamputraffic light berwarnamerah,makakendaraanharusberhenti,makapernyataanadalah: <br />jikalampu traffic light berwarnamerah,maka<br />berhenti<br />Pernytntersbtdisbtpenyt.pemilihan (selection-stantement)atauperny.kondisional<br />
  10. 10. Bentukumumselection statement:<br />Kondisi:pernsyartnygdptbernilaibenar-salah,aksisetelahthendilakukanhanyajikakondisibenar<br />If & then ad/ kacakunci (keyword) u/ strukturpemilihan<br />Contoh :<br />ifx habisdibagi s then<br />tulis x ad/ bilangangenap<br />If kondisi then<br /> aksi<br />
  11. 11. Bentuk lain statentcondisional<br />if kondisi then<br /> aksi1<br />Else<br /> aksi2<br />a. <br /> else “kalautdk”. Bilakondisibenar,maka aksi1 ygdikerjakan,kalautdk aksi2 dikerjakan.contoh:<br />iflampu A nyalathen<br />tekantombolmerah<br />else<br />tekantombolbiru<br />
  12. 12. b.nested-if =pemilihanbersarang ad/ apabilapemilihanaksiygdilakukanlebihdr 2 buah,makastrukturpemilihanyamenjdirumit.<br />if kondisi1 then<br /> aksi1<br />Else<br /> if kondisi2 then<br /> aksi2<br />else<br /> aksi3<br />
  13. 13. Contoh :<br />iflampu traffic light berwarnamerahthen<br />berhenti<br />else<br />iflampu traffic light berwarnakuningthen<br />jalanhati-hati<br />else<br />jalanterus<br />Dlmstate.kondisidikenaladanya ‘indentasi’ yaitu: pengg.ronggakosongygmembuatalgoritmamenjdmudahdibaca.<br />
  14. 14. Contoh:tanpaindentasi<br />iflampu traffic light berwarnamerahthen<br />berhenti<br />Else iflampu traffic light berwarnakuningthen<br />jalanhati-hatielse<br />jalanterus<br />Penulisanalgoritmasangatdianjurkan u/ membuatindentasi,agaralgoritmamudahdbaca.<br />Kelebihanstrukturpemilihanterltk pd kemampuannyaygmemungkinkanpemrosesmengikutijaluraksiygberbedaberdsrkankondisiygada. <br />
  15. 15. 3.PENGULANGAN<br />Salahkelebihankomputer ad/ kemampuannya u/ melakukanperkerjaansecaraberulang-ulang<br />Contoh:<br />program menulis_kalimat_500_kali<br />menuliskankalimat ‘algoritmaadalahlangkahlogispenyelesaianmasalah’ sebanyak 500 kali<br />Algoritma:<br /> 1. tulis ‘algoritmaadalahlangkahlogispenyelesaianmasalah’<br /> 2. tulis ‘algoritmaadalahlangkahlogispenyelesaianmasalah<br /> 3. tulis ‘algoritmaadalahlangkahlogispenyelesaianmasalah<br /> .<br /> .<br /> .<br /> 500<br />
  16. 16. u/ mengtasihaltersbtdptdigunakanstukrutrpengulanganfor-do, sehinggaalgoritmya:<br />programmenulis_kalimat_500_kali<br />menuliskankalimat ‘algoritmaadalahlangkahlogispenyelesaianmasalah’ sebanyak 500 kali<br />Algoritma:<br />foridari 1 sampai 50 do<br />tulis ‘algoritmaadalahlangkahlogispenyelesaianmasalah’<br />i ad/ pencacahpengulanganygmencacah 1 s/d 500<br />
  17. 17. Bentuk2 pengulangan:<br />Forpencacahpengulangandr 1 s/d N do<br />aksi<br />repeat-until=ulangi-sampai: prosespengulanganakanberhentijikakondisiterpenuhi<br />3 While-do=selama-lakukan= prose pengulanganakanberhentijikakondisisalah<br />Repeat<br />Aksi<br />Until kondisi<br />While kondisi do<br />Aksi<br />
  18. 18. STRUKTUR TEKS ALGORITMA<br />Ada 3 bagian struktur suatu algoritma, yaitu :<br />Bagian Judul (header) <br />Bagian Deklarasi<br />Bagian Algoritma<br />
  19. 19. StrukturteksAgoritma :<br />PROGRAM nama_program<br />{penjelasan tentang algoritma yg beisi uraian singkat mengenai masalah yg akan diselesaikan}<br />DEKLARASI<br />{Semua nama yg dipakai, nama tipe,konstanta,var,prosedur,dan fungsi diumumkan disini}<br />ALGORITMA<br />{Semua langkah/aksi algoritma dituliskan disini}<br />
  20. 20. Contoh:<br />PROGRAM luas_lingkaran<br />{menghitung luas lingkaran apabila jari-jari lingkaran sudah diberikan}<br />DEKLARASI<br />{Nama Konstanta}<br /> const N =10<br /> const phi=3.14 {nilai phi}<br />{Nama variabel}<br /> jari_jari, luas:real<br />ALGORITMA:<br />READ (jari_jari)<br />LUAS Phi *jari_jari*jari_jari<br />Write (luas)<br />
  21. 21. 1. Bagianjudul / header<br />Memuat nama program dan penjelasan(spesifkasi) tentang program <br />Nama program ditulis singkat,tetapi hrs menggambarkan apa yg dilakukan algoritma<br />Algoritma yg dibuat harus sesuai dgn spesifikasi masalah yang diberikan<br />Contoh:<br />PROGRAM helloWord<br />{program untuk mencetak “hello word”}<br />PROGRAM luas_lingkaran<br />{program untuk menghitung luas lingkaran”}<br />
  22. 22. 2. BagianDeklarasi<br />Mengumumkan semua nama yg akan dipakai, termasuk nama tipenya<br />Nama tersbut berupa:konstanta,variabel,tipe, prosedur dan fungsi<br />Semua nama tersbt harus dideklarasikan sebelum digunakan<br />
  23. 23. Contoh:<br />DEKLARASI<br />{nama konstanta}<br />const N=10 {jumlah data}<br /> const phi=3.14 {nilai phi}<br />{nama variabel}<br />jari_jari,luas:real<br />{nama tipe}<br />type titik:record {koord.titik dibidang kartesian}<br />< x:integer, {absis}<br /> y:integer> {ordinat}<br />
  24. 24. FUNCTION apakah_A(input c:char) boolean<br />{mengembalikannilai true bila c adalahkarakter ‘A’ atau false bilasebaliknya}<br />PROSEDURE tukar(input/output A:integer, input/output B:integer)<br />{mempertukarkannilai A & B,parameter A & B sudahterdefinisinilainya.setelahpertukaran A berisinilai B semula, B berisinilai A semula}<br />
  25. 25. tidakbolehmengandungspasi, tandabacadanoperasimatematika<br />Karaktergarisbawah (“_”) dptdigunakanuntukmenggantikanspasi<br />Tidakmembedakanhurufkecildanhurufbesar<br /> (bahasapemrograman case sensitifsepertibahasa C menganggaphurufkecildanbesaradalah 2 karakter yang berbeda)<br />
  26. 26. 3. BagianAlgortima<br />Bagian ini merupakan inti dari suatu program<br />Berisi deskripsi langkah2 penyelesain masalah berupa pernyataan, yg ditulis dalam suatu notasi<br />Misal write untuk mencetak data/informasi, read untuk membaca data,dsb <br />Setiap pernyataan dlm algoritma dibaca dari atas ke bawah<br />Algoritma dieksekusi berdasarkan urutan pernyataan<br />
  27. 27. Contoh :<br />Algoritma :<br />Read (panjang,lebar)<br />Luas ←panjang*lebar<br />Write (luas)<br />
  28. 28. Translasiteksalgoritmakedlmteks program pascal & C<br />Teks algoritma merupakan hasil pemikiran konseptual, agar dpt dilaksanakan o/komputer maka harus ditranslasi kedlm bahasa bahasa pemrograman apapun<br />Bahasa pascal merupakan bahasa pendidikan krn paling banyak digunakan dilingkungan universitas<br />Bahasa C krn memiliki lingkungan yg luas dlm industri perangkat lunak<br />
  29. 29. Contoh2 translasi<br />Algoritmik<br />Program luas_segiempat<br />{membaca panjang & lebar yg berbentuk empat persegi panjang, menghitung luasnya, lalu mencetak luas tersebut ke piranti keluaran}<br />DEKLARASI<br />{nama variabel}<br /> panjang :real {panjang segiempat dlm cm}<br /> lebar :real {lebar segiempat dlm cm}<br /> luas :real {luas segiempat dlm cm}<br />ALGORITMA:<br />Read (panjang,lebar)<br />luas←panjang*lebar<br />Write (luas)<br />
  30. 30. Translasidlmbahasapascal<br />Program luas_segiempat;<br />Uses wincrt;<br />Var<br />panjang,lebar,luas:real;<br />Begin<br /> write (panjang=‘);readln (panjang);<br /> write (lebar =‘);readln (lebar);<br />luas:=panjang*lebar;<br />writeln (luassegiempat=‘,luas:5:2);<br />End.<br />
  31. 31. Translasi dlm bahasa C<br />/*program luas_segiempat */<br />/* program untukmenghitungluassegiempat */<br /># include <stdio.h><br />Main ()<br />{<br />/* deklarasi*/<br />Float panjang; {panjangsegiempatdlm cm}<br />Float lebar; {lebarsegiempatdlm cm}<br />Float luas; {luassegiempatdlm cm}<br />/*algoritma*/<br />Printf (“panjang =“);scanf (“%f”, &panjang);<br />Printf (“lebar =“);scanf (“%f”, &lebar);<br />Luas=panjang*lebar;<br />Printf (“luassegiempat=“ %f n “,luas);<br />}<br />
  32. 32. Contoh1: menghitungkomisi salesman<br />Tulislahagoritmauntukmenghitungkomisiygditerima salesman berdasarkannilaipenjualanygdicapainya. Salesman mendapatkomisi 5% darihasilpejualannya.algoritmamenerima data nama salesman dannilapenjualanygdicapainya. Menghitungkomisilalumencetaknamadanbesarkomisiygdiperolehnya<br />
  33. 33. penyelesain<br />Program komisi<br />{menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg dicapainya. Salesman mendapat komisi 5% dari hasil pejualannya}<br />Deklarasi<br /> nama_salesman : string<br /> nilai_penjualan : real<br /> komisi : real<br />Algoritma:<br />Read(nama_salesman,nilai_penjualan)<br />komisi←0.05 *nilai_penjualan<br />Write (nama_salemsman,komisi)<br />
  34. 34. Translasibahasapascal<br />Program komisi_salesman;<br />Uses wincrt;<br />Var<br />nama_salesman :string;<br />nilai_penjualan :real;<br />komisi :real;<br />Begin<br />write (‘nama salesman:‘);readln (nama_salesman);<br /> write (‘nilaipenjualan :‘);readln (nilai_penjualan);<br />komisi :=0.05 * nilai_penjualan;<br />writeln (‘komisipenjualan =‘,komisi:7:2);<br />End.<br />
  35. 35. /*program komisi_salesman */<br />/* program untukmenghitungkomisi salesman */<br /># include <stdio.h><br />Main ()<br />{<br />/* deklarasi*/<br />String nama_saleman; <br />Float nilai_penjualan; <br />Float komisi; <br /> *algoritma*/<br />Printf (“nama salesman =“);scanf (“%s”, &nama_salesman);<br />Printf (“nilaipenjualan =“);scanf (“%f”’, &nilai_penjualan);<br />Komisi=0.05 * nilai_penjualan;<br />Printf (“komisipenjualan=“ %f n “,komisi);<br />}<br />

×