Archives

0

HASIL DISKUSI 18 MARET 2011

2nd Wednesday, March 23, 2011
Hasil Diskusi Tanya Jawab...

1) Maksud dari prinsip pareto?

Jawaban : Prinsip Pareto adalah prinsip umum yang digunakan oleh masyarakat, yang menyatakan banyak kejadian, bahwa sekitar + 80% dari efeknya disebabkan oleh 20% penyebabnya.

2) Apa maksud dari menjaga logika bersyarat dan bagaimana cara menjaganya?

Jawaban : Yang dimaksud logika bersyarat disini adalah branching atau penggunaan conditional pada algoritma. cara menjaganya sebisa mungkin logika yang dipakai branching tidak terlalu kompleks. misalnya penggunaan nested logic seperti OR AND NOR.

3) Apakah test dilakukan setelah applikasi selesai atau per modul?

Jawaban : Testing tidak hanya dilakukan setelah applikasi telah selesai dibangun. testing juga dilakukan oleh programmer setelah modul yang mereka kerjakan selesai. setelah modul modul telah selesai, barulah testing dilakukan oleh tester yang menguji applikasi secara keseluruhan.

4) Efek prinsip tidak diimplementasikan?

Jawaban : Jika ingin mendapatkan hasil yang optimal, sebaiknya prinsip-prinsip yang ada harus diimplementasikan. namun prinsip tersebut bukan berarti harus dilakukan. ada kalanya prinsip harus dilanggar untuk hal-hal tertentu.
6

CONSTRUCTION PRINCIPLE AND CONCEPTS

2nd Monday, March 7, 2011
Prinsip & Konsep menuntun pada bahasa dan tools yang akan digunakan pada saat koding seperti dari cara pemrogramannya, bahasa yang akan digunakan & metode dari programming tersebut.

Hal – hal berikut terdiri dari:
  1. Preparation Principle (Dasar Kesiapan)
  2. Coding Principle (Dasar Koding)
  3. Validation Principle (Dasar Validasi)
  4. Testing Principle (Dasar Pengetesan)

1. Persiapan yang dilakukan sebelum koding :
  1. Mengerti Permasalahan yang akan diselesaikan.
  2. Mengerti Desain dasar dari permasalahan dan konsep yang akan dibuat.
  3. Pilih Bahasa Pemrograman yang sesuai dengan kebutuhan software dan lingkungan yang khusus untuk software tersebut.
  4. Pilih Bahasa Pemrograman yang memang sesuai dengan pembuat agar pekerjaan jadi lebih mudah.
  5. Buat sebuah test setelah kode yang dikerjakan selesai untuk mengujinya.

Penjelasan dari poin-poin diatas adalah :

  1. Sebelum kita melakukan koding sebaiknya kita memahami dengan jelas permasalahan yang akan dihadapi saat koding serta perencanaan yang cukup.
  2. Memahami konsep dan desain dari hal yang akan dibuat seperti membuat pointer,kita harus memahami kegunaan dari karakter dan fungsi dari karakter tersebut.
  3. Pada saat akan melakukan koding sebaiknya pertimbangkan kebutuhan dari hal yang akan dibuat dan mendukung dari kodingan tersebut terutama di bagian bahasa pemrogramannya.
  4. Memilih lingkungan untuk program yang membuat menjadi lebih mudah, seperti jika kebutuhan dari software tersebut digunakan di ponsel maka gunakan bahasa pemrograman yang berbasis mobile environment.
  5. Setelah kodingan beres maka sebaiknya kita membuat sebuah unit tes untuk melakukan percobaan terhadap hasil kodingan agar mengetahui kesalahan atau beresnya hasil kodingan tersebut.

2. Prinsip-prinsip Koding

Selama koding berlangsung perlu diperhatikan hal - hal berikut :


1. Mengharuskan algoritma Anda mengikuti praktek pemrograman terstruktur. Pemrograman terstruktur adalah yang mempunyai modul, struktur proses (sequence, selection, repetition), dan hanya ada single entry dan single exit.

2. Memilih struktur data yang akan memenuhi kebutuhan desain. struktur data beberapa macam, yaitu array, binary tree, linked list.

3. Memahami arsitektur software dan membuat interface yang konsisten dengan arsitektur tersebut.

4. Menjaga logika berkondisi sesederhana mungkin. Contoh :

begin
int maximum, minimum, nilai
if (nilai > 20)
then maximum <- nilai
else minimum <- nilai
endif
end

Pada bagian syarat kondisi (nilai > 20) menunjukkan kesederhanaan bahwa jika variabel nilai lebih besar dari bilangan 20, maka lakukan statement 'then'. Namun jika kondisi tidak terpenuhi, maka akan masuk ke statement 'else'. Logika yang tidak sederhana adalah pada bagian kondisi terdapat banyak syarat yang harus dipenuhi.

5. Membuat nested loops yang mudah untuk dites. biasanya nested loops dapat membingungkan pengetes yang membaca algoritma tersebut. misalkan ada loop di dalam loop. loop yang di dalam dan di luar harus diberikan comment yang jelas agar tidak membingungkan.

6. Memilih nama variabel yang mempunyai arti dan mengikuti standard coding lokal lainnya. ini diperlukan agar pengetes atau siapa pun yang membaca dan menggunakan algoritma tersebut dapat mudah membacanya. contoh : int max = untuk menyimpan nilai maksimum.

7. Menulis kode yang self-documenting. maksudnya setiap code yang dibuat harus disertakan comment agar saat dibukka kembali pengetes maupun pembuat algoritma tidak bingung saat membacanya.

