c. tambahkan JQuery, karena bootstrap versi 4.5.2 ini juga membutuhkan JQuery untuk
bisa mengaktifkan beberapa fitur. Download JQuery melalui link berikut:
https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js
d. Setelah itu, pindahkan ke dalam folder public/js, sehingga sekarang kita punya file
jquery.min.js di sana.
2. Apa itu view di Codeigniter
View adalah bagian dari Codeigniter yang bertugas untuk membuat tampilan. View berisi
kode HTML, PHP, CSS, dan Javascript yang membentuk sebuah tampilan. Masih ingat
dengan konsep MVC di materi sebelumnya?
Saat Controller merespon sebuah request, kadang ia harus mengirimkan view ke client.
}
Seharusnya di sini kita merespon dengan mengirimkan view. Bagaimana caranya?
Caranya, kita harus gunakan fungsi view().
Contoh:
Saat fungsi view() dieksekusi, ia akan mencari file view pada folder app/Views
berdasarkan nama file view yang diberikan.
4. Membuat View
Kita akan membuat 4 buah view untuk halaman Home, About, Contact, dan Faqs.
Silahkan buka Controller Page, kemudian ubah kodenya menjadi seperti ini:
echo view("about");
echo view("contact");
{
echo view("faqs");
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Protal Berita Codeigniter</title>
<body>
<div class="container">
<div class="row">
<div class="col-md-12 my-2 card">
<div class="card-body">
<h5 class="h5">Codeigniter 4 Sudah Rilis!</h5>
<p>Lorem ipsum dolor sit amet consectetur
adipisicing elit. Quibusdam perferendis commodi
tenetur quos ducimus repellat nulla, nam magni.
Commodi iusto ad harum voluptas exercitationem
facere eos earum laboriosam excepturi quas?</p>
</div>
</div>
<div class="col-md-12 my-2 card">
<div class="card-body">
<h5 class="h5">Pengembangan Codeiginter 4
Tertunda</h5>
<p>Lorem ipsum dolor sit amet consectetur
adipisicing elit. Quibusdam perferendis commodi
tenetur quos ducimus repellat nulla, nam magni.
Commodi iusto ad harum voluptas exercitationem
facere eos earum laboriosam excepturi quas?</p>
</div>
</div>
<div class="col-md-12 my-2 card">
<div class="card-body">
<h5 class="h5">Wow, Ini 5 Startup yang Menggunakan
Codeigniter</h5>
<p>Lorem ipsum dolor sit amet consectetur
adipisicing elit. Quibusdam perferendis commodi
tenetur quos ducimus repellat nulla, nam magni.
Commodi iusto ad harum voluptas exercitationem
facere eos earum laboriosam excepturi quas?</p>
</div>
</div>
<div class="col-md-12 my-2 card">
<div class="card-body">
<h5 class="h5">Codeigniter Ternyata Framework
Terpopuler di Inodnesia</h5>
<p>Lorem ipsum dolor sit amet consectetur
adipisicing elit. Quibusdam perferendis commodi
tenetur quos ducimus repellat nulla, nam magni.
Commodi iusto ad harum voluptas exercitationem
facere eos earum laboriosam excepturi quas?</p>
</div>
</div>
</div>
</div>
</html>
Jika sekarang kita membuka localhost:8080, maka tampilannya akan berubah menjadi
seperti ini.
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About us</title>
<body>
<header class="jumbotron">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="h1">About us</h1>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia
modi unde cumque! Cum repellendus eveniet, illum id doloribus,
quibusdam tenetur debitis est libero quasi assumenda voluptates
aliquam tempore. Porro, asperiores.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia
modi unde cumque! Cum repellendus eveniet, illum id doloribus,
quibusdam tenetur debitis est libero quasi assumenda voluptates
aliquam tempore. Porro, asperiores.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia
modi unde cumque! Cum repellendus eveniet, illum id doloribus,
quibusdam tenetur debitis est libero quasi assumenda voluptates
aliquam tempore. Porro, asperiores.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia
modi unde cumque! Cum repellendus eveniet, illum id doloribus,
quibusdam tenetur debitis est libero quasi assumenda voluptates
aliquam tempore. Porro, asperiores.</p>
</div>
</div>
</div>
<footer class="jumbotron jumbotron-fluid mt-5 mb-0">
<div class="container text-center">Copyright © <?= Date('Y') ?> CI
News</div>
</footer>
</html>
Hasilnya: localhost:8080/about
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact us</title>
<body>
<header class="jumbotron">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="h1">Contact us</h1>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control">
</div>
<div class="form-group">
<label for="email">Message</label>
<textarea name="message" class="form-control" id="" cols="30"
rows="10"></textarea>
</div>
<div class="form-group">
<input type="submit" value="Kirim" class="btn btn-primary w-100">
</div>
</form>
</div>
</div>
</div>
</body>
</html>
Hasilnya: localhost:8080/contact
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FAQs</title>
<body>
<header class="jumbotron">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="h1">FAQs</h1>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2 class="h2">Apa itu CI Neews?</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia
modi unde cumque! Cum repellendus eveniet, illum id doloribus, quibusdam tenetur
debitis est libero quasi assumenda voluptates aliquam tempore. Porro,
asperiores.</p>
<h2 class="h2">Bagaimana Cara Membuat Akun CI News?</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia
modi unde cumque! Cum repellendus eveniet, illum id doloribus, quibusdam tenetur
debitis est libero quasi assumenda voluptates aliquam tempore. Porro,
asperiores.</p>
<h2 class="h2">Bagaimana Cara Menulis Artikel di CI News?</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia
modi unde cumque! Cum repellendus eveniet, illum id doloribus, quibusdam tenetur
debitis est libero quasi assumenda voluptates aliquam tempore. Porro,
asperiores.</p>
<h2 class="h2">Apakah CI News Official?</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia
modi unde cumque! Cum repellendus eveniet, illum id doloribus, quibusdam tenetur
debitis est libero quasi assumenda voluptates aliquam tempore. Porro,
asperiores.</p>
</div>
</div>
</div>
</html>
Hasilnya: localhost:8080/faqs
Silahkan buka Controller Page, kemudian ubahlah kode pada method contact() menjadi
seperti ini:
Variabel $data adalah variabel asosiatif array, dengan name sebagai key dan ‘Hello World’
sebagai value untuk name. Key name nantinya akan menjadi sebuah variabel di dalam view.
Sekarang, buka kode app/Views/contact.php dan tambahkan kode di bawah ini tepat di
atas pembuatan form.
Jika tadi kita hanya mengirim data berupa string, kini kita coba yang lebih kompleks
dengan mengirim data array. Biasanya ini nanti akan sering kita pakai untuk menampilkan
data yang berasal dari database.
Silahkan buka Controller Page, kemudian ubah kode pada method faqs menjadi seperti ini.
Variabel $data adalah variabel yang berisi asosiatif array. Pada kode di atas, kita membuat
data_faqs sebagai key dan mengisinya dengan array dari kumpulan pertanyaan dan
jawaban.
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>FAQs</title>
<body>
<header class="jumbotron">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="h1">FAQs</h1>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
<?php foreach ($data_faqs as $faq) : ?>
<h2 class="h2"><?= $faq['question'] ?></h2>
<p><?= $faq['answer'] ?></p>
<?php endforeach; ?>
</div>
</div>
</div>
</html>
Pada kode tersebut, kita menggunakan perulangan foreach untuk meng-iterasi semua data
pada variabel $data_faqs
Maka hasilnya: