23
Algoritma &Pemrograman

Algoritma &Pemrograman

Embed Size (px)

Citation preview

Page 1: Algoritma &Pemrograman

Algoritma &Pemrograman

Page 2: Algoritma &Pemrograman

Matakuliah ini mengajarkan tentang:konsep dan logika berpikir komputer,cara perancangan dan analisis masalah,yang kemudian dipecahkan dengan menggunakan komputermenggunakan algoritma dan pemrograman terstruktur.Selain itu juga diperkenalkan dan diajarkan penggunaanbahasa pemrograman (Bahasa C), dan flowchart

Page 3: Algoritma &Pemrograman

Mahasiswa mampu:memahami logika berpikir komputer,memahami prinsip kerja program,memahami alasan-alasan komputer dapat mengerjakan perintah-perintah yang diberikan,dan mampu menggambarkan logika jalannya program secara tertulisdengan algoritma (pseudo code) dan dilengkapi dengan diagram alir(flow chart) menggunakan suatu bahasa pemrograman tertentu

Page 4: Algoritma &Pemrograman

4

Apa Itu Algoritma?• Definisi

– Suatu Urutan langkah-langkah yg disusun secara logis untuk memecahkanmasalah,dengan kriteria sbb:1. Setiap langkah/step harus jelas dan pasti (Definite)2. Diperbolehkan tanpa ada input tetapi minimal harus ada 1 output.3.Jumlah langkah harus berhingga atau dengan kata lain harus ada stopping criteria.

- Langkah-langkah yang dilakukan agar solusi masalah dapat diperoleh- Suatu prosedur yang merupakan urutan langkah- langkah yang terintegrasi- Suatu metode khusus yang digunakan untuk menyelesaian suatu masalah

yang nyata

• Algoritma dibutuhkan untuk memerintah komputer mengambillangkah-langkah tertentu dalam menyelesaikan masalah

Page 5: Algoritma &Pemrograman

5

Penulisan Algoritma• Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris,

dan bahasa manusia lainnya)– Tapi sering membingungkan (ambiguous)

• Menggunakan flow chart (diagram alir)– Bagus secara visual akan tetapi repot kalau algoritmanya

panjang• Menggunakan pseudo-code

– Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman

Page 6: Algoritma &Pemrograman

6

Flow chart• Bagan-bagan yang mempunyai arus yang menggambarkan langkah-

langkah penyelesaian suatu masalah.• Merupakan cara penyajian dari suatu algoritma.• Ada 2 macam Flowchart :

– System Flowchart urutan proses dalam system denganmenunjukkan alat media input, output serta

jenis media penyimpanan dalam prosespengolahan data.

– Program Flowchart urutan instruksi yang digambarkan dengansymbol tertentu untuk memecahkan masalah dalam suatu program.

Page 7: Algoritma &Pemrograman

7

Flow chart1. Flow Direction Symbols ( Simbol penghubung alir)2. Processing Symbols ( Simbol proses)3. Input output Symbols ( Simbol input output)

Page 8: Algoritma &Pemrograman

Simbol Flowchart

2004 EL 2001 - Algoritma v.1.2 8

Page 9: Algoritma &Pemrograman

Simbol Flowchart

2004 EL 2001 - Algoritma v.1.2 9

Page 10: Algoritma &Pemrograman

10

Pembuatan Flowchart• Tidak ada kaidah yang baku.• Flowchart = gambaran hasil analisa suatu masalah • Flowchart dapat bervariasi antara satu pemrogram

dengan pemrogram lainnya.• Secara garis besar ada 3 bagian utama:

– Input– Proses– Output

Page 11: Algoritma &Pemrograman

11

Pembuatan Flowchart ( cont )• Hindari pengulangan proses yang tidak perlu dan

logika yang berbelit sehingga jalannya prosesmenjadi singkat.

• Jalannya proses digambarkan dari atas ke bawahdan diberikan tanda panah untuk memperjelas.

• Sebuah flowchart diawali dari satu titik START dandiakhiri dengan END.

Page 12: Algoritma &Pemrograman

2004 EL 2001 - Algoritma v.1.2 12

Contoh(1) : algoritma mencuci tangan1. Hidupkan keran air2. Basahi tangan3. Tutup keran4. Pakai sabun5. Hidupkan keran6. Bilas tangan7. Jika sudah bersih tutup keran air, jika belum ulangi

langkah 3 dan seterusnya.8. Keringkan tangan dengan lap atau handuk

Page 13: Algoritma &Pemrograman

2004 EL 2001 - Algoritma v.1.2 13

Contoh : flow chart mencuci tanganMulai

Hidupkan keran air

Basahi tangan

Tutup keran

Pakai sabun

Hidupkan Keran

Bilas tangan

Bersih?

Keringkan tangan

Selesai

Page 14: Algoritma &Pemrograman

14

Contoh 2 Mengirim surat kepada teman:1. Tulis surat pada secarik kertas surat.2. Ambil sampul surat.3. Masukkan surat ke dalam sampul.4. Tutup sampul surat menggunakan perekat.5. Jika kita ingat alamat teman tersebut, maka

tulis alamat pada sampul surat.6. Jika tidak ingat, lihat buku alamat, kemudian

