bab 2 algoritma
TRANSCRIPT
-
8/19/2019 Bab 2 Algoritma
1/33
ALGORITMADAN PEMROGRAMAN
Oleh : Joko Trianto
Email/fb :oko n am ahoo$%om
-
8/19/2019 Bab 2 Algoritma
2/33
Pengertian Algoritma danPemrogramanIlustrasi :
2
Bagaimanacaranya agarmobil danpengemudisampai ditujuan
-
8/19/2019 Bab 2 Algoritma
3/33
Pengertian Algoritma danPemrograman
Dari gambar ilustrasi
Berapa kemungkinan penyelesaian jalan yangdilalui ? (buat tanda panah sebagai petunjukarah)
Anggap satu kemungkinan yang dipilih, tuliskantahapan yang harus dilalui
Dari tahapan yang dibuat apakahmenyelesaikan masalah ?
3
-
8/19/2019 Bab 2 Algoritma
4/33
Pengertian Algoritma dan Pemrograman• Dari pertanyaan yang diajukan, ada suatu hipotesa :
– ntuk menyelesaikan suatu permasalahan pastiharus memiliki alur yang jelas dan tepat!
– Dari alur yang dibuat pasti susunan " tahapantersusun secara sistematis dan hirarkis
–
#usunan sistematis dan hirarkis pasti dapatmenyelesaikan masalah tertentu
• $eyakinan yang didapat :
– #etiap menyelesaikan masalah harus
menggunakan cara%cara sistematis, terstruktur,dan hirarkis
– &ara%cara tersebut harus bisa dituliskan secarabenar dan masuk akal! ('etode Ilmiah)
4
-
8/19/2019 Bab 2 Algoritma
5/33
Pengertian Algoritma danPemrograman
5
Bagaimana karateristik komputer ?
$omputer terdiri dari rangkaian elektronik I&,$aat embaga, mainboard, dll
erdiri dari ribuan transistor (tergabung dalam I&)yang berisikan gerbang%gerbang logika (A*D,+,*A*D, *+, dll)
-ksekusi dipicu dari adanya masukan (input) listrikberkisar . /olt dan berupa - " 01A#-
Aliran data berupa dijit biner 2 dan 3, yang tersusun sesuai instruk
Instruksi dibuat secara sistematis dan hirarkis, dan masuk akal (sesuai l
&e'tion :Bagaimana agar instruksi dapat dimengerti dan bisamenghasilkan keluaran (output) sesuai keinginan ?
-
8/19/2019 Bab 2 Algoritma
6/33
Pengertian Algoritma danPemrogramanAnser :
4arus ada instruksi yang dimengerti oleh komputer
$omputer hanya terdiri dari rangkaian elektronik, karena ituhanya mengerti nilai 2 dan 3
*ilai 2 dan 3, dapat berupa rangkaian instruksi jika disusun
dengan susunan yang sistematis dan masuk akal untukmenyelesaikan masalah tertentu
#usunan masuk akal dikenal dengan istilah urutan instruksi
bahasa yang dikenal oleh komputer!
$arena itu pasti komputer punya bahasa, dan kita harusmembuat bahasa yang dimengerti oleh komputer!
Bahasa tersebut dikenal dengan istilah bahasapemrograman!
Program komputer harus dibuat dengan urutan logika yangbenar dan sesuai dengan masalah yang ingin diselesaikan!
6
-
8/19/2019 Bab 2 Algoritma
7/33
Pengertian Algoritma danPemrograman
7
rutan logika untukmenyelesaikan masalah
tertentu
Algoritma
Instruksi yang dikenal olehkomputer
Istilah
Diterjemahkan olehbahasapemrograma
n&ontoh :PA#&A1, &,D-1P4I, dll4asil
-
8/19/2019 Bab 2 Algoritma
8/33
Pengertian Algoritma dan Pemrograman
#impulan :
Algoritma : urutan%urutan logis dari suatu pernyataanuntuk menyelesaikan kasus " masalah tertentu
Pemrograman : proses penterjemahan algoritma kedalambahasa yang dimengerti oleh komputer!
Asal kata algoritma
8
Al%$h5ri6m7, Persian astronomer andmathematician,
Algoritmi
algorism
Algorithm
the techni8ue o9 per9orming basic arithmetic by riting numbers
in place /alue 9orm and applying a set o9 memori6ed rules and9acts to the digits
calculation method
a se8uence o9 nite instructions, o9ten used 9or calculation anddata processing
-
8/19/2019 Bab 2 Algoritma
9/33
ahapan PembuatanProgram
; 'endenisikan masalah dan menganalisanya! 'encakup : tujuan pembuatan program, parameter yang
digunakan, 9asilitas yang disediakan, algoritma yang diterapkan danbahasa
program yang digunakan!; 'erealisasikan dengan langkah%langkah sebagai berikut :
-
8/19/2019 Bab 2 Algoritma
10/33
Algoritma
; Adalah inti dari ilmu komputer!
; Algoritma adalah urutan%urutan dari instruksi atau
langkah%langkah untuk menyelesaikan suatumasalah!
; Algoritma adalah blueprint dari program!; #ebaiknya disusun sebelum membuat program!
; $riteria suatu algoritma:
< Ada input dan output
< -9ekti/itas dan esien< erstruktur
-
8/19/2019 Bab 2 Algoritma
11/33
&ontoh Algoritma dalam kehidupan
sehari%hari'engirim surat kepada teman:
2! ulis surat pada secarik kertas surat!
=! Ambil sampul surat!
>! 'asukkan surat ke dalam sampul!! utup sampul surat menggunakan perekat!
.! @ika kita ingat alamat teman tersebut, maka
tulis alamat pada sampul surat!
! @ika tidak ingat, lihat buku alamat, kemudiantulis alamat pada sampul surat!
! empel perangko pada surat!
C! Baa surat ke kantor pos untuk diposkan!
-
8/19/2019 Bab 2 Algoritma
12/33
Dalam bidang komputer, algoritma sangatdiperlukan dalam menyelesaikan berbagai
masalah pemrograman, terutama dalamkomputasi numeris!
anpa algoritma yang dirancang baik makaproses pemrograman akan menjadi salah,rusak, atau lambat dan tidak esien!
Pelaksana algoritma adalah $omputer!
-
8/19/2019 Bab 2 Algoritma
13/33
'anusia dan komputer berkomunikasi dengancara: manusia memberikan perintah%perintah
kepada komputer berupa instruksi%instruksiyang disebut program!
Alat yang digunakan untuk membuat programtersebut adalah bahasa pemrograman!
Bahasa pemrograman sangat bermacam%macam: &, &, Pascal, @a/a, &E, Basic, Perl,P4P, A#P, @#P, @E, @ dan masih banyakbahasa lainnya!
Dari berbagai bahasa pemrograman caramemberikan instruksinya berbeda%beda namunbertujuan menghasilkan output yang sama!
-
8/19/2019 Bab 2 Algoritma
14/33
$riteria Algoritma 'enurut Donald-! $nuth2! Input : algoritma dapat memiliki nol atau lebih
inputan dari luar!
=! +utput : algoritma harus memiliki minimal satubuah output keluaran!
>! Deniteness (pasti) : algoritma memiliki instruksi%
instruksi yang jelas dan tidak ambigu!! 0initeness (ada batas) : algoritma harus memiliki
titik berhenti (stopping role)!
.! -Fecti/eness (tepat dan esien): algoritma sebisa
mungkin harus dapat dilaksanakan dan e9ekti9!&ontoh instruksi yang tidak e9ekti9 adalah: A G A 3atau A G A H 2
*amun ada beberapa program yang memangdirancang untuk unterminatable: contoh #istem+perasi
-
8/19/2019 Bab 2 Algoritma
15/33
@enis Algoritma2! (e)en%e Pro%e'': instruksi dikerjakan
secara sekuensial, berurutan!
=! (ele%tion Pro%e'': instruksi dikerjakan jikamemenuhi kriteria tertentu
>! Iteration Pro%e'': instruksi dikerjakanselama memenuhi suatu kondisi tertentu
! *on%rrent Pro%e'': beberapa instruksidikerjakan secara bersama!
-
8/19/2019 Bab 2 Algoritma
16/33
&ontoh Algoritma 2Algoritma menghitung luas persegi panjang:
2! 'asukkan panjang (P)
=! 'asukkan lebar (1)>! 1 P H 1
! ulis 1
-
8/19/2019 Bab 2 Algoritma
17/33
Dalam Algoritma, tidak dipakai simbol%
simbol " sintaks dari suatu bahasapemrograman tertentu, melainkan bersi9atumum dan tidak tergantung pada suatubahasa pemrograman apapun juga!
*otasi%notasi algoritma dapat digunakanuntuk seluruh bahasa pemrogramanmanapun!
-
8/19/2019 Bab 2 Algoritma
18/33
Denisi Pseudo%code$ode atau tanda yang menyerupai (pseudo)
atau merupakan pejelasan caramenyelesaikan suatu masalah!
Pseudo%code sering digunakan oleh manusiauntuk menuliskan algoritma!
-
8/19/2019 Bab 2 Algoritma
19/33
Problem : mencari bilangan
terbesar dari dua bilangan yangdiinputkan&ontoh Pseudo%code:2! 'asukkan bilangan pertama
=! 'asukkan bilangan kedua>! @ika bilangan pertama J bilangan kedua
maka kerjakan langkah , jika tidak, kerjakanlangkah .!
! ampilkan bilangan pertama
.! ampilkan bilangan kedua
-
8/19/2019 Bab 2 Algoritma
20/33
Problem : mencari bilangan
terbesar dari dua bilangan yangdiinputkan&ontoh Algoritma2! 'asukkan bilangan pertama (a)
=! 'asukkan bilangan kedua (b)>! i9 a J b then kerjakan langkah
! print a
.! print b
-
8/19/2019 Bab 2 Algoritma
21/33
&ontoh 1ain
-
8/19/2019 Bab 2 Algoritma
22/33
&ontoh Algoritma ='encari akar bulat positi9 dari bilangan
bulat (integer) positi9 a:
'asukkan bilangan bulat positi9 aBerikan harga aal K sama dengan 24itung y sebesar K H K @ika y sama dengan a maka cetak K
sebagai akar dari a! #elesai ambah nilai K dengan 2Pergi ke langkah >!
-
8/19/2019 Bab 2 Algoritma
23/33
&ontoh Algoritma >'enentukan apakah suatu bilangan merupakan
bilangan ganjil atau bilangan genap!
'asukkan sebuah bilangan sembarang Bagi bilangan tersebut dengan bilangan =
4itung sisa hasil bagi pada langkah =!
Bila sisa hasil bagi sama dengan 3 maka
bilangan itu adalah bilangan genap tetapi bilasisa hasil bagi sama dengan 2 maka bilanganitu adalah bilangan ganjil!
# l 1 tih
-
8/19/2019 Bab 2 Algoritma
24/33
#oal 1atihan2!Buatlah algoritma untuk menghitung kon/ersi suhu!dari
&elcius menjadi eamur dan 0arenheit!Input: suhu dalam &elcius
Proses: G ". H & dan 0 G L". H & >=+utput: suhu dalam eamur dan 0arenheit
=!Buatlah algoritma untuk mencari sisi miring dari suatusegitiga siku%siku, jika diketahui panjang sisi yangmembentuk sudut siku%siku!Input: a dan b, yaitu panjang sisi pembentuk sudut siku%siku
Proses:+uput: sisi miring (c)
>!Buatlah algoritma untuk menentukan suatu bilangangenap atau ganjilInput: suatu bilangan+uput: genap " ganjil
!Buatlah algoritma untuk menentukan suatu bilanganadalah bilangan prima atau bukan!
-
8/19/2019 Bab 2 Algoritma
25/33
0lochartBagan%bagan yang mempunyai arus yang
menggambarkan langkah%langkah penyelesaiansuatu masalah!'erupakan cara penyajian dari suatu algoritma!Ada = macam 0lochart :
< #ystem 0lochart urutan proses dalam system dengan menunjukkan alat media input, outputserta
jenis media penyimpanan dalam proses pengolahan data!< Program 0lochart urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program!
-
8/19/2019 Bab 2 Algoritma
26/33
&ontoh Program 0lochartS t a r t
P r in t J u d u l
R E A D
D a t a
A k h ir
f i le ?E n d
K d e ! " P "
P R #$ %
$ a & a ' A la & a t
" P e r e & ( u a n "
) a
% i d a k
) a
% i d a k
-
8/19/2019 Bab 2 Algoritma
27/33
#imbol%simbol 0lochartFlow Direction Symbols (#imbol penghubungalur)
Processing Symbols (#imbol proses)!
Input-output Symbols (#imbol input%output)
-
8/19/2019 Bab 2 Algoritma
28/33
#imbol%simbol 0lochart
-
8/19/2019 Bab 2 Algoritma
29/33
#imbol%simbol 0lochart <
Cont.
-
8/19/2019 Bab 2 Algoritma
30/33
Pembuatan 0lochart idak ada kaidah yang baku!0lochart G gambaran hasil analisa
suatu masalah0lochart dapat ber/ariasi antara satu
pemrogram dengan pemrogram lainnya!#ecara garis besar ada > bagian utama:
< Input< Proses
< +utput
-
8/19/2019 Bab 2 Algoritma
31/33
Pembuatan 0lochart <cont.4indari pengulangan proses yang tidak
perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat!
@alannya proses digambarkan dari atas
ke baah dan diberikan tanda panah
untuk memperjelas!
#ebuah Mochart diaali dari satu titik#A dan diakhiri dengan -*D!
-
8/19/2019 Bab 2 Algoritma
32/33
&ontoh 2 0lochart
-
8/19/2019 Bab 2 Algoritma
33/33
&ontoh = 0lochart