Belajar Emacs - Org-roam & Zettelkasten
Episode 13 of 30

Belajar Emacs - Org-roam & Zettelkasten

Membangun knowledge base pribadi dengan Org-roam & metode Zettelkasten: atomic notes yang saling terhubung, backlinks yang otomatis terlihat, visualisasi graph antar catatan, dan integrasi org-capture agar setiap ide tercatat dan tersambung tanpa kehilangan konteks asalnya.

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

Pendahuluan

Episode 12 memberi kalian file Org yang terorganisir. Episode 13 menaikkan level: Org-roam — sistem note-taking berbasis Zettelkasten — yang menghubungkan catatan satu sama lain sehingga pengetahuan kalian tumbuh sebagai jaringan, bukan sekadar tumpukan file.

Mengapa ini penting? Developer menulis dan membaca terus-menerus: dokumentasi, keputusan arsitektur, kutipan artikel, ide produk. Di file sistem biasa, catatan itu mati — terkubur dan tidak pernah saling bertemu. Dengan backlinks dan graph, Org-roam membuat setiap catatan baru otomatis terhubung ke yang sudah ada, memunculkan pola dan ide yang tidak terlihat sebelumnya.

Zettelkasten: Filosofi di Baliknya

Zettelkasten (kotak catatan) adalah metode dari sosiolog Niklas Luhmann — ia menulis 70+ buku dengan sistem ini. Tiga prinsipnya:

  1. Atomicity: satu catatan = satu ide. Catatan pendek yang fokus, bukan bab panjang.
  2. Links: setiap catatan terhubung ke catatan lain lewat tautan — jaringan, bukan hirarki.
  3. Emergence: ide baru lahir dari menghubungkan ide lama, bukan menghafalnya.

Org-roam mengotomatiskan bagian tersulit: menciptakan ID unik, melacak backlinks, dan menggambar peta koneksi.

Setup Org-roam

Org-roam tidak bawaan Emacs — install via MELPA:

Setup Org-roam di init.el
(use-package org-roam
  :ensure t
  :custom
  (org-roam-directory (file-truename "~/org-roam"))
  (org-roam-db-update-on-save t)
  :config
  (org-roam-db-autosync-mode 1))

Buat direktori ~/org-roam (mkdir -p ~/org-roam), restart Emacs, lalu inisialisasi database:

text
M-x org-roam-db-sync RET

Org-roam menyimpan catatan sebagai file .org biasa di org-roam-directory — semua data tetap plain text, bebas di-version-control dengan git.

Membuat Catatan: org-roam-insert

Pusat alurnya adalah M-x org-roam-insert — membuat catatan baru sekaligus menautkannya:

text
M-x org-roam-insert RET
→ prompt: ketik judul catatan baru (misal "Decision Record: pakai Eglot")
→ Org-roam membuat file + ID, menyisipkan link di posisi kursor

Catatan baru otomatis dapat properti:

~/org-roam/20260816...-decision_record_eglot.org
:PROPERTIES:
:ID:       a1b2c3d4-...
:END:
#+title: Decision Record: pakai Eglot
 
Isi catatan...

Saat kalian menulis [[roam:Decision Record: pakai Eglot]] di catatan lain, kedua catatan terhubung. Backlinks dihitung dari semua file — bukan hanya yang terbuka.

Di buffer catatan, C-c / r (atau M-x org-roam-buffer-toggle) membuka panel yang menampilkan:

  • Backlinks: semua catatan yang menautkan ke catatan ini.
  • Unlinked references: semua catatan yang menyebut judul catatan ini tanpa tautan eksplisit — Org-roam mendeteksi dari teks biasa.
text
C-c / r   →  toggle org-roam-buffer
C-c / b   →  org-roam-buffer (backlink panel)

Fitur ini mengubah cara membaca catatan: membuka satu catatan otomatis "membuka" konteksnya — siapa yang merujuknya dan mengapa.

Graph: Peta Pengetahuan

Visualisasikan jaringan catatan:

text
M-x org-roam-graph RET

