Angular adalah sebuah platform untuk mengembangkan frontend dari sebuah aplikasi web yang berbasis open source. Platform ini dikembangkan oleh tim Google dan komunitas open source Angular. Platform ini menggunakan bahasa Typescript, sebuah pengembangan dari bahasa Javascript yang merupakan bahasa utama yang digunakan untuk web development. Angular sendiri merupakan platform yang dibangun untuk meningkatkan performa dari AngularJS. Platform ini sering disebut juga dengan Angular 2 atau Angular 2+.

Platform ini seringkali digunakan untuk membangun single page application (SPA). Penggunaan dari SPA ini berarti bahwa segala komponen yang akan digunakan dalam aplikasi web tersebut akan di- load dalam browser terlebih dahulu agar user tidak perlu melakukan page load ketika membuka page baru. Seringkali SPA ini berupa bundle dari code Javascript yang dibuka oleh browser secara bersamaan.

Terdapat beberapa fitur dari Angular yang membuatnya menjadi salah satu platform yang paling banyak digunakan dalam pengembangan aplikasi web, antara lain sebagai berikut:

  1. Modularitas
    Framework Angular menyediakan konsep bahwa komponen-komponen yang dibangun dalam Angular dapat dengan mudah digunakan kembali dalam komponen lainnya tanpa perlu melakukan coding dari awal. Modularitas berarti, komponen-komponen umum seperti card, toolbar, navbar, dan container dapat dibangun sekali dan digunakan berkali-kali dalam komponen tersebut.
  1. Object Oriented Programming
    Penggunaan Typescript memberikan kemampuan bagi developer untuk menerapkan konsep object oriented programming (OOP). Itu berarti, komponen dalam Angular dapat dikembangkan dengan menerapkan prinsip class dan object. Hal ini mempermudah developer untuk mengembangkan code dan lebih menyesuaikan dengan paradigma programming yang diterapkan pada bahasa pemrograman seperti Java atau C#.
  1. Reactive Programming
    Dalam web programming, terkadang hasil response dari server muncul secara asynchronous. Agar experience user tetap terjaga dengan baik, maka kita tidak dapat selalu menggunakan code yang dijalankan secara berurutan. Kita juga harus memiliki code yang memiliki kemampuan untuk berjalan secara asynchronous. Hal ini dapat dibuat dengan menggunakan tools bernama reactive Javascript (RxJS),  yang  merupakan  salah  satu  fitur  yang  dapat  digunakan  dalam  Angular.  Pada   RxJS, observable digunakan untuk menampung perubahan-perubahan  yang terjadi secara    asynchronous agar code dapat berjalan walaupun aplikasi masih melakukan fetch request kepada server.

Author: Willem Chua (1801404674)
Supervisor: Dewi Suryani (D5878)