Upload
londohollic
View
239
Download
7
Embed Size (px)
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
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
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
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
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.
7
Flow chart1. Flow Direction Symbols ( Simbol penghubung alir)2. Processing Symbols ( Simbol proses)3. Input output Symbols ( Simbol input output)
Simbol Flowchart
2004 EL 2001 - Algoritma v.1.2 8
Simbol Flowchart
2004 EL 2001 - Algoritma v.1.2 9
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
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.
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
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
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.
15
Flow chart Mengirim surat kepada teman:
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.
17
CONTOH (3)
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
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.
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 ?
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) }
22
Contoh(7) : luas persegipanjang
Alagoritma :1. Masukkan panjang2. Masukkan lebar3. Hitung luas, panjang kali lebar4. Cetak luas persegipanjang
23
Flow chart : luas persegipanjang