XML DAN XML PADA ANDROID

Pengantar XML
XML singkatan dari eXtended Markup Language adalah bahasa markup yang digunakan untuk menyimpan data (tidak ada program) dan tidak tergantung dengan tools tertentu (seperti editor, dbms, compiler, dsb).
XML merupakan suatu bahasa Markup. Markup yaitu bahasa yang berisikan kode-kode berupa tanda-tanda tertentu dengan aturan tertentu untuk memformat dokumen teks dengan tag sendiri agar dapat dimengerti.
Pada android XML digunakan untuk merancang interface pada sebuah program yang akan dibuat.

 Sejarah XML
XML didesain oleh sebuah kelompok kerja yang terdiri dari 11 orang. Kelompok tersebut mendapat dukungan dari 150 orang di luar kelompok tersebut. Pemimpin bidang teknis tim sebelas, James Clark, menyumbangkan elemen empty “>”, dan nama XML itu sendiri. Nama-nama lain yang sempat diusulkan antara lain MAGMA (Minimal Architecture for Generalized Markup Applications), SLIM (Structured Language for Internet Markup), dan MGML ( Minimal Generalized Markup Language). Pada 10 Februari 1998, XML 1.0 direkomendasikan secara resmi oleh W3C.XML 1.0 merupakan pencapaian tim sebelas dalam mendesain markup language untuk tujuan penggunaan di Internet, yang serba guna, dan kompetibel dengan SGML. Selain itu, XML 1.0 juga mendukung pengembangan software yang memprosesnya, meminimalisasi fitur-fitur opsional, terbaca oleh manusia, singkat, padat, dan mudah untuk ditulis.Sampai artikel ini ditulis, telah dilakukan kali ketiga perbaikan minor pada XML 1.0 perbaikan kedua menghasilkan XML 1.1, yang kini telah menjalani satu kali perbaikan. Pada 16 Agustus 2006 yang lalu, XML 1.0 Fourth Edition, dan XML 1.1 Second Edition dipublikasikan. Keduanya dianggap sebagai versi terakhir XML yang ada sekarang.
 
Kegunaan XML
XML didesain sebagai solusi interoperabilitas antar software dari platform yang berbeda. Misalnya software A berjalan diatas platform Java, ingin berbagi informasi dengan software yang berjalan di atas platform .NET. software A akan membaca request dari software B dalam format XML.Atau bisa jadi software A menyediakan informasi yang sudah dikemas dalam fomat XML, yang dapat dimanfaatkan oleh software B, C, D, dan seterusnya. Untuk mengakses informasi dalam format XML ini, digunakan tool yang bersifat web service. Contoh yang paling sederhana dari interoprabilitas menggunakan XML ini adalah RSS feed dan aggregator. Saat ini banyak website berita dan blog yang menyediakan informasi yang dikemas dalam format XML, atau dikenal dengan nama RSS feed. Website lain atau aplikasi desktop yang disebut dengan aggregator dapat memanfaatkan informasi ini melalui web service, yakni HTTP, untuk membaca file XML, dan menampilkannya. XML merupakan markup language. Namun, berbeda dengan HTML yang memerintahkan web browser bagaimana menampilkan informasi, XML menandai informasi secara terstruktur sehingga memudahkan aplikasi lain mengekstrak, dan menggunakannya.Seperti halnya HTML, XML juga menggunakan tag-tag. Jika tag-tag pada HTML bersifat baku, tag-tag XML dapat dibuat sendiri, sesuai dengan kebutuhan. Untuk memudahkan aplikasi membaca tag-tag apa saja yang memuat informasi serta struktur hirarkinnya, XML 1.0 dilengkapi dengan DTD ( Document Type Definition) yang terletak pada bagian header file. Untuk menutup kekurangan pada DTD, XML 1.1 mengganti DTD dengan XSD (XML Schema Definition) yang lebih powerful dalam menggambarkan struktur file XML.

Struktur Dokumen XML
Struktur penulisan kode XML, terdiri dari beberapa bagian: 
 
  1. Deklarasi: Adalah bagian penting dalam XML, biasanya digunakan untuk menentukan versi XML yang akan digunakan.

<?xml version="1.0"?>

  1. Elemen: berisi tag-tag yang mendefinisikan sebuah data objek.
  2. Atribut: berisi keterangan tambahan dari objek.

