← Kembali ke Blog

Cara Memformat JSON: Panduan Pretty Print dan Beautify 2026

Pelajari cara memformat dan mempercantik JSON menggunakan alat baris perintah, editor kode, pemformat online, dan bahasa pemrograman. Panduan lengkap dengan contoh.

Big JSON Team10 menit bacatools
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

10 min read

# Cara Memformat JSON: Panduan Pretty Print dan Beautify

Memformat JSON dengan benar sangat penting untuk keterbacaan dan debugging. Baik Anda sedang mengerjakan tanggapan API, file konfigurasi, atau ekspor data, panduan komprehensif ini akan menunjukkan kepada Anda setiap metode untuk memformat dan mempercantik JSON di tahun 2026.

Mengapa Memformat JSON?

Keterbacaan

Diminimalkan (sulit dibaca):
{"name":"John","age":30,"address":{"street":"123 Main St","city":"NYC"},"hobbies":["membaca","coding"]}
Diformat (mudah dibaca):
{

"name": "John",

"age": 30,

"address": {

"street": "123 Main St",

"city": "NYC"

},

"hobbies": [

"membaca",

"coding"

]

}

Debugging

JSON yang diformat mempermudah untuk:

  • Menemukan kesalahan sintaksis
  • Mengidentifikasi koma yang hilang
  • Memverifikasi struktur data
  • Melacak masalah

Kontrol Versi

JSON yang diformat dengan benar menghasilkan diff yang lebih bersih di Git.

Metode 1: Pemformat JSON Online

Big JSON Viewer

Cepat, menangani file besar:

  • Kunjungi Big JSON Viewer
  • Tempel atau unggah JSON
  • Klik "Format"
  • Salin hasil yang diformat
  • JSONLint

    Memvalidasi dan memformat:

  • Buka jsonlint.com
  • Tempel JSON
  • Klik "Validate JSON"
  • Dapatkan output yang diformat
  • JSON Formatter

    Sederhana dan cepat:

  • Kunjungi jsonformatter.org
  • Tempel konten
  • Format otomatis secara instan
  • Metode 2: Alat Command Line

    Menggunakan jq

    Pemroses JSON baris perintah yang paling kuat:

    # Format file JSON
    

    jq . input.json

    # Format dan simpan

    jq . input.json > formatted.json

    # Format dengan indentasi 4 spasi

    jq --indent 4 . input.json

    # Format dari tanggapan API

    curl https://api.example.com/data | jq .

    # Ringkas (minify)

    jq -c . input.json

    Instalasi:
    # macOS
    

    brew install jq

    # Ubuntu/Debian

    sudo apt-get install jq

    # Windows (dengan Chocolatey)

    choco install jq

    Menggunakan Python

    Alat bawaan:

    # Format file JSON (indentasi 2 spasi)
    

    python -m json.tool input.json

    # Format dengan indentasi kustom

    python -m json.tool --indent 4 input.json > formatted.json

    # Format dari stdin

    echo '{"name":"John","age":30}' | python -m json.tool

    Menggunakan Node.js

    Satu baris cepat:

    # Format file JSON
    

    node -e "console.log(JSON.stringify(require('./input.json'), null, 2))"

    # Dari string

    node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 2))" '{"a":1,"b":2}'

    Metode 3: Editor Kode

    Visual Studio Code

    Pemformat Bawaan:
  • Buka file JSON
  • Tekan Shift + Alt + F (Windows/Linux)
  • Atau Shift + Option + F (Mac)
  • Atau klik kanan → "Format Document"
  • Konfigurasi settings.json:
    {
    

    "editor.formatOnSave": true,

    "editor.tabSize": 2,

    "[json]": {

    "editor.defaultFormatter": "vscode.json-language-features",

    "editor.formatOnSave": true

    }

    }

    Command Palette:
  • Tekan Ctrl + Shift + P (Windows/Linux) atau Cmd + Shift + P (Mac)
  • Ketik "Format Document"
  • Tekan Enter
  • Sublime Text

    Menggunakan Paket:
  • Instal paket "Pretty JSON"
  • Tekan Ctrl + Alt + J untuk memformat
  • Atau gunakan Command Palette → "Pretty JSON: Format"
  • Vim

    Menggunakan bawaan:
    :%!jq .
    Atau dengan Python:
    :%!python -m json.tool

    Metode 4: Bahasa Pemrograman

    JavaScript/Node.js

    // Format dengan indentasi 2 spasi
    

    const data = {name: "John", age: 30, city: "NYC"};

    const formatted = JSON.stringify(data, null, 2);

    console.log(formatted);

    // Format dari string

    const jsonString = '{"name":"John","age":30}';

    const parsed = JSON.parse(jsonString);

    const pretty = JSON.stringify(parsed, null, 2);

    // Baca file dan format

    const fs = require('fs');

    const rawData = fs.readFileSync('input.json');

    const jsonData = JSON.parse(rawData);

    const formatted = JSON.stringify(jsonData, null, 2);

    fs.writeFileSync('output.json', formatted);

    Indentasi Kustom:
    // 4 spasi
    

    JSON.stringify(data, null, 4);

    // Karakter tab

    JSON.stringify(data, null, '\t');

    // String kustom

    JSON.stringify(data, null, ' ');

    Python

    import json
    
    

    # Format dictionary

    data = {"name": "John", "age": 30, "city": "NYC"}

    formatted = json.dumps(data, indent=2)

    print(formatted)

    # Format dari string

    json_string = '{"name":"John","age":30}'

    parsed = json.loads(json_string)

    pretty = json.dumps(parsed, indent=2)

    # Baca dan format file

    with open('input.json', 'r') as f:

    data = json.load(f)

    with open('output.json', 'w') as f:

    json.dump(data, f, indent=2)

    # Urutkan kunci secara alfabetis

    formatted = json.dumps(data, indent=2, sort_keys=True)

    # Pastikan ASCII (escape unicode)

    formatted = json.dumps(data, indent=2, ensure_ascii=True)

    PHP

    <?php
    

    $data = array(

    "name" => "John",

    "age" => 30,

    "city" => "NYC"

    );

    // Format dengan pretty print

    $formatted = json_encode($data, JSON_PRETTY_PRINT);

    echo $formatted;

    // Opsi tambahan

    $formatted = json_encode($data,

    JSON_PRETTY_PRINT |

    JSON_UNESCAPED_SLASHES |

    JSON_UNESCAPED_UNICODE

    );

    // Baca dan format file

    $jsonString = file_get_contents('input.json');

    $data = json_decode($jsonString, true);

    $formatted = json_encode($data, JSON_PRETTY_PRINT);

    file_put_contents('output.json', $formatted);

    ?>

    Java

    import com.google.gson.Gson;
    

    import com.google.gson.GsonBuilder;

    public class JsonFormatter {

    public static void main(String[] args) {

    // Buat instance Gson dengan pretty printing

    Gson gson = new GsonBuilder()

    .setPrettyPrinting()

    .create();

    // Format objek

    Person person = new Person("John", 30);

    String formatted = gson.toJson(person);

    System.out.println(formatted);

    // Format dari string

    String jsonString = "{\"name\":\"John\",\"age\":30}";

    Object obj = gson.fromJson(jsonString, Object.class);

    String pretty = gson.toJson(obj);

    }

    }

    C#

    using System;
    

    using Newtonsoft.Json;

    using Newtonsoft.Json.Linq;

    class Program

    {

    static void Main()

    {

    // Format objek

    var person = new { Name = "John", Age = 30 };

    string formatted = JsonConvert.SerializeObject(person,

    Formatting.Indented);

    Console.WriteLine(formatted);

    // Format dari string

    string jsonString = "{\"name\":\"John\",\"age\":30}";

    JObject obj = JObject.Parse(jsonString);

    string pretty = obj.ToString(Formatting.Indented);

    }

    }

    Metode 5: Browser DevTools

    Chrome/Edge DevTools

  • Buka DevTools (F12)
  • Buka Console
  • Tempel string JSON
  • Ini akan terformat otomatis saat ditampilkan
  • Atau gunakan Console:

    // Format di console
    

    const data = '{"name":"John","age":30}';

    console.log(JSON.parse(data));

    // Atau

    copy(JSON.stringify(JSON.parse(data), null, 2));

    // Kemudian tempel JSON yang sudah diformat

    Firefox DevTools

    Mirip dengan Chrome, dengan pemformatan JSON otomatis di tab Network.

    Opsi Pemformatan Tingkat Lanjut

    Fungsi Replacer Kustom

    const data = {
    

    name: "John",

    password: "rahasia123",

    age: 30,

    createdAt: new Date()

    };

    // Sembunyikan data sensitif dan format tanggal

    const formatted = JSON.stringify(data, (key, value) => {

    if (key === 'password') return '';

    if (value instanceof Date) return value.toISOString();

    return value;

    }, 2);

    Mengurutkan Kunci

    function sortKeys(obj) {
    

    if (typeof obj !== 'object' || obj === null) return obj;

    if (Array.isArray(obj)) return obj.map(sortKeys);

    return Object.keys(obj)

    .sort()

    .reduce((sorted, key) => {

    sorted[key] = sortKeys(obj[key]);

    return sorted;

    }, {});

    }

    const formatted = JSON.stringify(sortKeys(data), null, 2);

    Indentasi Kustom

    import json
    
    

    # Lebar indentasi kustom

    json.dumps(data, indent=4) # 4 spasi

    # Indentasi tab

    json.dumps(data, indent='\t')

    # Pemisah kustom

    json.dumps(data, indent=2, separators=(',', ': '))

    Minify vs. Beautify

    Kapan Harus Me-minify

    Produksi:

    • Mengurangi ukuran file
    • Transmisi lebih cepat
    • Biaya bandwidth lebih rendah

    # Minify dengan jq
    

    jq -c . input.json > minified.json

    // Minify di JavaScript
    

    JSON.stringify(data); // Tanpa spasi

    Kapan Harus Me-beautify

    Pengembangan:

    • Keterbacaan yang lebih baik
    • Debugging lebih mudah
    • Peninjauan kode (code review)

    Dokumentasi:

    • Contoh dalam dokumen
    • Templat konfigurasi

    Pemformatan Massal (Batch)

    Memformat Banyak File

    Script Bash:

    #!/bin/bash
    

    for file in .json; do

    jq . "$file" > "formatted_$file"

    done

    Script Python:
    import json
    

    import os

    import glob

    for filepath in glob.glob('.json'):

    with open(filepath, 'r') as f:

    data = json.load(f)

    with open(filepath, 'w') as f:

    json.dump(data, f, indent=2)

    Git Pre-commit Hook

    Memformat JSON secara otomatis sebelum commit:

    #!/bin/bash
    

    # .git/hooks/pre-commit

    for file in $(git diff --cached --name-only | grep -E '\.json$'); do

    jq . "$file" > "$file.tmp" && mv "$file.tmp" "$file"

    git add "$file"

    done

    Masalah Pemformatan Umum

    Masalah 1: JSON Tidak Valid

    Pemformat akan gagal jika JSON tidak valid:

    {
    

    "name": "John", // Komentar tidak diperbolehkan

    'age': 30, // Kutip tunggal tidak diperbolehkan

    "city": "NYC", // Koma di akhir tidak diperbolehkan

    }

    Solusi: Gunakan validator terlebih dahulu (JSONLint, jq).

    Masalah 2: File Besar

    File besar dapat membuat pemformat online macet.

    Solusi: Gunakan alat baris perintah:
    jq . large-file.json > formatted.json

    Masalah 3: Pengkodean Karakter

    Karakter Unicode mungkin ditampilkan secara tidak benar.

    Solusi: Pastikan pengkodean UTF-8:
    with open('file.json', 'r', encoding='utf-8') as f:
    

    data = json.load(f)

    Praktik Terbaik

    1. Indentasi Konsisten

    Pilih 2 atau 4 spasi dan patuhi di seluruh proyek Anda.

    2. Panjang Baris

    Usahakan baris tetap di bawah 80-120 karakter jika memungkinkan.

    3. Kunci Berurutan Abjad

    Urutkan kunci secara alfabetis untuk perbandingan yang lebih mudah.

    4. Format Sebelum Commit

    Selalu format JSON sebelum melakukan commit ke kontrol versi.

    5. Gunakan EditorConfig

    # .editorconfig
    

    [.json]

    indent_style = space

    indent_size = 2

    end_of_line = lf

    charset = utf-8

    trim_trailing_whitespace = true

    insert_final_newline = true

    Kesimpulan

    Memformat JSON adalah keterampilan dasar bagi pengembang. Baik Anda lebih suka alat online, utilitas baris perintah, atau fitur bawaan bahasa pemrograman, ada metode yang sesuai dengan alur kerja Anda.

    Untuk tugas cepat, gunakan pemformat online atau Browser DevTools. Untuk otomatisasi dan file besar, gunakan alat baris perintah seperti jq. Untuk integrasi ke dalam kode Anda, gunakan pustaka JSON khusus bahasa pemrograman.

    Ingat: JSON yang diformat lebih mudah dibaca, di-debug, dan dipelihara. Jadikan pemformatan sebagai kebiasaan dalam alur kerja pengembangan Anda.

    Share:

    Artikel Terkait

    Read in English