Reactive Programming 🧐
Apa itu Reactive Programming?
Reactive programming is programming with asynchronous data stream.
Reactive Programming adalah paradigma pemrograman yang berorientasi pada stream data dan penyebaran perubahan. Ini berarti bahwa harus memungkinkan untuk mengekspresikan stream data statis atau dinamis dengan mudah dalam bahasa pemrograman yang digunakan, dan bahwa model eksekusi yang mendasarinya akan secara otomatis menyebarkan perubahan melalui stream data. reactive programming ini banyak di terapkan oleh perusahaan besar. bisa di implementasikan frontend maupun backend
dari gambar di atas dapat kita terjemahkan data stream akan turun ke bawah setelah mengeksekusi debounce, hal ini sangat menarik bagi saya karena reactive programming ini memiliki banyak sekali operator dan dapat digabungkan satu dengan yang lain. data ini di olah sedemikian rupa dan hasil nya akan di subscribe.
Reactive programming sendiri sudah mendukung banyak bahasa pemogramman seperti Java, Js dan PHP, namun untuk contoh dan implementasi saya akan menggunakan sintak rxsj
Reactive programming sendiri terdiri dari 3 bagian yaitu Observable, Observer dan Operator
Apa itu Observable?
Observable ini dapat di analogikan sebagai pengirim, observable ini mengimplementasi Observer Design Patern. nantinya observable ini akan mengirimkan data ke observer
Apa itu Observer?
observer adalah penerima ,observer ini lah yang akan menerima data dan melewatkan data subscribe, contoh kodingan Observable dan Observer sebagai berikut
const one$ = new Observable(observer => {
observer.next(1);
observer.complete();
}); one$.subscribe({
next: value => console.log(value),
// 1 });
Apa itu Operator?
Operator merupakan kumpulan fungsi untuk memanipulasi data berikut contoh kodingannya, pada keyword pipe, terdapat filter dan map yang merupakan Operator
range(1, 200)
.pipe(
filter(x => x % 2 === 1),
map(x => x + x)
)
.subscribe(x => console.log(x));
Kapan waktu yang cocok untuk menggunakan Reactive Programming?
ketika kita banyak berhubungan dengan manipulasi data, high load data atau multiuser aplikasi seperti
- Social networks, chats
- Games
- Audio and video apps (more so in streaming)
Contoh penggunaan Realcase
ketika kita meload suatu data kita perlu mengolah data tersebut sebelum di tampilkan dalam UI
disini terlihat kita dapat memanipulasi data response API, kita dapat filter dan catch error juga menerapkan retry hanya dalam satu Observable, sehingga data yang kita dapatkan dari subscribe merupakan hasil dari penerapan Operator, Berikut hasilnya
Kesimpulan
reactive programming merupakan solusi untuk mengelola data secara asyncronous, memiliki banyak operator yang dapat digunakan, juga di dukung untuk beberapa bahasa pemograman, perusahaan besar sekelas netflix juga menggunakan reactive
Ikatlah ilmu dengan Menulisnya
Semoga Bermanfaat