2 poin oleh GN⁺ 2025-07-06 | 1 komentar | Bagikan ke WhatsApp
  • Perangkat lunak local-first adalah pendekatan yang berupaya mewujudkan sekaligus keunggulan kolaborasi berbasis cloud dan kepemilikan data pribadi
  • Aplikasi cloud yang ada saat ini unggul dalam kolaborasi real-time dan aksesibilitas, tetapi juga menimbulkan masalah seperti kepemilikan data dan akses jangka panjang
  • Perangkat lunak local-first menganggap penyimpanan lokal sebagai lokasi utama penyimpanan data, lalu menyediakan sinkronisasi dan fitur kolaborasi sebagai tambahan
  • Perangkat lunak seperti ini menawarkan keunggulan dalam kecepatan, dukungan offline, privasi, dan kendali pengguna, tetapi juga memiliki tingkat kesulitan implementasi dalam hal seperti kolaborasi real-time atau sinkronisasi multi-perangkat
  • Untuk mewujudkan perangkat lunak local-first, berbagai model teknologi yang sudah ada sedang dibandingkan dan dianalisis, sekaligus dijajaki kemungkinan pengembangan model yang lebih ideal di masa depan

Batasan aplikasi cloud dan kepemilikan data

  • Sebagian besar pengguna memanfaatkan berbagai aplikasi cloud seperti Google Docs, Figma, dan Slack untuk banyak tujuan, termasuk menulis dokumen, mendesain, dan berkolaborasi
  • Layanan-layanan ini diakses melalui browser atau aplikasi mobile, dan sebagian besar menyimpan data di server
  • Perangkat lunak berbasis cloud memiliki kelebihan dalam kolaborasi dan akses data dari mana saja, tetapi semakin banyak waktu yang diinvestasikan ke dalam aplikasi, semakin besar pula nilai data di dalamnya
  • Melalui wawancara dengan para profesional, terlihat bahwa di balik keunggulan fungsional aplikasi cloud, terdapat kelemahan fatal seperti hilangnya kepemilikan dan ketidakpastian akses jangka panjang
  • Ada rasa tidak aman secara psikologis sekaligus risiko nyata karena hak pengguna untuk melestarikan dan memiliki materi serta data yang mereka buat atau hasilkan sendiri menjadi terbatas

Makna dari benar-benar memiliki data

  • Data yang disimpan di cloud terasa seperti “milik sendiri”, tetapi pada praktiknya hak pengelolaan dan kontrol akses berada pada penyedia layanan cloud
  • Jika layanan dihentikan atau server mengalami gangguan, hal ini dapat menyebabkan data tidak dapat diakses dan menyulitkan pelestarian data jangka panjang
  • Inti persoalannya bukan sekadar hak kekayaan intelektual secara formal, melainkan rasa memiliki dan kendali pengguna atas data
  • Aplikasi lama yang berpusat pada penyimpanan lokal (editor teks, version control, dan berbagai alat lain) menjamin kepemilikan data yang utuh dan otonomi

Perbandingan kelebihan dan kekurangan cloud dan lokal

  • “Aplikasi cloud = kolaborasi dan aksesibilitas”, “aplikasi lokal = kepemilikan dan otonomi”
  • Ditekankan perlunya mengejar kombinasi terbaik dalam bentuk hibrida, bukan memilih salah satu secara mutlak
  • Kepemilikan data dan kolaborasi real-time tidak harus saling bertentangan; dimungkinkan untuk merancang model perangkat lunak yang mencapai keduanya
  • Ini didefinisikan sebagai perangkat lunak local-first, dan diusulkan struktur dasar berupa kombinasi penyimpanan lokal, jaringan, dan server pendukung

7 cita-cita perangkat lunak local-first

  • Dalam aplikasi cloud, server berperan sebagai “salinan utama” data, sehingga setiap permintaan memerlukan perjalanan bolak-balik ke server dan menimbulkan latensi pada pengalaman pengguna
  • Sebaliknya, perangkat lunak local-first memperlakukan salinan di penyimpanan lokal sebagai versi utama data, sementara sinkronisasi (melalui server) ditangani sebagai hal sekunder
  • Perubahan sudut pandang ini memberi keuntungan nyata dalam kecepatan respons, dukungan offline, dan kendali atas data

1. Kecepatan (respons yang cepat)

  • Aplikasi local-first memproses semua pekerjaan di sistem file lokal, sehingga dapat mencapai respons pengguna yang instan tanpa harus menunggu permintaan server
  • Sinkronisasi diproses diam-diam di latar belakang, sehingga pengalaman pengguna tidak pernah terputus di momen mana pun

2. Sinkronisasi multi-perangkat

  • Pengguna modern bekerja di banyak perangkat, sehingga aplikasi local-first juga perlu memiliki sinkronisasi data antarperangkat
  • Sinkronisasi pada tingkat file mudah dilakukan untuk pengguna tunggal, tetapi saat banyak orang mengedit secara bersamaan, akan muncul masalah konflik (Conflict)

3. Offline-first

  • Perangkat lunak local-first memungkinkan penulisan dan pengeditan data kapan saja dalam keadaan offline, lalu otomatis tersinkron saat jaringan kembali tersedia
  • Berbagi dan sinkronisasi data antarperangkat dapat dilakukan melalui berbagai cara seperti Bluetooth dan WiFi lokal
  • Untuk dukungan offline yang sesungguhnya, bentuk berkas eksekusi yang terpasang secara lokal lebih disukai

4. Kolaborasi dan pengelolaan konflik

  • Pendekatan lama (lampiran email, alat version control, dan lain-lain) memiliki ketidaknyamanan berupa konflik dan penggabungan manual ketika banyak orang mengerjakan file yang sama secara bersamaan
  • Aplikasi cloud (seperti Google Docs) meminimalkan tingkat kesulitan dan gesekan kolaborasi melalui fitur pengeditan bersama real-time
  • Perangkat lunak local-first juga memiliki kemungkinan untuk mewujudkan beragam alur kolaborasi seperti kolaborasi real-time, usulan perubahan, dan persetujuan, dan ini merupakan area tantangan teknis

5. Pelestarian data jangka panjang

  • Dengan menggunakan aplikasi local-first, hak akses ke data tetap terjamin meskipun pembuat perangkat lunak sudah tidak ada lagi
  • Format file yang umum (teks, PDF, JPEG, dan sebagainya) dapat mempertahankan kompatibilitas dalam jangka panjang, dan bahkan format yang tidak kompatibel pun masih bisa diakses melalui virtual machine atau emulator
  • Tanpa pelestarian data jangka panjang yang sesungguhnya, masalah zaman kegelapan digital (manusia di masa depan tidak dapat mengakses atau menafsirkan data masa kini) bisa menjadi kenyataan

6. Privasi dan keamanan

  • Struktur cloud yang terpusat rentan terhadap berbagai insiden keamanan seperti peretasan dan penyalahgunaan oleh pegawai internal
  • Para profesional yang menangani informasi pribadi atau data sensitif dapat memperoleh keamanan dan kemandirian data melalui enkripsi end-to-end dalam struktur local-first
  • Perusahaan besar seperti Google dapat memanfaatkan data secara internal dengan berbagai cara, sedangkan perangkat lunak local-first memberikan kendali kepada pemilik data

7. Kepemilikan dan kendali pengguna

  • Akses ke data bisa diblokir atau dibatasi secara sepihak oleh penyedia layanan cloud (misalnya karena auto-flagging yang keliru atau perubahan kebijakan)
  • Dalam lingkungan local-first, pengguna sendiri yang menentukan semua hak terkait penggunaan, modifikasi, backup, dan penyimpanan data
  • Ini bukan sekadar soal hak cipta secara hukum, melainkan masalah otonomi nyata pengguna dan kendali atas data

Perbandingan berbagai model perangkat lunak

  • Lampiran email + file lokal: unggul dalam kecepatan, offline, pelestarian jangka panjang, dan kendali, tetapi tidak nyaman untuk kolaborasi dan sinkronisasi perangkat
  • Web app cloud (Google Docs, Trello, dll.): unggul dalam kolaborasi real-time dan aksesibilitas, tetapi lemah dalam kecepatan, offline, kepemilikan, dan privasi
  • Layanan sinkronisasi file (Dropbox, dll.): unggul dalam kecepatan, offline, pelestarian jangka panjang, dan kendali, tetapi terbatas dalam kolaborasi dan lingkungan mobile
  • Sistem version control (Git, dll.): sangat baik dalam kecepatan, offline, pelestarian jangka panjang, dan kendali, tetapi lemah untuk file non-teks dan kolaborasi real-time
  • Klien mobile (Firebase, CloudKit, dll.): kuat dalam sinkronisasi dan offline, tetapi memiliki keterbatasan dalam hal informasi pribadi, privasi, dan keberlangsungan layanan jangka panjang
  • Replikasi multi-master (DB, misalnya CouchDB): kuat dalam offline dan sinkronisasi, tetapi sulit atau belum memadai untuk mewujudkan cita-cita seperti kolaborasi, privasi, dan kendali

