XML: apa itu, struktur dokumen dan prinsip kerja

Penulis: IT Sectr Diterbitkan: 2026-03-08 Waktu membaca: 8 mnt

XML (eXtensible Markup Language) adalah format teks untuk menyimpan dan mentransmisikan data terstruktur menggunakan tag kustom. Ini banyak digunakan dalam file konfigurasi, layanan web, dan pengembangan Android. Menurut konsorsium W3C, spesifikasi XML tetap menjadi standar yang stabil sejak 2008. XML menyediakan struktur data yang ketat dengan kemungkinan validasi melalui skema.

Poin Utama

  • XML — bahasa markup yang dapat diperluas dengan tag kustom untuk data terstruktur
  • Struktur ketat — tag penutup wajib, elemen root, dan validasi melalui XSD
  • Ruang nama — mekanisme untuk menghindari konflik nama dalam satu dokumen
  • XSLT — transformasi XML ke format lain: HTML, PDF, CSV
  • Pengembangan Android — XML digunakan untuk layout, manifes, dan sumber daya

Apa itu XML?

XML adalah bahasa markup yang mendefinisikan seperangkat aturan untuk mengkodekan dokumen dalam format yang dapat dibaca manusia dan mesin. Tidak seperti HTML, XML tidak memiliki kumpulan tag tetap — pengembang membuat tag sendiri yang sesuai dengan struktur data.

XML dikembangkan oleh konsorsium W3C pada tahun 1996 sebagai subset sederhana dari SGML (Standard Generalized Markup Language). Tujuan utama XML adalah memisahkan konten dan presentasi data. Tidak seperti HTML yang menggambarkan tampilan, XML menggambarkan struktur dan makna data.

Properti utama XML adalah kemampuan perluasannya. Jika tipe data baru muncul dalam proyek, pengembang cukup menambahkan tag baru tanpa mengubah struktur yang ada. Ini membuat XML nyaman untuk penyimpanan data jangka panjang dan pertukaran antar sistem yang berbeda.

Bidang Aplikasi Utama XML

  • Pengembangan Android — file layout, manifes, sumber daya (strings, colors, themes)
  • Konfigurasi — Maven POM, Ant build, konfigurasi web (web.xml)
  • Layanan Web — SOAP, XML-RPC, umpan RSS/Atom
  • Aliran Dokumen — SVG, DocBook, Office Open XML
  • Basis Data — SQL Server (XML type), Oracle, PostgreSQL

Sintaks dan Struktur XML

Sintaks XML lebih ketat daripada HTML. Setiap tag pembuka harus memiliki tag penutup yang sesuai, atribut ditempatkan dalam tanda kutip, nama tag peka terhadap huruf besar/kecil. Dokumen harus memiliki tepat satu elemen root yang berisi semua elemen lainnya.

Dokumen XML dapat dimulai dengan deklarasi yang menunjukkan versi XML dan encoding. Kemudian diikuti elemen root, di dalamnya dapat terdapat elemen bersarang, atribut, konten teks, dan komentar. Elemen kosong ditulis sebagai .

xml
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <book id="bk001">
        <title>XML Developer Guide</title>
        <author>John Smith</author>
        <price currency="USD">29.99</price>
        <published>2026-03-15</published>
    </book>
    <book id="bk002">
        <title>Advanced XML Schemas</title>
        <author>Jane Doe</author>
        <price currency="USD">49.99</price>
        </book>
</catalog>

Aturan XML yang Terbentuk dengan Baik

Well-formed XML harus mematuhi aturan dasar: tag penutup wajib untuk setiap tag pembuka, penyarangan bersifat ketat (persilangan tag dilarang), nilai atribut selalu dalam tanda kutip. Pelanggaran aturan apa pun membuat dokumen tidak valid dan tidak dapat diuraikan.

  1. Satu elemen root — dokumen memiliki tepat satu root
  2. Penyarangan yang benar — tag tidak boleh saling bersilangan
  3. Tag penutup — wajib untuk semua elemen kecuali self-closing
  4. Peka huruf besar/kecil — <Book> dan <book> adalah elemen berbeda
  5. Tanda kutip dalam atribut — nilai atribut dalam tanda kutip ganda atau tunggal

Ruang Nama dan Skema XML

Ruang nama XML (XML Namespaces) memecahkan masalah konflik nama ketika dalam satu dokumen digunakan elemen dari kamus yang berbeda. Ruang nama ditentukan oleh atribut xmlns dengan URI yang secara unik mengidentifikasi kamus.

