JAWABAN TUGAS 3 PEMROGRAMAN TEKNIK 1. Metoda uji “blackbox” adalah metoda pengujian program yang melihat kesesuaian output program dengan input yang diberikan kepada program tanpa perlu melihat isi programnya (source code). Sedangkan pengujian “white box” adalah pengujian program dengan melihat algoritmanya baik berupa dokumen hasil analisis, dokumen hasil desain (pseudocode atau flowchart) atau dokumen kode program (source code) nya untuk memastikan bahwa logika dan strukturnya benar. Blackbox Keuntungan Praktis dan mudah Tidak harus membaca program (source code) dan mengerti program.
Kerugian
Tidak mungkin menguji semua kemungkinan input dan output yang tak hingga banyaknya Harus mempersipakan data uji (input) dan data hasil uji (output) yang representatif untuk menguji program Tidak mudah melihat kesalahan semantik (logik) dari program
Whitebox Komprehensif dan teliti Tidak perlu menguji semua kemungkinan input dan output Mudah mendeteksi kesalahan logik (semantik) dan sintak (struktur) dari program Harus memahami algoritma dan melibatkan pakar dalam domain ilmu yg terkait dan logika komputasinya Harus bisa membaca dokumen analisis, dokumen desain dan dokumen source code
2. Contohnya adalah pada tugas nomor 2 dimana untuk uji BLACK BOX kita siapkan data input dan hasil hitungan ouput yang benar yang kita hitung sendiri, lalu kita ujikan pada program kita dan dibandingkan apakah sama antara output hasil hitungan kita dengan hasil output program. DATA INPUT OUTPUT KITA OUTPUT PROGRAM SESUAI? A=0, B=3, C=-4 “Bukan persamaan “Bukan persamaan Ya kuadrat A=0” kuadrat A=0” A=-4, B =5 C=2 “Tidak ada “Tidak ada jawaban riil” Ya jawaban riil” A= 9, B=12, C=4 X1=-0.67 X2 =-0.67 X1=-0.67 X2 =-0.67 Tidak “Nilai x1 dan x2 “Nilai x1 dan x2 sama” sama” Xe=-0.67 Ye=0.5 Xe=-0.67 Ye=0 “Memiliki nilai ekstreem “Memiliki nilai minimum” ekstreem minimum” A=3, B=10, C=8 X1=-1.33 X2 =-2 X1=-1.33 X2 =-2 ya Xe=-1.33 Ye=0.33 Xe=-1.33 Ye=0.33 “Memiliki nilai “Memiliki nilai ekstrim ekstrim minimum” minimum”
Sedangkan contoh uji WHITE BOX adalah dengan melihat dokumen analisis dan dokumen desain (seperti yang sudah diberikan dijawaban tugas 1) dan dokumen program QBASICnya yang sudah saudara buat pada tugas 2. 3.
“Kondisi (condition) dalam perintah PILIHAN (SELECTION) dan perintah PENGULANGAN (LOOP) adalah suatu keadaan nilai dari suatu variabel untuk menetukan pilihan yang harus dilakukan atau menentukan kapan suatu iterasi (loop) akan terus atau berkahir. Kemungkinan nilai dari kondisi umumnya adalah Bollean (true or false. 1 or 0) namun bisa juga berisi berbagai kemungkian nilai seperti string, integer, atau riil.
4. Berikut dokumen analisis
5. Dokumen desain adalah sebagai berikut: MULAI BACA n JIKA n > 0 MAKA BACA Rangkai JIKA Rangkai = “S” MAKA Rs = 0 SELAMA n > 0 KERJAKAN BACA R JIKA R > 0 MAKA Rs = Rs + R n=n–1 SELAINNYA CETAK “NILAI R INVALID” GOTO XX AKHIR LOOP Rtotal = Rs SELAINNYA JIKA Rangkai = “P” MAKA IRp = 0 SELAMA n > 0 KERJAKAN BACA R JIKA R > 0 MAKA IRp = IRp + (1/R) n = n -1 SELAINNYA CETAK “NILAI R INVALID” GOTO XX AKHIR LOOP Rtotal = (1/IRp) CETAK Rtotal SELAINNYA CETAK “n HARUS > 0” XX: BACA HitungLagi JIKA HitungLagi = “YES” MAKA GOTO MULAI SELESAI
Flowchart:
6. Identifikasi Variabel dan Konstanta VARIABEL INPUT (DATA) PENUNJANG HASIL (OUTPUT) KONSTANTA
NAMA n, Rangkai, R Rs, IRp, HitungLagi Rtotal “n harus ≥ 0”, “Nilai R invalid”
6. Program QBASIC //Dekalrasi variabel DIM n AS INTEGER, Rangkai AS STRING, DIM Rtotal AS SINGLE , Rs AS SINGLE, IRp AS SINGLE DIM HitungLagi AS STRING CLS YY: //Nama label INPUT “Masukkan jumlah resistor yang dirangkai!:”; n IF n >0 THEN INPUT “Masukan S jika dirangkai serial dan P jika dirangkai paralel!:”; Rangkai IF Rangkai = “S” THEN Rs = 0 WHILE n >0 INPUT “Masukkan nilai resistor!: “; R IF R > 0 THEN RS = Rs + R n = n-1 ELSE PRINT “Nilai R invalid” GO TO XX END IF WEND Rtotal = Rs ELSEIF Rangkai = “P” THEN IRp = 0 WHILE n >0 INPUT “Masukkan nilai resistor!: “; R IF R > 0 THEN IRp = IRp + ( 1/R) n = n-1 ELSE PRINT “Nilai R invalid” GO TO XX END IF WEND Rtotal = (1/IRp) END IF PRINT “Nilai resistor total adalah: “; Rtotal ELSE PRINT “Nilai n harus > 0” END IF XX: // Nama label INPUT “Apakah mau hitung lagi (y/t)?”; HitungLagi IF HitungLagi = “y” THEN GOTO YY END IF END SELESAI