Iframe HTML: Menyematkan Satu Halaman ke Dalam Halaman Lain

Iframe membuatmu bisa menampilkan halaman web lain langsung di dalam halamanmu sendiri — peta, video, atau form pembayaran. Pelajari cara kerja elemen iframe, atribut pentingnya, pengaturan keamanannya, dan kapan sebaiknya dipakai (serta kapan tidak).

Diterbitkan 5 Agustus 20269 menit bacaOleh ACY Partner Indonesia
Iframe HTML — menyematkan halaman lain ke dalam halamanmu sendiri
300 × 250Slot Iklan TersediaPasang iklan Anda di sini

Kamu pasti pernah lihat peta Google Maps nangkring di tengah artikel, video YouTube yang muter di blog yang jelas-jelas bukan YouTube, atau kotak “bayar di sini” di halaman checkout yang tampilannya datang dari penyedia pembayaran. Hampir semua itu pakai trik yang sama: iframe. Ini satu elemen HTML yang membuatmu bisa menyematkan satu halaman web utuh ke dalam halamanmu sendiri — ibarat jendela yang kamu lubangi di dokumenmu, lalu lewat jendela itu kelihatan halaman milik orang lain.

Di artikel ini kamu bakal belajar iframe itu sebenarnya apa, cara menulisnya, atribut-atribut yang penting (termasuk pengaturan keamanan yang jangan sampai kamu lewatkan), dan yang sama pentingnya — kapan iframe memang jawaban yang tepat, dan kapan dia justru bikin masalah diam-diam.

Iframe itu apa

Kata iframe itu kependekan dari inline frame, atau bingkai sebaris. Ini elemen HTML, yaitu <iframe>, yang memuat halaman web terpisah lalu menampilkannya sebagai sebuah area persegi di dalam halamanmu. Halaman yang disematkan tadi adalah dokumen yang benar-benar mandiri: punya HTML sendiri, CSS sendiri, JavaScript sendiri, dan dimuat dari URL-nya sendiri.

Ini contoh paling sederhananya:

<iframe src="https://example.com"></iframe>

Atribut src adalah alamat halaman yang mau kamu sematkan — persis seperti src pada gambar atau script. Browser mengambil URL itu lalu menggambar hasilnya di dalam bingkai. Semua yang ada di dalam kotak itu adalah milik halaman lain; semua yang di luarnya tetap milikmu.

Bayangkan begini biar gampang: halamanmu itu sebuah tembok, dan iframe adalah jendela di tembok itu. Lewat jendela kamu bisa melihat ruangan lain (halaman lain), tapi kamu tidak sedang berdiri di ruangan itu. Keduanya tetap terpisah — dan seperti yang nanti kamu lihat, pemisahan inilah yang jadi kelebihan sekaligus keterbatasan terbesar iframe.

<iframe> adalah elemen biasa yang punya tag pembuka dan penutup, walaupun hampir selalu ditulis menyatu karena kamu tidak menaruh konten apa pun di antara tag-nya. Beberapa atribut menanggung tugas utamanya:

<iframe
  src="https://www.openstreetmap.org/export/embed.html"
  width="600"
  height="400"
  title="Peta pusat kota"></iframe>
  • src — URL halaman yang mau disematkan. Inilah satu-satunya atribut yang mau tidak mau harus ada.
  • width dan height — ukuran bingkai dalam piksel. Tanpa keduanya, browser memakai ukuran bawaan (sering 300×150) yang jarang sesuai keinginanmu.
  • title — deskripsi singkat dan mudah dibaca tentang isi bingkai itu. Ini bukan sekadar hiasan: pembaca layar (screen reader) membacakannya, jadi kalau kamu lupa menulisnya, halamanmu jadi lebih sulit dipakai orang yang mengandalkan teknologi bantu.

Apa pun yang kamu tulis di antara tag pembuka dan penutup berfungsi sebagai konten cadangan untuk browser sangat lawas yang tidak bisa menampilkan iframe — yang sekarang praktis sudah tidak ada, jadi biasanya bagian itu kamu biarkan kosong saja.

Selalu beri title pada iframe

Atribut title adalah cara paling gampang membuat iframe-mu ramah aksesibilitas. Pengguna pembaca layar yang sedang menyusuri halamanmu akan mendengar “Peta pusat kota, bingkai” alih-alih kotak tanpa nama yang harus dia tebak isinya. Biayanya cuma satu kalimat pendek — tulis terus setiap kali. Kalau kamu sudah baca artikel soal atribut HTML, kamu pasti kenal title sebagai salah satu atribut global — di iframe, dia benar-benar bekerja untuk aksesibilitas, bukan sekadar memunculkan tooltip.

