Anda di halaman 1dari 6

ALGORITMA

KESALAHAN LOGIKA, TESTING & DEBUGGING,


PERBAIKAN, VERIFIKASI INTERAKTIF &
PENGECEKAN

I Putu Deva Jayantha Putra 1605551095


I Putu Dedy Ardana Putra 1605551104
Putu Bagus Candradinatha 1605551105
I Made Riken Indra Putra

1605551106

TEKNOLOGI INFORMASI
FAKULTAS TEKNIK
UNIVERSITAS UDAYANA
2016

A. Kesalahan Logika
1. Pengertian Logika
Logika berasal dari bahasa Yunani yaitu Logos yang berarti ilmu. Logika pada
dasarnya adalah filsafat berpikir. Berpikir berarti melakukan suatu tindakan yang
memiliki suatu tujuan. Jadi pengertian Logika adalah ilmu berpikir/cara berpikir
dengan berbagai tindakan yang memiliki tujuan tertentu.
2. Kesalahan Logika
Kesalahan logika adalah kesalahan yang terjadi karena ada logika yang salah. Jika
terjadi kesalahan logika, program akan tetap berjalan dengan sukses tanpa pesan
error, karena kesalahan logika tidak mengarah pada kesalahan syntax atau program
yang tidak berarti (meaningless program) tetapi program yang berjalan tidak sesuai
dengan tujuan yang dimaksudkan. Kesalahan logika dapat diakibatkan karena
kesalahan pahaman menyangkut makna dari bahasa pemrograman.
Kesalahan seperti ini sulit terdeteksi terutama untuk program yang sangat
kompleks.
Contoh :
Psedudocode :
Program_menghitung_luas_lingkaran
r, phi,luas : float
phi = 31,4
deskripsi :
begin
write(masukan nilai jari-jari : )
read(r)
luas= phi*r*r
write(luas)
end.
pada contoh di atas terjadi kesalahan logika pada pendeklarasian nilai phi, dimana
seharusnya nilai phi adalah 3,14 namun dideklarasikan dengan nilai 31.4. Ketika
algoritma tersebut dikonversi ke dalam bahasa pemrograman tidak akan terjadi pesan
error. Namun program tidak akan berjalan sesuai tujuan yang dimaksudkan.
B. Testing, Debugging dan Perbaikan
Testing dan debuging merupakan dua aktivitas yang saling berkaitan. Testing
adalah proses dimana error/kesalahan ditemukan, sedangkan debuging adalah sebuah
metode yang dilakukan untuk mencari dan mengurangi bug atau kerusakan di dalam
sebuah program komputer atau perangkat keras sehingga perangkat tersebut berjalan
sesuai tujuan.
Debugging program, khususnya yang rumit dan panjang, dapat menjadi pekerjaan
berat. Meskipun program yang diamati menghasilkan output yang salah pada tes tertentu,
mungkin tidak ada indikasi sumber kesalahan yang tersedia. Namun, ada beberapa teknik
untuk mempersempit kemungkinan. Sebuah versi dari program yang di debuging dapat
dijalankan dengan instruksi artifisial dimasukkan untuk cetakan menengah. Hal ini

menunjukkan debugger hasil parsial dan nilai-nilai selama eksekusi. Selain itu, jika
aplikasi diterjemahkan, tidak terkompilasi, eksekusinya bisa diikuti baris demi baris,
sehingga memungkinkan untuk mendeteksi nilai menengah yang mencurigakan, terutama
ketika bekerja dengan tampilan interaktif. Dalam melakukan debugging terdapat
beberapa stategi debugging yang dapat diterapkan anatara lain :
1. Brute force
Brute force adalah sebuah pendekatan yang langsung (straightforward)
untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan
masalah (problem statement) dan definisi konsep yang dilibatkan. Algoritma
brute force memecahkan masalah dengan sangat sederhana, langsung dan
dengan cara yang jelas (obvious way).
Contoh :
Menghitung an (a > 0, n adalah bilangan bulat tak-negatif)
an
= a x a x x a (n kali)
jika n > 0
=1
jika n = 0
Algoritma: kalikan 1 dengan a sebanyak n kali
2. Penelusuran balik (backtracking)
Algoritma backtracking (runut balik) adalah strategi debugging dengan
mencari segala kemungkinan solusi seperti halnya bruteforce. Namun
backtracking semua kemungkinan solusi dibuat dalam bentuk pohon terlebih
dahulu baru kemudian pohon tersebut dijelajahi (explore) secara DFS (Depth
Field Search). Backtracking berfungsi dengan baik untuk memecahkan masalahmasalah yang berkembang secara dinamik (dynamic problem solving) sehingga
menjadi dasar algoritma untuk Artificial Intelligence (intelejensia buatan).
Contoh :
Tinjau Knapsack 0/1 untuk n = 3.
Solusi persoalan dinyatakan sebagai vektor (x1, x2, x3) dengan xi {0,1}.
Ruang solusinya adalah :
{0,1} {0,1} {0,1} = {(0, 0, 0), (0, 1, 0), (0, 0, 1), (1, 0, 0),
(1,1, 0), (1, 0, 1), (0, 1, 1), (1, 1, 1)}.
3. Eliminasi penyebab (cause elemination)
Cause elimination atau eliminasi penyebab adalah metode debugging
dengan mengumpulkan data yang berhubungan dengan kejadian kesalahan untuk
mengisolasi penyebab potensial. Sebagai alternatif, daftar semua penyebabyang
mungkin akan dikembangkan dan dilakukan pengujian untuk mengeliminasi
masing masing kesalahan.

