Geokode

**Geokode** () adalah kode yang mewakili entitas geografis (lokasi atau objek). Kode ini menjadi pengidentifikasi unik si entitas untuk membedakannya dari yang lain dalam himpunan entitas geografis. Pada umumnya, geokode mudah dibaca manusia dan pendek.

Berikut contoh geokode beserta entitas yang diwakilinya:
* Kode negara dan pembagian administratif di bawahnya mewakili batas administratifnya.Contoh utamanya adalah kode ISO 3166-1 alpha-2 (misal `ID` untuk Indonesia) dan kode pembagian administratif ID (misal `ID-JK` untuk Jakarta).
* Kisi global diskret mewakili sel-sel wilayah di dunia. Contohnya Geohash (misal `qqguygv1myuv` untuk Monumen Nasional) dan OLC (misal `<span style="color:#666;">6P58</span>RRFG+RV` untuk tempat yang sama).
* Kode wilayah khusus lainnya mewakili batas wilayah kerja tertentu. Contohnya kode pos Pos Indonesia (misal `10110` untuk Kelurahan Gambir tempat Monumen Nasional berada) atau sistem pengodean Wilkerstat Badan Pusat Statistik (misal `3173080003` untuk kelurahan yang sama).

Standar ISO 19112:2019  (subbab 3.1.2) mengadopsi istilah *geographic identifier* (pengidentifikasi geografis) alih-alih geokode untuk meliputi label panjang: referensi spasial dalam bentuk label atau kode yang mengidentifikasi sebuah lokasi. Sebagai contoh, bagi ISO, nama negara "Indonesia" adalah sebuah label.

Geokode utamanya dipakai (pada umumnya sebagai tipe data primitif) untuk pelabelan, integritas data, penandaan geografis, dan pengindeksan spasial.

Dalam ilmu komputer teoretis, sistem geokode adalah fungsi hash yang menjaga kelokalan.

## Pembagian