XML Schema (XSD) adalah bahasa untuk mendeskripsikan struktur dokumen XML. XSD menentukan elemen dan atribut mana yang diizinkan, tipe datanya, kewajiban, dan batasannya. Skema memungkinkan validasi otomatis dokumen sebelum diproses, yang sangat penting untuk solusi integrasi.

Teknologi Tujuan Contoh
DTD Validasi struktur dasar Lama, lebih sedikit kemampuan
XSD Pengetikan ketat dan validasi Standar industri
RELAX NG Alternatif ringkas untuk XSD Lebih sederhana dan lebih mudah dibaca dari XSD
XSLT Transformasi XML ke format lain XML ke HTML, PDF, CSV
XPath Navigasi dan pemilihan node Kueri pada pohon XML

XML dalam Pengembangan Mobile

XML memainkan peran kunci dalam pengembangan Android. Sistem operasi Android menggunakan XML untuk mendeskripsikan antarmuka pengguna (file layout), konfigurasi aplikasi (AndroidManifest.xml), sumber daya (string, warna, tema) dan grafik vektor (VectorDrawable). Di iOS, XML lebih jarang digunakan, terutama untuk Storyboard dan file konfigurasi plist.

Di Android, setiap layar aplikasi dijelaskan oleh file XML dengan hierarki komponen View: ConstraintLayout, LinearLayout, TextView, Button. Pendekatan ini memisahkan logika aplikasi dari presentasi, menyederhanakan pemeliharaan dan adaptasi ke berbagai layar. File XML sumber daya memungkinkan lokalisasi aplikasi tanpa mengubah kode.

Contoh Layout Android

File layout tipikal berisi ConstraintLayout root dengan elemen bersarang, masing-masing memiliki atribut posisi, ukuran, dan gaya. Android mengkompilasi XML ke format biner AXML untuk mengoptimalkan kinerja saat startup.

xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/welcome"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/click"
        app:layout_constraintTop_toBottomOf="@id/title"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Parsing XML di Platform Mobile

Parsing XML di platform mobile dilakukan dengan dua pendekatan utama: DOM (Document Object Model) memuat seluruh dokumen ke memori sebagai pohon, SAX (Simple API for XML) membaca dokumen secara streaming, memanggil penangan peristiwa. DOM nyaman untuk dokumen kecil, SAX — untuk file besar dengan keterbatasan memori.

Di Android tersedia parser bawaan: XmlPullParser untuk analisis streaming dan DocumentBuilder untuk pendekatan DOM. Di iOS digunakan Foundation XMLParser dengan protokol delegasi. Untuk serialisasi objek ke XML sering digunakan pustaka seperti SimpleXML di PHP atau Jackson XML di Java.

Parsing XML di Android (Kotlin)

Di Android disarankan menggunakan XmlPullParser untuk parsing XML yang efisien. Parser bekerja dalam mode peristiwa: memanggil next() untuk berpindah ke elemen berikutnya dan mengembalikan tipe peristiwa (START_TAG, TEXT, END_TAG). Ini memungkinkan pemrosesan dokumen dengan ukuran berapa pun dengan konsumsi memori minimal.

kotlin
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserException
import java.io.IOException

fun parseCatalog(parser: XmlPullParser): List<Book> {
    val books = mutableListOf<Book>()
    var eventType = parser.getEventType()
    var currentBook: Book? = null

    while (eventType != XmlPullParser.END_DOCUMENT) {
        when (eventType) {
            XmlPullParser.START_TAG -> {
                when (parser.getName()) {
                    "book" -> currentBook = Book()
                    "title" -> parser.next()
                    "author" -> parser.next()
                }
            }
            XmlPullParser.TEXT -> {
                currentBook?.apply {
                    title = parser.getText() ?: ""
                }
            }
            XmlPullParser.END_TAG -> {
                if (parser.getName() == "book") {
                    currentBook?.let { books.add(it) }
                }
            }
        }
        eventType = parser.next()
    }
    return books
}

Contoh XML dalam Aplikasi

Contoh penggunaan XML menunjukkan perannya dalam proyek nyata. Selain pengembangan Android, XML digunakan untuk konfigurasi kompilasi, deskripsi data, dan aliran dokumen. Pengetahuan tentang sintaks XML diperlukan untuk bekerja dengan Maven, layanan SOAP, dan banyak alat enterprise.

Konfigurasi Maven (POM)

