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
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

  „ 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 a

  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

  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