• Tidak ada hasil yang ditemukan

Antonius Rachmat C, S.Kom, M.Cs

N/A
N/A
Protected

Academic year: 2018

Membagikan "Antonius Rachmat C, S.Kom, M.Cs"

Copied!
38
0
0

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

„ 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

(6)

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

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

(8)

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

(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

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

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

‡

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

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

Lambang

Lambang

P

ro

(28)

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

(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

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

(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

Referensi

Dokumen terkait

Namun, kelemahan dari hierarki komando ini adalah bahwa jika seseorang ingin mendapatkan sebuah pelayanan seperti KTP, SITU, dan lain-lain, harus melewati sebuah sistem

Suat u int eraksi t erj adi bila suat u obat m enggeser obat lain dari t em pat ikat annya dengan prot ein plasm a sehingga kadar obat yang bebas didalam darah m eningkat

Yang dim aksud dengan label adalah ket er angan t er t ulis yang diber ikan pada benih at au benih yang sudah dikem as yang akan diedar kan dan m em uat ant ar a lain t em pat

Dan jika ingin membandingkat struktur yang ada seperti (identifier, Perulangan, Pengondisian, dan lain - lain) maka langkah yang harus dilakukan oleh system

Namun, kelemahan dari hierarki komando ini adalah bahwa jika seseorang ingin mendapatkan sebuah pelayanan seperti KTP, SITU, dan lain-lain, harus melewati sebuah sistem

23 Apakah yang harus dilakukan oleh seseorang pekerja jika dia tidak memahami langkah-langkah untuk mengendalikan mesin yang dinyatakan dalam Prosedur Keselamatan Kerja

Contoh lain, jika Anda ingin menjadi seorang blogger sukses, maka hard-skill yang harus Anda kuasai antara lain menulis, membangun email list, search engine optimization(SEO),

Un tuk revitalisasi tersebut dan dalam ran gka m en jalan kan 11 agen da BPN-RI, kita harus m en gin tern alisasikan em pat prin sip berikut sebagai jiwa, sem an gat, dan acuan