02 Konsep Dasar Pemrograman (Algoritme) - 2020
02 Konsep Dasar Pemrograman (Algoritme) - 2020
UNDERSTAND
PLAN
DIVIDE Debug
Stuck Reasses
?
Research
ALWAYS PRACTICE!
Kerangka Kerja Pemecahan Masalah
1. Memahami masalah (understand)
• Pahami apa yang ditanyakan
• Kebanyakan masalah dianggap sulit, karena tidak paham
• Coba jelaskan permasalahan yang dihadapi
• Tulis ulang, ringkas masalah
• Buat coretan atau gambar diagram
• “Bila kau tidak bisa menjelaskan sesuatu secara sederhana, maka sebenarnya
kau tidak memahaminya”
• “If you can’t explain something in simple terms, you don’t understand it.” — Richard
Feynman
Kerangka Kerja Pemecahan Masalah
2. Membuat rencana (plan)
• Jangan langsung mencoba menyelesaikan masalah tanpa rencana
• Rencanakan solusi
• Tidak ada yang dapat membantu kalau tidak ada langkah-langkah yang baik
• Beri otak waktu untuk menganalisis masalah dan memproses informasi
• Untuk merencakan secara baik, jawab pertanyaan:
• “Diberikan input X, apa langkah-langkah
Kerangka Kerja Pemecahan Masalah
3. Membagi Masalah Menjadi Sub-Masalah (Divide)
• Ini adalah langkah yang penting
• Jangan pernah memecahkan masalah besar sekaligus
• Bagi menjadi sub-masalah, karena sub-masalah lebih mudah diselesaikan
• Selesaikan sub-masalah satu demi satu, dimulai yang paling mudah
• Paling mudah adalah yang paling tahu/mendekati jawabannya
• Sub-masalah tidak tergantung pada sub-masalah lainnya
• Hubungkan semua “sub-masalah” → solusi utama masalah
Kerangka Kerja Pemecahan Masalah
4. Otak buntu (Stuck)
• Bagaimana bila mengalami kebuntuan, tidak dapat memecahkan sub-
masalah?
• Pertama-tama, ambil nafas dalam-dalam, beristirahat!
• Semua ini pasti pernah terjadi ke setiap orang
• Programmer/problem solver yang baik akan selalu ingin tahu tentang
bug/error, bukan kesal/marah-marah!
Mengatasi Kebuntuan
1. Awakutu (Debug): Berjalan selangkah demi selangkah dari solusi
yang dibuat untuk menemukan kesalahan yang terjadi. Ini dikenal
dengan debugging
Mengolah Data
Penyimpanan Data
Tahap Pengembangan Algoritme
COMPILE
Ya
Compile Error
Tidak
Executable code:
→ Run
Ya
Error
Tidak
DOKUMENTASI
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
COMPILE
Masalah:
Ya
Tentukan akar-akar dari suatu persamaan kuadrat. Compile Error
Definisi: Tidak
Persamaan kuadrat: ax^2 + bx + c = 0
Executable code:
Data yg diperlukan: → Run
Nilai dari a, b dan c: tipe real
Ya
Error
Tidak
DOKUMENTASI
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
COMPILE
Ya
Model Matematika: Compile Error
Rumus ABC
Tidak
x1 = (-b + sqrt(b^2 - 4ac))/2a
x2 = (-b – sqrt(b^2 - 4ac))/2a Executable code:
→ Run
Ya
Error
Tidak
DOKUMENTASI
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
Start COMPILE
Input: a,b,c Ya
Compile Error
d = b^2 – 4ac
Tidak
d<0 Executable code:
Y
T → Run
x1=(-b+sqrt(d))/2a Output
x2 =(-b-sqrt(d))/2a “Akar imajiner” Ya
Error
Output: x1, x2 Tidak
DOKUMENTASI
Stop
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
COMPILE
Ya
Compile Error
Tidak
Executable code:
→ Run
Ya
Error
Tidak
DOKUMENTASI
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
COMPILE
Ya
Compile Error
Tidak
Executable code:
→ Run
Ya
Error
Tidak
DOKUMENTASI
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
COMPILE
Ya
Compile Error
Tidak
Executable code:
→ Run
Ya
Error
Tidak
DOKUMENTASI
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
COMPILE
Ya
Compile Error
Tidak
Executable code:
→ Run
Ya
Error
Tidak
DOKUMENTASI
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
COMPILE
Ya
Compile Error
Tidak
Executable code:
→ Run
Ya
Error
Tidak
DOKUMENTASI
Tahap Pengembangan Algoritme
DEFINISI BUAT RANCANG TULIS PROGRAM
MASALAH MODEL ALGORITME
COMPILE
Dokumentasi Program Ya
Mencari Akar Persamaan Kuadrat Compile Error
Tidak
Daftar Isi: Executable code:
1. Definisi Masalah → Run
2. Model Perhitungan/Matematika
3. Flowchart/Rancangan Algoritme
4. Source Code Ya
Error
Tidak
DOKUMENTASI
Penyajian Algoritme
Penyajian Algoritme
• Algoritme bisa dibuat/dituliskan/digambarkan dengan:
34
Pseudocode
• Outline dari sebuah program komputer
• Ditulis dalam bahasa Inggris atau Indonesia sederhana
• Kata kunci (keyword) digunakan untuk menjelaskan struktur kendali
misalnya:
• “jika”, “ulangi”, “sampai”,
• ”if”, ”repeat”, “until”
35
Tujuh Operasi Dasar Komputer
• Membaca data (Input)
• Menampilkan data (Output)
• Melakukan perhitungan aritmetika (Compute)
• Memberikan nilai ke suatu identifier (Store)
• Membandingkan dan Memilih (Compare)
• Melakukan pengulangan (Loop)
• Procedure dan atau Function
36
1. Membaca Data
• Sewaktu komputer menerima informasi atau masukan (input), maka
statement yang biasa digunakan adalah “Read”, “Get”, ”Input”,
“KeyIn” atau “Baca”
• Contoh:
• Read Bilangan
• Get kode_pajak
• Baca nama_mahasiswa
37
2. Menampilkan Data
• Sewaktu komputer menampilkan informasi keluaran atau output,
maka statement yang biasa digunakan adalah “Print”, “Write”, “Put”,
“Output”, “Display” ataupun “Cetak”
• Contoh:
• Print “Universitas Brawijaya”
• Cetak “Dasar Pemrograman Komputer”
• Output Total
38
3. Perhitungan Aritmetika
• Pseudocode untuk melakukan operasi aritmetika
• + untuk penjumlahan (add)
• - Untuk pengurangan (subtract)
• * Untuk perkalian (multiply)
• / Untuk pembagian (divide)
• () Untuk pengelompokkan/prioritas aritmetika
• Statement “Compute”, “Calculate” ataupun “Hitung” juga dapat
digunakan.
• Contoh:
• Add number to total
• Total = Total + number
39
4. Memberikan Nilai ke Identifier
• Ada tiga cara untuk memberikan nilai ke dalam variabel
• Memberikan nilai awal, menggunakan statement “Initialize” atau “Set”
• Memberikan nilai sebagai hasil dari suatu proses, maka digunakan tanda
“=“atau “”
• Untuk menyimpan suatu nilai maka digunakan statement “Save” atau “Store”
• Contoh:
• Set Counter to 0
• Total Harga * Jumlah
40
5. Membandingkan dan Memilih
• Salah satu operasi terpenting yang dapat dilakukan komputer adalah
membandingkan dan memilih salah satu alternatif solusi (seleksi
kondisi).
• Keyword yang digunakan : “IF”, “THEN”, dan “ELSE”
• Contoh
IF Pilih=‘1’ THEN
Discount 0.1 * harga
ELSE
Discount 0.2 * harga
ENDIF
41
6. Pengulangan
• Jika ada beberapa perintah yang harus diulang, maka dapat
digunakan keyword “WHILE-DO” dan “END WHILE” atau “FOR” dan
“END FOR”
• Contoh
Bil 0
WHILE bil < 10 DO
cetak bil
bil bil +1
END WHILE
42
Contoh Algoritme dengan Pseudocode
Algoritme Berangkat Kuliah
Mulai
Bangun dari tempat tidur
Mandi Pagi
Sarapan Pagi
Pergi Ke Kampus
Cari Ruang Kuliah
Masuk kelas untuk Kuliah
Selesai
43
Contoh Algoritme dengan Pseudocode
Algoritme Menggunakan Kalkulator
Mulai
Nyalakan kalkulator
Kosong/Nolkan Kalkulator
Ulangi
Masukkan harga
Tekan tombol Tambah (+)
Sampai semua harga dimasukkan
Tampilkan total harga
Matikan kalkulator
Selesai
44
Contoh Algoritme dengan Pseudocode
Algoritme Sarapan Pagi
Mulai
Ambil piring
Masukkan nasi dan lauk dalam piring
Ambil sendok dan garpu
Ulangi
Angkat sendok dan garpu
Ambil nasi dan lauk
Suapkan ke dalam mulut
Taruh sendok dan garpu
Kunyah
Sampai (nasi dan lauk habis) ATAU kekenyangan
Bereskan piring, sendok dan garpu
Selesai
45
Contoh Algoritme dengan Pseudocode
Algoritme Pembagian Bilangan
Mulai
Input a, b
IF b=0 THEN
Cetak “Error: division by zero”
ELSE
xa/b
Cetak x
END IF
Selesai
46
2. Flowchart
47
Flowchart
• Representasi grafik dari suatu definisi, analisis, solusi metode dari
suatu masalah dengan simbol yang digunakan untuk
merepresentasikan operasi, data, alir, peralatan, dll. (ISO 5807-1985)
• Standardisasi flowchart ditentukan pada dokumen ISO 5807-1985
atau BS 4058:1987
• ISO→International Organization for Standardization
• Ada 5 jenis flowchart dalam ISO 5807: data, program, system,
program network chart, system resources chart
48
Simbol Flowchart
49
Simbol Flowchart
Persiapan (Preparation): modifikasi instruksi yang
memengaruhi aktivitas berikutnya, mis. Modifikasi register
indeks, inisialisasi routine
Garis (Line): Arah aliran control antar proses dan/atau data
Sign-in at front
desk
Pull chart
Escort to exam
room
Record chief
complaint, vitals
Notify provider 1 51
Patient ready
Contoh Flowchart 1 (Lanjt.)
Examine
1
Patient
Order
Write order
Req?
Add Progress
Notes to Patient
Chart
File
Charts
End
52
Contoh Flowchart 2
Start
Input a,b,c
d = b^2 – 4ac
Y
d<0
T
x1=(-b+sqrt(d))/2a Output
x2 =(-b-sqrt(d))/2a “Akar imajiner”
Output
x1,x2
Stop
53
Contoh Flowchart 3
Start kali(a, b)
Input a, b c=a*b
return c
hasil = kali(a, b) Y
Output “Hasil
kali a x b = ”, c
Stop
54
Aliran
• Flowchart sebaiknya “dibaca” dari atas ke bawah atau kanan ke kiri.
• Respon dari keputusan Ya/Tidak sebaiknya konsisten dengan arah yang sama.
Yes Yes
No Yes
Administer
Health Question Draw blood
Administer
Health Questionnaire
Draw blood
56
Konsep Dasar Pemrograman Terstruktur
57
Kriteria Algoritme yang Baik
• Mempunyai logika yang tepat untuk memecahkan masalah.
• Menghasilkan keluaran (output) yang benar dalam waktu yang
singkat.
• Ditulis dengan bahasa baku terstruktur sehingga tidak menimbulkan
arti ganda.
• Ditulis dengan format baku sehingga mudah diimplementasikan ke
dalam bahasa pemrograman.
• Semua operasi didefinisikan dengan jelas dan berakhir sesudah
sejumlah langkah.
58
Pemrograman Terstruktur
• Pemrograman terstruktur merupakan pola penyusunan program
komputer hanya dengan menggunakan tiga struktur kontrol
• Sequence
• Selection
• Loop/Repetition
59
1. Sequence
• Sequence merupakan urutan pengerjaan dari perintah/statement
pertama sampai dengan perintah/statement terakhir.
• Umumnya bahasa pemrograman mempunyai sequence (urutan
pengerjaan dari perintah/statement) mulai dari atas ke bawah dan
dari kiri ke kanan.
• Top-down
60
Contoh Sequence
• Contoh Pseudocode:
1. Cetak “Jumlah Mahasiswa”
2. Set Jumlah to 49
3. Cetak “Tambahan mahasiswa baru”
4. Baca mhs_baru
5. Jumlah = Jumlah + mhs_baru
6. Cetak “Jumlah Mahasiswa”
7. Cetak jumlah
• Penjelasan
• Urutan pengerjaan adalah mulai dari urutan pertama sampai dengan urutan
terakhir, jika mhs_baru diisi dengan 2, maka jumlah yang tercetak adalah 51
61
2. Selection
• Struktur kontrol Selection adalah penggambaran sebuah kondisi dan
pilihan di antara dua aksi.
• Statement pertama akan dikerjakan jika kondisi bernilai benar (true),
jika tidak (false) maka akan mengerjakan perintah setelah keyword
“ELSE” (jika ada).
62
Contoh Selection
• Contoh Pseudocode:
1. IF Hari=1 THEN
2. Cetak “Senin”
3. ELSE
4. Cetak “Bukan hari Senin”
5. END IF
• Penjelasan
• Tulisan “Senin” akan ditampilkan jika Hari bernilai 1, jika tidak maka tulisan
“Bukan hari Senin” yang akan ditampilkan
63
3. Repetition
• Beberapa statement/perintah dapat diulang dengan menggunakan
struktur kontrol repetition.
• Statement/perintah akan tetap diulang selama kondisi perulangan
memenuhi (jika menggunakan WHILE DO–END WHILE)
64
Contoh Repetition
• Contoh Pseudocode:
1. bintang 0
2. WHILE bintang < 5 DO
3. Cetak bintang
4. bintang bintang + 1
5. END WHILE
• Penjelasan:
• Pertama kali bintang akan diisi dengan 0, setelah itu isi dari bintang akan
dicetak sebanyak lima kali, sehingga tampilannya
01234
65
Anatomi Java
Class Name
• Setiap program Java harus memiliki setidaknya satu Class
• Setiap Class memiliki nama
• Menurut konvensi, nama kelas dimulai dengan huruf besar
p
ubl
iccla
ssTes
t{
pu
bli
cstat
icvoi
dmain
(St
ring
[]a
rgs
){ C
la
ssb
loc
k
Sys
tem
.ou
t.p
rin
tln
("W
elc
ometoJ
ava
!")
;Me
tho
dblo
ck
}
}
Gaya Pemrograman dan Dokumentasi
Komentar yang Sesuai
• Sertakan ringkasan di awal program untuk menjelaskan apa yang
dilakukan program, fitur utamanya, struktur data pendukungnya, dan
teknik unik yang digunakannya
• Sertakan nama Anda, bagian kelas, instruktur, tanggal, dan deskripsi
singkat di awal program
Kaidah Penamaan
• Pilih nama yang bermakna dan deskriptif
• Nama class:
• Huruf besar pada huruf pertama dari setiap kata dalam nama
• Misalnya, nama class ComputeExpression.
Indentasi dan Jarak yang Tepat
• Indentasi
• dua spasi
• Jarak
• baris kosong untuk memisahkan segmen kode
N e
xt-lin
e p
ubl
iccla
ssTes
t
sty
le {
pu
bli
cstat
icvoi
dmain
(St
rin
g[]arg
s)
{
Sys
tem
.ou
t.p
rin
tln
("B
loc
kStyle
s")
;
}
}
E n
d-of-lin
e
sty
le
p
ubl
iccla
ssTes
t{
pu
bli
cstat
icvoi
dmain
(St
rin
g[]arg
s){
Sys
tem
.ou
t.p
rin
tln
("B
loc
kStyle
s")
;
}
}
Kesalahan Pemrograman
Programming Errors
• Syntax Errors
• Dideteksi oleh compiler
• Runtime Errors
• Menyebabkan program dibatalkan
• Logic Errors
• Menghasilkan hasil yang salah
1. Syntax Error
1 public class ShowSyntaxErrors {
2 public static main(String[] args) {
3 System.out.println("Welcome to Java);
4 }
5 }
2. Runtime Error
1 public class ShowRuntimeErrors {
2 public static void main(String[] args) {
3 System.out.println(1 / 0);
4 }
5 }
3. Logic Error
1 public class ShowLogicErrors {
2 public static void main(String[] args) {
3 System.out.println("Celsius 35 is Fahrenheit degree ");
4 System.out.println((9 / 5) * 35 + 32);
5 }
6 }
Kesalahan Umum (bag 1)
1. Lupa Kurung Kurawal (Brace)
• Tanda kurung kurawal digunakan untuk menunjukkan blok dalam
program
• Setiap kurung kurawal buka harus dicocokkan dengan kurung
kurawal tutup
• Kesalahan umum tidak ada kurung kurawal tutup
• Untuk menghindari kesalahan ini, ketikkan tanda kurung kurawal
setiap kali kurung kurawal buka
}
2. Lupa Titik Koma (Semicolon)
• Setiap pernyataan diakhiri dengan pernyataan terminator (;)
• Programmer baru sering lupa menempatkan pernyataan terminator
untuk pernyataan terakhir dalam sebuah blok
System.out.println("Problem Driven );
PERTANYAAN???
Tugas
• Membuat flowchart dengan menggunakan Flowgorithm berdasarkan
kasus
• Mengubah nilai jam, menit, dan detik menjadi detik.
• Mengubah nilai suhu celsius menjadi fahrenheit.
• Menentukan suku ke n dari bilangan aritmetika dengan nilai awal a dan beda
b.
PERTANYAAN???