Mengatur ukuran iframe dengan benar

Secara bawaan, iframe punya ukuran piksel yang tetap dan garis bingkai di sekelilingnya. Ada dua hal yang sering bikin orang tersandung di sini, jadi mari kita bereskan keduanya.

Pertama, soal bingkai. Dulu browser menggambar garis tebal di sekeliling iframe. Kamu bisa mematikannya lewat CSS, dan inilah cara modernnya:

<iframe
  src="https://example.com"
  width="600"
  height="400"
  title="Halaman contoh"
  style="border: none;"></iframe>

Kedua, soal responsif. Lebar yang dipatok mati width="600" memang kelihatan rapi di laptop, tapi melimpah keluar layar di ponsel. Solusi yang umum adalah membuat iframe memenuhi lebar wadahnya dan memakai CSS untuk mengunci rasio aspeknya supaya tidak gepeng:

<div style="max-width: 600px;">
  <iframe
    src="https://www.youtube.com/embed/dQw4w9WgXcQ"
    title="Video demo"
    style="border: none; width: 100%; aspect-ratio: 16 / 9;"></iframe>
</div>

Di sini iframe melar sampai 100% dari <div> pembungkusnya, dan aspect-ratio: 16 / 9 menjaga bentuknya tetap pas untuk video layar lebar di ukuran layar berapa pun. Pola kecil inilah yang dipakai hampir semua potongan kode “sematkan video ini” di balik layar.

Atribut width/height vs CSS

Kamu bisa mengatur ukuran lewat atribut width/height atau lewat CSS. Kalau keduanya ada, CSS yang menang. Untuk tata letak responsif, lebih baik pakai CSS — tapi atribut width dan height tetap bagus untuk dipertahankan, karena keduanya memberi tahu browser bentuk bingkai sebelum CSS termuat, sehingga halaman tidak meloncat-loncat saat sedang dirender.

Pemakaian umum di dunia nyata

Iframe muncul di beberapa situasi yang cukup spesifik. Mengenali pola-pola ini membantumu tahu kapan iframe memang jawaban yang paling alami.

  • Peta. Google Maps dan OpenStreetMap sama-sama memberimu potongan iframe siap pakai, jadi peta hidup yang bisa digeser-geser muncul di halamanmu tanpa kamu menulis kode peta sama sekali.
  • Video. YouTube, Vimeo, dan layanan sejenis memberimu iframe yang menyematkan pemutar mereka. Videonya, kontrolnya, dan pelacakannya semua tetap di sisi mereka.
  • Widget pihak ketiga. Form pembayaran, widget chat, sistem komentar, dan alat “booking kalender” sering dikirim dalam bentuk iframe, supaya penyedianya yang mengendalikan bagian-bagian sensitif.
  • Pratinjau yang terisolasi. Alat yang membuatmu bisa menulis kode lalu langsung melihat hasilnya (code playground) sering menampilkan pratinjau langsungnya di dalam iframe, supaya kode penggunanya terpisah dari aplikasi di sekelilingnya.

Perhatikan polanya: iframe paling bersinar ketika benda yang disematkan adalah aplikasi mini mandiri milik orang lain yang ingin kamu pasang tanpa harus membangunnya ulang sendiri.

Atribut keamanan yang benar-benar perlu kamu pakai

Karena iframe memuat halaman milik orang lain ke dalam halamanmu, dia datang dengan pertimbangan keamanan yang nyata. Dua atribut adalah kendali utamamu, dan keduanya sebaiknya kamu anggap sebagai bagian dari menulis iframe, bukan tambahan yang dipikirkan belakangan.

Atribut sandbox

sandbox mengunci halaman yang disematkan. Begitu atribut ini ada, halaman dalam bingkai langsung dilucuti kemampuan-kemampuan berbahayanya secara bawaan — dia tidak bisa menjalankan script, mengirim form, memicu unduhan, atau menerobos keluar ke halamanmu. Lalu kamu menambahkan kembali hanya izin yang benar-benar kamu butuhkan, satu kata kunci demi satu kata kunci:

<iframe
  src="widget-tidak-tepercaya.html"
  sandbox="allow-scripts allow-same-origin"
  title="Widget tidak tepercaya"></iframe>
  • sandbox tanpa nilai = kunci maksimal (tidak ada script, tidak ada form, tidak ada apa-apa).
  • sandbox="allow-scripts" = script diizinkan, sisanya tetap diblokir.
  • Kamu menggabungkan kata kunci dengan spasi untuk memberi persis izin yang dibutuhkan, dan tidak lebih.

Pola pikirnya adalah “tolak semuanya dulu, lalu izinkan seminimum mungkin” — pengaturan paling aman saat kamu menyematkan konten yang belum sepenuhnya kamu percaya.