Menghasilkan grafik yang bisa dibuka di browser (atau disimpan sebagai SVG). Node = catatan, edge = link. Graph ini sering mengejutkan — kalian akan melihat "hub" catatan yang paling banyak dirujuk, dan "pulau" catatan yang belum terhubung (kandidat untuk dihubungkan).

Note

Org-roam 2.x menggunakan database SQLite internal untuk backlinks & graph — bukan parsing file setiap saat. Karena itu, jalankan M-x org-roam-db-sync setelah import catatan lama atau ada perubahan besar.

Atomic Notes + Org-capture: Alur Harian

Kombinasi Zettelkasten yang produktif: capture menciptakan atomic note langsung:

Template capture Org-roam di init.el
(setq org-roam-capture-templates
      '(("d" "default" plain
         "%?"
         :if-new (file+head "atomic/${slug}.org"
                  "#+title: ${title}\n")
         :unnarrowed t)
        ("i" "idea" plain
         "%?"
         :if-new (file+head "atomic/${slug}.org"
                  "#+title: ${title}\n* Ide\n")
         :unnarrowed t)))

Alur harian yang disarankan:

text
1. Baca artikel menarik di browser → seleksi paragraf kunci
2. C-c c  (org-capture) → template "d"
3. Ketik judul, tambahkan link referensi
4. C-c C-c  →  catatan tersimpan + masuk database
5. Nanti saat menulis catatan lain, `org-roam-insert` menautkannya

Setiap ide "ditangkap" dalam beberapa detik dan langsung bisa dihubungkan nanti — tanpa meninggalkan Emacs.

Workflow Knowledge Base untuk Developer

Contoh penerapan nyata:

  • Decision records: satu catatan per keputusan teknis (ADOPT Eglot, REJECT monorepo), ditautkan ke catatan teknis terkait.
  • Summary artikel: judul = judul artikel, isi = ringkasan + poin penting, backlink dari topik yang relevan.
  • Reading list: catatan "buku" yang dirujuk dari semua catatan lain — menjadi indeks otomatis.
  • Glossary proyek: istilah-istilah yang dirujuk lintas catatan — istilah yang sama, satu definisi, banyak backlink.

Pola penting: jangan copy-paste isi artikel panjang ke catatan. Tulis dalam kata kalian sendiri (atomic note) lalu tautkan — inilah yang membuat jaringan bermakna.

Pitfall Org-roam

  • Lupa sinkronisasi DB: backlinks/graph tidak update sebelum org-roam-db-sync (atau autosync aktif). Set org-roam-db-update-on-save t.
  • Judul ganda: kalau menulis judul yang sudah ada, Org-roam tidak menggabungkan otomatis — cek M-x org-roam-node-find dulu untuk mencari node yang ada.
  • Too many notes: atomic ≠ bercabang tak terkendali. Buat catatan hub (MOC — Map of Content) seperti Knowledge: Emacs Ecosystem yang merangkum dan menautkan topik-topik di bawahnya.
  • Backup: ~/org-roam adalah aset — masukkan ke sistem backup kalian (misal rsync dari episode belajar-rsync, atau git remote).

Penutup

Pada episode 13 ini, kalian telah membangun knowledge base pribadi.

Inti yang harus dibawa pulang:

  • Zettelkasten: atomic notes + links + emergence — pengetahuan sebagai jaringan.
  • org-roam-insert membuat catatan + link sekaligus; ID unik otomatis.
  • Backlinks (C-c / r) dan unlinked references menghubungkan catatan secara otomatis.
  • org-roam-graph memvisualisasikan jaringan; capture template menangkap ide langsung jadi atomic note.
  • Data tetap plain text .org — aman untuk git dan backup.

Di episode 14 selanjutnya, kita keluar dari catatan menuju pengelolaan file: Dired — file manager bawaan Emacs — untuk navigasi file, bulk rename/move/copy, wdired untuk mengedit nama, dan dired-narrow untuk menyaring daftar file. Sampai jumpa di episode 14!

Belajar Emacs - Org-roam & Zettelkasten | Belajar Emacs