Dalam ilmu komputer, kesalahan segmentasi atau galat segmentasi (bahasa Inggris: segmentation fault, sering disingkat menjadi segfault atau secara resmi diklasifikasikan sebagai pelanggaran akses di lingkungan Windows) adalah kondisi galat fatal yang dipicu oleh perangkat keras komputer bersistem manajemen memori ketika sebuah program komputer mencoba mengakses lokasi memori yang dilarang atau tidak valid.[1]

Kondisi ini merupakan salah satu mekanisme pertahanan terpenting pada sistem operasi modern untuk menjaga keamanan memori. Dengan membatasi ruang gerak setiap aplikasi agar hanya beroperasi di dalam ruang alamat (address space) miliknya sendiri, sistem operasi dapat mencegah sebuah aplikasi yang rusak atau jahat menimpa data milik aplikasi lain atau merusak data sensitif milik kernel sistem operasi utama.

Penyebab umum

sunting

Kesalahan segmentasi hampir selalu disebabkan oleh adanya kutu pemrograman (software bug) di dalam kode sumber yang melakukan manipulasi alamat memori tingkat rendah secara keliru. Beberapa pemicu paling umum meliputi:

  • Dereferensi penunjuk nol (Null Pointer Dereference): Mencoba membaca atau menulis data melalui sebuah variabel penunjuk yang masih bernilai kosong atau menunjuk ke alamat 0x0 (alamat terlindung).
  • Limpahan penyangga (Buffer Overflow): Menulis data melampaui batas alokasi akhir suatu larik sehingga meluap dan menerobos area segmen memori tetangga yang dilindungi.
  • Penunjuk menjuntai (Dangling Pointer): Menggunakan penunjuk untuk mengakses lokasi memori yang statusnya sudah dibebaskan (di-free atau dihapus) oleh sistem.
  • Limpahan tumpukan (Stack Overflow): Pemanggilan fungsi rekursif yang terlalu dalam dan tidak berujung sehingga menghabiskan seluruh kapasitas ruang memori tumpukan panggilan (call stack).

Contoh kasus

sunting

Berikut adalah contoh kode sumber sederhana dalam bahasa C yang dipastikan akan memicu kesalahan segmentasi seketika saat dieksekusi karena mencoba menulis data ke lokasi yang ditunjuk oleh penunjuk nol:

#include <stdio.h>

int main() {
    int *ptr = NULL; // Mendeklarasikan penunjuk yang mengarah ke nol
    *ptr = 99;       // ERROR: Mencoba menulis nilai ke alamat nol (memicu segfault)
    
    return 0;
}

Penanganan oleh sistem operasi

sunting

Ketika arsitektur prosesor (seperti unit manajemen memori atau MMU) mendeteksi adanya upaya pelanggaran batas memori oleh suatu instruksi program, prosesor akan mengeluarkan interupsi perangkat keras khusus ke sistem operasi.

Sistem operasi kemudian akan mengambil tindakan tegas dengan menghentikan paksa aplikasi tersebut secara tidak terencana (crash) untuk melindungi sistem secara keseluruhan.

  • Pada sistem mirip Unix (seperti Linux, macOS, atau FreeBSD), sistem operasi akan mengirimkan sinyal khusus bernama SIGSEGV (singkatan dari Signal Segmentation Violation) ke proses aplikasi yang bermasalah. Umumnya sistem juga akan mencetak tulisan "Segmentation fault" pada terminal konsol dan menghasilkan berkas core dump untuk membantu pemrogram melakukan pengawakutuan.
  • Pada sistem Microsoft Windows, kondisi ini ditangani melalui mekanisme penanganan eksepsi terstruktur (SEH) dengan kode kesalahan spesifik 0xC0000005 (Access Violation).

Lihat pula

sunting

Referensi

sunting
  1. ^ Black, Paul E. "segmentation fault". Dictionary of Algorithms and Data Structures (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.

📚 Artikel Terkait di Wikipedia

Alanis Morissette

'I still have PTSD from the Jagged Little Pill era. It was a profound violation'". The Guardian. Diakses tanggal Agustus 18, 2012. "Swiss Charts > Accreditations

Singularitas gravitasional

1098/rspa.1970.0021 (Free access.)(Inggris) Shapiro, Stuart L.; Teukolsky, Saul A. (1991). "Formation of naked singularities: The violation of cosmic censorship"

Kematian Mahsa Amini

2022. Thirty-five Years of Forced Hijab: The Widespread and Systematic Violation of Women's Rights in Iran (PDF) (Report). Justice for Iran. March 2014

Origin

2020-03-14. Walker, John (2011-03-11). "EA Retracts Game Ban For Forum Violation". Rock, Paper, Shotgun (dalam bahasa American English). Diakses tanggal

Invasi Ukraina oleh Rusia

strongest terms the aggression by the Russian Federation against Ukraine in violation of Article 2 (4) of the Charter) Chernova, Anna; Cotovio, Vasco; Thompson

Hak atas akses internet

Vincent, James (4 Juli 2016). "UN condemns internet access disruption as a human rights violation". The Verge. Diarsipkan dari asli tanggal 2016-07-04

Kesaksian Nayirah

Stuart (January 13, 1991). "Paradise lost: The full story of Iraq's violation of Kuwait - Gulf Crisis". Sunday Times. "Iraq rejects U.S. charges of

Fortinet

Diakses tanggal 29 November 2021. Marson, Ingrid. "Fortinet accused of GPL violation". ZDNet (dalam bahasa Inggris). Diarsipkan dari asli tanggal 2023-04-06