Cara Membuat Tabel Dinamis dengan Tombol Navigasi Menggunakan JavaScript
Tabel adalah salah satu elemen HTML yang paling umum digunakan untuk menampilkan data secara terstruktur. Namun, jika data dalam tabel terlalu banyak, dapat menjadi sulit bagi pengguna untuk mencari informasi yang mereka butuhkan. Oleh karena itu, pada artikel ini akan dijelaskan cara membuat tabel dinamis dengan tombol navigasi menggunakan JavaScript.
JavaScript adalah bahasa pemrograman yang populer digunakan dalam pembuatan website modern. Dalam pembuatan tabel dinamis, kita dapat memanfaatkan kemampuan JavaScript untuk membuat tombol navigasi yang dapat digunakan untuk mengakses halaman tabel yang berbeda. Kita dapat menggunakan perintah seperti getElementById dan createElement untuk membuat tabel dinamis dengan tombol navigasi yang responsif dan mudah diakses oleh pengguna.
Penggunaan tabel dinamis dengan tombol navigasi pada website memberikan banyak keuntungan. Pertama, pengguna dapat memanipulasi data dengan lebih mudah dan interaktif. Kedua, tampilan yang menarik dan interaktif pada tabel dinamis dengan tombol navigasi dapat meningkatkan user experience (UX) dan kepuasan pengguna. Terakhir, penggunaan tabel dinamis dengan tombol navigasi juga dapat meningkatkan efisiensi pengguna dalam mengakses informasi dan data pada website. Oleh karena itu, tabel dinamis dengan tombol navigasi sangat cocok digunakan pada website yang memiliki data yang kompleks dan banyak.
Langkah-langkah membuat tabel dinamis dengan tombol navigasi
1. Buat elemen HTML
<div class="scroll">
<table>
<thead>
<tr>
<th>No.</th>
<th>Script Name</th>
<th>Author</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>scdeface-1</td>
<td>anonymous</td>
<td>2021-01-01</td>
</tr>
</tbody>
</table>
</div>
<div class="pagination">
<button class="prev disabled">Prev</button>
<button class="next">Next</button>
</div>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is a simple web page.</p>
</body>
2. Menambahkan Kode CSS
body {
font-family: Helvetica, Arial, sans-serif;
}
center {
text-align: center;
}
h1 {
font-size: 36px;
margin-bottom: 0;
}
h2 {
font-size: 28px;
margin-top: 0;
}
h3 {
color: white;
margin-top: 0;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
}
.scroll {
height: 300px;
overflow: auto;
}
table {
width: 100%;
border-collapse: collapse;
margin-bottom: 20px;
}
th {
background-color: #f2f2f2;
text-align: left;
}
td,
th {
padding: 8px;
border: 1px solid #ddd;
}
.cari-media {
width: 50%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
background-color: #f8f8f8;
font-size: 16px;
background-image: url('https://cdn.icon-icons.com/icons2/1650/PNG/512/111155-zoom-icon_111245.png');
background-position: 10px 10px;
background-repeat: no-repeat;
padding-left: 40px;
}
.cta {
background-color: #1c1c1c;
color: white;
padding: 8px 16px;
border-radius: 4px;
border: none;
cursor: pointer;
font-size: 16px;
margin-top: 20px;
}
.cta:hover {
background-color: #333;
}
.pagination {
display: flex;
justify-content: center;
align-items: center;
margin-top: 20px;
}
.prev,
.next {
background-color: #1c1c1c;
color: white;
padding: 8px 16px;
border-radius: 4px;
border: none;
cursor: pointer;
font-size: 16px;
margin: 0 5px;
}
.prev:hover,
.next:hover {
background-color: #333;
}
.disabled {
opacity: 0.5;
cursor: default;
}
@media screen and (max-width: 600px) {
.cari-media {
width: 100%;
}
- body: mengatur font family yang digunakan pada halaman HTML.
- center: mengatur tampilan text-align pada posisi center.
- h1: mengatur tampilan font-size dan margin-bottom untuk judul level 1.
- h2: mengatur tampilan font-size dan margin-top untuk judul level 2.
- h3: mengatur tampilan warna text pada judul level 3.
- hr: mengatur tampilan margin-top dan margin-bottom pada horizontal line.
- .scroll: mengatur tampilan tinggi dan overflow pada div dengan class "scroll".
- table: mengatur tampilan lebar, border-collapse dan margin-bottom pada tabel.
- th: mengatur tampilan background-color dan text-align pada header tabel.
- td, th: mengatur tampilan padding dan border pada cell tabel.
- .cari-media: mengatur tampilan width, padding, margin, border, border-radius, background-color, font-size, background-image, background-position, dan padding-left pada input dengan class "cari-media".
- .cta: mengatur tampilan background-color, color, padding, border-radius, border, cursor, font-size, dan margin-top pada tombol dengan class "cta".
- .cta:hover: mengatur tampilan background-color pada tombol dengan class "cta" saat dihover.
- .pagination: mengatur tampilan display, justify-content, align-items, dan margin-top pada div dengan class "pagination".
- .prev, .next: mengatur tampilan background-color, color, padding, border-radius, border, cursor, font-size, dan margin pada tombol dengan class "prev" dan "next".
- .prev:hover, .next:hover: mengatur tampilan background-color pada tombol dengan class "prev" dan "next" saat dihover.
- .disabled: mengatur tampilan opacity dan cursor pada elemen dengan class "disabled".
3. Membuat Kode JavaScript
const prevButton = document.querySelector('.prev');
const nextButton = document.querySelector('.next');
let currentPage = 1;
const scriptsPerPage = 10;
const scripts = ['scdeface-1', 'scdeface-2', 'scdeface-3', 'scdeface-4', 'scdeface-5', 'scdeface-6', 'scdeface-7', 'scdeface-8', 'scdeface-9', 'scdeface-10', 'scdeface-11', 'scdeface-12', 'scdeface-13', 'scdeface-14', 'scdeface-15', 'scdeface-16', 'scdeface-17', 'scdeface-18', 'scdeface-19', 'scdeface-20'];
function displayScripts(start, end) {
const table = document.querySelector('table tbody');
table.innerHTML = '';
for (let i = start; i < end; i++) {
const script = scripts[i];
const row = `<tr><td>${i+1}</td><td>${script}</td><td>anonymous</td><td>2021-01-01</td></tr>`;
table.insertAdjacentHTML('beforeend', row);
}
}
function updatePagination() {
if (currentPage === 1) {
prevButton.classList.add('disabled');
} else {
prevButton.classList.remove('disabled');
}
if (currentPage === Math.ceil(scripts.length / scriptsPerPage)) {
nextButton.classList.add('disabled');
} else {
nextButton.classList.remove('disabled');
}
}
displayScripts(0, scriptsPerPage);
updatePagination();
prevButton.addEventListener('click', () => {
if (currentPage > 1) {
currentPage--;
const start = (currentPage - 1) * scriptsPerPage;
const end = start + scriptsPerPage;
displayScripts(start, end);
updatePagination();
}
});
nextButton.addEventListener('click', () => {
if (currentPage < Math.ceil(scripts.length / scriptsPerPage)) {
currentPage++;
const start = (currentPage - 1) * scriptsPerPage;
const end = start + scriptsPerPage;
displayScripts(start, end);
updatePagination();
}
});
Penjelasan kode program
- <!DOCTYPE html> adalah deklarasi tipe dokumen untuk halaman web.
- Dalam tag <html>, ada dua bagian utama dalam tag <head> dan <body>.
- Tag <head> berisi informasi tentang halaman, seperti judul dan file CSS yang terkait.
- Tag <body> adalah tempat semua konten halaman web ditampilkan.
- Di dalam tag <body>, ada beberapa elemen HTML, seperti tag <center> yang digunakan untuk menengahkan judul halaman web.
- Judul halaman web ditetapkan dengan tag <h1> dengan kelas "global-header".
- Ada juga tag <div> dengan kelas "scroll" yang memungkinkan pengguna untuk melihat tabel yang lebih panjang dan tag <table> dengan kelas kosong yang menampilkan tabel data.
- Baris header dalam tabel ditetapkan dengan tag <thead> dan baris isi ditetapkan dengan tag <tbody>.
- Kolom header ditetapkan dengan tag <th> dan kolom isi ditetapkan dengan tag <td>.
- Tag <style> digunakan untuk mengatur tampilan halaman web. CSS ini mengatur font dan beberapa elemen seperti ukuran dan warna.
- Variabel prevButton dan nextButton mendapatkan elemen HTML tombol navigasi dari HTML.
- Variabel currentPage digunakan untuk menunjukkan halaman saat ini.
- Variabel scriptsPerPage digunakan untuk menunjukkan jumlah skrip yang akan ditampilkan dalam satu halaman.
- Variabel scripts adalah daftar skrip deface palsu yang akan ditampilkan di tabel.
- Fungsi displayScripts(start, end) mengambil dua argumen: start dan end. Ini mengambil skrip dari scripts dari indeks start hingga indeks end dan menambahkannya ke dalam tabel.
- Fungsi updatePagination() memeriksa apakah pengguna berada di halaman pertama atau terakhir dan menentukan apakah tombol "Prev" atau "Next" harus dinonaktifkan. Ini juga memanggil fungsi displayScripts() untuk menampilkan skrip yang sesuai pada halaman saat ini.
Demikian penjelasan singkat untuk kode program yang Anda berikan. Semoga ini membantu Anda dalam menulis artikel yang berkualitas. Jangan lupa untuk memberikan penjelasan lebih rinci tentang tabel dan kode program yang digunakan dalam artikel Anda.