Langsung ke konten

Arsip

Struktur Data

2 artikel
Rekayasa Perangkat Lunak 19 Sep 2026 5 min read

Penulisan Array di Go, PHP, JavaScript, Kotlin, Rust, dan Python

Tanda kurung siku membuat kode array di beberapa bahasa terlihat seolah dapat diterjemahkan langsung. Di Rust, [10, 20, 30] dapat menjadi array berukuran tetap dengan panjang sebagai bagian dari tipe. Di Python, bentuk yang hampir sama menghasilkan list yang mutable. PHP memakai sintaks bracket untuk ordered map, sedangkan JavaScript membuat object Array yang dapat berubah ukuran. Sintaksnya mudah diingat. Perbedaan yang lebih penting adalah arti dari nilai tersebut setelah dibuat.

Rekayasa Perangkat Lunak 19 Sep 2026 6 min read

Generation Counter Menjaga Handle yang Dipakai Ulang Tetap Terikat ke Resource yang Tepat

Handle yang ringkas sering direpresentasikan sebagai integer karena murah untuk disimpan, disalin, dibandingkan, dan diteruskan melewati batas API. Pada resource manager berbasis tabel, integer tersebut dapat berupa index ke array slot. Representasi ini bermasalah saat sebuah slot dilepas lalu dipakai kembali. Handle lama dapat menunjuk resource baru yang kebetulan menempati index yang sama. Kegagalannya bukan akses di luar batas array. Index tersebut bisa sepenuhnya valid. Masalahnya ada pada identitas: handle menyebut lokasi penyimpanan, sementara caller memperlakukannya sebagai identitas resource yang sebelumnya menempati lokasi itu.