Tombstone (bahasa pemograman): Perbedaan antara revisi
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 28676012; atribusi sumber disertakan. |
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi |
||
| Baris 1: | Baris 1: | ||
'''Tombstone''' (''batunisan'') adalah mekanisme yang digunakan untuk mendeteksi ''dangling pointer'' dan mengurangi risiko kerusakan data yang dapat ditimbulkannya dalam program komputer. ''Dangling pointer'' dapat muncul di berbagai [[bahasa pemrograman]], seperti C, [[C++]], dan bahasa [[Bahasa rakitan|Assembly]]. | '''Tombstone''' (''batunisan'') adalah mekanisme yang digunakan untuk mendeteksi ''dangling pointer'' dan mengurangi risiko kerusakan data yang dapat ditimbulkannya dalam program komputer. ''Dangling pointer'' dapat muncul di berbagai [[bahasa pemrograman]], seperti C, [[C++]], dan bahasa [[Bahasa rakitan|Assembly]]. | ||
Batu nisan berfungsi sebagai struktur perantara antara pointer dan target datanya, yang biasanya berupa data heap-dinamik di memori. Dalam pendekatan ini, [[pointer]] sering disebut juga sebagai ''handle'' tidak menunjuk langsung ke data, melainkan ke batu nisan tersebut. Ketika data target dihapus, batu nisan diubah menjadi ''null'' atau nilai lain yang dianggap ilegal di lingkungan runtime. Dengan demikian, pointer yang masih ada tidak lagi menunjuk ke data yang sudah dihapus, sehingga mencegah akses tidak sah ke area memori yang dapat menyebabkan kerusakan data. | Batu nisan berfungsi sebagai struktur perantara antara pointer dan target datanya, yang biasanya berupa data heap-dinamik di memori. Dalam pendekatan ini, [[pointer]] sering disebut juga sebagai ''handle'' tidak menunjuk langsung ke data, melainkan ke batu nisan tersebut. Ketika data target dihapus, batu nisan diubah menjadi ''null'' atau nilai lain yang dianggap ilegal di lingkungan runtime.<ref>Michael Scott. [https://books.google.co.id/books?id=To3xpkvkPvMC&pg=PA392&redir_esc=y#v=onepage&q&f=false Programming Language Pragmatics]. Morgan Kaufmann. 2000. ISBN 978-1-55860-442-1.</ref> Dengan demikian, pointer yang masih ada tidak lagi menunjuk ke data yang sudah dihapus, sehingga mencegah akses tidak sah ke area memori yang dapat menyebabkan kerusakan data.<ref>Maurizio Gabbrielli. [https://books.google.co.id/books?id=U-uBhJCRw3QC&pg=PA248&redir_esc=y#v=onepage&q&f=false Programming Languages: Principles and Paradigms]. Springer Science & Business Media. 2010-03-23. ISBN 978-1-84882-914-5.</ref> | ||
Dalam beberapa sistem operasi, CPU dapat secara otomatis mendeteksi upaya akses terhadap nilai ''null'' (misalnya melalui kesalahan dereferensi pointer ''null''). Hal ini sangat membantu dalam proses [[debugging]] untuk menemukan sumber kesalahan pemrograman, serta dapat digunakan untuk menghentikan program secara aman dalam lingkungan produksi guna mencegah kerusakan data lebih lanjut. | Dalam beberapa sistem operasi, CPU dapat secara otomatis mendeteksi upaya akses terhadap nilai ''null'' (misalnya melalui kesalahan dereferensi pointer ''null''). Hal ini sangat membantu dalam proses [[debugging]] untuk menemukan sumber kesalahan pemrograman, serta dapat digunakan untuk menghentikan program secara aman dalam lingkungan produksi guna mencegah kerusakan data lebih lanjut. | ||
| Baris 7: | Baris 7: | ||
Secara umum, konsep batu nisan dapat diartikan sebagai penanda bahwa "data ini tidak ada lagi." Contohnya, dalam sistem berkas, sering kali lebih efisien untuk menandai berkas sebagai "dihapus" ketimbang langsung mengambil kembali semua blok datanya. | Secara umum, konsep batu nisan dapat diartikan sebagai penanda bahwa "data ini tidak ada lagi." Contohnya, dalam sistem berkas, sering kali lebih efisien untuk menandai berkas sebagai "dihapus" ketimbang langsung mengambil kembali semua blok datanya. | ||
Namun, penggunaan batu nisan memiliki beberapa kelemahan. Di antaranya adalah tambahan beban komputasi dan konsumsi memori: diperlukan proses ekstra untuk mengakses data melalui batu nisan, serta ruang memori tambahan untuk menyimpan batu nisan itu sendiri. Selain itu, semua bagian program yang menggunakan pointer tersebut harus diubah untuk mendukung mekanisme batu nisan ini. | Namun, penggunaan batu nisan memiliki beberapa kelemahan. Di antaranya adalah tambahan beban komputasi dan konsumsi memori: diperlukan proses ekstra untuk mengakses data melalui batu nisan, serta ruang memori tambahan untuk menyimpan batu nisan itu sendiri. Selain itu, semua bagian program yang menggunakan pointer tersebut harus diubah untuk mendukung mekanisme batu nisan ini.<ref>Clifford A. Shaffer. [https://books.google.co.id/books?id=AijEAgAAQBAJ&pg=PA344&redir_esc=y#v=onepage&q&f=false Data Structures and Algorithm Analysis in C++, Third Edition]. Courier Corporation. 2012-07-26. ISBN 978-0-486-17262-0.</ref> | ||
Dalam bahasa pemrograman modern, seperti C++, pola batu nisan diimplementasikan dalam pustaka standar melalui konsep ''weak pointer'' menggunakan <code>std::weak_ptr</code>. Dukungan bawaan dari bahasa atau [[Kompilator|kompiler]] tidak diperlukan untuk menerapkan mekanisme ini. | Dalam bahasa pemrograman modern, seperti C++, pola batu nisan diimplementasikan dalam pustaka standar melalui konsep ''weak pointer'' menggunakan <code>std::weak_ptr</code>. Dukungan bawaan dari bahasa atau [[Kompilator|kompiler]] tidak diperlukan untuk menerapkan mekanisme ini. | ||
== Lihat juga == | == Lihat juga == | ||
* [[Locks-and-keys (komputasi)]] | * [[Locks-and-keys (komputasi)]] | ||
* [[Multiple indirection (pointer)]] | * [[Multiple indirection (pointer)]] | ||
== Referensi == | == Referensi == | ||
<references /> | |||
== Sumber dan atribusi == | == Sumber dan atribusi == | ||
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Tombstone+%28bahasa+pemograman%29&oldid=28676012 Wikipedia bahasa Indonesia], revisi 28676012 (2025-12-08T10:55:47Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku. | Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Tombstone+%28bahasa+pemograman%29&oldid=28676012 Wikipedia bahasa Indonesia], revisi 28676012 (2025-12-08T10:55:47Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku. | ||
<!-- WIKI_UNISSULA_PRESENTATION_V4 --> | |||
Revisi terkini sejak 23 Agustus 2026 04.11
Tombstone (batunisan) adalah mekanisme yang digunakan untuk mendeteksi dangling pointer dan mengurangi risiko kerusakan data yang dapat ditimbulkannya dalam program komputer. Dangling pointer dapat muncul di berbagai bahasa pemrograman, seperti C, C++, dan bahasa Assembly.
Batu nisan berfungsi sebagai struktur perantara antara pointer dan target datanya, yang biasanya berupa data heap-dinamik di memori. Dalam pendekatan ini, pointer sering disebut juga sebagai handle tidak menunjuk langsung ke data, melainkan ke batu nisan tersebut. Ketika data target dihapus, batu nisan diubah menjadi null atau nilai lain yang dianggap ilegal di lingkungan runtime.[1] Dengan demikian, pointer yang masih ada tidak lagi menunjuk ke data yang sudah dihapus, sehingga mencegah akses tidak sah ke area memori yang dapat menyebabkan kerusakan data.[2]
Dalam beberapa sistem operasi, CPU dapat secara otomatis mendeteksi upaya akses terhadap nilai null (misalnya melalui kesalahan dereferensi pointer null). Hal ini sangat membantu dalam proses debugging untuk menemukan sumber kesalahan pemrograman, serta dapat digunakan untuk menghentikan program secara aman dalam lingkungan produksi guna mencegah kerusakan data lebih lanjut.
Secara umum, konsep batu nisan dapat diartikan sebagai penanda bahwa "data ini tidak ada lagi." Contohnya, dalam sistem berkas, sering kali lebih efisien untuk menandai berkas sebagai "dihapus" ketimbang langsung mengambil kembali semua blok datanya.
Namun, penggunaan batu nisan memiliki beberapa kelemahan. Di antaranya adalah tambahan beban komputasi dan konsumsi memori: diperlukan proses ekstra untuk mengakses data melalui batu nisan, serta ruang memori tambahan untuk menyimpan batu nisan itu sendiri. Selain itu, semua bagian program yang menggunakan pointer tersebut harus diubah untuk mendukung mekanisme batu nisan ini.[3]
Dalam bahasa pemrograman modern, seperti C++, pola batu nisan diimplementasikan dalam pustaka standar melalui konsep weak pointer menggunakan std::weak_ptr. Dukungan bawaan dari bahasa atau kompiler tidak diperlukan untuk menerapkan mekanisme ini.
Lihat juga
Referensi
- ↑ Michael Scott. Programming Language Pragmatics. Morgan Kaufmann. 2000. ISBN 978-1-55860-442-1.
- ↑ Maurizio Gabbrielli. Programming Languages: Principles and Paradigms. Springer Science & Business Media. 2010-03-23. ISBN 978-1-84882-914-5.
- ↑ Clifford A. Shaffer. Data Structures and Algorithm Analysis in C++, Third Edition. Courier Corporation. 2012-07-26. ISBN 978-0-486-17262-0.
Sumber dan atribusi
Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 28676012 (2025-12-08T10:55:47Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.