Testing biasanya dibagi per metode. Tiap metode dites dengan berbagai input dan
parameter. Pendekatan ini dikenal sebagai unit test karena tes dilakukan pada bagian

aplikasi. Sebagian besar aplikasi terlalu kompleks untuk memungkinkan semua


kemungkinan input dan kondisi lain dites.
Berikut adalah pengujian algoritma setelah dikonversi ke dalam program berbahasa C.

Code program

Pengujian program
Jika kita lihat dari screenshoot di atas tidak ada peringatan kesalahan saat
mengompilasi, karena kesalahan yang terjadi adalah kesalahan logika. Namun jika kita
coba mengukur luas lingkaran di atas secara manual maka akan terlihat bahwa program
tidak berjalan sesuai tujuan. Dimana seharusnya luas lingkaran adalah
Luas

= phi*r*r
= 3.14*6*6
= 113.04
Sehingga dapat ditemukan kesalahan ada pada bagian deklarasi, yaitu pada bagian
pendefinisian nilai dari phi dimana seharusnya phi bernilai 3,14 bukan 31,4. Sehingga

agar program dapat berjalan sesuai dengan tujuan yang dimaksudkan nilai phi harus
diubah menjadi.
Psedudocode :
Program_menghitung_luas_lingkaran
r, phi,luas : float
phi = 3,14
deskripsi :
begin
write(masukan nilai jari-jari : )
read(r)
luas= phi*r*r
write(luas)
end.
Setelah dikonversi ke dalam bahasa C dan di uji program akan menghasilkan
keluaran (output) sebagai berikut.

Jika dilihat dari screenshoot di atas program telah berjalan dengan benar dan
sesuai tujuan yang dimaksudkan.
C. Verifikasi Interaktif dan Pengecekan
Sebuah komputer dapat di program untuk membantu dalam memverifikasi.
Sebuah skenario yang mungkin melibatkan sebuah program interaktif untuk
memverifikasi algoritma yang diberikan dengan deskripsi formal dari masalah algoritma.
Sesekali komputer akan meminta pengguna untuk memberikan masukan (mengingat
tugas seperti ini secara umum tidak bisa dilakukan sendiri oleh komputer). Komputer
akan langsung mencoba membangun kondisi verifikasi yang relevan., kemudian pindah
ke point tambahan dalam algoritma jika berhasil, atau kembali ke decicions jika gagal.
Karena seluruh prosedur interaktif, manusia sebagai pengguna bisa menghentikan
setiap prosedur yang mengarah ke arah yang salah, dan mengembalikanya ke arah yang
sesuai. Proses tersebut juga dapat mengarah ke penemuan bugs tersembunyi atau asumsi

asumsi yang hilang. Sistem interaktif tersebut dapat menjadi bagian dari seluruh
lingkungan pemrograman, yang mungkin termasuk alat editing, debuging, dan testing.
Kemungkinan lain untuk verifikasi yang dibantu komputer adalah proff cheking.
Komputer diprogram menghasilkan dan memverifikasi. Sekuen logika panjang dan
manipulasi simbol yang merupakan bukti yang lengkap.

Daftar Pustaka
1. http://definisimu.blogspot.co.id/2012/10/definisi-logika.html diakses pada 1 Oktober
2016.
2. https://yaniwid.wordpress.com/2008/10/27/testing-vs-debugging/ diakses pada 1
Oktober 2016.
3. Harel, David. 2004. Algorrithmics The Spirit Of Computing. Addison-Wesley: Essex.

Anda mungkin juga menyukai