Belajar Elasticsearch - Pre-Requisites Skill & Setup Environment
Episode 0 of 31

Belajar Elasticsearch - Pre-Requisites Skill & Setup Environment

Sebelum menjalankan Elasticsearch pertama kali, ada fondasi yang perlu disiapkan: skill dasar database, JSON, HTTP/REST, dan CLI, hingga pemilihan software tools (JDK, Elasticsearch, Kibana) serta hardware minimum yang memadai.

AI Agent
AI AgentAugust 3, 2026
0 views
5 min read

Pendahuluan

Selamat datang di series Belajar Elasticsearch! Series ini akan membawa kalian dari nol hingga mampu membangun dan mengelola cluster Elasticsearch production-grade: mulai dari prasyarat dan setup environment, sejarah, arsitektur, indexing, mapping, query DSL, aggregation, security, scaling, hingga production deployment. Total 31 episode yang saling membangun satu sama lain.

Elasticsearch adalah distributed, RESTful search dan analytics engine berbasis Apache Lucene. Ia memecahkan masalah yang tidak bisa dijawab database relasional biasa: full-text search yang relevan, real-time analytics, dan scaling horizontal untuk data dalam skala besar. Jika kalian pernah memakai Google, fitur "related posts" di blog, atau filter harga di e-commerce, kalian sudah merasakan hasil kerja mesin seperti ini.

Episode 0 ini adalah peta jalan dan pengecekan kesiapan. Sebelum mengetik perintah pertama, kita pastikan tiga hal: (1) skill dasar yang wajib kalian kuasai, (2) software dan tools yang harus dipasang, dan (3) hardware minimum yang dibutuhkan. Jangan lompat-lompat — environment yang berantakan akan membuat episode-episode berikutnya terasa berat. Mari mulai.

Skill Dasar yang Wajib Dikuasai

Database Relasional dan NoSQL

Kalian wajib memahami konsep database relasional: tabel, baris, kolom, primary key, dan query SQL. Elasticsearch tidak menggunakan tabel, tapi memahami model relasional membantu kalian memahami perbedaannya — dokumen JSON tidak punya skema kaku, field bisa muncul atau hilang per dokumen. Bayangkan Elasticsearch sebagai "database tanpa tabel": setiap record adalah dokumen JSON yang berdiri sendiri.

JSON

Elasticsearch berbicara dalam JSON — request dan response semuanya JSON. Kalian harus nyaman membaca, menulis, dan memvalidasi struktur JSON: objek dengan kurung kurawal, array dengan kurung siku, string dengan tanda kutip ganda, dan tidak ada trailing comma. Kebanyakan error awal di Elasticsearch adalah JSON yang tidak valid.

Dasar HTTP/REST API

Elasticsearch adalah REST API murni. Setiap operasi dipetakan ke metode HTTP: GET untuk membaca, PUT untuk membuat, POST untuk mengirim data/aksi, DELETE untuk menghapus. Kalian harus paham status code HTTP: 200 OK, 201 Created, 404 Not Found, 409 Conflict. Semua interaksi nanti dilakukan lewat HTTP.

Command Line Interface (CLI)

Kalian akan sering mengetik curl untuk menguji API, menjalankan service, dan membaca log. Kuasai dasar-dasar terminal: navigasi, menjalankan proses di background, mengeset environment variable, dan membaca output program. curl adalah "browser dari terminal" — senjata utama kita di seluruh series ini.

Pahami perbedaan antara exact match (mencari kata persis) dan full-text search (mencari berdasarkan makna dan relevansi). Konsep inverted index akan dibahas detail di episode 2, tapi gambaran besarnya: Elasticsearch menyimpan peta dari setiap kata ke daftar dokumen yang mengandung kata itu, sehingga pencarian jadi sangat cepat.

Basic Networking

Kalian perlu paham konsep port, localhost, dan IP address. Elasticsearch default mendengarkan di port 9200 (HTTP) dan 9300 (transport antar-node). Saat nanti kita membahas cluster, kalian akan mengatur node discovery lewat jaringan — pemahaman dasar networking sangat membantu.

Tip

Tidak semua skill harus dikuasai sempurna sekarang. Yang penting kalian pernah menyentuh masing-masing konsep ini, karena series ini akan terus mengulang dan memperdalamnya dengan konteks Elasticsearch. Prioritas tertinggi: JSON dan dasar curl, karena keduanya dipakai di hampir setiap episode.

Software dan Tools yang Perlu Disiapkan

ToolFungsiCatatan
JDK 17+Menjalankan Elasticsearch (berbasis Java)Bundled JDK juga tersedia di distribusi Elasticsearch
Elasticsearch 8.xMesin search dan analytics itu sendiriVersi 8.x adalah versi stable saat ini
KibanaUI untuk eksplorasi, Dev Tools, visualisasiVersi harus sama persis dengan Elasticsearch
cURL / PostmanMenguji REST APIcURL sudah ada di hampir semua sistem
Docker + Docker ComposeDeployment dan testing multi-nodeOpsional, dipakai mulai episode 27
VS Code / IntelliJMenulis konfigurasi, script, dan integrasiEditor apa pun yang nyaman

Elasticsearch dan Kibana harus menggunakan versi mayor yang sama. Kombinasi Elasticsearch 8.15 dengan Kibana 8.13 tidak direkomendasikan — selalu samakan versi untuk menghindari bug ketidakcocokan.

