pemrograman berorientasi objek ii 02 struktur program dan debugging
DESCRIPTION
struktur program dan debugging dalam visual basicTRANSCRIPT
Struktur Program dan Debugging
Pemrograman Berorientasi Objek IIPertemuan – 2
Edri Yunizal, S.Kom., M.T.Lita Sari Muchlis, M.Kom.
1
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
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
2 langkah penting dalam mendesain program
• Identifikasi apa diinginkan dari program• Mengatakan pada komputer apa yang harus
dilakukan, langkah per-langkah
4
Memulai visual basic
5
IDE Visual Basic
Jendela Properties
Jendela Project Explorer
Tampil objek
Tampil Kode
Jendela Utama objek / kode
Kotak objek
Ikon ShortcutIkon menu
6
Spaghetti programming
• Membuat program sangat mudah
• Buat, tes, tambah instruksi, sampai selesai
• Program yang baik:– Awal– Akhir
• Makin besar program makin susah dikelola
7
Perbandingan
Spaghetti programming Program sederhana
Project2 spaghetti programming
Project3 program sederhana
8
Koding dg VB
Klik ganda disini
9
Koding dg VB...
• Ketik kode program• Jalankan program dengan tombol F5 (run)
Ketik kode program disini
10
Bagian koding dalam vb
Blok method form_load
Blok method form_load
Deklarasi variabelInstruksi-instruksi
11
Tipe data dalam visual basicType Stores Memory
RequirementRange of Values
Integer Whole numbers 2 bytes -32,768 to 32,767Long Whole numbers 4 bytes Approximately +/- 2.1E9Single Decimal
numbers4 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
Currency
Numbers with up to 15 digits left of the decimal and 4 digits right of the decimal
8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
12
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
Boolean
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
Macam-macam instruksi
Setiap program terdiri dari 3 macam instruksi•Instruksi sekuensial•Instruksi percabangan•Instruksi perulangan
14
Instruksi sekuensial
• Program menjalankan instruksi satu persatu
• Dari instruksi pertama sampai terakhir
• Alasan: bisa melaksanakan masing-masing instruksi satu kali sebelum program berakhir
15
Contoh sekuensial
project4 program sekuensial
16
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
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
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
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 IntegerFor i = 1 To 1000
MsgBox "Cetak " & iNextEnd
End Subproject6 program tanpa perulangan
project7 program dengan perulangan
20
10
Blok pembangun program
• Setiap program terdiri dari 3 blok pembangun: sekuensial, percabangan, dan perulangan
• Contoh 3 blok pembangun program yang meminta password
21
Flowchart program password
pwd
pwd=“x123”
Start
“Selamat datang di arsip FBI”
“Login anda gagal!, Coba Lagi!”
Stoppwd=“x123”
22
Kode program password
Sekuensial
Sekuensial
Sekuensial
Sekuensial
Sekuensial
Perulangan
Perulangan
Percabangan
Percabangan
Percabangan
Sekuensial
Sekuensial
project8 program password
23
Subprogram
• Semakin kompleks tugas > semakin banyak kode program > semakin sulit dibaca dan dipahami
• Satu halaman saja?• Buku > halaman• Program > subprogram
24
Program password dengan subprogram
Program utamaSub program
project9 subprogram25
Penggunaan subprogram
• Function / procedure• Library• Object
26
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
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
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
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
DEBUGGINGMengatasi kesalahan dalam pembuatan program
31
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
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
Opsi debugging
• Ceklis pada – Auto syntax check– Require variable declaration
34
Kesalahan sintak
• Salah tulis perintah• Salah buat karakter• Salah eja
35
Salah tulis perintah
Pesan error
Bug
Subprogram yang harus diperbaiki
project10 salah tulis perintah
36
Salah buat karakterKarakter salah buat, ‘ seharusnya “
37
project11 salah buat karakter
Salah eja
38
project12 salah eja
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
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
Run-time eror: overflow
41
project13 overflow
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
Contoh
project14 kesalahan logika
43
Step
• Tekan tombol F8 untuk setiap perintah
44
Breakpoint
• Program akan berhenti pada setiap breakpoint
45
Watch• Melihat isi variabel
ketika program sedang berjalan
46
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
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
Sumber
• Wang, Wallace (2007).Beginning Programming for Dummies, 4th Edition. Indianapolis: Wiley Publishing
• QUE.Using Visual Basic 6. Macmillan Computer Publishing
• Petroutsos, Evangelos (2002). Mastering Visual Basic .NET. Alameda: SYBEX
49