Pertemuan 7 PWEB - Membuat Website Course

Nama : Kadek Fajar Pramartha Yasodana

NRP : 5025231185

Kelas : PWEB E

Membuat Website Kursus

Pada tugas kali ini, saya membuat sebuah website kursus yang mengintegrasikan layout-layout yang sedikit rumit. Selain itu juga terdapat beberapa bagian tipe yang bisa dipilih pada bagian kursus, dan container tersebut akan memberikan kursus yang sesuai dengan pilihan tanpa mereload website.

Source Code : GitHub

Link Hosting Kursus : Vercel

Link Hosting Semua Project : Vercel

Screenshot Offers


Screenshot Algorithms

Screenshot Web

Screenshot Game

index.html

File index.html pada project ini merupakan halaman web yang menggunakan HTML5. Di dalam elemen <head>, terdapat dua tautan stylesheet (normalize.css dan styles.css) yang digunakan untuk menormalkan gaya default browser dan menerapkan gaya khusus pada halaman, serta satu skrip JavaScript (script.js) yang dimuat secara defer untuk memastikan skrip dijalankan setelah halaman selesai dimuat.

Di dalam elemen <body>, terdapat elemen <nav> yang berfungsi sebagai navigasi utama halaman. Elemen ini berisi gambar logo (cryothink.png) dan dua elemen <div> yang masing-masing berisi elemen <h3> dengan teks "Home" dan "Course". Kedua elemen <div> ini memiliki atribut onclick yang menggunakan metode scrollIntoView() untuk menggulir halaman ke elemen dengan ID home dan course ketika diklik.

Selanjutnya, terdapat elemen <main> yang berfungsi sebagai konten utama halaman. Di dalamnya, terdapat elemen <div> dengan ID home dan kelas home, yang menampilkan gambar latar belakang (homebackground.png), judul "Premium Course", deskripsi singkat tentang kursus premium yang ditawarkan oleh Cryothink, dan tombol "Learn More" yang menggulir halaman ke bagian kursus ketika diklik.

Bagian kursus (course) terdiri dari elemen <aside> yang berisi tombol-tombol navigasi untuk berbagai kategori kursus seperti "Offers", "Algorithms", "Web", dan "Game". Di sebelahnya, terdapat elemen <section> yang berisi berbagai kursus yang ditawarkan. Setiap kursus ditampilkan dalam elemen <div> dengan kelas course-item, yang berisi header dengan judul kursus, gambar, deskripsi singkat, dan tombol "Learn More".

Bagian kursus algoritma (course-algorithms) mencakup kursus dasar, struktur data, dan graf, masing-masing dengan deskripsi yang lebih mendetail dan harga. Bagian kursus pengembangan web (course-web) mencakup kursus HTML & CSS, Node JS, Deployment, dan Frameworks, dengan deskripsi dan harga masing-masing. Bagian kursus pengembangan game (course-gamedevelopment) mencakup kursus Unity, OpenGL, Shaders, dan Vulkan, dengan deskripsi dan harga masing-masing.

Terakhir, terdapat elemen <footer> yang berisi teks "Made by Kadek Fajar Pramartha Yasodana", menunjukkan pembuat halaman web ini.


script.js

Kode JavaScript ini mengelola tampilan dan interaksi dari berbagai bagian kursus pada halaman web. Pertama, kode ini mengambil referensi ke elemen-elemen HTML yang mewakili tombol-tombol navigasi dan bagian-bagian kursus, kemudian menyimpannya dalam array untuk memudahkan pengelolaan. Variabel activeIndex digunakan untuk menyimpan indeks dari bagian kursus yang sedang aktif, dan TYPE_COUNT menyimpan jumlah total jenis kursus. 

Fungsi setActive diinisialisasi dengan memanggil setActive(0) untuk mengatur tampilan awal agar bagian "Offers" aktif saat halaman pertama kali dimuat. Event listener ditambahkan ke setiap tombol navigasi untuk memanggil fungsi setActive dengan indeks yang sesuai ketika tombol diklik.

Fungsi setActive mengatur bagian kursus mana yang aktif berdasarkan indeks yang diberikan, dengan menghapus kelas button-aside-choosed dari tombol yang tidak aktif dan menambahkan kelas inactive ke bagian kursus yang tidak aktif, serta menambahkan kelas button-aside-choosed ke tombol yang aktif dan menghapus kelas inactive dari bagian kursus yang aktif.





Comments

Popular posts from this blog

Pertemuan 1 KPPL - Software Engineer

Pertemuan 13 OOP - Abstraksi & Simulasi Fox & Rabit

Pertemuan 12 PWEB - Update Database Pendaftaran Siswa