Perspektif pengembang perangkat lunak dan arah masa depan

  • Perangkat lunak local-first yang ideal harus sejak awal merancang dan mengimplementasikan offline, sinkronisasi multi-perangkat, kolaborasi real-time, privasi, dan kendali pengguna
  • Namun secara realistis, teknologi terbuka yang mampu memenuhi semua cita-cita itu sekaligus masih belum tersedia
  • Teknologi baru yang dirancang dalam riset ilmu komputer modern (misalnya Conflict-free Replicated Data Types(CRDTs), metode sinkronisasi data terdistribusi, dan sebagainya) dapat menjadi fondasi kunci untuk mewujudkan perangkat lunak local-first di masa depan

Kesimpulan

  • Perangkat lunak local-first merupakan arah penting untuk mewujudkan keseimbangan antara kolaborasi, kemandirian, privasi, dan kedaulatan data di era digital
  • Bagi para profesional dan kreator, pendekatan ini memberikan rasa memiliki atas data dan perlindungan jangka panjang, serta berpotensi menciptakan perubahan positif di seluruh industri
  • Ke depan, perlu terus dilanjutkan riset dan eksperimen atas infrastruktur, alat pengembangan, arsitektur, dan algoritme yang lebih baik untuk mewujudkan cita-cita ini

