SOAL LOMBA KOMPETENSI SISWA
TINGKAT SEKOLAH MENENGAH KEJURUAN (SMK) WILAYAH DAERAH ISTIMEWA YOGYAKARTA
BIDANG WEB TECHNOLOGY TAHUN 2021
A. Petunjuk
Bacalah soal atau tugas yang diberikan dengan seksama sebelum Anda mulai mengerjakan. Peserta diberi kesempatan untuk bertanya kepada juri jika ada yang belum dipahami terkait tugas atau soal yang diberikan pada sesi penjelasan tata tertib dan soal lomba. Berikut adalah jadwal pelaksanaan LKS Web Technology 2021:
No Hari Waktu Aktivitas
1. 9 Juni 2021 07.30 - 08.00 Penjelasan Tata Tertib dan Soal Lomba 08.00 - 12.00 Pembuatan Website
12.00 - 13.00 Ishoma
13.00 - 16.00 Pembuatan Website 2. 10 Juni 2021 07.30 - 12.00 Pembuatan Website
12.00 - 13.00 Ishoma
13.00 - 16.00 Presentasi Hasil dan Penjurian
B. Tugas
Survei dari Programme for International Student Assessment (PISA) pada tahun 2018 menunjukan bahwa Indonesia berada pada peringkat 71 dari 77 negara di dunia dalam hal matematika, ilmu pengetahuan dan membaca. Sedangkan survei lainnya berasal dari Badan Pusat Statistik (BPS) pada tahun 2012 mengenai minat membaca dan menonton anak-anak Indonesia, hanya 17,66% anak-anak Indonesia yang memiliki minat baca. Sementara, yang memiliki minat menonton mencapai 91,67%. Salah satu penyebab rendahnya minat baca tersebut adalah akses buku yang berkualitas belum merata di sejumlah daerah.
Berdasarkan permasalahan tersebut, Anda merupakan seorang web developer mendapat pekerjaan dari Perpustakaan Nasional Republik Indonesia untuk membuat suatu web yang berisi katalog buku. Harapannya dengan adanya web tersebut, masyarakat Indonesia dapat dengan mudah mengakses informasi mengenai buku. Target pengguna web tersebut berada pada rentang usia 15 - 64 tahun sesuai dengan demografi penduduk Indonesia usia produktif yang mencakup 70,72% dari seluruh penduduk Indonesia (sumber: BPS tahun 2021).
C. Ketentuan
1. Spesifikasi/Kriteria Lomba
● Pembuatan grafis untuk website yang sesuai dengan spesifikasi.
● Keterampilan dalam perancangan website, komposisi warna, dan tipografi.
● Membuat website yang kompatibel pada berbagai browser dan responsif untuk diakses dari berbagai perangkat (desktop maupun mobile) dan layar resolusi.
● Melengkapi dengan validasi dan animasi serta mengintegrasikan audio dan video ke dalam website.
● Merancang dan mengimplementasikan database.
● Memanipulasi data dengan memanfaatkan keterampilan pemrograman.
● Menggunakan open sources library dan web framework.
● Mengintegrasikan kode program yang ada dengan API (Application
Programming Interface). Misal, membangun fitur login dengan menggunakan akun gmail atau sosial media.
● Membuat fitur web scraping untuk mengambil data dari website pihak ketiga dan melakukan ekstraksi data dari file menggunakan teknologi web.
● Menampilkan visualisasi data dalam bentuk tabel dan chart/grafik dan mengekspor data ke dalam bentuk file.
● Membuat REST-API sederhana.
● Melindungi website dari eksploitasi keamanan.
● Menggunakan sistem version control.
2. Halaman Admin
Pada halaman ini, admin dapat melakukan scraping data buku dari Google PlayStore.
Data yang diambil meliputi:
1. Cover 2. Judul 3. Deskripsi 4. Pengarang 5. Penerbit 6. Tanggal Terbit 7. Genre
8. Bahasa
9. Jumlah Halaman 10. Kompatibility
11. Harga (dalam rupiah) 12. Total Nilai Rating 13. Jumlah Pemberi Rating
MENU PENGATURAN
Sebelum melakukan scraping data, admin perlu melakukan pengaturan / konfigurasi pada menu pengaturan. Pada menu pengaturan terdapat form pengaturan dan list pengaturan scraping data.
Form pengaturan scraping data buku dapat berisi beberapa field berikut.
- Judul scraping data
- Link scraping data (1 link 1 buku) - Button Simpan
List pengaturan scraping data dapat berupa tabel yang berisi beberapa kolom berikut.
- Judul scraping data - Link scraping data - Tanggal dibuat
- Tanggal terakhir dijalankan
- Jumlah eksekusi (Berapa kali dijalankan)
- Button Jalankan (Apabila belum ada data buku maka Insert ke database, jika sudah ada data buku dan terdapat perubahan informasi maka Update data buku di database, sedangkan bila tidak ada perubahan data maka tidak perlu ada aksi yang dilakukan)
o Menampilkan notifikasi bahwa data berhasil ditambahkan/di-update di database atau tidak ada aksi yang dilakukan karena tidak ada perubahan data.
o Setiap kali pengaturan dijalankan maka akan terekam log informasi tanggal dijalankan dan keterangan (Data baru dimasukkan / Data diupdate / Tidak ada aksi).
- Button Log (Menampilkan log)
- Button Hapus (Menghapus pengaturan)
MENU BUKU
Admin dapat mengelola data buku dengan memanfaatkan beberapa fitur berikut.
Import Buku digunakan admin untuk memasukkan daftar data buku yang ada di dalam file CSV ke database. Untuk mensimulasikan fitur ini, buatlah dummy data buku dalam format CSV.
List Buku - Judul - Pengarang - Genre - Penerbit - Tahun Terbit
- Status (Visible / Hide) - Button Detail
- Button Edit (semua field termasuk mengganti cover dan status) - Button Hapus
Export Buku (ke dalam format CSV)
MENU DASHBOARD
Dashboard Buku (dalam bentuk grafik) - Jumlah Buku per Genre - Jumlah Buku per Tahun Terbit - Jumlah Buku per Bahasa
- Jumlah Buku berdasar Rating (1/2/3/4/5)
Ketika grafik tersebut dipilih/diklik maka akan menuju ke halaman yang menampilkan list buku berdasarkan Genre/Tahun Terbit/Bahasa/Ratingnya.
2. Halaman User
Halaman user memiliki fitur-fitur utama sebagai berikut.
- Katalog Buku
- Melakukan pencarian buku seperti pada search engine - Filter data buku berdasarkan:
o Genre o Bahasa o Kompatibility
o Tahun Terbit (range) - Sorting data buku berdasarkan:
o Termahal - Termurah o Termurah - Termahal o Terbaru - Terlama o Terlama – Terbaru
o Rating Tertinggi - Terendah o Rating Terendah - Tertinggi - Detail buku
o Export data per buku (ke dalam format PDF)
- Login melalui API email atau sosial media (untuk dapat mem-filter, sorting, dan melihat detail)
3. Manajemen dan keamanan web
Web dilengkapi dengan REST-API yang berisi katalog buku.
Keamanan web harus terjamin dari serangan SQL Injection dan cross site scripting (XSS) pada upload cover buku. REST-API hanya dapat diakses dengan API Key atau Token (misal menggunakan JWT).
Source code dari web harus dikelola dengan baik menggunakan version control. Anda harus melakukan commit dan push secara berkala untuk menjamin developer lain di tim Anda mengetahui progress pekerjaan. Source code dalam platform version control bersifat private dan hanya user yang sudah anda tambahkan dapat mengakses source code tersebut. Agar tim developer Anda mengetahui progress pekerjaan, silahkan submit link source code Anda melalui form berikut:
https://forms.gle/hQ4jqFzfwBL4knLM7 Tambahkan user berikut sebagai kolaborator dalam source code Anda: psetialana (Untuk platform Github, Gitlab, Bitbucket)