# Membangun Aplikasi Perbankan Bagian 1: Template HTML dan Rute dalam Aplikasi Web ```mermaid journey title Your Banking App Development Journey section SPA Fundamentals Understand single-page apps: 3: Student Learn template concepts: 4: Student Master DOM manipulation: 4: Student section Routing Systems Implement client-side routing: 4: Student Handle browser history: 5: Student Create navigation systems: 5: Student section Professional Patterns Build modular architecture: 5: Student Apply best practices: 5: Student Create user experiences: 5: Student ``` Ketika komputer panduan Apollo 11 menavigasi ke bulan pada tahun 1969, ia harus beralih antara berbagai program tanpa memulai ulang seluruh sistem. Aplikasi web modern bekerja dengan cara yang serupa – mereka mengubah apa yang Anda lihat tanpa memuat ulang semuanya dari awal. Hal ini menciptakan pengalaman yang mulus dan responsif yang diharapkan pengguna saat ini. Berbeda dengan situs web tradisional yang memuat ulang seluruh halaman untuk setiap interaksi, aplikasi web modern hanya memperbarui bagian yang perlu diubah. Pendekatan ini, seperti bagaimana pusat kendali beralih antara berbagai tampilan sambil tetap menjaga komunikasi yang konstan, menciptakan pengalaman yang lancar yang kita harapkan. Inilah yang membuat perbedaannya begitu dramatis: | Aplikasi Multi-Halaman Tradisional | Aplikasi Satu Halaman Modern | |------------------------------------|-----------------------------| | **Navigasi** | Muat ulang halaman penuh untuk setiap layar | Pergantian konten instan | | **Performa** | Lebih lambat karena unduhan HTML lengkap | Lebih cepat dengan pembaruan parsial | | **Pengalaman Pengguna** | Kilatan halaman yang mengganggu | Transisi mulus seperti aplikasi | | **Berbagi Data** | Sulit antar halaman | Manajemen status yang mudah | | **Pengembangan** | Banyak file HTML untuk dikelola | Satu HTML dengan template dinamis | **Memahami evolusi:** - **Aplikasi tradisional** membutuhkan permintaan server untuk setiap tindakan navigasi - **SPA modern** hanya dimuat sekali dan memperbarui konten secara dinamis menggunakan JavaScript - **Ekspektasi pengguna** sekarang lebih menyukai interaksi yang instan dan mulus - **Keuntungan performa** termasuk pengurangan bandwidth dan respons yang lebih cepat Dalam pelajaran ini, kita akan membangun aplikasi perbankan dengan beberapa layar yang mengalir bersama secara mulus. Seperti bagaimana para ilmuwan menggunakan instrumen modular yang dapat dikonfigurasi ulang untuk berbagai eksperimen, kita akan menggunakan template HTML sebagai komponen yang dapat digunakan kembali yang dapat ditampilkan sesuai kebutuhan. Anda akan bekerja dengan template HTML (cetakan yang dapat digunakan kembali untuk berbagai layar), routing JavaScript (sistem yang beralih antara layar), dan API riwayat browser (yang menjaga tombol kembali berfungsi seperti yang diharapkan). Teknik-teknik ini adalah dasar yang sama yang digunakan oleh kerangka kerja seperti React, Vue, dan Angular. Pada akhirnya, Anda akan memiliki aplikasi perbankan yang berfungsi yang menunjukkan prinsip aplikasi satu halaman profesional. ```mermaid mindmap root((Single-Page Applications)) Architecture Template System Client-side Routing State Management Event Handling Templates Reusable Components Dynamic Content DOM Manipulation Content Switching Routing URL Management History API Navigation Logic Browser Integration User Experience Fast Navigation Smooth Transitions Consistent State Modern Interactions Performance Reduced Server Requests Faster Page Transitions Efficient Resource Usage Better Responsiveness ``` ## Kuis Pra-Pelajaran [Kuis pra-pelajaran](https://ff-quizzes.netlify.app/web/quiz/41) ### Apa yang Anda Butuhkan Kita akan membutuhkan server web lokal untuk menguji aplikasi perbankan kita – jangan khawatir, ini lebih mudah daripada yang Anda pikirkan! Jika Anda belum memilikinya, cukup instal [Node.js](https://nodejs.org) dan jalankan `npx lite-server` dari folder proyek Anda. Perintah praktis ini akan menjalankan server lokal dan secara otomatis membuka aplikasi Anda di browser. ### Persiapan Di komputer Anda, buat folder bernama `bank` dengan file bernama `index.html` di dalamnya. Kita akan memulai dari [boilerplate HTML](https://en.wikipedia.org/wiki/Boilerplate_code) ini: ```html Bank App ``` **Inilah yang disediakan oleh boilerplate ini:** - **Menetapkan** struktur dokumen HTML5 dengan deklarasi DOCTYPE yang benar - **Mengonfigurasi** pengkodean karakter sebagai UTF-8 untuk dukungan teks internasional - **Mengaktifkan** desain responsif dengan tag meta viewport untuk kompatibilitas seluler - **Menetapkan** judul deskriptif yang muncul di tab browser - **Membuat** bagian body yang bersih tempat kita akan membangun aplikasi kita > πŸ“ **Pratinjau Struktur Proyek** > > **Pada akhir pelajaran ini, proyek Anda akan berisi:** > ``` > bank/ > β”œβ”€β”€ index.html > β”œβ”€β”€ app.js > └── style.css > ``` > > **Tanggung jawab file:** > - **index.html**: Berisi semua template dan menyediakan struktur aplikasi > - **app.js**: Menangani routing, navigasi, dan manajemen template > - **Template**: Mendefinisikan UI untuk login, dashboard, dan layar lainnya --- ## Template HTML Template menyelesaikan masalah mendasar dalam pengembangan web. Ketika Gutenberg menemukan pencetakan tipe bergerak pada tahun 1440-an, ia menyadari bahwa daripada mengukir seluruh halaman, ia dapat membuat blok huruf yang dapat digunakan kembali dan mengaturnya sesuai kebutuhan. Template HTML bekerja dengan prinsip yang sama – daripada membuat file HTML terpisah untuk setiap layar, Anda mendefinisikan struktur yang dapat digunakan kembali yang dapat ditampilkan sesuai kebutuhan. ```mermaid flowchart TD A["πŸ“‹ Template Definition"] --> B["πŸ’¬ Hidden in DOM"] B --> C["πŸ” JavaScript Finds Template"] C --> D["πŸ“‹ Clone Template Content"] D --> E["πŸ”— Attach to Visible DOM"] E --> F["πŸ‘οΈ User Sees Content"] G["Login Template"] --> A H["Dashboard Template"] --> A I["Future Templates"] --> A style A fill:#e3f2fd style D fill:#e8f5e8 style F fill:#fff3e0 style B fill:#f3e5f5 ``` Pikirkan template sebagai cetak biru untuk berbagai bagian aplikasi Anda. Sama seperti seorang arsitek membuat satu cetak biru dan menggunakannya beberapa kali daripada menggambar ulang ruangan yang identik, kita membuat template sekali dan menggunakannya sesuai kebutuhan. Browser menyimpan template ini tersembunyi sampai JavaScript mengaktifkannya. Jika Anda ingin membuat beberapa layar untuk sebuah halaman web, salah satu solusinya adalah membuat satu file HTML untuk setiap layar yang ingin Anda tampilkan. Namun, solusi ini memiliki beberapa ketidaknyamanan: - Anda harus memuat ulang seluruh HTML saat beralih layar, yang bisa lambat. - Sulit untuk berbagi data antara layar yang berbeda. Pendekatan lain adalah hanya memiliki satu file HTML, dan mendefinisikan beberapa [template HTML](https://developer.mozilla.org/docs/Web/HTML/Element/template) menggunakan elemen `