Galat logika

Dalam pemrograman komputer, galat logika adalah kutu (bug) dalam program yang menyebabkan kesalahan operasi, namun tidak menyebabkan penghentian secara tidak normal (atau crash). Galat logika menghasilkan keluaran yang tidak dimaksudkan atau tidak diinginkan atau perilaku lain, walaupun mungkin tidak dapat seketika dikenali sebagai hal tersebut.

Galat logika terjadi baik dalam bahasa kompilator (kompiler) maupun penerjemah. Tidak seperti program dengan kekeliruan sintaks, program dengan galat logika adalah program yang sah dalam bahasa tersebut, meskipun tidak berlaku seperti yang dimaksudkan. Satu-satunya petunjuk adanya galat logika adalah hasil penyelesaian yang salah.

Penyebab umum 
Kekeliruan dapat berupa galat logika dalam sebuah pernyataan (misalnya, rumus yang salah atau kurang tepat), kesalahan dalam algoritme, atau bahkan kekeliruan pemilihan algoritme.

Cara memperbaiki galat logika 
Salah satu cara untuk menemukan kesalahan jenis ini adalah untuk mencetak variabel program ke dalam berkas atau pada layar dengan tujuan menentukan letak galat dalam kode. Meskipun ini tidak berlaku dalam semua kasus, misalnya saat pemanggilan subrutin yang keliru, ini adalah cara yang paling mudah untuk menemukan masalah jika program menggunakan hasil yang salah dalam perhitungan matematika.

Contoh 
Fungsi dalam C ini digunakan untuk menghitung rata-rata dua bilangan yang mengandung galat logika. Galat tersebut adalah kurangnya tanda kurung dalam perhitungan, maka program dapat dikompilasi dan berjalan namun tidak memberikan jawaban yang benar.
int rata_rata(int bil1, int bil2)
{
    return bil1 + bil2 / 2;     /* seharusnya (bil1 + bil2) / 2 */
}

Teori bahasa pemrograman

de:Logischer Fehler
en:Logic error
fa:خطای منطقی
it:Errore di semantica