1 komentar

 
GN⁺ 2025-07-06
Komentar Hacker News
  • Sangat relate, rasanya setuju 100%. Saya juga sedang mengembangkan sesuatu untuk menyelesaikan masalah seperti ini, dan saya sudah bosan dengan model menaruh data saya di cloud lalu terus membayar biaya langganan. Sekarang saya sedang membuat aplikasi fitness tracking, dan berencana memakai model seperti Sublime. Beli sekali di awal, dapat update selama beberapa tahun, sinkron ke semua perangkat, dan bisa dipakai seumur hidup. Kalau nanti ingin update lagi, cukup beli versi baru. Tujuannya adalah kualitasnya cukup bagus sehingga orang bisa terus memakainya dalam kondisi itu. Untuk 90% software, saya menginginkan model seperti ini. Harus bisa dibeli dengan harga yang wajar, produknya sendiri harus bagus, dan penting juga strukturnya tetap berfungsi dengan baik tanpa integrasi cloud. Bukan cuma soal privasi data, model ini juga punya banyak kelebihan lain. Memang masih ada tantangan seperti tooling, tapi fondasi teknisnya sudah cukup. Keunggulan terbesar local-first software adalah struktur insentifnya yang sehat. Bukan dibayar lewat iklan, pelacakan pengguna, atau memaksimalkan “engagement”, melainkan lewat produknya sendiri. Rasanya benar-benar software yang berpusat pada pengguna.

    • Model aplikasi catatan Obsidian juga contoh yang sangat bagus. Kliennya gratis, layanan sinkronisasi dijual sebagai opsi. Catatannya berupa file Markdown, jadi bahkan tidak wajib memakai kliennya, dan itu nilai plus besar.

    • Saya penasaran bagaimana rencananya menangani sinkronisasi tanpa memakai infrastruktur cloud.

    • Sangat setuju. Kalau tidak keberatan, saya juga penasaran dengan tech stack aplikasi fitness tracking itu. Terutama bagaimana cara menangani sinkronisasi lintas perangkat.

    • Ada juga banyak aplikasi lokal murni yang dimonetisasi dengan iklan, jadi “tanpa iklan” tidak selalu otomatis berlaku.

  • Saat ini konferensi Local-first Software (https://www.localfirstconf.com/) sedang aktif berlangsung di Berlin, diselenggarakan oleh Ink and Switch, dan tahun ini bahkan muncul juga Sync Conf(https://syncconf.dev/) di San Francisco pada bulan November. Di konferensi terbaru, para penulis paper aslinya ikut panel diskusi langsung, jadi sangat bermanfaat untuk mendengar apa yang mereka pelajari dalam konteks tooling pengembangan local-first software. Sangat merekomendasikan video panel diskusi ini. Di komunitas sekarang, “Sync” mulai diposisikan sebagai elemen inti local-first, sementara dev tool seperti sync engine dipandang sebagai alat pendukung yang memungkinkan karakteristik local-first, bukan local-first itu sendiri. Kumpulan seluruh presentasi beberapa tahun terakhir juga diunggah di sini. Pengembangan alat untuk mendukung kolaborasi realtime dan asinkron sedang sangat gencar, dan dengan kemunculan AI belakangan ini, kondisi pasar makin mendorong kebutuhan akan sync engine semacam ini. Aplikasi AI pada dasarnya adalah lingkungan kolaborasi multi-pengguna, jadi ini era yang makin membutuhkan fondasi teknis dari komunitas sync engine.

  • Untuk topik ini, dulu juga sudah ada banyak diskusi yang sangat aktif, jadi layak dibaca kalau penasaran: 2019-05, 191 komentar
    2019-11, 241 komentar
    2020-07, 9 komentar
    2020-08, 134 komentar
    2021-02, 90 komentar
    2022-06, 30 komentar
    2023-10, 50 komentar

  • Saya berpendapat tidak semua aplikasi perlu punya platform sync sendiri. Tren ini tampaknya muncul dari sulitnya komposisi dan modularisasi antaraplikasi yang khas di dunia mobile app. Kalau benar-benar ingin local-first, pakai saja file system. Dari sudut pandang pengguna, mereka bisa memilih sendiri berbagai solusi yang sudah ada seperti git, box, dan lain-lain. Proses pendaftaran sync di tiap aplikasi juga sama membebaninya dengan SaaS, dan sama-sama mudah jadi tidak transparan atau rusak.

    • Saya setuju bahwa tidak semua aplikasi butuh sync engine, tetapi saya tidak menganggap file system sebagai solusi universal untuk local-first. Ada dua alasannya. Pertama, concurrency. Kalau hanya mau benar-benar local-first, pakai sync apa saja mungkin cukup, tapi saya ingin lebih dari itu. Misalnya, saya ingin pengalaman di mana saya dan istri saya bisa mengedit secara terpisah di ponsel masing-masing saat komunikasi terputus, lalu semuanya tergabung otomatis dengan baik. Saya menginginkan sinkronisasi yang terasa alami seperti DropBox. Kedua, agar pengalaman sync lebih baik, sync engine perlu memahami struktur dan makna data secara mendalam. git atau box punya banyak keterbatasan ketika menghadapi kebutuhan kolaborasi semantik semacam ini.

    • Saya pernah benar-benar mengimplementasikan pendekatan yang hanya memakai file system, tetapi sulit mengoordinasikan antarklien soal kapan file boleh diedit, jadi masalah konflik file pada akhirnya tidak terhindarkan.

  • Sistem yang bergantung pada online pasti membawa biaya pemeliharaan dan operasional. Tanpa desain local-first atau local-only, tidak mungkin ada sistem yang bisa dipercaya dalam jangka panjang. Dari sudut pandang kepraktisan, peralatan rumah tangga terhubung dan mobil sejenisnya adalah contoh rekayasa yang benar-benar bodoh.

    • Semua tren ini pada akhirnya disebabkan oleh pendapatan langganan. Perusahaan dengan model langganan menghasilkan lebih banyak pendapatan dan lebih mudah mendapat investasi dibanding perusahaan yang tidak, jadi mereka menang di pasar. Itulah alasan local-first software menghilang.
  • Saya justru kritis terhadap cara pandang yang mencoba menyelesaikan masalah keandalan cloud secara teknis, misalnya dengan menghindari struktur terpusat. Dulu, masalah software tertutup yang tidak bisa dikendalikan dan tidak bisa dipercaya diselesaikan lewat model bisnis seperti pengembangan open source, kontrak maintenance, dan sebagainya. Untuk masalah cloud pun, saya berpendapat perlu solusi model bisnis seperti ini. Misalnya, kita bisa membuat kontrak atau lisensi standar yang secara eksplisit menyatakan hak pengguna, lalu mendorong pasar agar hanya memilih vendor yang menjalankan lisensi tersertifikasi semacam itu. Kita bisa menambahkan banyak klausul, seperti jaminan portabilitas data pengguna, pengungkapan transparan atas penggunaan data, prosedur saat layanan dihentikan, dan sebagainya. Tentu hambatan terbesarnya adalah mengapa vendor mau menerima aturan seperti ini. Karena takut pelanggan kabur, vendor bisa saja hanya mengizinkan langganan tahunan jika menyediakan lisensi seperti itu, atau meminta biaya tambahan.

    • Jika masalah bisnis atau politik bisa didekati dengan solusi teknis, saya justru menganggap itu metode yang lebih kokoh. Alasannya, konflik kepentingan yang bersifat antagonistik bisa langsung diblokir secara teknis. Contoh paling jelas adalah enkripsi di sisi klien (client-side encryption). Godaannya terlalu besar, dan terlalu sulit diawasi atau ditindak, kalau kita hanya bergantung pada kebijakan privasi atau aturan birokratis. Kalau data secara matematis memang terenkripsi sehingga tidak bisa dibaca di server, maka kekhawatirannya hilang. Namun kalau server memang perlu memproses datanya, pada akhirnya Anda benar-benar harus memakai server Anda sendiri.

    • Misalnya pun masalah penghentian layanan diselesaikan lewat kontrak, kalau penyedia cloud tutup bisnis lalu hanya sempat memberi pemberitahuan dan ekspor data, yang tersisa pada akhirnya cuma file JSON raksasa. Kalau Anda sendiri tidak membuat aplikasinya atau tidak ada orang lain yang membuatkannya, itu pada dasarnya tidak terlalu berguna. Niatnya bagus, tetapi tetap kalah dibanding aplikasi lokal yang memungkinkan data dari aplikasi yang sudah mati tetap bisa dipakai dalam jangka panjang.

    • Klausul jaminan portabilitas data juga, dalam praktiknya, membuat pemindahan data skala besar sulit dan memakan waktu lama. Kalau harus dilakukan buru-buru saat krisis, hasilnya akan lebih berantakan lagi. Bahkan antar open source DB dengan versi yang sama pun ada banyak variabel di tiap layanan, jadi tidak mudah. Pada akhirnya, menyimpan data di lingkungan sendiri sejak awal lalu bisa “mencabut stekernya” saat diperlukan adalah alternatif yang realistis. Kombinasi BYOC(bring your own cloud) dan open source mungkin memungkinkan. Perusahaan kami juga mengoperasikan produk data BYOC, jadi saya tahu dari pengalaman bahwa struktur ini benar-benar bisa dijalankan.

    • Sekalipun tanggung jawab saat layanan cloud dihentikan ditulis di kontrak, ketika keputusan bangkrut benar-benar terjadi, sulit membayangkan bagaimana itu akan ditegakkan dan dikelola dalam praktik.

    • Bukan cuma isu bisnis, keamanan data itu sendiri juga masalah. Alasan utama saya menghindari model langganan atau cloud adalah keinginan untuk melindungi data saya. Data yang dikirim tanpa enkripsi lokal pada dasarnya memang bisa dibobol kapan saja.

  • Tulisan ini terasa menyegarkan. Saya pikir lebih banyak aplikasi seharusnya menjadi local-first. Jika pengguna tidak menginginkan sinkronisasi cloud, opsi itu harus dijamin. Brisqi(https://brisqi.com) yang saya buat juga dibangun di atas filosofi offline-first seperti ini. Aplikasi local-first pada dasarnya berarti aplikasi yang tetap berfungsi sempurna secara offline tanpa batas waktu. Pengalaman offline adalah dasar, dan cloud sync hanyalah peningkatan tambahan. Aplikasi yang hanya mengandalkan cache sementara tidak bisa dianggap offline-first. Data harus disimpan di local DB; offline-first yang sejati berarti data tetap tersimpan tanpa bergantung pada internet. Sebagian besar aplikasi yang mengaku “offline-first” justru hanya offline-tolerant, yaitu hanya mendukung offline secara terbatas. Membuat aplikasi offline-first jauh lebih sulit daripada web app online-only. Harus ada mekanisme sinkronisasi yang andal agar data tidak hilang saat berpindah antara kondisi offline dan online. Cara saya mengimplementasikannya bisa dilihat di blog saya(https://blog.brisqi.com/posts/how-i-designed-an-offline-firs...).

  • Prinsip-prinsip ini juga bermakna jika difokuskan pada ranah konsumen. Saat ini kami di Sentinel Devices(www.sentineldevices.com) sedang mengembangkan struktur untuk lokasi industri seperti SCADA/otomasi industri, tempat data sama sekali tidak boleh keluar ke luar, sehingga eksekusi, analisis, dan pengambilan keputusan semuanya berjalan sepenuhnya secara lokal di perangkat milik mereka. Kami sama sekali tidak menyediakan server eksternal. Fokus pada prinsip on-device seperti ini memberikan pengalaman yang agak mengguncang pola pikir, baik bagi pelanggan maupun vendor. Banyak perusahaan data/AI mengabaikan pasar seperti ini karena merasa terlalu sulit memberikan layanan langsung di lokasi pelanggan. Namun kami sering harus menekankan bahwa sistem kami tanpa konektivitas dan sepenuhnya diproses secara lokal agar pelanggan benar-benar paham. Kalau fenomena local-first menjadi lebih akrab di ranah konsumen, bidang industri juga akan berubah lebih cepat.

    • Bahkan industri SCADA belakangan ini semuanya sedang diarahkan ke cloud. Slogannya seperti, “Kelola pabrik dari smartphone Anda.” Namun sekarang risikonya makin besar karena bahkan peretas hobiis sederhana pun bisa mendapat jalan untuk mengendalikan pabrik.

    • Bidang ini sangat menarik, dan saya mendukung aktivitas Anda. Satu hal yang saya penasaran, di halaman karier terlihat bahwa perekrutannya semuanya non-remote (onsite). Apakah pengembangan local-first memang pada praktiknya menuntut kerja offline di lokasi, atau itu lebih karena isu manajemen?

  • Proyek yang saya kerjakan (selfhostblocks, skarabox) juga bertujuan memudahkan siapa pun melakukan self-hosting berbasis NixOS. Hampir semuanya disediakan secara deklaratif: https, SSO, LDAP, backup, snapshot ZFS, dan sebagainya. Bisa menyimpan sebagian besar data seperti Vaultwarden, Nextcloud, dan lain-lain, serta mencakup layanan seperti Home assistant. Ini adalah pesaing YUNoHost, tetapi dengan tujuan yang lebih baik. SelfHostBlocks berbentuk sekumpulan building block paket yang bisa diperluas dan di-self-host secara bebas oleh siapa saja. Pendekatannya lebih seperti library daripada framework. Ini juga alternatif NAS yang sepenuhnya open source. Mungkin mudah bagi orang yang punya pengetahuan teknis, tetapi tujuan saya adalah menurunkan hambatan masuk agar orang biasa pun bisa memasangnya di perangkat keras tanpa perlu tahu nix atau CLI.

    • Saya benar-benar mendukung proyek seperti ini. Ada sangat banyak alternatif FOSS (open source) yang luar biasa, tetapi pada praktiknya hanya mudah dipasang oleh orang teknis, sebatas level “docker compose up”, sehingga tetap jadi hambatan bagi orang biasa. Banyak aplikasi yang bisa di-self-host berbentuk web app + DB + server + frontend, padahal dalam kasus saya, saya pada dasarnya hanya memakainya di satu perangkat. Program desktop lokal sepenuhnya sebenarnya sudah cukup, tetapi bagi orang yang bukan developer, bahkan itu pun terasa mustahil. Ada mismatch yang jelas antara FOSS self-hosting berkualitas tinggi dan pengguna nyata. Kita butuh lebih banyak proyek yang menjembatani kesenjangan ini. Saya juga berencana mencoba selfhostblocks, semoga terus berkembang.

    • Senang sekali melihat hledger ikut disertakan. Bagi orang yang baru masuk ke dunia akuntansi plain text mungkin agak asing, tetapi ini software yang sangat bagus.

    • Terima kasih sudah membuatnya dengan sangat rapi.

  • Setelah membaca sekilas tulisan utamanya, saya rasa sebagian besar poin kuncinya sudah tersentuh, tetapi motivasi di paragraf pertama terasa lemah. Rasanya seperti membaca sesuatu semacam, “Apple pie itu enak dan bergizi, tetapi suatu hari nanti bisa tiba-tiba terbakar habis dan bahkan celemek kesayangan saya ikut lenyap.”