Algoritma &
Pemrograman #1
Algoritma
Asal kat a Algorit m a ( algorism - algorit hm )
berasal dari nam a Abu Ja’far Muham m ad
ibn Musa Al- Khuw arizm i
I lm uan Persia yang m enulis kit ab “ al j abar
w ’al- m uqabala” ( rules of rest orat ion and
reduct ion – at uran pem ugaran dan
pengurangan)
Tahun 825 M
Berasal dari I ran
Definisi Algoritma
Algorit m a adalah urut an langkah logis t ert ent u unt uk m em ecahkan suat u m asalah.
Urut an langkah logis, yang berart i algorit m a harus m engikut i suat u urut an t ert ent u, t idak boleh m elom pat - lom pat .
(Dari Microsoft Press Com put er and I nt ernet Dict ionaary 1997, 1998)
Alur pem ikiran dalam m enyelesaikan suat u pekerj aan yang dit uangkan secara t ert ulis.
Alur pikiran, sehingga algorit m a seseorang dapat j uga berbeda dari algorit m a orang lain.
Tert ulis, yang art inya dapat berupa kalim at , gam bar, at au t abel t ert ent u.
Contoh Algoritma
Mem asak.
Jika seseorang ingin m engirim surat kepada kenalannya di t em pat lain, langkah yang harus dilakukan adalah:
Menulis surat
Surat dim asukkan ke dalam am plop t ert ut up Am plop dit em peli perangko secukupnya.
Pergi ke Kant or Pos t erdekat unt uk m engirim kannya
Dalam bidang kom put er, algorit m a sangat diperlukan dalam m enyelesaikan berbagai m asalah pem rogram an, t erut am a dalam kom put asi num eris.
Tanpa algorit m a yang dirancang baik m aka proses
Contoh Bu Tati (Lagi)
Mengupas Kent ang unt uk Makan Malam
I bu Tat i m engam bil kant ong kent ang dari rak
I bu Tat i m engam bil panci dari alm ari
I bu Tat i m engupas kent ang
I bu Tat i m engem balikan kant ong kent ang dari rak
Ada hal yang “ t ergant ung” pada sesuat u:
I bu Tat i m engam bil kant ong kent ang dari rak
I bu Tat i m engam bil panci dari alm ari
Lakukan persiapan, gunakan celem ek, pa k a ia n t e r ga n t u n g h a r i
I bu Tat i m engupas kent ang
Lanjutan - Kondisi
Hari Sabt u :
“ I bu Tat i m elihat bahw a baj unya t idak berw arna m uda karena it u ia t idak m em akai celem ek” ( berart i t idak ada aksi m em akai celem ek)
Hari Minggu:
“ I bu Tat i m elihat bahw a baj unya berw arna m uda karena it u ia m em akai celem ek”
Jadi:
Am bil kant ong kent ang dari rak
Am bil panci dari alm ari
Depend on w arna baj u
berw arna m uda : Pakai celem ek
t idak berw arna m uda : Tidak pakai celem ek
Kupas kent ang
Lanjutan - Perulangan
Karena dapat pesanan, m aka kent ang yg harus dikupas 500 buah
depend on j um lah kent ang yang sudah dikupas
belum cukup : Kupas 1 kent ang cukup : selesai
At au:
while j um lah kent ang t erkupas belum cukup do Kupas 1 kent ang
Bisa j adi pada saat m engupas kent ang t ergant ung pada kent angnya, j ika rusak / busuk, buang, t idak dikupas
Jadi:
while j um lah kent ang t erkupas belum cukup do Depend on kondisi kent ang
Kriteria Algoritma
(Donald E. Knuth)
I nput : algorit m a dapat m em iliki nol at au lebih input an dari luar.
Out put : algorit m a harus m em iliki m inim al sat u buah out put keluaran.
Definit eness ( past i) : algorit m a m em iliki inst ruksi-inst ruksi yang j elas dan t idak am bigu.
Finit eness ( ada bat as) : algorit m a harus m em iliki t it ik berhent i ( st opping role) .
Effect iveness ( t epat dan efisien) : algorit m a sebisa
m ungkin harus dapat dilaksanakan dan efekt if. Cont oh inst ruksi yang t idak efekt if adalah: A = A + 0 at au A = A * 1
Nam un ada beberapa program yang m em ang dirancang unt uk
Jenis Proses Algoritma
Sequence Process: inst ruksi dikerj akan
secara sekuensial, berurut an.
Select ion Process: inst ruksi dikerj akan
j ika m em enuhi krit eria t ert ent u
I t erat ion Process: inst ruksi dikerj akan
selam a m em enuhi suat u kondisi
t ert ent u.
Concurrent Process: beberapa inst ruksi
Contoh Algoritma
Algorit m a m enghit ung luas persegi panj ang:
Masukkan panj ang ( P)
Masukkan lebar ( L)
Luas ← P * L
Tulis Luas
Sifat : Um um
Tidak m enggunakan sim bol at au sint aks dari suat u bahasa pem rogram an
Tidak t ergant ung pada suat u bahasa pem rogram an
Pseudo Code
Kode at au t anda yang m enyerupai
( pseudo) program at au m erupakan
pej elasan cara m enyelesaikan suat u
m asalah.
Pseudo- code sering digunakan oleh
Contoh
Problem : m encari bilangan t erbesar dari dua bilangan yang diinput kan
Cont oh Algorit m a:
Masukkan bilangan pert am a
Masukkan bilangan kedua
Jika bilangan pert am a > bilangan kedua m aka kerj akan langkah 4, j ika t idak, ker j akan langkah 5.
Tam pilkan bilangan pert am a
Tam pilkan bilangan kedua
Cont oh Pseudo- code:
I nput a
I nput b
I f a > b t hen kerj akan langkah 4
print a
Perbandingan
Algor it m a Pse u do- code
Nilai A dit am bah dengan 5 A ← A + 5
Cet ak nilai A bila lebih besar dari 10 I F A > 10 THEN PRI NT A
Dari dua bilangan A dan B, cari bilangan yang t erbesar
Bagian Program
Suat u program pada dasarnya t erdiri dari
3 bagian:
I nput : bisa ada, bisa t idak
Proses
Langkah Pembuatan Program
M e n de fin isik a n m a sa la h
I ni m erupakan langkah pert am a yang sering
dilupakan orang.
Menurut hukum Murphy ( oleh Henry Ledgard) :
“ Sem akin cepat m enulis program , akan sem akin lam a kit a dapat m enyelesaikannya” .
Hal t ersebut berlaku unt uk perm asalahan yang
Langkah Pembuatan Program
M e n e m u k a n solu si
Set elah m asalah didefinisikan, m aka langkah berikut nya adalah m enent ukan solusi. Jika m asalah t erlalu
kom pleks, m aka ada baiknya m asalah t ersebut dipecah m enj adi m odul- m odul kecil agar lebih m udah
diselesaikan.
Cont ohnya m asalah invers m at riks, m aka kit a dapat m em bagi m enj adi beberapa m odul:
m em int a m asukkan berupa m at riks buj ur sangkar m encari invers m at riks
m enam pilkan hasil kepada pengguna
Langkah Pembuatan Program
M e m ilih a lgor it m a
Pilihlah algorit m a yang benar- benar sesuai dan
efisien unt uk perm asalahan t ersebut
M e n u lis pr ogr a m
Pilihlah bahasa yang m udah dipelaj ari, m udah
digunakan, dan lebih baik lagi j ika sudah
Langkah Pembuatan Program
M e n gu j i pr ogr a m
Set elah program j adi, silahkan uj i program t ersebut
dengan segala m acam kem ungkinan yang ada, t erm asuk error- handlingnya sehingga program t ersebut akan
benar- benar handal dan layak digunakan.
M e n u lis dok u m e n t a si
Menulis dokum ent asi sangat pent ing agar pada suat u
Langkah Pembuatan Program
M e r a w a t pr ogr a m
Program yang sudah j adi perlu diraw at
unt uk m encegah m unculnya bug yang
sebelum nya t idak t erdet eksi. At au
Soal-soal
Buat lah algorit m a unt uk m enghit ung konversi suhu.dari Celcius m enj adi Ream ur dan Farenheit .
I nput : suhu dalam Celcius
Proses: R = 4/ 5 * C dan F = 9/ 5 * C + 32
Out put : suhu dalam Ream ur dan Farenheit
Buat lah algorit m a unt uk m encari sisi m iring dari suat u segit iga siku- siku, j ika diket ahui panj ang sisi yang
m em bent uk sudut siku- siku.
I nput : a dan b, yait u panj ang sisi pem bent uk sudut siku- siku
Proses:
Ouput : sisi m iring ( c)
2 2
b a
Soal-soal
Buat lah algorit m a unt uk m enent ukan suat u
bilangan genap at au ganj il
I nput : suat u bilangan
Ouput : genap / ganj il / nol
Buat lah algorit m a unt uk unt uk m enghit ung
akar- akar persam aan kuadrat dengan rum us:
D = B2 – 4 * A * C
Jika D < 0 m aka didapat akar im aj iner
Jika D = 0 m aka X1 = X2 yang didapat dari D = - B / ( 2 * A)
Jika D > 0 m aka ada dua akar dan
X
1
=
−
B
+
D
/
2
*
A
A
D
B
Soal-soal
Menghit ung usia berdasarkan t ahun ( saj a)
lahir dan t ahun ( saj a) sekarang
I nput
: Tahun lahir ( t l) , Tahun sekarang ( t s)
Proses : Um ur = t s – t l
Out put : Cet ak Um ur
Menguj i apakah suat u suhu ( dalam
Celcius) adalah beku, cair, gas
I nput : suhu dlm celcius ( bil bulat )
Proses: j ika < 0 = beku, 0- 100 = cair, dan >
100 = gas
Soal - soal
Menget ahui bilangan t erbesar dari n buah
bilangan yg diberikan user
I nput : bilangan2 sebanyak n kali
Proses: sim pan nilai m asing2 bil yg diinput kan
user, j ika bil pert am a, langsung cat at bahw a
bil it u m aksim um , kem udian bandingkan dgn
bil yg lainnya, j ika ada yg lebih besar dari
Flowchart
Definisi:
Bent uk gam bar/ diagram yang m em punyai
aliran sat u at au dua arah secara sekuensial
Kegunaan:
Unt uk m endesain program
Unt uk m erepresent asikan program
Maka,
flow chart
harus dapat m erepresent asikan
Pembuatan Flowchart
Sebelum pem buat an program
¾
Mem perm udah
program m er
dalam
m enent ukan alur logika program
Sesudah pem buat an program
Flowchart
Secara garis besar, unsur- unsur
pem rogram an adalah
I n pu t
Æ
Pr ose s
Æ
Ou t pu t
. Sem ua bahasa pem rogram an,
past i m em punyai kom ponen- kom ponen
sebagai berikut :
I nput ( scanf)
Percabangan ( if, sw it ch)
Lambang
Lambang
P
ro
Lambang
Lambang
(2)
(2)
Mem anggil
prosedur/ fungsi
( Call)
Percabangan
( Decision)
Pem berian nilai awal suat u variabel
( Preparat ion)
La m ba n g
La m ba n g
Ke t e r a n ga n
Lambang
Lambang
(3)
(3)
Connect or ( di
halam an yg sam a)
La m ba n g
La m ba n g
Ke t e r a n ga n
Ke t e r a n ga n
Off page Connect or ( halam an lain)
A
Lambang
Lambang
(4)
(4)
Sequence Process
La m ba n g
La m ba n g
Ke t e r a n ga n
Ke t e r a n ga n
P1
Lambang
Lambang
(6)
(6)
Perulangan
La m ba n g
La m ba n g
Ke t e r a n ga n
Ke t e r a n ga n
syarat
Pencacah
Mulai
Masukkan p
Selesai Masukkan l
Luas = p * l
Tulis L
Contoh
Contoh
Flowchart
Flowchart
Problem :
Menghit ung
luas persegi panj ang
Algorit m a:
1. Masukkan panj ang ( p) 2. Masukkan lebar ( l) 3. Hit ung luas ( L) , yait u
panj ang kali lebar
Flowchart bilangan ganjil 1 - 100
Flowchart Kelipatan Bilangan
Soal
Buat lah flow chart unt uk sem ua soal t adi!
N EX T