tulis alamat pada sampul surat.7. Tempel perangko pada surat.8. Bawa surat ke kantor pos untuk diposkan.

Page 15: Algoritma &Pemrograman

15

Flow chart Mengirim surat kepada teman:

Page 16: Algoritma &Pemrograman

16

CONTOH (3)

Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap.

• Masukkan sebuah bilangan sembarang• Bagi bilangan tersebut dengan bilangan 2• Hitung sisa hasil bagi pada langkah 2.• Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah

bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.

Page 17: Algoritma &Pemrograman

17

CONTOH (3)

Page 18: Algoritma &Pemrograman

18

CONTOH (4) KASUS MENUKAR ISI EMBER ATAU BEJANA

Terdapat 2 buah ember X dan Y yang berisi air yang berwarna merah dan hitam.Volume air pada kedua ember adalah sama. Bagaimana menukarkan isi keduaember tersebut sedemikian rupa sehingga nantinya ember X berisi air berwarnahitam dan ember Y berisi air warna merah ?

Jawab:Kita tidak dapat langsung menukarkan isi dari kedua ember tersebut karena akan

terjadi pencampuran warna air. Maka diperlukan sebuah ember lagi ygdigunakan sebagai tempat penampungan sementara, misal ember tambahantadi Z.

Algoritmanya:1. Tuangkan isi ember X yang berwarna merah ke dalam ember Z yg

kosong.2. Tuangkan isi ember Y yang berwarna hitam ke dalam ember X yg

kosong3. Tuangkan isi ember Z yang berwarna merah ke dalam ember Y yg

kosong

Page 19: Algoritma &Pemrograman

19

CONTOH (5) WATER JUG PROBLEM

Terdapat 2 buah ember yg masing-masing bervolume 5 liter dan 3 liter. Anda dimintamendapatkan air dari sebuah sungai sebanyak 4 liter dengan menggunakanbantuan hanya kedua ember tersebut, terserah bagaimana caranya. Bolehmemindahkan air dari satu ember ke ember lain, membuang seluruh air dariember dan sebagainya.

Jawab: Salah satu algoritmanya:1. Isi penuh ember 3 liter dengan air yang diambil dari sungai.2. Tuangkan isi ember 3 liter ke dalam ember 5 liter.3. Isi penuh ember 3 liter dengan air yang diambil dari sungai.4. Tuangkan isi ember 3 liter ke dalam ember 5 liter sampai penuh. ( dalam ember

3 liter sisa air 1 liter)5. Buang seluruh isi air dari ember 5 liter.6. Tuangkan isi air dari ember 3 liter ( sisa 1 liter) ke dalam ember 5 liter.7. Isi penuh ember 3 liter dengan air yang diambil dari sungai8. Tuangkan seluruh air ember 3 liter ke dalam ember 5 liter yg telah berisi 1 liter

air. Ember 5 liter sekarang berisi 4 liter air.

Page 20: Algoritma &Pemrograman

20

CONTOH (6) MENYEBERANG SUNGAI

Pak Tua tiba di tepi sebuah sungai. Pak Tua (p) tersebutmembawa seekor kambing (k),seekor srigala (s), dansekeranjang rumput (r). Mereka bermaksudmenyeberangi sungai tersebut. Pak Tua menemukansebuah perahu kecil, tetapi sayang hanya memuat satubawaan saja setiap menyeberang sungai.Kenyataantersebut dipersulit bahwa srigala tidak dapat ditinggaldengan kambing demikian juga kambing tidak dapatditinggal dengan rumput. Bagaimana algoritma supayaPak Tua dapat menyeberangkan seluruh bawaannya kesebrang sungai dengan selamat ?

Page 21: Algoritma &Pemrograman

21

JAWABAN : PAK TUA MENYEBERANG SUNGAIKondisi awal :

{ sisi A : ( p,s,k,r ) sisi B ( _ _ _ _) }1. Pak Tua menyeberangkan kambing dari sisi A ke B

{ sisi A : ( _,s,_,r ) sisi B ( p _ k _) }1. Pak Tua menyeberang sendirian dari sisi B ke A

{ sisi A : ( p,s,_,r ) sisi B ( _ _ k _) }1. Pak Tua menyeberangkan serigala dari sisi A ke B

{ sisi A : ( _,_,_,r ) sisi B ( p s k _) }1. Pak Tua menyeberangkan kambing dari sisi B ke A

{ sisi A : ( p,_,k,r ) sisi B ( _ s _ _) }1. Pak Tua menyeberangkan rumput dari sisi A ke B

{ sisi A : ( _,_,k,_ ) sisi B ( p s _ r) }1. Pak Tua menyeberang sendirian dari B ke A

{ sisi A : ( p,_,k,_ ) sisi B ( _ s _ r) }1. Pak Tua mnyeberangkan kambing dari sisi A ke B

{ sisi A : ( _,_,_,_ ) sisi B ( p s k r) }

Page 22: Algoritma &Pemrograman

22

Contoh(7) : luas persegipanjang

Alagoritma :1. Masukkan panjang2. Masukkan lebar3. Hitung luas, panjang kali lebar4. Cetak luas persegipanjang

Page 23: Algoritma &Pemrograman

23

Flow chart : luas persegipanjang