Bikin postingan dengan baris kosong dan indentasi yang tidak hilang
Pembuat Baris Kosong dan Spasi mengganti baris kosong, indentasi di awal baris, dan spasi ganda di tengah baris dengan karakter yang lebih sulit hilang saat spasi dirapikan. Pada pengaturan bawaan, setiap baris kosong diisi 1 spasi Braille (U+2800), sedangkan indentasi dan spasi ganda diubah: tiap 2 spasi biasa menjadi 1 spasi Braille. Spasi Braille tampak seperti ruang kosong di layar, tetapi di Unicode karakter ini tidak digolongkan sebagai karakter spasi, sehingga besar kemungkinan tetap ada setelah proses yang menghapus spasi.
Di area kerja di atas, begitu kamu mengisi kolom teks asli, pratinjau postingan di sebelah kanan langsung berubah. Klik Kalau ditempel apa adanya untuk melihat baris yang runtuh ketika teks asli ditempel ke aplikasi yang merapikan spasi, lalu klik Kalau ditempel setelah dikonversi untuk melihat baris itu kembali. Karakter tak terlihat yang ditambahkan ditandai garis miring, dan batang di bawahnya menunjukkan porsi karakter itu dalam batas karakter Instagram, Threads, X, dan TikTok. Kalau hanya butuh satu karakter spasi, klik karakternya di kotak karakter spasi paling bawah untuk menyalinnya.
Kenapa baris kosong hilang dan kapan alat ini berguna
Program yang menerima teks sering merapikan spasi sebelum menyimpan atau menampilkannya. Aturan standar tampilan web (CSS) hanya melipat spasi biasa (U+0020), tab, dan pergantian baris menjadi satu; spasi tanpa putus, spasi lebar penuh, dan spasi lain tidak dilipat. Sebaliknya, fungsi yang memangkas spasi di awal dan akhir baris, seperti trim di JavaScript, juga menghapus pemisah spasi Unicode (Zs) seperti spasi tanpa putus dan spasi lebar penuh. Pemangkasan ini menghapus indentasi, dan di aplikasi yang juga menghapus baris kosong, baris yang kosong atau hanya berisi spasi ikut hilang.
Karena itu, baris kosong perlu diisi satu karakter yang bukan spasi supaya barisnya bertahan. Alat ini biasanya berguna untuk situasi berikut.
- Memisahkan paragraf caption: untuk keterangan foto, ulasan, atau pengumuman yang panjang, dengan baris kosong di antara paragraf agar mudah dibaca.
- Merapikan baris di bio profil: kalau kalimat perkenalan ingin dimasukkan sedikit atau diletakkan agak ke tengah, indentasinya tetap terjaga.
- Daftar yang menjorok: untuk daftar barang bawaan, urutan langkah, atau menu dengan sub-item menjorok, supaya tidak runtuh jadi satu baris.
- Menjauhkan hashtag dari isi: beberapa baris kosong antara isi postingan dan kumpulan hashtag membuat isi terbaca lebih dulu.
- Satu karakter kosong: untuk kolom nama, awal baris, atau tempat lain yang butuh satu karakter tak terlihat; salin dari kotak karakter spasi.
Cara memakai
- Tempel teks yang mau diposting di kolom teks asli. Baris kosong, indentasi, dan spasi ganda biarkan seperti biasa.
- Pilih apa yang mau diubah di tabel pengaturan. Di baris Baris kosong, pilih apakah baris kosong dipertahankan dan karakter apa yang diisikan. Di baris Spasi, pilih apakah indentasi dan spasi ganda dipertahankan dan karakter spasinya. Awalnya semuanya aktif dan karakternya spasi Braille.
- Di pratinjau, bolak-balik Kalau ditempel apa adanya dan Kalau ditempel setelah dikonversi untuk memeriksa apakah baris yang tadinya hilang sekarang bertahan. Jika kamu memilih karakter spasi yang termasuk spasi, jumlah baris yang mungkin terpangkas muncul sebagai peringatan.
- Cek batang jumlah karakter supaya tidak melewati batas tempat kamu memposting. Kalau lewat, batang dan angkanya berubah warna.
- Klik Salin hasil, tempel ke kolom penulisan di aplikasi, lalu periksa sekali lagi di pratinjau aplikasi itu sebelum diposting.
Aturan konversi
Konversi dilakukan per baris. Satu karakter spasi, misalnya spasi biasa atau spasi tanpa putus, dihitung 1 kolom; satu spasi lebar penuh dihitung 2 kolom; satu tab dihitung 4 kolom. Alat ini menghitung 1 spasi Braille atau 1 spasi lebar penuh sebagai 2 kolom, dan 1 spasi tanpa putus sebagai 1 kolom. Lebar sebenarnya bergantung pada font; kotak karakter spasi menampilkan lebar yang diukur di layarmu.
| Objek | Kriteria | Cara mengubah | Contoh |
|---|---|---|---|
| Baris kosong | Baris kosong atau hanya berisi karakter spasi | Jadi baris dengan 1 karakter baris kosong saja | baris kosong → ⠀ |
| Indentasi di awal baris | Spasi di paling depan baris | Jumlah spasi ÷ 2 (dibulatkan ke atas) spasi Braille | 4 spasi → ⠀⠀ |
| Spasi ganda di tengah baris | 2 spasi atau lebih di antara huruf | (jumlah spasi − 1) ÷ 2 (dibulatkan ke atas) spasi Braille + 1 spasi biasa | 4 spasi → ⠀⠀␣ |
| Spasi di akhir baris | Spasi setelah karakter terakhir di baris | Dihapus | Merapikan ekor yang tak terlihat |
| Baris kosong di awal dan akhir | Awal dan akhir seluruh teks | Dibuang | Merapikan baris yang ikut tersalin |
| Spasi yang sudah diubah | Bagian yang hanya berisi karakter spasi pilihan | Dibiarkan | Dikonversi dua kali, hasilnya sama |
Satu spasi terakhir di antara spasi ganda sengaja dibiarkan sebagai spasi biasa karena hashtag dan mention. Dokumentasi pengembang TikTok menyebut bahwa hashtag (#) dan mention (@) di caption dipisahkan oleh spasi atau baris baru. Kalau seluruh spasi di antara '#pagihari' dan '#jalansantai' diganti karakter tak terlihat, kedua tag bisa terbaca menyatu, sehingga setelah karakter tak terlihat ditinggalkan satu spasi biasa. Jika kamu memilih spasi tanpa putus (U+00A0) sebagai karakter spasi, n spasi indentasi menjadi n spasi tanpa putus, dan n spasi di tengah baris menjadi n − 1 spasi tanpa putus ditambah 1 spasi biasa; jika memilih spasi lebar penuh, 2 kolom dihitung sebagai 1 karakter seperti pada spasi Braille.
Perbandingan 10 karakter spasi
Tabel di bawah merangkum 10 karakter di kotak karakter spasi berdasarkan data karakter Unicode 18.0. Karakter spasi artinya karakter itu punya properti White_Space di Unicode, sedangkan diabaikan secara bawaan merujuk pada properti Default_Ignorable_Code_Point, yaitu karakter yang menurut standar boleh dilewati tanpa digambar di lingkungan yang tidak mendukungnya. Lebar mengikuti keterangan di daftar karakter; lebar sebenarnya bergantung pada font.
| Karakter | Kode | Golongan | Karakter spasi | Diabaikan bawaan | Hitungan di X | Lebar (keterangan daftar karakter) |
|---|---|---|---|---|---|---|
| Spasi Braille | U+2800 | Simbol (So) | Bukan | Bukan | 2 | Digambar sebagai ruang kosong berlebar tetap di banyak font, tidak berperilaku seperti spasi |
| Hangul Filler | U+3164 | Huruf (Lo) | Bukan | Ya | 2 | Berbeda-beda menurut font (di font Hangul biasanya ruang kosong yang lebar) |
| Spasi lebar nol | U+200B | Format (Cf) | Bukan | Ya | 1 | Tanpa lebar, penanda tempat boleh pindah baris |
| Spasi tanpa putus | U+00A0 | Spasi (Zs) | Ya | Bukan | 1 | Selebar spasi biasa |
| Spasi lebar penuh | U+3000 | Spasi (Zs) | Ya | Bukan | 2 | Selebar satu aksara CJK (spasi lebar) |
| Spasi em | U+2003 | Spasi (Zs) | Ya | Bukan | 1 | Sama dengan ukuran font (1em) |
| Spasi en | U+2002 | Spasi (Zs) | Ya | Bukan | 1 | Setengah em |
| Spasi lebar angka | U+2007 | Spasi (Zs) | Ya | Bukan | 1 | Selebar angka 0 |
| Spasi tipis | U+2009 | Spasi (Zs) | Ya | Bukan | 1 | 1/5~1/6 em |
| Spasi sangat tipis | U+200A | Spasi (Zs) | Ya | Bukan | 1 | 1/10~1/16 em |
Di tabel, satu-satunya karakter yang bukan karakter spasi dan juga bukan karakter yang diabaikan secara bawaan adalah spasi Braille. Itulah alasan alat ini memakainya sebagai karakter bawaan untuk baris kosong dan spasi. Kalau spasi tanpa putus, spasi en, dan spasi sangat tipis dipakai bergantian, lebar ketiganya berbeda sehingga lebar spasi tidak rata, dan karena ketiganya karakter spasi, semuanya ikut terhapus oleh pemangkasan di awal dan akhir baris.
Karakter yang bertahan menurut cara perapian
Bagaimana aplikasi merapikan spasi sebagian besar tidak dipublikasikan. Namun aturan perapian yang umum dipakai sudah tertulis di dokumen standar, jadi karakter mana yang bertahan pada perapian tertentu bisa diketahui lebih dulu.
| Cara perapian | Yang dihapus atau dilipat | Yang bertahan (dari 10 karakter di kotak) |
|---|---|---|
| Pelipatan spasi di layar (CSS) | Hanya spasi biasa (U+0020), tab, dan pergantian baris yang dilipat jadi satu | Semua 10 karakter |
| Pemangkasan spasi di awal dan akhir baris (JavaScript trim) | Karakter spasi Unicode (seluruh Zs), tab, dan BOM | Spasi Braille, Hangul Filler, spasi lebar nol |
| Penilaian spasi (Java isWhitespace) | Karakter spasi, kecuali spasi tanpa putus (U+00A0, U+2007, U+202F) yang tidak dianggap spasi | Spasi Braille, Hangul Filler, spasi lebar nol, spasi tanpa putus, spasi lebar angka |
| Penyaringan karakter tak terlihat | Karakter yang diabaikan secara bawaan (U+200B, U+3164, dan lain-lain) | Spasi Braille dan karakter-karakter spasi |
Biarpun sama-sama menghapus spasi, cakupan spasi berbeda di tiap bahasa pemrograman. JavaScript menganggap spasi tanpa putus sebagai spasi, sedangkan Character.isWhitespace di Java mengecualikannya. Akibatnya teks yang diberi indentasi dengan spasi tanpa putus bertahan di satu aplikasi dan hilang di aplikasi lain. Kalau ditempel apa adanya dan Kalau ditempel setelah dikonversi di pratinjau menggambarkan kasus yang paling banyak menghapus, yaitu aplikasi yang memangkas karakter spasi di awal dan akhir baris, memampatkan spasi beruntun jadi satu, dan membuang baris kosong.
Batas karakter dan karakter tak terlihat
Karakter tak terlihat juga dihitung. Tabel di bawah memuat batas dan cara hitung yang tertulis di dokumentasi pengembang tiap platform. Dokumentasi Instagram tidak menyebut satuannya, sehingga alat ini menghitung dengan jumlah karakter Unicode (code point).
| Tempat | Batas | Cara menghitung | 1 spasi Braille |
|---|---|---|---|
| Caption Instagram | 2.200 | Maks 2.200 karakter, 30 hashtag, 20 tag @ (satuan tidak disebut) | 1 |
| Postingan Threads | 500 | 500 karakter, emoji dihitung dalam byte UTF-8 | 1 |
| Postingan X | 280 | Code point 0~4351, 8192~8205, 8208~8223, 8242~8247 dihitung 1, selain itu 2; emoji 2, tautan 23 | 2 |
| Caption TikTok | 2.200 | Unit UTF-16 | 1 |
Di X, aksara CJK dan emoji dihitung 2, dan spasi Braille (U+2800 = 10240) juga dihitung 2 dengan alasan yang sama. Spasi lebar nol (U+200B = 8203) masuk rentang 8192~8205 sehingga dihitung 1, dan spasi tanpa putus (U+00A0 = 160) juga 1. Kalau contoh bawaan 'Catatan jalan pagi' dikonversi, ada 8 karakter tak terlihat yang masuk. Untuk hitungan karakter Unicode seperti di Instagram, 3 baris kosong menambah 3 karakter sementara penggantian indentasi dan spasi ganda mengurangi 3 karakter, jadi totalnya tetap 143. Dengan cara hitung X, jumlahnya naik dari 143 menjadi 151.
Contoh: postingan catatan jalan pagi
Ini hasil konversi contoh yang sudah terisi di area kerja dengan pengaturan bawaan. Satu kotak bergaris miring adalah 1 spasi Braille, dan ␣ adalah spasi biasa. Kolom 'Kalau ditempel apa adanya' menggambarkan aplikasi yang memangkas spasi di awal dan akhir baris, memampatkan spasi beruntun jadi satu, dan membuang baris kosong.
| Baris | Teks asli | Hasil konversi | Kalau ditempel apa adanya |
|---|---|---|---|
| 1 | Catatan jalan pagi | Tetap | Tetap |
| 2~3 | 2 baris kosong | 2 baris ⠀ | Hilang |
| 4 | Hari ini jalannya agak jauh. | Tetap | Tetap |
| 5 | ␣␣· Langkah 12.400 | ⠀· Langkah 12.400 | Indentasi hilang |
| 6 | ␣␣· Waktu 1 jam 40 menit | ⠀· Waktu 1 jam 40 menit | Indentasi hilang |
| 7 | Baris kosong | ⠀ | Hilang |
| 8 | Anginnya␣␣␣␣enak banget. #pagihari␣␣#jalansantai | Anginnya⠀⠀␣enak banget. #pagihari⠀␣#jalansantai | Tersisa satu spasi |
Kalau ditempel apa adanya, 8 baris menyusut jadi 5 baris dan indentasi daftar hilang, sedangkan teks yang dikonversi tetap 8 baris lengkap dengan indentasinya. Jika karakter spasi diganti ke spasi tanpa putus, bagian depan baris 5 dan 6 serta spasi ganda di baris 8 terisi karakter spasi, sehingga hilang lagi setelah melewati perapian yang sama.
Kesalahan yang sering terjadi
- Mengisi baris kosong hanya dengan spasi biasa: baris yang cuma berisi beberapa kali tekan spasi tetap baris yang hanya berisi spasi, jadi hilang sama seperti baris kosong biasa.
- Indentasi dengan spasi tanpa putus: bentuknya paling mirip, tetapi karena termasuk karakter spasi, bisa terpangkas di awal baris. Kalau muncul peringatan, ganti ke spasi Braille.
- Mengganti semua spasi antar hashtag dengan karakter tak terlihat: pemisah tag hilang sehingga dua tag bisa menempel. Alat ini menyisakan satu spasi biasa di akhir.
- Meninggalkan baris kosong di akhir teks: karakter tak terlihat di baris kosong paling akhir menjadi ekor yang tak kelihatan. Alat ini membuang baris kosong di awal dan akhir.
- Mengedit teks hasil konversi lalu langsung memposting: baris kosong yang baru kamu tambahkan di kolom aplikasi kembali jadi baris kosong biasa. Masukkan lagi teks yang sudah diedit ke kolom teks asli lalu konversi ulang.
- Menghitung batas X dengan cara Instagram: X menghitung aksara CJK dan spasi Braille sebagai 2. Cek baris X di batang jumlah karakter secara terpisah.
Keterbatasan
- Cara aplikasi merapikan spasi tidak dipublikasikan dan bisa berubah lewat pembaruan. Pratinjau adalah model yang mengandaikan kasus yang paling banyak menghapus, bukan tiruan tampilan aplikasi tertentu.
- Lebar spasi Braille dan Hangul Filler ditentukan font. Lebar di kotak karakter spasi diukur dengan font di layar yang sedang kamu lihat, jadi bisa berbeda di perangkat lain.
- Spasi Braille di Unicode adalah simbol Braille. Pembaca layar bisa membacakan nama karakternya, dan pencarian bisa memperlakukannya sebagai karakter, jadi sebaiknya jangan dipakai banyak-banyak di seluruh teks yang panjang.
- Ada layanan yang menolak nama atau teks yang hanya berisi karakter tak terlihat. Sebelum memakai karakter dari kotak karakter spasi di kolom nama, cek aturan layanannya.
- Batas karakter mengacu pada dokumentasi pengembang yang dicek pada 21 Oktober 2026. Batas di layar aplikasi bisa berbeda dari dokumentasi, dan dokumentasi Instagram tidak menyebut satuan hitungnya.
- Alat ini hanya menganggap alamat yang diawali http:// atau https:// sebagai tautan dan menghitungnya 23 karakter di X. Di X, domain yang ditulis tanpa awalan, misalnya roberin.com, juga bisa menjadi tautan dan dihitung 23.
Sumber
Acuan: properti karakter dari data karakter Unicode 18.0, aturan perapian spasi dari dokumen ECMAScript, CSS Text 3, dan Java SE 21, batas karakter dari dokumentasi pengembang tiap platform, semuanya dicek pada 21 Oktober 2026.
- 01Unicode 18.0 — PropList.txtProperti White_Space: U+0020, U+00A0, U+2000~200A, U+3000, dan lainnya; U+200B, U+2800, U+3164 tidak termasuk
- 02Unicode 18.0 — DerivedCoreProperties.txtDefault_Ignorable_Code_Point: termasuk U+200B dan U+3164, tidak termasuk U+2800
- 03Unicode 18.0 — NamesList.txtU+2800 'digambar sebagai ruang kosong berlebar tetap di banyak font, tetapi tidak berperilaku seperti spasi'; keterangan lebar U+00A0, U+2002, U+2009, U+200A
- 04Unicode Standard Annex #44 — Unicode Character DatabaseKarakter yang diabaikan secara bawaan: rentang yang menurut standar dilewati tanpa digambar jika tidak didukung
- 05ECMAScript Language Specification — White SpaceWhiteSpace = TAB, VT, FF, ZWNBSP, seluruh Zs; cakupan yang dihapus String.prototype.trim
- 06CSS Text Module Level 3 — 4.1 White Space Processing RulesPemrosesan spasi hanya berlaku untuk U+0020, U+0009, dan pergantian baris
- 07Java SE 21 — Character.isWhitespaceDari karakter spasi, U+00A0, U+2007, dan U+202F tidak dianggap spasi
- 08Meta — Instagram Graph API, IG User Mediacaption: maks 2.200 karakter, 30 hashtag, 20 tag @
- 09Meta — Threads API, PostsPostingan teks 500 karakter, emoji dihitung dalam byte UTF-8
- 10X — Counting characters280 karakter, emoji 2, tautan 23, aksara CJK 2
- 11twitter-text — config/v3.jsonRentang berbobot 1: 0~4351, 8192~8205, 8208~8223, 8242~8247; selain itu 2
- 12TikTok — Content Posting API, Direct Posttitle (caption) maks 2.200 unit UTF-16, hashtag dan mention dipisah spasi atau baris baru
Pertanyaan yang sering diajukan
Kenapa baris kosong hilang saat saya posting ke Instagram?
Banyak aplikasi menghapus spasi di awal dan akhir baris lalu memampatkan spasi beruntun jadi satu ketika menyimpan atau menampilkan teks. Baris yang kosong atau hanya berisi spasi dianggap baris kosong dalam proses ini dan bisa hilang. Kalau baris kosong diisi satu spasi Braille (U+2800) yang bukan karakter spasi, baris itu jadi baris berisi karakter dan besar kemungkinan bertahan. Cara kerja aplikasi sebenarnya tidak dipublikasikan, jadi cek dulu di pratinjau sebelum memposting.
Apa bedanya spasi Braille (U+2800) dengan Hangul Filler (U+3164)?
Spasi Braille digolongkan sebagai simbol (So) di Unicode, dan bukan karakter spasi maupun karakter yang diabaikan secara bawaan. Daftar karakter Unicode menyebut bahwa di banyak font karakter ini digambar sebagai ruang kosong yang punya lebar, tetapi tidak berperilaku seperti spasi. Hangul Filler digolongkan sebagai huruf (Lo), tetapi termasuk karakter yang diabaikan secara bawaan, jadi layanan yang menyaring karakter tak terlihat bisa menghapus atau menolaknya.
Kenapa muncul peringatan kalau saya memilih spasi tanpa putus?
Spasi tanpa putus adalah U+00A0. Lebarnya sama dengan spasi biasa sehingga tampilannya paling mirip, tetapi ia termasuk karakter spasi Unicode (White_Space). Karena itu indentasi hilang saat melewati perapian yang memangkas spasi di awal dan akhir baris, seperti trim di JavaScript, dan spasi ganda menjadi satu spasi saat melewati perapian yang memampatkan spasi beruntun. Peringatan ini memberi tahu risikonya, dan tombolnya mengganti ke spasi Braille.
Apakah menambah karakter tak terlihat membuat jumlah karakter bertambah?
Bisa bertambah. Setiap baris kosong menambah 1 karakter, sementara indentasi malah bisa berkurang karena 2 spasi menjadi 1 spasi Braille. X memberi bobot per karakter, jadi U+2800, U+3164, dan U+3000 dihitung 2, sedangkan U+200B dan U+00A0 dihitung 1. Garis miring di batang jumlah karakter menunjukkan porsi karakter tak terlihat yang ditambahkan.
Bagaimana dengan spasi di antara hashtag?
Saat spasi ganda di tengah baris dikonversi, satu spasi terakhir dibiarkan sebagai spasi biasa. Misalnya 2 spasi di antara '#pagihari' dan '#jalansantai' menjadi 1 spasi Braille dan 1 spasi biasa. Hashtag dan mention dipisahkan oleh spasi atau baris baru, jadi kalau semua spasi diganti karakter tak terlihat, dua tag bisa menempel.
Bagaimana cara menyalin satu karakter tak terlihat saja?
Klik karakter yang kamu mau di kotak karakter spasi di bawah area kerja, dan 1 karakter itu akan tersalin. Setiap kotak mencantumkan lebar menurut font layar, apakah bertahan saat spasi dirapikan, apakah disaring sebagai karakter tak terlihat, dan dihitung berapa di X. Ada layanan yang menolak nama yang tampak kosong, jadi cek dulu aturan layanannya, misalnya untuk nama panggilan.
Bolehkah teks yang sudah dikonversi dimasukkan lagi?
Boleh. Bagian yang hanya berisi karakter spasi pilihan dan karakter seperti spasi Braille tidak diubah lagi, jadi konversi dua kali dengan pengaturan yang sama menghasilkan teks yang sama. Kalau saat mengedit kamu menambah baris kosong atau spasi baru, hanya bagian itu yang diubah lagi.
Apakah teks yang saya masukkan disimpan?
Tidak. Konversi dan penghitungan karakter semuanya berjalan di dalam browser ini, dan teks tidak dikirim ke server atau disimpan di alamat maupun penyimpanan. Tombol tempel hanya membaca papan klip kalau browser mengizinkan.