Atribut allow

Kalau sandbox soal pembatasan, maka allow mengatur akses ke fitur browser yang kuat seperti kamera, mikrofon, lokasi (geolocation), atau mode layar penuh. Sematan video, misalnya, biasanya butuh izin layar penuh:

<iframe
  src="https://www.youtube.com/embed/dQw4w9WgXcQ"
  title="Video demo"
  allow="fullscreen; picture-in-picture"></iframe>

Kalau kamu tidak mencantumkan sebuah fitur di allow, halaman yang disematkan tidak bisa memakainya — jadi halaman asing yang disematkan tidak bisa diam-diam meminta akses kamera pengunjung. Itu mekanisme perlindungannya bekerja sesuai harapan.

Hanya sematkan sumber yang kamu percaya

Iframe menjalankan kode situs lain di dalam browser pengunjungmu. Kalau situs itu jahat atau diretas, penggunamu ikut terpapar lewat halamanmu. Dua aturan menjaga kamu tetap aman: hanya sematkan URL dari sumber yang benar-benar kamu percaya, dan pakai sandbox (dengan izin sekecil mungkin) setiap kali kamu menyematkan sesuatu yang tidak kamu kendalikan. Jangan asal tempel potongan iframe dari situs sembarangan cuma karena kelihatannya praktis.

Kenapa sebagian halaman tidak bisa dimasukkan ke iframe milikmu

Coba sematkan situs seperti Google atau bank ke halamanmu sendiri, dan kamu sering akan dapat kotak kosong atau pesan error, bukan halamannya. Itu memang disengaja. Situs bisa menyuruh browser “jangan biarkan siapa pun memuatku di dalam iframe” lewat sebuah header respons (misalnya X-Frame-Options atau aturan frame-ancestors di Content Security Policy mereka).

Kenapa mereka memblokirnya? Terutama untuk mencegah clickjacking — serangan saat halaman jahat secara tak kasatmata membingkai situs asli (misalnya halaman login bank-mu) lalu mengelabuimu agar mengeklik hal-hal yang tidak kamu maksudkan. Dengan menolak dibingkai, situs-situs sensitif mematikan serangan itu. Jadi kalau sebuah sematan tiba-tiba tidak mau muncul, biasanya inilah alasannya: situs lain itu memilih untuk tidak bisa disematkan, dan tidak ada yang salah dari sisimu.

Pemisahan antara iframe dan halaman induknya

Ingat lagi gambaran “jendela di tembok” tadi. Karena halaman yang disematkan adalah dokumen terpisah, halamanmu dan iframe-nya pada dasarnya tidak bisa saling menjangkau. CSS halamanmu tidak menata isi iframe, dan JavaScript-mu tidak bisa membaca atau mengubah apa yang ada di dalamnya — begitu pula sebaliknya.

Ini fitur, bukan kekurangan. Justru inilah yang membuat iframe cukup aman untuk menyematkan konten orang asing: form pembayaran yang disematkan tidak bisa mengintip halamanmu, dan halamanmu tidak bisa mengutak-atik form pembayaran itu. Satu-satunya pengecualian adalah ketika kedua halaman berasal dari origin yang sama (protokol, domain, dan port yang sama), yang dalam hal ini keduanya boleh saling berkomunikasi lewat JavaScript. Untuk sematan dari situs lain, temboknya tetap berdiri — dan itu memang disengaja.

Kapan iframe jadi pilihan yang salah

Iframe itu ampuh, tapi memakainya karena kebiasaan justru bikin masalah. Lewati iframe ketika:

  • Kamu cuma mau menampilkan kontenmu sendiri. Kalau halaman yang disematkan itu milikmu, biasanya lebih baik membangun kontennya langsung di halaman. Dokumen terpisah berarti satu pemuatan halaman penuh lagi, style-nya sendiri, dan repot saat mau membuat semuanya responsif bareng-bareng.
  • Kamu butuh isinya berinteraksi dengan halamanmu. Karena pemisahan yang sudah dibahas tadi, iframe kurang cocok kalau benda yang disematkan harus membaca data halamanmu atau bereaksi terhadapnya.
  • SEO penting untuk konten itu. Mesin pencari menganggap halaman yang dibingkai sebagai dokumen terpisah; teks di dalam iframe umumnya tidak dihitung sebagai konten halamanmu. Jangan taruh tulisan penting yang perlu terindeks di dalam iframe.
  • Performa mepet. Setiap iframe sebenarnya satu halaman tambahan utuh yang dimuat — lebih banyak permintaan, lebih banyak memori. Halaman yang penuh dijejali iframe terasa berat dan lambat.

