Antonius Rachmat C, S.Kom, M.Cs

Teks penuh

(1)

Algoritma &

Pemrograman #1

(2)

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

(3)

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.

(4)

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

(5)

Contoh Bu Tati (Lagi)

‡

Mengupas Kent ang unt uk Makan Malam

(6)
(7)

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

(8)

Kriteria Algoritma

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

Bagian Program

‡

Suat u program pada dasarnya t erdiri dari

3 bagian:

„

I nput : bisa ada, bisa t idak

„

Proses

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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:

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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)

(27)
(28)
(29)

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

(30)

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

(31)

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

(32)

Mulai 2. Masukkan lebar ( l) 3. Hit ung luas ( L) , yait u

panj ang kali lebar

(33)
(34)

Flowchart bilangan ganjil 1 - 100

(35)

Flowchart Kelipatan Bilangan

(36)
(37)
(38)

Soal

‡

Buat lah flow chart unt uk sem ua soal t adi!

N EX T

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects : Antonius Rachmat C, S.Kom, M.Cs