Antonius Rachmat C, S.Kom, M.Cs
Algoritma &
Pemrograman #1
Ant onius Rachm at C, S.Kom , M.Cs 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
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.
( Dari Algorit m a dan St rukt ur Dat a dengan C, C+ + , dan Java oleh Moh Sj ukani hal 1) 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 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 bahwa baj unya berwarna 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 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 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
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
Not asi- not asinya dapat digunakan unt uk seluruh bahasa
m anapun 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
m anusia unt uk m enuliskan algorit m aContoh
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
I F A > B THEN PRI NT A ELSE PRI NT B Bagian Program
Suat u program pada dasarnya t erdiri dari 3 bagian:
I nput : bisa ada, bisa t idak
Proses
Out put : m inim al sat u ouput . 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 kom pleks. Tent ukan m asalahnya, apa saj a yang harus dipecahkan dengan m enggunakan kom put er, dan apa input an sert a out put nya. 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
Dengan penggunaan m odul t ersebut program ut am a akan m enj adi lebih singkat dan m udah dilihat .
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 dikuasai, m em iliki t ingkat kom pat ibilit as t inggi dengan perangkat keras dan plat form lainnya. 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 saat j ika kit a akan m elakukan perubahan at au m em baca source code yang sudah kit a t ulis dapat kit a ingat - ingat lagi dan kit a akan m udah m em bacanya. Caranya adalah dengan m enuliskan kom ent ar- kom ent ar kecil t ent ang apa m aksud kode t ersebut , unt uk apa, variabel apa saj a yang digunakan, unt uk apa, dan param et er- param et er yang 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 m ungkin j uga pengguna m em but uhkan fasilit as baru yang dulu t idak ada
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: 2 2 b a c 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) 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 > 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 m aksim um , j adikan bil it u m aksim um nya
Out put : bil m aksim um 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
¾
Menj elaskan alur program kepada orang lain 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)
Perulangan ( w hile, for, for each, loop)
Out put ( print f)
L a m b a n g L a m b a n g
Lambang (2) Lambang (2) Ke t e r a n ga n La m ba n g Ke t e r a n ga n La m ba n g
Percabangan
( Decision)
Pem berian nilai awal suat u variabel
( Preparat ion)
Mem anggil
Lambang (3) Lambang (3) Ke t e r a n ga n La m ba n g Ke t e r a n ga n La m ba n g
Connect or ( di halam an yg sam a) A
Off page Connect or B
( halam an lain)
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 P2
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
Bagian yang diulang
Mulai Masukkan p
Contoh Contoh Flowchart Flowchart
Masukkan l
Luas = p * l
Tulis L
Problem : Menghit ung luas persegi panj ang
Algorit m a: 1.
Masukkan panj ang ( p) 2. Masukkan lebar ( l) 3. Flowchart : Mencari jalan pulang
Flowchart bilangan ganjil 1 - 100 i m od 2 = = 1
S
a flowchart to find the largest of three
numbers A, B, and C
Draw a flowchart for computing
factorial N (N!)Soal
Buat lah flow chart unt uk sem ua soal t adi! N EX T Translat or Bahasa Pem rogram an dan C