Patokan yang bagus: pakai iframe untuk menyematkan alat atau media mandiri milik orang lain, dan hindari untuk kontenmu sendiri atau apa pun yang perlu menyatu dengan halamanmu.

Penutup

Iframe adalah elemen kecil dengan tugas besar: dia membuat satu halaman bisa menampung halaman lain yang benar-benar mandiri di dalamnya. Inti-intinya:

  • Sebuah <iframe> menyematkan halaman web terpisah lewat src, ditampilkan sebagai area di dalam halamanmu.
  • Selalu atur width, height, dan title — dan pakai CSS (border: none, width: 100%, aspect-ratio) supaya rapi dan responsif.
  • Halaman yang disematkan terisolasi penuh dari halamanmu kecuali keduanya berbagi origin yang sama — CSS dan JS-mu tidak bisa menjangkau ke dalam, dan justru itulah yang menjaga semuanya tetap aman.
  • Pakai sandbox untuk mengunci konten yang tidak tepercaya (tolak semua dulu, lalu izinkan seminimum mungkin) dan allow untuk memberi akses fitur seperti layar penuh atau kamera.
  • Situs bisa menolak dibingkai demi mencegah clickjacking, jadi sebagian sematan memang tidak akan muncul — dan itu keputusan mereka, bukan kesalahanmu.
  • Raih iframe untuk menyematkan alat atau media mandiri milik orang lain, dan hindari untuk kontenmu sendiri, untuk hal yang perlu berinteraksi dengan halamanmu, atau saat SEO dan performa sangat krusial.

Dipakai di tempat yang tepat — peta, video, widget pihak ketiga yang tepercaya — iframe menghemat banyak sekali tenagamu. Dipakai di tempat yang salah, dia menambah beban dan menutup konten yang seharusnya menjadi bagian dari halamanmu. Sekarang kamu sudah bisa membedakan keduanya.

Tag:htmlfrontendiframeembedmenengah
728 × 90Slot Iklan TersediaPasang iklan Anda di sini

Artikel Terkait

Lihat Semua Artikel

Artikel yang Mungkin Kamu Suka

Apa Itu Framework Frontend? — chip kode dengan tag komponen
Frontend / Dasar

Apa Itu Framework Frontend?

Penjelasan ramah untuk pemula tentang apa itu framework frontend, kenapa mereka ada, masalah apa yang mereka selesaikan dibanding JavaScript biasa, dan kapan kamu memang sebaiknya memakainya.

20 Sep 20268 menit baca
Sampul fundamentals frontend bertuliskan Apa Itu Frontend dan HTML + CSS + JS
Frontend / Dasar

Apa Itu Frontend Development?

Panduan ramah pemula tentang frontend development: bagian website yang kamu lihat dan klik secara langsung. Pahami cara kerja HTML, CSS, dan JavaScript, serta bedanya frontend dengan backend.

20 Sep 20268 menit baca
Ilustrasi sampul untuk Apa yang Dikerjakan Frontend Developer
Frontend / Dasar

Apa yang Dikerjakan Frontend Developer: Panduan untuk Pemula

Penjelasan ramah pemula tentang apa yang sebenarnya dikerjakan frontend developer setiap hari: mengubah desain jadi antarmuka yang berfungsi, membangun UI yang bisa dipakai ulang, sampai urusan responsif, aksesibilitas, dan kecepatan.

20 Sep 20269 menit baca
Kartu judul bertuliskan Styling dan Interaktivitas di atas latar biru gelap ACY Partner
Frontend / Dasar

Cara Kerja Styling dan Interaktivitas

Penjelasan ramah pemula soal bagaimana CSS menyulap HTML polos jadi tampilan rapi, dan bagaimana JavaScript menambahkan perilaku — pola berpikir struktur, gaya, perilaku saat membangun halaman web.

20 Sep 20268 menit baca
Tiga lapisan front-end menyatu di satu halaman web
Frontend / Dasar

Cara HTML, CSS, dan JavaScript Bekerja Bersama

Panduan praktis untuk pemula: bikin satu tombol kecil, beri struktur dengan HTML, tampilan dengan CSS, dan perilaku dengan JavaScript, lalu lihat ketiga lapisan ini bekerja sama di halaman nyata.

20 Sep 20268 menit baca
Sampul ikhtisar praktik terbaik frontend
Frontend / Dasar

Ikhtisar Praktik Terbaik Frontend

Peta ringkas tentang apa itu frontend yang baik — HTML bermakna, CSS rapi, JavaScript secukupnya, desain responsif, performa, dan progressive enhancement, lengkap dengan arahan untuk mendalaminya.

20 Sep 20268 menit baca