Pada XML, kita bebas membuat nama tag dan setiap tag harus ditutup meskipun tidak memiliki isi.
Contoh:
<?xml version="1.0"?>
<belajar materi="Pengenalan XML untuk Pemula" pengajar="Petani Kode"></belajar>
<aku nama="petani kode" pekerjaan="petani" hobi="coding" />
Data Elemen Objek dan Array di XML
Objek adalah jenis data yang menyimpan properti dan method. Pada XML, kita tidak bisa menyimpan method.
Karena itu, objek dalam XML adalah elemen yang hanya menyimpan properti saja.
Contoh Objek:
<mahasiswa nama="Dian" nim="12345678" semester="IV" />
Array adalah jenis data yang berisi kumpulan dari beberapa data. Array biasanya memiliki indeks untuk mengakses data di dalamnya.
Array pada XML dapat kita buat dengan cara membuat elemn dengan nama yang sama.
Contoh:
<members>
    <user>Dian</user>
    <user>Doni</user>
    <user>Desi</user>
    <user>Dani</user>
</members>
atau bisa juga seperti ini:
<members>
    <user id="1" name="Dian" />
    <user id="2" name="Doni" />
    <user id="3" name="Desi" />
    <user id="4" name="Dani" />
</members>

XML pada Android
          Dengan menggunakan kosakata XML Android, Anda bisa mendesain secara cepat layout UI dan elemen layar yang dimuatnya, sama dengan cara membuat laman web dalam HTML — dengan serangkaian elemen tersarang.
Tiap file layout harus berisi persis satu elemen akar, yang harus berupa sebuah objek View atau ViewGroup. Setelah mendefinisikan elemen akar, Anda bisa menambahkan objek atau widget layout tambahan sebagai elemen anak untuk membangun hierarki View yang mendefinisikan layout Anda secara bertahap. Misalnya, inilah layout XML yang menggunakan LinearLayout vertikal untuk menyimpan TextView dan Button:
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

              android:layout_width="match_parent"

              android:layout_height="match_parent"

              android:orientation="vertical" >

    <TextView android:id="@+id/text"

              android:layout_width="wrap_content"

              android:layout_height="wrap_content"

              android:text="Hello, I am a TextView" />

    <Button android:id="@+id/button"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="Hello, I am a Button" />

</LinearLayout>
Setelah Anda mendeklarasikan layout dalam XML, simpan file dengan ekstensi .xml, dalam direktori res/layout/ project Android, sehingga nanti bisa dikompilasi dengan benar.
Informasi selengkapnya tentang sintaks untuk file XML layout tersedia dalam dokumen Sumber Daya Layout.

Muat Sumber Daya XML

         Saat mengompilasi aplikasi, masing-masing file layout XML akan dikompilasi dalam sumber daya View. Anda harus memuat sumber daya layout dari kode aplikasi Anda, pada implementasi callback Activity.onCreate(). Lakukan hal tersebut dengan memanggil setContentView(), memberikannya referensi ke sumber daya layout dalam bentuk: R.layout.layout_file_name. Misalnya, jika layout XML disimpan sebagai main_layout.xml, Anda akan memuatnya untuk Aktivitas Anda seperti:
fun onCreate(savedInstanceState: Bundle) {     super.onCreate(savedInstanceState)     setContentView(R.layout.main_layout) }
Metode callback onCreate() dalam Aktivitas dipanggil oleh framework Android saat Aktivitas Anda dijalankan (lihat diskusi tentang daur hidup, dalam dokumen Aktivitas).

Atribut

       Setiap objek Tampilan dan ViewGroup mendukung ragam atribut XML miliknya sendiri. Beberapa atribut bersifat khusus untuk objek Tampilan (misalnya, TextView mendukung atribut textSize), tetapi atribut ini juga diwarisi oleh objek Tampilan apa pun yang dapat memperluas kelas ini. Sebagian bersifat umum untuk semua objek Tampilan, karena diwarisi dari kelas Tampilan root (seperti atribut id). Dan, atribut lain dianggap sebagai "parameter layout" yaitu atribut yang menjelaskan orientasi layout tertentu dari objek Tampilan, seperti yang didefinisikan oleh objek ViewGroup induk dari objek itu.

ID

      Setiap objek Tampilan mungkin memiliki ID integer yang terhubung dengannya, untuk mengidentifikasi tampilan secara unik di dalam struktur pohon. Saat aplikasi dikompilasi, ID ini dirujuk sebagai integer, tetapi ID-nya biasanya ditetapkan dalam file XML layout sebagai string, pada atribut id. Ini adalah atribut XML yang umum untuk semua objek Tampilan (didefinisikan oleh kelas View) dan Anda akan sering menggunakannya. Sintaks untuk ID, di dalam tag XML adalah:
android:id="@+id/my_button"
          Simbol-at (@) pada awal string menunjukkan parser XML harus mengurai dan memperluas ID string selebihnya dan mengenalinya sebagai ID sumber daya. Simbol tanda tambah (+) berarti ini nama sumber daya baru yang harus dibuat dan ditambahkan ke sumber daya kita (dalam file R.java). Ada sejumlah sumber daya ID lain yang ditawarkan oleh framework Android. Saat merujuk pada sebuah ID sumber daya Android, Anda tidak memerlukan simbol tanda tambah, tetapi harus menambahkan namespace paket android, sehingga:
android:id="@android:id/empty"
Dengan namespace paket android yang tersedia, kita sekarang merujuk pada ID dari kelas sumber daya android.R, daripada kelas sumber daya lokal.
Untuk membuat tampilan dan merujuknya dari aplikasi, pola yang umum adalah:
  1. Mendefinisikan tampilan/widget dalam file layout dan memberinya ID unik:
<Button android:id="@+id/my_button"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/my_button_text"/>
Kemudian buat instance objek tampilan dan tangkap instance tersebut dari layout (biasanya dalam metode onCreate()):
val myButton: Button = findViewById(R.id.my_button)
  1.  
         Menentukan ID untuk objek tampilan sifatnya penting saat membuat RelativeLayout. Dalam layout relatif, tampilan saudara bisa mendefinisikan layout secara relatif terhadap tampilan saudara lainnya, yang dirujuk melalui ID unik.
ID tidak perlu unik di seluruh pohon, namun harus unik di bagian pohon yang Anda cari (yang mungkin sering kali seluruh pohon, jadi lebih baik benar-benar unik jika memungkinkan).

Parameter Layout

        Atribut layout XML bernama layout_something mendefinisikan parameter layout Tampilan yang cocok untuk ViewGroup tempatnya berada.
Setiap kelas ViewGroup mengimplementasikan kelas bertumpuk yang memperluas ViewGroup.LayoutParams. Subkelas ini berisi tipe properti yang mendefinisikan ukuran dan posisi masing-masing tampilan anak, sebagaimana mestinya untuk grup tampilan. Seperti yang bisa Anda lihat dalam gambar 2, grup tampilan induk mendefinisikan parameter layout untuk masing-masing tampilan anak (termasuk grup tampilan anak).

Gambar 2. Visualisasi hierarki tampilan dengan parameter layout yang dikaitkan dengan setiap tampilan.

         Perhatikan bahwa setiap subkelas LayoutParams memiliki sintaksnya sendiri untuk menetapkan nilai-nilai. Tiap elemen anak harus mendefinisikan LayoutParams yang semestinya untuk induknya, meskipun elemen itu bisa juga mendefinisikan LayoutParams untuk anak-anaknya sendiri.
Semua grup tampilan berisi lebar dan tinggi (layout_width dan layout_height), dan masing-masing tampilan harus mendefinisikannya. Banyak LayoutParams yang juga menyertakan margin dan border opsional.
        Anda bisa menetapkan lebar dan tinggi dengan ukuran persis, meskipun Anda mungkin tidak ingin sering-sering melakukannya. Seringnya, Anda akan menggunakan salah satu konstanta ini untuk mengatur lebar atau tinggi:
  • wrap_content memberi tahu tampilan Anda agar menyesuaikan sendiri ukurannya dengan dimensi yang dibutuhkan oleh kontennya.
  • match_parent memberi tahu tampilan Anda agar menjadi sebesar yang akan diperbolehkan oleh kelompok tampilan induknya.
Secara umum, menetapkan lebar dan tinggi layout dengan satuan mutlak seperti piksel tidak disarankan. Sebagai gantinya, menggunakan pengukuran relatif seperti satuan piksel yang tidak bergantung pada kerapatan (dp), wrap_content, atau match_parent, adalah sebuah pendekatan yang lebih baik, karena membantu memastikan bahwa aplikasi Anda akan ditampilkan dengan tepat pada berbagai ukuran layar perangkat. 


Sumber : 
https://noviaasrumiati.wordpress.com/2013/06/06/pengertian-xml/
https://developer.android.com/guide/topics/ui/declaring-layout?hl=id

 


Posting Komentar

0 Komentar