HTML

**Bahasa Penanda Hiperteks** (bahasa Inggeris: *Hypertext Markup Language*, singkatan: **HTML**) ialah bahasa penanda utama digunakan dalam pembinaan laman web. Ia menyediakan cara menghasilkan dokumen berstruktur dengan menandakan semantik struktur teks seperti tajuk, perenggan, senarai, pautan, petikan dan sebagainya selain juga membolehkan pembenaman imej dan objek serta boleh digunakan untuk menghasilkan borang interaktif.

Sesebuah laman HTML ditulis dalam bentuk unsur HTML yang terdiri daripada "tag" yang diapit oleh kurungan sudur dalam kandungan laman web, tetapi juga boleh diisi atau memuat skrip-skrip dalam bahasa-bahasa pengaturcaraan seperti JavaScript yang mempengaruhi kelakuan pemproses HTML seperti pelayar web; dan HKL (CSS) bagi menentukan penampilan dan susun atur teks dan bahan-bahan lain. Pertubuhan W3C selaku penyelenggara piawaian HTML dan CSS, menggalakkan penggunaan CSS daripada mana-mana penanda persembahan yang lain.

HTML ialah skim pengekodan yang digunakan untuk menghasilkan dan memformatkan sebuah dokumen web. Sambungan fail bagi HTML adalah `.htm` atau `.html`.

## Penanda HTML
Penanda HTML terdiri daripada beberapa komponen terpenting, termasuk *unsur* (dan *atribut*nya), *jenis data* berasaskan aksara, dan *rujukan aksara* dan *rujukan entiti*. Satu lagi komponen penting ialah *[[pengisytiharan jenis dokumen]]* yang menetukan Takfrian Jenis Dokumen. Bagi HTML5, tiada perlunya menentukan Takrifan Jenis Dokumen, sebaliknya hanya menentukan bentuk susun aturnya.

Atur cara Hello world, sebuah atur cara komputer ringkas yang digunakan untuk memperbandingkan bahasa pengaturcaraan, bahasa penskripan, dan bahasa penanda, terdiri daripada sembilan baris kod dalam HTML, tetapi juga sepatutnya disertakan Newline:

```html4strict
<!doctype html>
<html>
  <head><script data-ad-client="ca-pub-3090144957224885" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>    <title>Hello HTML</title>
  </head>
  <body>
    <p>Hello World!</p>
  </body>
</html>
```


Pengisytiharan jenis dokumen ini adalah untuk HTML5.

Jika pengisytiharan `<!doctype html>` tidak disertakan, maka kebanyakan pelayar sesawang akan memaparkannya dengan menggunakan "quirks mode."

### Unsur

Dokumen HTML dihasilkan sepenuhnya daripada **unsur** atau **elemen**. Secara amnya, sesebuah unsur terdiri daripada tiga komponen, iaitu tag, atribut dan kandungan sebenar. **Tag** ialah nama unsur yang dikurungi dalam kurungan sudut. Unsur ialah segalanya dari tag pembuka `<element-name>`, hingga ke tag penutup pasangannya `</element-name>` yang berawalan tanda miring "/". *Atribut-atribut* unsur terkandung dalam tag pembuka dan *kandungan* sebenarnya terletak di antara kedua-dua tag.

**Sebuah unsur am terdiri daripada berikut:**
 `<element-name&nbsp;attribute="value">Content</element-name>`
Sesetengah unsur seperti ``, 
tiada kandungan, oleh itu tiada tag penutup. 
Begitu juga, dengan tidak menetapkan atribut, kebanyakan tag pembuka terlalai nilai atributnya.

Terdapat beberapa jenis unsur penanda yang digunakan dalam HTML.
* Penanda **struktur** menentukan tujuan teks. Contohnya, `` menentukan "Golf" sebagai tajuk tahap kedua yang boleh dipaparkan dalam pelayar web sebegitu rupa dengan tajuk "HTML markup" di awal bahagian ini. Penanda struktur tidak menandakan apa-apa pemaparan tertentu, tetapi kebanyakan pelayar sesawang dilengkapi gaya-gaya tersedia sendiri untuk memformatkan unsur-unsurnya, apatah lagi boleh diubah gayanya lagi dengan Cascading Style Sheets (CSS).
* Penanda **penyampaian** menentukan penampilan teks tanpa mengira fungsinya. Contohnya, `` mengehendaki peranti output visual harus memaparkan "boldface" dalam bentuk tebal, tetapi tidak menunjukkan apa yang harus dilakukan oleh peranti-peranti yang tidak dapat melakukannya (seperti peranti audio yang membacakan teks). Bagi penanda-penanda `` (tebal) dan `` (condong), terdapat unsur-unsur yang biasanya sama hasil paparan visualnya tetapi bersifat lebih semantik, iaitu `` (penekanan kuat) dan `` (penekanan biasa). Adalah lebih senang untuk melihat bagaimana peranti audio mentafsir kedua-dua penanda "penekanan" tersebut yang apapun sekali tidak sama dengan penanda "tebal" dan "condong" yang biasa. Misalnya, pembaca skrin tidak harus menekankan tajuk buku yang dicondongkan dalam teks. Kebanyakan unsur penanda persembahan telah diketepikan mengikut tentuan HTML 4.0, untuk memberi laluan kepada rekabentuk gaya berasaskan CSS.
* Penanda **hiperteks** membentuk pautan ke dokumen lain. Versi-versi HTML sehingga XHTML 1.1 memerlukan unsur  sauh untuk membentuk hiperpautan dalam teks: ``. Selain itu, atribut `href` mesti disetkan kepada URL yang sah. Conothnya, penanda HTML ``, akan memaparkan perkataan "Wikipedia" sebagai hiperpautan dalam serangkap teks. Bagi menghasilkan imej sebagai hiperpautan adalah: ``.