File pom.xml mendeskripsikan proyek Maven: dependensi, plugin, versi, dan profil kompilasi. Setiap dependensi ditentukan dengan tag groupId, artifactId, dan version. Maven secara otomatis memuat pustaka yang ditentukan dari repositori.

xml
<?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0.0</version>
    <dependencies>
        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>retrofit</artifactId>
            <version>2.9.0</version>
        </dependency>
    </dependencies>
</project>

XML vs JSON: Kapan Memilih Apa

Pilihan antara XML dan JSON tergantung pada kebutuhan spesifik proyek. JSON cocok untuk REST API, aplikasi mobile, dan konfigurasi yang membutuhkan kekompakan dan kecepatan. XML tak tergantikan dalam sistem Enterprise, aliran dokumen, dan pengembangan Android di mana diperlukan validasi ketat, ruang nama, dan transformasi data.

XML unggul dalam skenario penyimpanan dokumen jangka panjang. Berkat skema XSD, dokumen XML dapat divalidasi secara otomatis, yang sangat penting untuk sistem medis, keuangan, dan hukum. Transformasi XSLT memungkinkan pembuatan HTML, PDF, dan format lain dari satu sumber XML, menyederhanakan aliran dokumen.

JSON, pada gilirannya, telah menjadi standar untuk web API dan aplikasi mobile. Kesederhanaan integrasi dengan JavaScript, ukuran lebih kecil, dan kecepatan parsing tinggi menjadikan JSON pilihan utama untuk REST API, pesan WebSocket, dan file konfigurasi. Untuk sebagian besar proyek baru, disarankan memulai dengan JSON dan beralih ke XML hanya jika ada kebutuhan khusus.

Pertanyaan yang Sering Diajukan

Apa perbedaan XML dengan HTML?

XML mendeskripsikan struktur dan konten data, HTML — tampilan dan presentasi. XML memungkinkan pembuatan tag apa pun, HTML memiliki set tetap. XML lebih ketat dalam sintaks: semua tag harus ditutup, HTML mengizinkan tag yang tidak ditutup. XML — untuk data, HTML — untuk tampilan.

Apa itu XSD dan untuk apa?

XSD (XML Schema Definition) adalah bahasa untuk mendeskripsikan struktur dokumen XML. XSD menentukan elemen dan atribut mana yang diizinkan, tipe datanya, kewajiban, dan batasannya. Skema memungkinkan validasi otomatis dokumen XML sebelum diproses, mencegah kesalahan dan menjamin integritas data.

Bagaimana cara parsing XML di Android?

Di Android untuk parsing XML gunakan XmlPullParser — parser streaming bawaan. Ini bekerja dalam mode peristiwa: memproses START_TAG, TEXT, dan END_TAG dalam satu lingkaran, mengelola memori secara efisien. Untuk dokumen kecil, parser DOM melalui DocumentBuilderFactory yang memuat seluruh dokumen ke memori sebagai pohon node cocok digunakan.

Apa perbedaan antara DTD dan XSD?

DTD (Document Type Definition) adalah mekanisme validasi lama dengan kemampuan terbatas: tidak mendukung tipe data (semuanya string) dan ruang nama. XSD adalah pengganti modern dengan dukungan untuk tipe data (angka, tanggal, enumerasi), ruang nama, dan perluasan. XSD sendiri adalah dokumen XML, DTD menggunakan sintaksnya sendiri.

Mengapa ruang nama diperlukan dalam XML?

Ruang nama mencegah konflik nama ketika dokumen XML menggabungkan elemen dari sumber berbeda. Misalnya, dalam layout Android, tag View bisa berasal dari android.view maupun dari pustaka. Atribut xmlns dengan URI secara unik mengidentifikasi sumber setiap elemen dan atribut.

Ringkasan

  • XML — bahasa markup yang dapat diperluas dengan tag kustom untuk data terstruktur
  • Sintaks ketat — tag penutup wajib, elemen root, peka huruf besar/kecil
  • Ruang nama dan skema XSD memastikan validasi dan mencegah konflik nama
  • Android menggunakan XML untuk antarmuka, sumber daya, dan konfigurasi aplikasi
  • Parsing dilakukan melalui XmlPullParser (streaming) atau DOM (ke memori)
  • XSLT memungkinkan transformasi XML ke HTML, PDF, dan format lainnya
  • Popularitas lebih rendah di REST API kalah dari JSON, tetapi XML tak tergantikan di Enterprise dan Android

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga