HTML DOM #1 Yosef Murya Kusuma Ardhana. ST., M.Kom HTML ? ▪ HTML merupakan Language. singkatan dari Hypertext Markup ▪ HTML adalah sekumpulan text atau file ASCII yang berisi intruksi atau perintah program untuk web browser untuk menampilkan tampilan grafis sebuah halaman website. ▪ HTML merupakan suatu bahasa yang dikenali oleh web browser untuk menampilkan informasi seperti teks, gambar, suara, animasi bahkan video. HTML ? ▪ Kode HTML memiliki aturan dan struktur penulisan tersendiri yang disebut tag HTML. ▪ Tag adalah kode yang digunakan untuk memoles (mark-up) teks ASCII (American Standard Code for Information Interchange) menjadi file HTML. ▪ Setiap tag diapit dengan tanda kurung runcing. Ada tag pembuka yaitu <HTML> dan ada tag penutup yaitu </HTML> yang ditandai dengan tanda garis miring (slash) di depan awal tulisannya. DOM ? ▪ HTML DOM mendefinisikan standar untuk mengakses dan memanipulasi dokumen HTML. ▪ DOM adalah perintah standar (World Wide Web Consortium) W3C. ▪ DOM mendefinisikan standar untuk mengakses dokumen HTML dan XML: "W3C Document Object Model (DOM) adalah sebuah platform dan bahasa-netral antarmuka yang memungkinkan program dan script atau sintaks yang secara dinamis mengakses dan memperbarui konten, struktur, dan gaya dari sebuah dokumen." DOM ? W3C DOM standar dipisahkan menjadi 3 bagian yang berbeda: ▪ DOM Core - model standar untuk dokumen terstruktur ▪ XML DOM - model standar untuk dokumen XML ▪ HTML DOM - model standar untuk dokumen HTML HTML DOM? HTML DOM adalah: ▪ Sebuah model objek standar untuk HTML ▪ Sebuah antarmuka pemrograman standar untuk HTML ▪ Sebuah standar W3C HTML DOM? ▪ HTML DOM mendefinisikan objek dan properti dari semua elemen HTML, dan metode untuk mengaksesnya. Dengan kata lain: HTML DOM adalah standar untuk bagaimana untuk mendapatkan, mengubah, menambah, atau menghapus elemen HTML. HTML DOM Nodes Dalam HTML DOM, semuanya node. DOM HTML dipandang sebagai pohon node. DOM Nodes ▪ Menurut standar W3C HTML DOM, segala sesuatu dalam dokumen HTML adalah node: ▪ ▪ ▪ ▪ ▪ Seluruh dokumen adalah node dokumen Setiap elemen HTML adalah node elemen Teks di dalam elemen HTML node teks Setiap atribut HTML adalah node atribut Komentar adalah node komentar HTML DOM Nodes ▪ HTML DOM Node Pohon HTML DOM memandang dokumen HTML sebagai struktur pohon. Struktur ini disebut Pohon Node: HTML DOM Nodes ▪ Dengan HTML DOM, semua node dalam pohon dapat diakses oleh JavaScript. Semua elemen HTML (node) dapat dimodifikasi, dan node dapat dibuat atau dihapus. Node Parent (Orangtua), Children (Anak), dan Siblings (Saudara) ▪ Node dalam pohon node memiliki hubungan hirarki satu sama lain. HTML DOM Nodes ▪ Istilah parent, children, dan siblings yang digunakan untuk menggambarkan hubungan. Node parent memiliki children. Children pada tingkat yang sama disebut siblings (brothers and sisters). ▪ Dalam pohon node, node atas disebut root ▪ Setiap node memiliki tepat satu parent, kecuali root (yang tidak memiliki parent) ▪ Sebuah node dapat memiliki sejumlah children ▪ Siblings adalah node dengan parent yang sama HTML DOM Nodes ▪ Gambar berikut mengilustrasikan bagian dari pohon simpul dan hubungan antara node: HTML DOM Nodes ▪ Gambar berikut mengilustrasikan bagian dari pohon simpul dan hubungan antara node: HTML DOM Nodes ▪ Lihatlah fragmen HTML berikut: HTML DOM Nodes Dari HTML di atas: ▪ Node <html> tidak memiliki parent node, itu adalah root node ▪ <head> dan <body> parent node nya adalah node <html> ▪ node teks "Hi DOM!" parent node nya adalah node <p> ▪ The <html> node memiliki dua child node: <head> dan <body> ▪ <head> Node memiliki satu child node yaitu node <title> HTML DOM Nodes ▪ <title> Node juga memiliki satu child node yaitu teks node "DOM Tutorial" ▪ <h1> Dan node <p> adalah siblings dan kedua child node adalah dari tag <body> ▪ Elemen <head> adalah first child dari elemen <html> ▪ Elemen <body> adalah last child dari elemen <html> ▪ Elemen <h1> adalah first child dari elemen <body> ▪ Elemen <p> adalah last child dari elemen <body> HTML DOM METHODS Metode adalah tindakan yang dapat Anda lakukan pada node (Elemen HTML). Programming Interface ▪ HTML DOM dapat diakses dengan JavaScript (dan bahasa pemrograman lain). ▪ Semua elemen HTML didefinisikan sebagai objects, dan antarmuka pemrograman adalah object methods dan object properties. ▪ Method (metode) adalah suatu tindakan yang dapat Anda lakukan (seperti menambahkan atau memodifikasi elemen). ▪ Property (properti) adalah nilai yang Anda bisa dapatkan atau atur (seperti nama atau isi dari sebuah node). HTML DOM METHODS Metode getElementById() ▪ Metode getElementById() mengembalikan elemen dengan ID yang ditentukan: HTML DOM METHODS Beberapa metode yang umum digunakan HTML DOM: ▪ getElementById(id) – get (mendapatkan) node (elemen) dengan id tertentu ▪ appendChild(node) – insert (menyisipkan) node anak baru (elemen) ▪ removeChild(node) – remove (menghapus) child node (elemen) HTML DOM METHODS ▪ innerHTML – nilai teks dari node (elemen) ▪ parentNode – parent node dari node (elemen) ▪ childNodes – child node dari node (elemen) ▪ attributes – attributes node dari node (elemen) HTML DOM METHODS Berikut adalah beberapa metode (paling umum): Method getElementById() Description Mengembalikan elemen yang memiliki atribut ID dengan sebuah nilai getElementsByTagNam Mengembalikan daftar node (collection/array e() of nodes) yang mengandung semua elemen dengan nama tag yang ditentukan getElementsByClassNa Mengembalikan daftar node yang berisi semua me() elemen dengan kelas tertentu HTML DOM PROPERTIES Properti adalah nilai-nilai dari node (Elemen HTML) bahwa Anda bisa mendapatkan (get) atau menetapkan (set). Programming Interface ▪ HTML DOM dapat diakses dengan JavaScript (dan bahasa pemrograman lain). ▪ Antarmuka pemrograman dari DOM didefinisikan oleh metode dan properti. ▪ Method adalah suatu tindakan yang dapat programmer lakukan (seperti menambahkan atau menghapus node). ▪ Property adalah nilai yang programmer bisa dapatkan atau mengatur (seperti nama atau isi dari sebuah node). HTML DOM PROPERTIES InnerHTML Properti ▪ Cara termudah untuk mendapatkan konten dari suatu elemen adalah dengan menggunakan properti innerHTML. ▪ InnerHTML properti berguna untuk mendapatkan atau mengganti isi dari elemen HTML. ▪ Contoh code berikut mendapat innerHTML dari elemen <p> dengan id="intro": HTML DOM PROPERTIES HTML DOM PROPERTIES ▪ Dalam contoh di atas, getElementById adalah metode, sementara innerHTML adalah sebuah properti. ▪ Tips : InnerHTML properti dapat digunakan untuk mendapatkan atau mengubah elemen HTML, termasuk <html> dan body. HTML DOM PROPERTIES Properti nodeName Properti nodeName menentukan nama node. ▪ nodeName adalah read-only ▪ nodeName dari node elemen adalah sama seperti nama tag ▪ nodeName dari node atribut adalah nama atribut ▪ nodeName dari node teks selalu #text ▪ nodeName dari node dokumen selalu #document Catatan: nodeName selalu berisi nama tag huruf besar dari elemen HTML. HTML DOM PROPERTIES Properti nodeValue Property nodeValue menentukan nilai dari sebuah node. ▪ nodeValue untuk node elemen tidak terdefinisi ▪ nodeValue untuk node teks adalah teks itu sendiri ▪ nodeValue untuk node atribut adalah nilai attribut HTML DOM PROPERTIES Contoh berikut mengambil teks nilai node tag <p id="intro"> : HTML DOM PROPERTIES The NodeType Properti ▪ Properti nodeType mengembalikan jenis node. nodeType hanya dapat dibaca. ▪ Jenis node yang paling penting adalah: Element type NodeType Element 1 Attribute 2 Text 3 Comment 8 Document 9 HTML DOM – ELEMENTS Menambah, Menghapus dan Mengganti Elemen HTML. Menciptakan Elemen HTML Baru - appendChild() ▪ Untuk menambahkan elemen baru ke HTML DOM, Anda harus membuat elemen (node elemen) pertama, dan kemudian tambahkan ke elemen yang ada. HTML DOM – ELEMENTS HTML DOM – ELEMENTS Membuat HTML Elemen baru - insertBefore() ▪ The appendChild() metode dalam contoh sebelumnya, ditambahkan elemen baru sebagai last child dari parent. ▪ Jika Anda tidak ingin bahwa Anda dapat menggunakan metode insertBefore() : HTML DOM – ELEMENTS HTML DOM – ELEMENTS Menghapus Elemen HTML yang ada ▪ Untuk menghapus ▪ sebuah elemen HTML, Anda harus mengetahui parent dari elemen: HTML DOM – ELEMENTS Mengganti Elemen HTML ▪ Untuk mengganti sebuah elemen ke HTML DOM, gunakan metode replaceChild(): HTML DOM – EVENTS HTML DOM memungkinkan JavaScript untuk bereaksi terhadap event HTML. Bereaksi terhadap Events ▪ Sebuah JavaScript dapat dieksekusi ketika suatu event terjadi, seperti bila pengguna mengklik pada sebuah elemen HTML. ▪ Untuk mengeksekusi kode ketika pengguna mengklik elemen, tambahkan kode JavaScript untuk atribut event HTML: onclick=JavaScript HTML DOM – EVENTS Contoh event HTML: ▪ Ketika pengguna mengklik mouse ▪ Ketika sebuah halaman web telah dimuat ▪ Ketika gambar telah dimuat ▪ Ketika mouse bergerak di atas elemen ▪ Ketika sebuah field input diubah/diganti ▪ Ketika form HTML di-submit ▪ Ketika seorang pengguna menekan kunci di keyboard HTML DOM – EVENTS HTML DOM – EVENTS Dalam contoh ini, fungsi ini dipanggil dari event handler: HTML DOM – EVENTS HTML Event Atribut ▪ Untuk menetapkan event untuk elemen HTML Anda dapat menggunakan atribut event. HTML DOM – EVENTS HTML Event Attribut HTML DOM – EVENTS Menetapkan Event Menggunakan HTML DOM ▪ HTML DOM memungkinkan Anda untuk menetapkan event untuk elemen HTML menggunakan JavaScript: HTML DOM – EVENTS Menetapkan Event Menggunakan HTML DOM HTML DOM – EVENTS Onload dan onunload Event ▪ Event onload dan onunload dipicu ketika pengguna memasuki atau meninggalkan halaman. ▪ Event onload dapat digunakan untuk memeriksa jenis browser pengunjung dan versi browser, dan memuat versi yang tepat dari halaman web berdasarkan informasi. ▪ Event onload dan onunload dapat digunakan untuk menangani cookie. HTML DOM – EVENTS HTML DOM – EVENTS Event onchange ▪ Event onchange sering digunakan dalam kombinasi dengan validasi field input. ▪ Berikut adalah contoh bagaimana menggunakan onchange tersebut. Huruf upperCase() fungsi akan dipanggil ketika pengguna mengubah konten sebuah field input. HTML DOM – EVENTS Event onchange TERIMA KASIH