#### Atribut
Kebanyakan atribut dalam sesebuah unsur berbentuk pasangan nama dan nilai yang dipisahkan dengan "=", dan ditulis dalam tag pembuka unsur, selepas nama unsur itu. Nilainya boleh dibubuh tanda-tanda petikan tunggal atau berganda, tetapi ada nilai-nilai yang mengandungi aksara-aksara tertentu yang boleh dibiarkan tanpa tanda petikan dalam HTML (tetapi bukan XHTML). Kiranya tidak selamat untuk membiarkan nilai atribut tanpa tanda petikan. Berbeza dengan atribut pasangan nama dan nilai, terdapat sebilangan atribut yang mempengaruhi unsurnya dengan sekadar berada dalam tag pembuka unsur (seperti atribut `ismap` untuk unsur `img`).

Berikut ialah contoh-contoh atribut yang biasa digunakan dalam kebanyakan unsur:
* Atribut `id` memberikan pengecam unik seluruh dokumen untuk sesuatu unsur. Ini boleh digunakan oleh lembaran gaya untuk memberikan sifat-sifat persembahan, untuk ditumpukan perhatian oleh pelayar web kepada unsur tertentu itu, atau diubah kandungan atau persembahan sesutau unsur oleh skrip-skripnya. Apabila dibubuh pada URL laman, atribut ini memberikan pengecam unik sejagat untuk sesuatu unsur yang lazimnya berbentuk sub-bahagian laman itu. Contohnya, ID "Attributes" di ``
* Atribut `class` memberikan cara mengelaskan unsur-unsur yang serupa. Ini boleh digunakan untuk tujuan semantik atau persembahan. Bagi tujuan semantik, misalnya, kelas-kelas digunakan dalam mikroformat. Bagi tujuan persembahan pula, contohnya, sesebuah dokuemn HTML boleh menggunakan peruntukan `class="notation"` untuk menandakan bahawa semua unsur yang ada nilai kelas ini adalah menurut teks utama dokumen. Unsur-unsur sebegini boleh dikumpulkan bersama lalu dipersembahkan sebagai nota kaki pada halaman dan bukannya berada di tempat masing-masing yang sepatutnya dalam sumber HTML.
* Sifat-sifat persembahan kod-kod bukan atribut `style` boleh digunakan pada unsur yang tertentu. Kiranya lebih baik untuk menggunakan `id` sesuatu unsur atau atribut-atribut `class` untuk memilih unsur yang berlembaran gaya, namun adakalanya terlalu leceh bagi sometimes this can be too cumbersome for a simple ad hoc application of styled properties. 
* Atribut `title` digunakan untuk melampirkan penjelasan subteks pada sesuatu unsur. Di kebanyakan pelayar ini, atribut ini dipaparkan dalam petua alat (*tooltip*).

Unsur singkatan `abbr` boleh digunakan untuk menunjukkan atribut-atribut berikut:

::
```html4strict
<abbr id="anId" class="aClass" style="color:blue;" title="Hypertext Markup Language">HTML</abbr>
```


Contoh ini menghasilkan HTML; di kebanyakan pelayan, apabila kursor ditujukan ke singkatan itu, maka diperlihatkannya teks tajuk "Hypertext Markup Language."

Kebanyakan unsur juga mengambil atribut berkaitan bahasa iaitu `lang` dan `dir`.

### Rujukan aksara dan entiti

Pada versi 4.0, HTML menentukan satu set 252 rujukan entiti aksara dan satu set 1,114,050 rujukan aksara angka, kedua-duanya membolehkan aksara individu ditulis melalui penanda ringkas, dan tidak semestinya secara literal (ditaip bulat-bulat). Aksara literal dan padanannya dalam bentuk penanda adalah sama hasil paparannya.

