1. Struktur Program dan Debugging
Pemrograman Berorientasi Objek II
Pertemuan – 2
Edri Yunizal, S.Kom., M.T.
Lita Sari Muchlis, M.Kom.
1
2. STRUKTUR PROGRAM
Memperkenalkan pada mahasiswa tentang struktur dari sebuah
program, pengantar tentang perulangan dan pengambilan keputusan,
serta menjelaskan kenapa pemrograman berorientasi objek lebih baik
dari pemrograman terstruktur seperti menghemat kode dan lain
sebagainya.
•Mendesain program
•Menggunakan objek
2
3. Struktur program
• Setiap program terdiri dari instruksi
• Instruksi menentukan apa yang dilakukan
program
• Koding=menulis instruksi-instruksi
• Program sederhana bisa terdiri dari satu
instruksi saja. Contoh dalam Visual Basic:
Msgbox “Hello World”
• > baris program, >yang bisa dilakukan
program 3
4. 2 langkah penting dalam mendesain
program
• Identifikasi apa diinginkan dari program
• Mengatakan pada komputer apa yang harus
dilakukan, langkah per-langkah
4
7. Spaghetti programming
• Membuat program sangat
mudah
• Buat, tes, tambah instruksi,
sampai selesai
• Program yang baik:
– Awal
– Akhir
• Makin besar program makin
susah dikelola
7
10. Koding dg VB...
• Ketik kode program
• Jalankan program dengan tombol F5 (run)
Ketik kode
program disini
10
11. Bagian koding dalam vb
Blok method form_load
Blok method form_load
Deklarasi variabel
Instruksi-
instruksi
11
12. Tipe data dalam visual basic
Type Stores Memory
Requirement
Range of Values
Integer Whole numbers 2 bytes -32,768 to 32,767
Long Whole numbers 4 bytes Approximately +/- 2.1E9
Single Decimal
numbers
4 bytes -3.402823E38 to -1.401298E-45 for negative
values and 1.401298E-45 to 3.402823E38
for positive values
Double Decimal
numbers
(double-
precision
floating-point)
8 bytes -1.79769313486232E308 to
-4.94065645841247E-324 for negative
values and 4.94065645841247E-324 to
1.79769313486232E308 for positive values
Currenc
y
Numbers with
up to 15 digits
left of the
decimal and 4
digits right of
8 bytes -922,337,203,685,477.5808 to
922,337,203,685,477.5807
12
13. String Text
information
1 byte per
character
Up to 65,000 characters for fixed-length
strings and up to 2 billion characters for
dynamic strings
Byte Whole
numbers
1 byte 0 to 255
Boolea
n
Logical values 2 bytes True or False
Date Date and time
information
8 bytes Jan 1st 100 to December 31st 9999
Object Pictures and
any object
reference
4 bytes N/A
Variant Any of the
preceding
data types
16 bytes + 1
byte per
character
N/A
13
15. Instruksi sekuensial
• Program menjalankan
instruksi satu persatu
• Dari instruksi pertama
sampai terakhir
• Alasan: bisa
melaksanakan masing-
masing instruksi satu
kali sebelum program
berakhir
15
17. Instruksi percabangan
• Program yg berguna dan
responsif menerima input
dan bereaksi thd input tsb
• Cth: game
• Percabangan: menyuruh
komputer untuk melakukan
instruksi yang berbeda
tergantung nilai tertentu
yang diinputkan
• Cth: menghapus file di
komputer
17
18. Contoh percabangan
• Instruksi percabangan membiarkan program bereaksi terhadap data
tertentu.
• terdiri dari dua atau lebih alternatif solusi
• Hanya satu yang akan dijalankan pada satu waktu
project5 program percabangan
18
19. Instruksi perulangan
• Sekuensial dan percabangan
hanya dilaksanakan 1 kali
• Untuk menjaga agar program
tetap berjalan sampai waktu yang
diinginkan dibutuhkan instruksi
perulangan
• Instruksi perulangan membuat
komputer mengulang satu atau
lebih instruksi
• Membantu menggunakan
instruksi yang sama berkali-kali
19
20. Contoh perulangan:Menampilkan
angka 1 s.d 10
• Tanpa perulangan: • Dengan perulangan:
• Kurang jelas?
• Lebih sedikit
• Cth 1 s.d 1000:
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 1000
MsgBox "Cetak " & i
Next
End
End Sub
project6 program tanpa perulangan
project7 program dengan perulangan
20
10
21. Blok pembangun program
• Setiap program terdiri
dari 3 blok pembangun:
sekuensial,
percabangan, dan
perulangan
• Contoh 3 blok
pembangun program
yang meminta
password
21
24. Subprogram
• Semakin kompleks tugas > semakin banyak
kode program > semakin sulit dibaca dan
dipahami
• Satu halaman saja?
• Buku > halaman
• Program > subprogram
24
27. Function / procedure
• Keuntungan
– Membagi program menjadi bagian yang lebih kecil, mudah dibaca dan ditulis
– Program diisolasi shg pengeditan lebih mudah, (cth: mengganti bata yang
rusak ganti yang baru)
27
28. Library
• Membagi program yang
besar menjadi kecil dengan
subprogram =
mengorganisasikan instruksi
• Library=memisahkan
subprogram ke file lain
• 1 program bisa terdiri lebih
dari 1 file, terhubung pada 1
atau lebih library• Keuntungan
– Membaca program lebih mudah, daripada membuka seluruh file, buka file
yang dibutuhkan saja
– Library bisa digunakan kembali oleh program lain
– Ukuran program utama bisa jadi lebih kecil
28
29. Object
• Library memiliki
beberapa kelemahan:
– Perbaikan library berarti
memperbaiki
keseluruhan library yang
ada
– Perbedaan versi antar
library
• OOP bukan menyalin
subprogram secara fisik
tapi membuat sebuah
salinan virtual
• Keuntungan
– Subprogram bisa digunakan secara bersama
– Subprogram bisa dimodifikasi tanpa
mempengaruhi subprogram aslinya (karena disalin
secara virtual) 29
30. Polymorphism
• Salinan virtual bisa bekerja seperti
salinan fisik, namun tidak bisa
mengubah subprogram aslinya
(versi tidak akan berganti)
• Jika ingin memperbaiki subprogram
asli (yang disimpan dalam objek),
sekali diperbaiki maka mengupdate
secara otomatis salinan virtualnya
• Jika ingin menambahkan fitur
dalam objek, cukup membuat
salinan virtualnya dan kemudian
menambahkan fitur tsb
(polymorphism) 30
32. Debugging
• Tidak ada yang bisa membuat program selalu 100%
benar
• Satu instruksi yang salah, asumsi yang salah, kurang
satu instruksi -> komputer tidak tahu -> gagal / crash
• Program yang tidak benar -> memiliki bug
• Proses mencari yang salah didalam
program=debugging
• Bahasa pemrograman menyediakan fasilitas untuk
melacak bug dalam program
32
33. Anatomi bug komputer
• Tiga kategori
– Kesalahan sintak: perintah yang dikodekan dengan tidak
benar misal Msgbox ditulis MessageBox atau lupa
memberikan kurung tutup )
– Kesalahan run-time (waktu menjalankan): program
melakukan sesuatu yang tidak diharapkan, misal
disediakan input umur, pengguna tidak mengetikkan
angka tapi malah berupa huruf “tiga puluh dua”
– Kesalahan logika: program jalan, tapi tidak bekerja sesuai
yang diharapkan
33
39. Kesalahan Run-time
• Run-time eror: kesalahan ketika program dijalankan
• Tersembunyi dalam program
• Program berjalan dengan baik
• Tiba-tiba eror karena mendapatkan data yang tidak
diharapkan
• Ada versi beta
• Cara mengatasi
– Mengetes program berulang-ulang
– Membatasi input
39
40. Contoh kesalahan run-time
• Membuka file yang tidak ada
• Log in pada database dengan username dan password yang
salah
• Mengakses direktori tertentu tanpa hak
• Mengakses data dari tabel yang namanya sudah diganti
• Membuka file dari server yang sedang down
• Mengakses URL internet yang tidak ada lagi
• Membagi angka dengan 0
• Pengguna memasukkan angka ketika dibutuhkan string
• Overflow
40
42. Kesalahan logika
• Yang paling berbahaya
– Kesalahan sintak / run-time bisa diketahui dengan cepat
– Terjadi setelah instruksi dibuat dengan benar, namun
instruksi yang dibuat adalah instruksi yang salah, karena
programmer berasumsi instruksinya benar
• Cara mengatasi
– Step
– Breakpoint
– Watch
42
47. Tugas 1
• Buatlah project-project berikut:
– project2 Spaghetti programming
– project3 program sederhana
– project4 program sekuensial
– project5 program percabangan
– project6 program tanpa perulangan
– project7 program dengan perulangan
– project8 program password
• Serahkan dalam bentuk CD (satu lokal boleh 1 CD), paling
lambat minggu depan (pertemuan 3)
• Masing-masing project dibuat directori / foldernya dengan
nama seperti diatas
• Masing-masing mahasiswa dibuat direktori / foldernya
dengan nama:
NIM – NAMA MAHASISWA
• project9 subprogram
• project10 salah tulis perintah
• project11 salah buat karakter
• project12 salah eja
• project13 overflow
• project14 kesalahan logika
47
48. Tugas 2
• Cari 1 buah ebook tentang pemrograman berorientasi objek
(pdf), object oriented programming, OOP, bahasa inggris atau
indonesia
• 1 orang 1 ebook (tidak boleh ada yang sama)
• Buat sebuah folder dengan NIM – NAMA MAHASISWA, yang
berisi:
– File pdf ebook
– Readme.txt yang isinya adalah alamat website tempat mendownload
buku tsb
• Dikumpulkan 2 minggu lagi (pertemuan 4)
• Diserahkan dalam bentuk CD (1 lokal boleh 1 CD)
48