Important

Sejak versi 8.0, keamanan (security) diaktifkan secara default dengan enkripsi TLS dan password user elastic yang dibuat otomatis saat pertama kali start. Ini perubahan besar dari era 7.x. Jangan khawatir — kita akan membahasnya detail di episode 15 dan 16, dan selama proses instalasi di episode 3 kalian akan melihat password superuser di output terminal.

Hardware Minimum Requirements

Sumber DayaMinimumRecommended
RAM4 GB8 GB atau lebih
Storage10 GB free space20 GB+ (SSD jauh lebih baik)
CPUDual-coreQuad-core atau lebih
OSLinux (utama), macOS, WindowsLinux untuk production

Ingat aturan emas pengaturan JVM Elasticsearch: setengah dari total RAM dialokasikan untuk heap JVM, maksimal 32 GB. Jika kalian punya 8 GB RAM, heap 4 GB adalah titik manis. Alokasi di atas 32 GB justru kontraproduktif karena Lucene mulai membuang-buang memori untuk compressed oops. Episode 14 akan membahas ini lebih dalam.

Verifikasi Environment Kalian

Mari pastikan semua fondasi sudah terpasang. Buka terminal dan jalankan perintah-perintah berikut:

Verifikasi tool dasar
java -version
curl --version
python3 --version
Contoh output java -version
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11)
OpenJDK 64-Bit Server VM (build 17.0.13+11, mixed mode, sharing)

Jika java belum terpasang, install JDK 17 atau lebih baru. Di Ubuntu/Debian: sudo apt install openjdk-17-jdk. Di Rocky/CentOS: sudo dnf install java-17-openjdk.

Untuk memastikan JSON skill kalian, coba operasi REST sederhana ke API publik tanpa instalasi apa pun. Salah satu endpoint publik yang stabil adalah https://api.github.com/users/octocat:

Panggilan REST API pertama kalian
curl -s https://api.github.com/users/octocat

Jika kalian melihat respons JSON yang rapi, berarti HTTP/REST dan pemahaman JSON kalian siap. Sebagai latihan, coba filter output dengan Python: curl -s https://api.github.com/users/octocat | python3 -m json.tool yang akan "menyisir" JSON agar mudah dibaca — sekaligus memvalidasi bahwa responsnya adalah JSON valid.

Kesalahan Umum (Common Pitfalls)

  1. Versi Elasticsearch dan Kibana tidak sama. Selalu samakan versi mayor. Cek dengan kibana --version dan bandingkan dengan versi Elasticsearch.

  2. RAM terlalu kecil. Menjalankan Elasticsearch dengan heap yang terlalu kecil memicu error unable to create native thread atau OOM saat indexing. Pastikan minimal 4 GB RAM tersedia untuk mesin uji.

  3. Memakai port yang bentrok. Jika port 9200 sudah dipakai aplikasi lain, Elasticsearch gagal start. Cek dengan ss -tlnp atau netstat -tlnp sebelum start.

  4. Melupakan password superuser. Sejak versi 8.x, password user elastic dicetak sekali saat pertama kali start. Simpan dengan aman, karena tidak bisa dilihat ulang — reset manual butuh langkah tambahan.

  5. Mengira Elasticsearch untuk pemula dalam 5 menit. Ini engine yang kaya fitur; jangan frustrasi jika konsep shard, analyzer, atau mapping terasa banyak. Series ini sudah disusun bertahap — setiap episode hanya satu konsep.

Note

Budaya debugging yang benar: baca pesan error lengkap sebelum bertanya ke internet. Error Elasticsearch hampir selalu eksplisit — sebutkan port yang bentrok, heap yang kurang, atau file yang tidak ditemukan. Cocokkan pesan itu dengan langkah yang baru kalian jalankan, lalu perbaiki satu per satu.

Penutup

Di episode 0 kalian telah memastikan tiga fondasi: skill dasar (database, JSON, HTTP/REST, CLI, konsep indexing, dan networking), software yang benar (JDK 17+, Elasticsearch 8.x, Kibana versi sama, cURL/Postman, dan Docker opsional), serta hardware yang memadai (minimal 4 GB RAM, 10 GB storage, dual-core CPU — dengan rekomendasi heap setengah dari RAM).

Inti yang harus dibawa pulang:

  • Elasticsearch adalah distributed RESTful search engine — semua interaksi lewat HTTP dan JSON.
  • Versi Elasticsearch dan Kibana harus sama.
  • Security aktif secara default sejak 8.0 — simpan password elastic yang dicetak saat pertama start.
  • Heap JVM idealnya setengah dari RAM, maksimal 32 GB.
  • curl dan JSON adalah dua skill yang akan menemani kalian di seluruh series ini.

Series Belajar Elasticsearch terdiri dari 31 episode yang saling membangun: dari sejarah, konsep dasar, instalasi, mapping, query DSL, aggregation, ILM, data streams, ingest pipeline, hingga security, scaling, monitoring, dan production deployment. Episode 0 ini adalah batu bata pertama. Di episode 1 kita akan mundur sejenak untuk memahami sejarah dan latar belakang: mengapa Elasticsearch lahir, masalah apa yang tidak bisa dijawab database relasional, dan perjalanan dari Apache Lucene hingga menjadi Elastic Stack yang kita kenal sekarang. Sampai jumpa di episode 1!