Kebolehan "mengeluarkan" aksara-aksara sebegini membolehkan aksara-aksara `&lt;` dan `&amp;` (apabila masing-masing ditulis sebagai `&amp;lt;` dan `&amp;amp;`) ditafsirkan sebagai data aksara dan bukannya penanda. Contohnya, `&lt;` yang ditulis secara literal biasanya menandakan permulaan tag, dan `&amp;` pula biasanya menandakan permulaan rujukan entiti aksara atau rujukan aksara angka; jika ditulis sebagai `&amp;amp;` or `&amp;#x26;` atau `&amp;#38;` pula membolehkan `&amp;` disertakan dalam kandungan unsur atau nilai atribut. Apabila aksara tanda petikan ganda (`"`) digunakan untuk memetik nilai atribut, maka aksara itu harus juga dikeluarkan sebagai `&amp;quot;` atau `&amp;#x22;` atau `&amp;#34;` apabila berada dalam nilai atribut itu sendiri. Apabila aksara tanda petikan tunggal (`'`) digunakan untuk memetik nilai atribut, maka aksara itu juga harus dikeluarkan sebagai `&amp;#x27;` atau `&amp;#39;` (TIDAK patut dikeluarkan sebagai `&amp;apos;` kecuali dalam dokumen XHTML) apabila timbul di dalam nilai atribut itu sendiri. Walau bagaimanapun, memandangkan pengarang dokumen selalu mengabaikan perlunya mengeluarkan aksara-aksara tersebut, maka pelayar web sering menganggapnya sebagai penanda hanya apabila teks yang seterusnya mengesahkan tujuannya sebagai penanda.

Cara ini juga membolehkan aksara yang tidak mudah ditaipkan atau tiada pun dalam pengekodan aksara dokumen, dilambangkan dalam kandungan unsur dan atribut. Contohnya, huruf `e` yang bertanda aksen tirus (`é`), salah satu aksara yang biasanya hanya ditemui pada papan kekunci di Eropah Barat, boleh ditulis dalam mana-mana dokumen HTML dalam bentuk rujukan entiti `&amp;eacute;` atau rujukan angka `&amp;#233;` atau `&amp;#xE9;`. Aksara-aksara yang membentuk rujukan tersebut (iaitu `&amp;`, `;`, huruf-huruf dalam `eacute`, dsb.) terdapat pada semua papan kekunci dan juga disokong dalam semua pengekodan aksara, tetapi bukan huruf `é` yang literal.

### Jenis data
HTML menentukan sebilangan jenis data untuk kandungan unsurnya, seperti data skrip dan data lembaran gaya, dan beraneka jenis untuk nilai atribut, termasuk ID, nama, URI, nombor, unit ukuran, bahasa, penerang media, warna, pengekodan aksara, tarikh dan waktu, dan sebagainya. Semua jenis data ini merupakan pengkhususan data aksara.

### Pengisytiharan jenis data
Dokumen HTML perlu bermula dengan Pengisytiharan Jenis Dokumen (“doctype”). Dalam pelayar web, fungsi doctype ini adalah menandakan mod paparannya, khususnya untuk mengelakkan *[[quirks mode]]*.

Tujuan asal doctype ini adalah membolehkan pengesahan berasaskan Takrifan Jenis Dokumen (DTD) dengan peralatan SGML. DTD yang dirujuk oleh doctype itu mengandungi tatabahasa bacaan terbaca mesin yang menentukan kandungan yang dibenarkan dan dilarang untuk sesuatu dokumen yang mematuhi DTD sebegitu. Namun begitu, pelayar web tidak boleh memnaca DTD. Pengesahan HTML5 tidak berasaskan DTD, jadi dalam HTML5 doctype itu tidak merujuk kepada DTD.

Contoh doctype HTML 4:

:``

Pengisytiharan ini merujuk kepada Strict DTD (Tegas) dalam HTML 4.01, yang tiada unsur-unsur persembahan seperti ``, sekaligus menyerahkan pemformatan kepada CSS dan tag-tag `span` dan `div`. Pengesah berasaskan SGML membaca DTD-nya agar menghurai dokumen tersebut dengan betul serta menjalankan pengesahan. Dalam pelayar web terkini, doctype HTML 4.01 Strict menghidupkan mod susun atur piawai untuk CSS berbanding *[[quirks mode]]*.

Tambahan pula, HTML 4.01 menyediakan Transitional DTD (Peralihan) and Frameset DTD (Set Bingkai). Transitional DTD bertujuan memperkenalkan perubahan yang dilakukan dalam Strict DTD secara beransur-ansur, manakala Frameset DTD dimaksudkan untuk dokumen-dokumen yang berbingkai.

## Lihat juga
* Bahasa penanda

## Rujukan

## Pautan luar
* (English) HTML ENCODE
* Spesifikasi HTML 4.01
*  Belajar HTML
*  Tutorial HTML Bahasa Melayu
*  memformat data HTML
*  HTML Viewer
i read complete html tutorial from here 
HTML Tutorial