1
Titin Sri MartiniFMIPA Universitas Sebelas Maret
PEMROGRAMAN KOMPUTER
2
BAB 1ALGORITMA
DAN FLOWCHART
3
TUJUAN
• Mahasiswa mampu menganalisa, menentukan atau membuat algoritma untuk menyelesaikan suatu permasalahan.
• Mahasiswa dapat membuat flowchart dengan benar
• Mahasiswa mampu mengimplementasikan algoritma dan flowchart dalam bahasa pemrograman Pascal.
4
OUTLINE
• Algoritma• Flowchart
5
Algoritma
• Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah.
• Urutan langkah logis mempunyai arti bahwa algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat.
6
Contoh
Algoritma dalam kehidupan nyata:• jika seorang ingin memasak mie instan, maka
langkah-langkah yang harus dilakukan :Merebus air hingga mendidihMemasukkan mie ke dalam air tersebut sambil
diaduk, tunggu hingga 3 menitMasukkan bumbu ke dalam mangkokTuang mie ke dalam mangkok, aduk merataMie siap disajikan.
7
Algoritma
• Dalam bidang komputer, algoritma sangat diperlukan untuk menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris
• Notasi AlgoritmaKalimat deskriptifFlowchartPseudo-code
8
Kriteria Algoritma Menurut Donal E. Knuth :
Input :Algoritma dapat memiliki nol atau lebih inputan dari luar
Output : Algoritma harus memiliki minimal satu output
Algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu
Definiteness (Pasti) :
9
Kriteria Algoritma Menurut Donal E. Knuth :
Finiteness (Ada Batas) :Algoritma harus memiliki titik berhenti (stopping role)
Effectiveness (Tepat dan Efisien) :
Algoritma sebisa mungkin harus dapat dilaksanakan dan efektif
A = A+0, A=A*1 Tidak efektif
10
Jenis Proses Algoritma
Sequence Process : instruksi dikerjakan secara sekuensial, berurutan
Selection Process : instruksi dikerjakan jika memenuhi kriteria tertentu
Iteration Process : instruksi dikerjakan selama memenuhi suatu kondisi tertentu
11
Jenis Proses Algoritma
Concurrent Process : instruksi dikerjakan secara bersama
12
Algoritma
• Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga.
• Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun.
13
Contoh Algoritma
Menghitung Luas Lingkaran1. Start2. Masukkan jari-jari (r)3. Masukkan phi4. Hitung Luas = phi x r x r5. Cetak Luas6. Stop
14
Langkah-langkah dalam Pemrograman Komputer
Start
DesainAlgoritma & Flowchart
Menulis program
Test Kebenaran Program
Dokumentasi
Arsip
Definisi dan analisa masalah
15
Langkah-langkah dalam Pemrograman Komputer• Mendefinisikan masalah
Tentukan masalahnyaTentukan apa saja yang harus dikerjakan oleh
komputerTentukan input dan outputnya
• Menemukan solusiJika masalah terlalu kompleks, maka adabaiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan.
16
Langkah-langkah dalam Pemrograman Komputer
• Memilih algoritma Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut
• Menulis program Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya.
17
Langkah-langkah dalam Pemrograman Komputer
• Menguji programtermasuk error handlingnya agar program benar-benar handal
• Menulis dokumentasi• Merawat Program
18
Flowchart
• Flowchart adalah bentuk gambar/diagram yang mempunyai aliran satu atau dua arah secara sekuensial.
• Flowchart harus bisa merepresentasikan komponen-komponen dalam bahasa pemrograman.
19
Keterangan Lambang Contoh
Mulai/selesai
Input/Output
Memberi nilai awal
Cetak
Aliran Data
Percabangan
Proses
Mulai
Input r
Input phi
Lß phi*r*r
Cetak L
Selesai
20
Pseudo code
• Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah.
• Pseudo-code sering digunakan untuk menuliskan algoritma.
21
Problem: mencari bilangan terbesar dari dua bilangan yang diinputkan
• Solusi :1. Algoritma dengan kalimat deskriptif :
a. Startb. Masukkan bilangan pertamac. Masukkan bilangan keduad. Jika bilangan pertama > bilangan kedua maka
kerjakan langkah e, jika tidak,kerjakan langkah fe. Tampilkan bilangan pertamaf. Tampilkan bilangan keduag. Stop
22
• Contoh Algoritma1. Start2. Input (a)3. Input (b)4. if a > b then kerjakan langkah 5, jika tidak maka ke langkah
65. print a6. print b7. Stop Pseudo-code Kalimat dekriptif
AA+5 Nilai A ditambah dengan 5
IF A > 10 THEN PRINT A Cetak nilai A bila lebih besar dari 10
IF A > B THEN PRINT A ELSE PRINT B
Dari dua bilangan A dan B, cari bilangan yang terbesar
23
Tugas Di Kelas
1. Buatlah Algoritma dan flowchart dari kasus berikut :Mengkonversi suhu dari Fahrenheit ke Celcius
2. Buatlah algoritma menjalankan sepeda motor
a. bukan matic b. matic
3. Diketahui dua buah algirotma berikut, yang
menjelaskan tentang sikap yang harus dilakukan bila menemui traffic-light di jalan raya:
24
Tugas Di Kelas
(1) if trafific light menyala then if lampu merah then
berhenti else
jalan
(2) if trafific light menyala then if lampu merah then
berhenti else
jalan
25
Tugas di Kelas(dikerjakan secara berkelompok)
Buat algoritma dan flowchart dari kasus berikut :4. Menentukan bilangan terbesar dari tiga bilangan yang di
inputkan (dikerjakan oleh kel 9, kel 14,)5. Menampilkan 10 bilangan asli yang pertama (dikerjakan kel 7
kel 10)6. Meng-outputkan N bilangan ganjil yang pertama (misal utk
N=5 maka bilangan tersebut 1 3 5 7 9 ) ( dikerjakan oleh kel 5, kel 11, )
7. Meng-outputkan N bilangan genap yang pertama (misal utk N=5 maka bilangan tersebut 2 4 6 8 10) (dikerjakan oleh kel 4, kel 6)
26
Tugas di Kelas(dikerjakan secara berkelompok)
Buat algoritma dan flowchart dari kasus berikut :8. Menghitung rata-rata N bilangan asli ( dikerjakan oleh kel 3,
kel 15)9. Menghitung jumlah kumulatif N bilangan asli (misal
diinputkan N=5 maka jumlah kumulatifnya adl 1+2+3+4+5=15 (dikerjakan oleh kel 8, kel 12)
10. Menghitung jumlah kumulatif dari dua pangkat semua cacah dari N, misal diinputkan N=3 maka jumlah kumulatifnya adl
(dikerjakan oleh kel 1, kel 2, kel 13)
27
Minggu depan dikumpulkan dalam folio bergaris. Di beri penjelasan lengkap ttg alur dr flowchart yg kelompok anda buat.
Dari masing2 kelompok akan ditunjuk 2 orang utk menjelaskan algoritma dan flowchart masing2.
Jika saat menjelaskan menggunakan bhs Inggris, akan diberi point lebih utk individu yg menjelaskan
Tugas di Kelas(dikerjakan secara berkelompok)