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:
Hal – hal berikut terdiri dari:
- Preparation Principle (Dasar Kesiapan)
- Coding Principle (Dasar Koding)
- Validation Principle (Dasar Validasi)
- Testing Principle (Dasar Pengetesan)
1. Persiapan yang dilakukan sebelum koding :
- Mengerti Permasalahan yang akan diselesaikan.
- Mengerti Desain dasar dari permasalahan dan konsep yang akan dibuat.
- Pilih Bahasa Pemrograman yang sesuai dengan kebutuhan software dan lingkungan yang khusus untuk software tersebut.
- Pilih Bahasa Pemrograman yang memang sesuai dengan pembuat agar pekerjaan jadi lebih mudah.
- Buat sebuah test setelah kode yang dikerjakan selesai untuk mengujinya.
Penjelasan dari poin-poin diatas adalah :
- Sebelum kita melakukan koding sebaiknya kita memahami dengan jelas permasalahan yang akan dihadapi saat koding serta perencanaan yang cukup.
- Memahami konsep dan desain dari hal yang akan dibuat seperti membuat pointer,kita harus memahami kegunaan dari karakter dan fungsi dari karakter tersebut.
- Pada saat akan melakukan koding sebaiknya pertimbangkan kebutuhan dari hal yang akan dibuat dan mendukung dari kodingan tersebut terutama di bagian bahasa pemrogramannya.
- 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.
- 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 :
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).
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 :
- Pengetesan adalah sebuah proses dari pengeksekusian program dengan maksud untuk menemukan error/kesalahan.
- Pengetesan yang baik dalam hal ini memiliki peluang yang tinggi untuk menemukan error yang belum ditemukan ketika proses koding berlangsung.
- 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 :
- 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.
- 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”.
- 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.
- 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.
- 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.
Subscribe
6 comments:
gan, ane ga ngerti pas di algo nya..
yg "if min <>" itu artinya apa yaaa??
maaf gan...kesalahan postingan...
yg benar nya sudah diperbaiki...mungkin sekarang dapat dimengerti
btw thanks koreksi ny
teman, kalau pas kita melakukan pengetesan program terus menemukan adanya error. apakah errornya itu selalu karena kesalahan pada source codenya atau ada hal lain ?
^_^
kawan, jika saat pengetesan program kita tidak menemukan adanya error tetapi output tidak sesuai dengan tujuan. apakah hal tersebut termasuk error ?
gan, ane kan sering ngerjain tugas koding, tapi ane jarang banget ngasih komentar di source kodenya soalnya ane suka bingung mau ngasih komen apa. komen-komen yang kaya apa sih kalo kita lagi mrogram ?
untuk yg pertama menurut saya penyebab error timbul bukan hanya dari source code nya...tetapi mungkin dari "si pembuat program" itu sendiri.
dalam hal ini mungkin algoritma yang dibuat tidak sesuai sehingga memunculkan error.
error disini dapat kita artikan luas, yaitu berupa keadaan yang tidak sesuai dengan yang seharusnya. error juga tidak terlepas dari bug bug yang timbul dari "si kompiler" atau IDE yang digunakan
untuk yang kedua
bisa dikatakan error, dalam artian error disini yaitu berupa kesalahan. Tentu saja disebut salah karena output yang dihasilkan tidak sesuai dengan yang seharusnya.
oleh karena itu menurut saya pada proses-proses sebelumnya, planning dari pembangunan sebuah software sangatlah penting, dan untuk kemudian kita tracking dari progress yang telah dicapai
untuk yang ketiga
komen disini berguna agar orang lain dapat memahami hasil kodingan kita. memang terlihat "sepele" sih, tapi menurut saya sangat lah penting. dengan kita menuliskan source code tentunya memiliki suatu tujuan. nah mungkin secara garis besar source code yang anda tuliskan bisa dijadikan komen pada saat koding berlangsung.
thanks
Muhammad Abrar Arief
CMIIW
Post a Comment