Komponen HTML5 yang Wajib Diketahui

Repost dari artikel saya di PC Mild 02/2011

Perkembangan standart bahasa markup website menuju HTML5 sudah ditunggu-tunggu developer web seluruh dunia. Meskipun belum dirilis secara resmi, banyak fitur HTML5 yang sudah diimplementasikan oleh browser-browser besar seperti Mozilla Firefox, Opera, Safari, dan Google Chrome. Ada baiknya Anda mengetahui fitur-fitur yang pastinya akan banyak dipakai di dunia Internet masa datang ini.

Berikut ini adalah beberapa hal tentang HTML5 yang wajib Anda ketahui jika Anda ingin menjadi developer web yang handal.

  1. Deklarasi doctype baru. Sebelum membuat sebuah halaman dengan HTML5, tentu saja doctype yang digunakan juga harus benar. Doctype pada HTML5 jauh lebih sederhana daripada XHTML, sehingga Anda tidak perlu menghafalnya. Pada doctype untuk XHTML 1.0, Anda harus menuliskannya dengan panjang.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    Sedangkan pada HTML5, doctype tersebut disederhanakan menjadi

    <!DOCTYPE html>
  2. Struktur semantic. Pada XHTML, programmer HTML bisa saja menjadi pembuat stress programmer CSS karena struktur halaman yang dibuatnya. Harus ada kesepakatan penamaan yang solid antara kedua pihak agar tidak ada masalah pembacaan struktur halaman. Biasanya, dalam XHTML akan dibuat sebuah “div” dengan id-nya masing-masing, seperti pada gambar.
    Struktur tersebut tidak terlihat semantic, sulit dibaca dan dideskripsikan, serta bagi programmer HTML yang iseng, bisa saja id header diubah sesukanya. HTML5 menawarkan elemen-elemen yang umum digunakan dalam sebuah struktur halaman website. Sehingga, penulisan tag setiap elemen dapat terlihat lebih semantic dan mudah dibaca, seperti pada gambar.
    Dalam penulisan kode, dapat ditulis sebagai berikut.

    <body>
      <header>...</header>
      <nav>...</nav>
      <article>
        <section>
          ...
        </section>
      </article>
      <aside>...</aside>
      <footer>...</footer>
    </body>
    

    Banyak manfaat jika menggunakan struktur seperti ini. Elemen “header” merepresentasikan header dari suatu section. Elemen “footer” juga merepresentasikan footer dari suatu section. Elemen “nav” cocok digunakan untuk merepresentasikan link navigasi. Sedangkan elemen “section” merepresentasikan suatu bagian generic dari dokumen.

  3. Contenteditable. Yaitu atribut baru dari HTML5 yang memungkinkan sebuah elemen untuk dimodifikasi langsung pada tampilan. Contoh sederhananya:
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <title>Judul</title>
      </head>
      <body>
        <h2>Daftar barang piknik</h2>
        <ul contenteditable="true">
          <li>Jas hujan</li>
          <li>Tenda</li>
          <li>Air minum</li>
        </ul>
      </body>
    </html>
    

    Hasil tampilan dari kode di atas adalah memungkinkan untuk penambahan list dalam tag “ul” yang telah diberikan atribut tersebut. Jika dikombinasikan dengan sedikit Javascript, fitur ini bisa menghasilkan sebuah mekanisme input yang cukup powerful namun mudah untuk dibuat.

  4. Validasi email. Dengan validasi langsung di tampilan, Anda dapat mencegah seorang user untuk memanggil script website dengan input yang salah. Ini dapat mengurangi jumlah request yang tidak valid terhadap script program Anda. HTML5 menawarkan fitur validasi email secara langsung dengan mengubay type dari elemen input menjadi “email”. Sayangnya, masih belum semua browser memberikan support untuk fitur ini. Dari percobaan penulis, salah satu browser yang memiliki fitur ini adalah Opera.
    <form action="" method="post">
      <label for="email">Email:</label>
      <input id="email" type="email" name="email" />
      <button type="submit">OK</button>
    </form>
    

  5. Atribut required. Satu lagi untuk input pada HTML5, memungkinkan validasi pada sisi client terhadap input yang harus diisi. Dengan demikian, Anda tidak perlu membuat fungsi javascript untuk melakukannya. Cukup menambahkan atribut “required” pada elemen “input”. Jika tombol submit ditekan, akan muncul pesan error.
    <form method="post" action="">
      <label for="someInput">Nama:</label>
      <input type="text" id="someInput" name="someInput" placeholder="Muhammad Fauzil Haqqi" required>
      <button type="submit">Go</button>
    </form>
    

  6. Internet Explorer Hack. Seperti biasanya, Internet Explorer selalu terlambat dalam mengimplementasikan teknologi website terbaru, meski Microsoft selalu memiliki teknologi sendiri seperti silverlight untuk browsernya tersebut. Pada IE, secara default semua elemen akan ditampilkan secara “inline”. Untuk itu, Anda harus mendeklarasikan style tersendiri agar tampilan dapat seperti seharusnya, seperti berikut ini.
    header, footer, article, section, nav, menu, hgroup {
      display: block;
    }
    

    Meskipun demikian IE tetap tidak menghiraukan style tersebut. Anda harus membuat javascript di bawah ini ke dalam “head” dari setiap halaman.

    document.createElement("article");
    document.createElement("footer");
    document.createElement("header");
    document.createElement("hgroup");
    document.createElement("nav");
    document.createElement("menu");
    

    Untuk kemudahan, seseorang bernama Remy Sharp telah membuat library javascript untuk mengatasi error yang dibuat oleh IE tersebut. Script ini biasa disebut dengan HTML5 shim. Anda bisa memasukkan kode di bawah ini ke dalam head halaman website Anda, atau mendownload script tersebut secara lokal.

    <!--[if IE]>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    
  7. Masih banyak elemen html5 lainnya seperti canvas, video, audio, mark, dan sebagainya. Setiap elemen akan berperilaku berbeda di setiap browser, karena memang standart resimnya belum dikeluarkan oleh W3C. Untuk melihat kompatibilitas browser terhadap HTML5 dan CSS3, Anda bisa mengunjungi halaman http://www.findmebyip.com/litmus.

Download source code keseluruhan.Artikel ini telah dipublikasikan di media cetak tabloid PC Mild edisi 02 tahun 2011 lalu.