Intro

Kenapa Angular

Apa itu Angular

Angular adalah sebuah kerangka kerja (framework) pengembangan untuk membuat aplikasi interaktif dan dinamis menjadi lebih mudah, cepat, dan stabil.


Kenapa Angular

Ada beberapa alasan untuk memilih Angular untuk pengembangan web:

1. Pengembangan Terstruktur

Angular memberikan pemahaman yang jelas tentang bagaimana pengembangan aplikasi harus disusun. Ini memberikan manfaat berikut:

  • Konsistensi Kode: Dengan menggunakan pendekatan yang konsisten, kode dalam proyek Angular cenderung mudah dibaca dan dipelihara oleh pengembang lain.
  • Terstandarisasi: Angular menyediakan banyak fitur bawaan yang memungkinkan mengimplementasikan fitur umum dengan cara yang terstandarisasi. Misalnya, Angular menyediakan cara baku untuk mengelola form, route, dan sharing antar component.
  • Pemisahan yang Jelas: Angular memisahkan logika aplikasi menjadi komponen-komponen yang terpisah.

Kode dalam proyek Angular sering kali tampak seragam. Ini berarti jika kita bekerja pada beberapa proyek Angular, kita akan merasa familiar, karena proyek-proyek tersebut memiliki struktur dan gaya yang serupa. Ini memungkinkan pengembang untuk beralih dari satu proyek ke proyek lain tanpa mengalami hambatan besar.

2. Produktivitas Pengembangan

Angular menyediakan berbagai macam fitur yang memungkinkan kita mengembangkan web dengan cepat.

  • TypeScript: Bayangkan JavaScript bisa memberi tahu kita apa yang akan terjadi sebelum aplikasi dijalankan. TypeScript adalah alat yang membantu kita menghindari kesalahan sebelum kesalahan itu muncul dalam aplikasi. Ini membuat kita menghindari kesalahan-kesalahan umum dan aplikasi jadi lebih stabil. Kita akan membahasnya lebih detail nanti.
  • Two-way Data Binding: Angular menawarkan aliran data dua arah, agar antarmuka pengguna (UI) dan data aplikasi (State) tetap sinkron.
  • Component-Based Architecture: Bayangkan jika kita bisa membangun aplikasi seperti bermain dengan LEGO. Setiap bagian dari aplikasi adalah seperti potongan LEGO yang dapat kita gunakan kembali. Ini membuat lebih efisien dan memudahkan untuk memahami bagaimana aplikasi bekerja.
  • Dependency Injection: Bayangkan memiliki kotak diisi berbagai alat. Dependency Injection ialah mekanisme yang memungkinkan kita mengambil alat yang dibutuhkan dari kotak tersebut. Kita dapat dengan mudah berbagi alat ini antara bagian-bagian aplikasi kita.
  • RxJS dan Angular Signals: Membantu mengelola data atau state baik secara sinkron maupun asinkron untuk dibagikan dalam setiap komponen.

Masih banyak lagi seperti CLI, Router, Form, HttpClient, Testing, Animation, Internationalization, Server-side Rendering, PWA, dsb. yang akan kita bahas saat waktunya tiba.

3. Familiar bagi Developer OOP

Hadirnya Module, Dependency Injection, Service Based Architecture, dan ditulis dengan Typescript membuat Angular sangat familiar untuk dipakai oleh Programmer yang menggunakan bahasa Object-oriented Programming seperti C# dan Java.

4. Dukungan dari Google dan Komunitas

Angular dibacking penuh pengembangannya dan digunakan oleh Google. Serta didukung komunitas-komunitas yang dewasa dan terus berkembang.

5. Stabilitas

Angular memiliki siklus rilis yang stabil dan dapat diandalkan. Ini berarti kita tidak perlu khawatir tentang perubahan yang tidak kompatibel dengan versi sebelumnya. Angular juga memiliki siklus rilis yang jelas dan roadmap yang jelas. Ini memungkinkan kita untuk merencanakan pengembangan aplikasi kita dengan lebih baik.

Kapan harus memakai Angular

Menurut perspektif subjektif saya, ada beberapa kasus yang cocok untuk menggunakan Angular:

  • Enterprise Application: Aplikasi skala menengah hingga besar yang kompleks dan membutuhkan banyak fitur. Angular menyediakan fitur yang lengkap yang disediakan official sehingga menghilangkan kekhawatiran akan keamanan, stabilitas, dan dukungan jangka panjang dari pengembang.
  • Aplikasi dengan Arsitektur Microservice: Bayangkan seperti memiliki backend menggunakan REST API, maka Angular dapat digunakan untuk mengakses API tersebut dengan mudah melalui HttpClient yang kualitasnya sangat baik.
  • Progressive Web App: Angular menyediakan fitur yang lengkap untuk membuat PWA. Ini membuat pengembangan PWA menjadi lebih mudah dan cepat.
  • Tim Developer yang menyukai Object Oriented Programming: Angular menggunakan Typescript dan berbagai metode Object Oriented Programming yang familiar bagi pengguna OOP.

Kapan tidak harus memakai Angular

Dalam kasus tertentu Angular mungkin tidak cocok digunakan, bisa karena beberapa alasan berikut:

  • Kebutuhan Spesifik: Angular menyediakan banyak fitur bawaan serta komunitas yang dewasa, namun tidak semua fitur tersedia dalam ekosistem komunitas Angular, ada kalanya menggunakan teknologi lain akan jauh lebih baik.
  • Aplikasi yang sangat kecil: Angular menyediakan banyak fitur yang memungkinkan kita mengembangkan aplikasi dengan cepat. Namun, jika kita mengembangkan aplikasi yang sangat kecil, kita mungkin tidak membutuhkan fitur-fitur tersebut.
  • Keterbatasan Kapasitas Teknis: Jika tim belum terbiasa dengan TypeScript atau memiliki keterbatasan dalam hal pemahaman konsep-konsep yang kompleks seperti Dependency Injection, maka memulai dengan Angular bisa menjadi tantangan.
  • Tim yang sangat menyukai Fleksibilitas: Jika tim pengembang sangat menyukai fleksibilitas dalam memilih teknologi yang akan digunakan dalam proyek, maka Angular mungkin bukan pilihan terbaik. Angular memiliki banyak aturan dan konvensi yang harus diikuti, yang dapat membatasi fleksibilitas dalam pemilihan teknologi. Dalam kasus seperti ini, menggunakan framework yang lebih fleksibel mungkin lebih baik.

Contoh: Web (Meduru) yang Kamu lihat di sini tidak diciptakan dengan Angular, melainkan saya menggunakan template Tailwind yang tersedia dengan NextJS (React). Karena saya tidak punya banyak waktu untuk mengembangkan webnya dari awal. Namun mayoritas proyek saya lainnya menggunakan Angular.

Fleksibilitas Mindset

Fleksibilitas dalam berpikir merupakan kunci sebagai Developer Modern. Karena akan selalu muncul teknologi baru yang lebih baik, namun tentu diiringi dengan kehati-hatian dan pertimbangan yang matang sesuai kebutuhan, bukan karena FOMO.

Previous
Pengenalan Front-End dan Back-End