8. Membuat tampilan visual yang membantu untuk mengertikan kode. Seperti indentasi (penjorokan ke dalam seperti paragraf).

3. Validation Principles

Dalam tahap konstruksi (coding), validity suatu program harus benar-benar di jaga. Apakah program berjalan dengan semestinya atau tidak. Dalam tahap konstuksi, diharapkan untuk tidak terburu-buru. Untuk mengurangi resiko mendapatkan error yang sangat rumit, sebaiknya setelah menyelesaikan koding pertama kita tidak langsung mengerjakan coding berikutnya, tetapi harus dipastikan bahwa :

  • Program berjalan dengan benar.
  • Melakukan test dan mengoreksi error yang terjadi.
  • Refactor the code

3.1 Program berjalan dengan benar


Program yang telah dibuat berjalan sesuai logika yang diharapkan. Berikut adalah contoh program yang tidak berjalan dengan benar. Misalkan dalam membuat program mencari nilai terkecil dalam sebuah array terdapat code seperti berikut :

min : integer
x : array of integer


min <- x[1]

for i <- 1 to 10 do

if min <>
min <- x[i]

end if

end for


Pada program diatas terjadi kesalahan logika, hasil akhir pada variabel ‘min’ akan menghasilkan nilai maksimum sedangkan yang diharapkan adalah nilai minimum.


3.2 Melakukan test dan mengoreksi error yang terjadi.


Menyiapkan suatu test untuk program yang telah dibuat. Untuk mengetahui program berjalan dengan baik atau tidak, misalkan pada program no 1 kita buat test dengan menyiapkan data yang 1,2,3,4,5,6,7,8,9,10. Jika hasil akhir bukan angka 1, maka bisa dipastikan bahwa program tidak berjalan dengan baik. Segera koreksi program.


3.3 Refactor the code


Maksud refactor disini adalah optimasi program. Misalkan pada program pada no. 1 :


a. Program hanya berlaku untuk array dengan panjang elemen 10. Maka untuk optimasi, kita bisa menambahkan sebuah variabel untuk menampung panjang elemen array. Berikut setelah program di optimasi :

(perubahan ditandai dengan bold dan underline)


min : integer

x : array of integer

length : integer


min <- x[1]

for i <- 1 to length do

if min > x[i] then
min <- x[i]

end if

end for


b. Program melakukan task yang sia-sia. Pada loop yang pertama, program membandingkan nilai yang sama yaitu ‘min’ dengan x[1] padahal sudah bisa dilihat bahwa initialisasi ‘min’ adalah x[1] maka untuk optimasi adalah :

(perubahan ditandai dengan bold dan underline)


min : integer
x : array of integer

length : integer


min <- x[1]

for i <- 2 to length do
if min > x[i] then
min <- x[i]
end if
end for

4. Testing Principles

Secara garis besar, penjelasan pengetesan yaitu :
  1. Pengetesan adalah sebuah proses dari pengeksekusian program dengan maksud untuk menemukan error/kesalahan.
  2. Pengetesan yang baik dalam hal ini memiliki peluang yang tinggi untuk menemukan error yang belum ditemukan ketika proses koding berlangsung.
  3. Pengetesan yang berhasil dalam hal ini berarti menemukan error yang belum ditemukan ketika proses koding berlangsung

Tujuan kita disini yaitu untuk membuat pengetesan secara sistematis untuk menemukan error dari kelas yang berbeda dengan waktu dan usaha seminimum mungkin.


Prinsip Pengetesan menurut Davis yang diadaptasi oleh buku ini adalah :

  1. Semua pengetesan seharusnya dapat ditelusuri berdasarkan kebutuhan konsumen. Tujuan dari pengetesan software adalah untuk menemukan error dari software itu sendiri. Maka dari itu kita cukup mengetes software sejauh penggunaan dari konsumen, sehingga konsumen tidak akan pernah menemukan error/kesalahan berdasarkan kebutuhannya.
  2. Pengetesan seharusnya direncanakan jauh hari sebelum pengetesan akan dimulai. Perencanaan pengetesan dapat dimulai setelah model analisis selesai dibuat. Merinci pengetesan dapat dimulai setelah model design juga dibuat. Oleh karena itu, semua pengetesan dapat direncanakan dan dibuat sebelum kode-kode di “generate”.
  3. Prinsip “pareto” digunakan untuk pengetesan software. Prinsip pareto menyatakan secara tidak langsung bahwa 80% dari semua error yang ditemukan selama pengetesan kemungkinan besar akan ditelusuri menjadi 20% dari semua komponen program. Masalahnya, tentu saja untuk mengetes komponen yang dicurigai tersebut harus secara menyeluruh.
  4. Pengetesan seharusnya dimulai dari yang kecil ke yang besar. Perencanaan pengetesan yang pertama biasanya focus pada komponen-komponen yang kecil. Selama pengetesan, kemudian berkembang untuk menemukan kesalahan-kesalahan didalam komponen yang lebih luas dan pada akhirnya ke system secara menyeluruh.
  5. Pengetesan secara mendalam itu tidak mungkin. Urutan kemungkinan kejadian dari suatu program yang berukuran sedang sangatlah besar. Karena itulah kita tidak mungkin mengeksekusi setiap kombinasi selama pengetesan. Tetapi mungkin saja, bagaimanapun cukup untuk mencakup logika program dan menjamin bahwa semua kondisi didalam level komponen desain sudah dicoba.

WELCOME

Muhammad Abrar Arief Saturday, March 5, 2011
THANKS FOR VISITING OUR BLOG...


WE HOPE YOU GET MORE KNOWLEDGE AND INFORMATION FROM OUR BLOG
IP
 
Copyright 2010 Second Team APPL