Ada beberapa hal umum yang mendasari pembagian jenis geokode (atau sistem geokode).
* Kepemilikan: berpemilik atau bebas berdasarkan lisensinya.
* Pembentukan: geokode bisa dibentuk dari nama (misal singkatan) atau fungsi matematika (algoritma pengodean untuk memampatkan lintang dan bujur. Lihat "Sistem geokode" di bawah untuk lebih lanjut.
* Lingkup: global atau sebagian. Entitas yang diwakili adalah seluruh dunia, terbatas lingkup tertentu (misal wilayah setempat), atau yurisdiksi kepemilikian (misal wilayah negara).
* Jenis yang diwakilkan: jenis geometrinya bisa berupa titik (geokodenya bisa diubah menjadi skema URI geo), sel kisi (sistem geokodenya berkaitan dengan kisi global diskret), atau segi banyak (biasanya batas wilayah administratif).
* Lingkup pemakaian: pemakaian umum dan pemakaian khusus (misal kode bandara).
* Hierarki: hierarki sintaksis geokode mewakili hierarki spasial entitas yang diwakilinya. Bisa ada (nama atau kisi) atau tidak ada.

## Sistem geokode
Himpunan seluruh geokode sebagai pengidentifikasi unik sel-sel terhadap keseluruhan permukaan geografis (atau wilayah tertentu) disebut **sistem geokode** (atau **skema geokode**). Sintaksis dan semantik geokode juga bagian dari definisi sistem:
* Sintaksis geokode adalah karakter-karakter yang bisa dipakai, yaitu susunan blok karakter, ukurannya, dan urutannya. Misalnya kode negara menggunakan dua huruf Latin (A&ndash;Z). Cara umum untuk mendefinisikan secara formal adalah dengan ekspresi reguler, misal `/[A-Z]{2,2}/`.
* Semantik geokode adalah cara memahami maksud/arti dari geokode dan biasanya dengan mengaitkan kode dengan jenis entitas geografis. Ia bisa dijelaskan secara formal melalui ontologi, diagram kelas UML, atau model hubungan entitas.Pada umumnya, semantik ini bisa dideduksi dari proses pengodeannya. Misalnya, tiap kode Geohash mewakili wilayah persegi panjang pada peta dan koordinatnya diperoleh selama proses dekode.

Banyak ciri-ciri sintaksis dan semantik bisa dirangkum dengan klasifikasi.

### Enkode dan dekode
Tiap geokode bisa dibuat dari penjelasan formal (atau diperluas) dari entitas geografis atau sebaliknya, geokode diterjemahkan jadi entitas yang diwakilinya. Proses yang pertama disebut **enkode** atau **pengodean**; proses yang kedua disebut **dekode**. Berikut beberapa istilah menurut definisi OGC:

; *geocoder*
: Agen perangkat lunak yang mengubah deskripsi entitas geografis (misal nama tempat atau koordinat lintang/bujur) ke dalam data yang dinormalkan dan mengodekan jadi geokode.
; *geocoder service*
: *Geocoder* yang diimplementasikan sebagai layanan web (atau antarmuka serupa) yang menerima permintaan berupa deskripsi entitas geografis dan mengembalikan nilai geokode. Banyak layanan umum juga mengembalikan fitur geografis (misal objek GeoJSON) yang diwakili oleh si geokode.
; *geocoding*
: Proses menautkan geokode atau koordinat ke data rujukan geografis. Misalnya, negara ke kode negara dan alamat menjadi koordinat.

Dalam aplikasi pengindeksan spasial, geokode bisa diterjemahkan antara format yang bisa dibaca manusia (misal heksadesimal dan format internal (misal bilangan bulat tak bertanda 64-bit.

### Sistem nama standar
Geokode semisal kode negara, kode kota, dan lain-lain berasal dari tabel nama resmi beserta geometrinya (biasanya segi banyak wilayah administratif). Yang dimaksud *resmi* di sini dalam konteks kontrol dan konsensus, biasanya tabel yang diatur oleh badan standardisasi atau otoritas pemerintahan. Jadi, pada umumnya, yang dipakai adalah nama standar beserta kode standar (dan geometri resminya).

Secara khusus, *nama* yang dimaksud adalah toponimi dan tabel yang dimaksud adalah sumber untuk **penyelesaian toponimi**: proses memetakan antara toponimi dengan ciri-ciri spasial yang tidak ambigu terhadap tempat yang sama.

Terkadang, nama-nama diubah ke dalam kode angka agar ringkas dan bisa dibaca oleh mesin. Karena bilangan dalam kasus ini adalah pengidentifikasi nama, kita bisa menganggap "nama numerik"&mdash;himpunan kode ini bisa disebut sistem nama standar.

#### Penamaan hierarki
Dalam konteks geokode, pembagian wilayah adalah proses membagi ruang geografis menjadi dua atau lebih himpunan bagian saling lepas dan menghasilkan mosaik subbagian. Tiap subbagian bisa dibagi lagi secara rekursif untuk menghasilkan mosaik hierarki.

Sebuah sistem geokode bisa disebut menggunakan penamaan hierarki ketika nama subbagian bisa dikodekan dan sintaksis kode bisa dipecah menjadi hubungan induk-anak. Potongan (atau fragmen) geokode bisa berupa kode singkatan, bilangan, atau alfanumerik.

Contoh populernya adalah sistem geokode ISO 3166-2 yang mewakili nama negara dan nama pembagian administratif yang dipisah dengan tanda hubung. Contohnya, `ID` adalah Indonesia dan `ID-BA` adalah Bali. Lingkupnya hanya sampai daerah tingkat pertama.

### Sistem kisi beraturan

Dengan mengambil inspirasi dari kisi alfanumerik, kisi global diskret (DGG) adalah mosaik beraturan yang menyelimuti permukaan Bumi (globe). Keberaturan mosaiknya didefinisikan dengan penggunaan sel berbentuk sama untuk keseluruhan kisi dengan luasan yang hampir sama pada wilayah tertentu atau negara.

Semua sel pada kisi memiliki identitas (ID sel DGG) dan titik tengah sel bisa dipakai sebagai rujukan saat mengubah geokode menjadi titik geografis. Saat kalimat ringkas yang bisa dibaca manusia dari ID sel distandarkan, ia menjadi geokode.

Geokode dari sistem geokode yang berbeda bisa mewakili letak yang sama pada globe dengan bentuk dan presisi yang sama, tetapi berbeda panjang kodenya, karakter yang dipakai, pemisah, atau lain-lain. Kisi nonglobal juga berbeda lingkupnya dan pada umumnya dioptimalkan geometrinya (menghindari tumpang tindih, celah, atau tidak seragam) untuk pemakaian setempat.

#### Kisi hierarkis
Tiap sel pada sebuah kisi bisa diubah menjadi kisi setempat baru dengan rekursi. Pada ilustrasi contoh, sel `TQ 2980` adalah bagian dari sel `TQ 29` yang merupakan bagian dari sel `TQ`. Sistem referensi kisi beraturan geografis adalah dasar dari sistem geokode hierarkis.

Dua geokode dalam sistem geokode hierarkis bisa menggunakan aturan awalan, yaitu geokode dengan awalan yang sama mewakili wilayah berbeda dengan letak kasar yang sama. Dengan ilustrasi yang tadi, `TQ 28` dan `TQ 61` mewakili bagian interior geografis yang sama, yaitu `TQ` sebagai awalannya.

### Sistem nama dan kisi
Ada pula sistem campuran dengan pemisahan sintaksis. Misalnya, bagian pertama (awalan) adalah kode nama dan bagian lainnya (akhiran) kode kisi. Misalnya, pintu masuk lift Menara Eiffel di Paris berkode `FR-4J.Q2` dengan `FR` adalah kode nama dan `4J.Q2` adalah kode kisi. Secara semantik, Prancis adalah konteksnya untuk mendapatkan kisi setempat.

Untuk menyingkat dengan semantik, dalam penerapan geokode yang mendetail, sistem campuran lebih cocok.

## Menyingkat kode kisi dengan konteks
Sistem geokode yang menggunakan kisi beraturan pada umumnya lebih pendek daripada koordinat lintang-bujur. Namun, geokode dengan lebih dari 6 karakter sulit diingat. Di sisi lain, geokode yang berdasarkan nama (atau singkatannya) lebih mudah diingat.

Untuk mengatasinya, kode campuran bisa dipakai dengan mengurangi karakter kode kisi yang diperlukan dan menggantinya dengan kode nama sebagai konteks kisi setempat.

Contoh pada kolom kode campuran lebih mudah diingat daripada kode kisi lengkap. Caranya beragam, misal geokode OLC bisa disingkat dengan membuang empat karakter pertama dan menambahkan konteks wilayah serta menggunakan konvensi penamaan Kode Plus.

## Lihat pula
* Blok sensus
* Geolokasi
* Geotanda
* Temu balik informasi geografis
* ISO 6709
* P-code

## Referensi

## Pranala luar