Apa itu Pemrograman Reaktif/Reactive?

Apa Itu Pemrograman Reactive? Yang Perlu Kamu Ketahui
Apa Itu Pemrograman Reactive? Yang Perlu Kamu Ketahui


Pemrograman reaktif adalah paradigma pemrograman yang berorientasi pada aliran data dan penyebaran perubahan. Ini berarti bahwa aliran data statis atau dinamis harus dapat diekspresikan dengan mudah dalam bahasa pemrograman yang digunakan, dan bahwa model eksekusi yang mendasarinya akan secara otomatis menyebarkan perubahan melalui aliran data.

Dengan kata sederhana, dalam aliran data pemrograman Rx yang dipancarkan oleh satu komponen dan struktur dasar yang disediakan oleh pustaka Rx akan menyebarkan perubahan tersebut ke komponen lain yang terdaftar untuk menerima perubahan data tersebut. Singkat cerita: Rx terdiri dari tiga poin utama.

RX = OBSERVABLE + OBSERVER + SCHEDULERS

OBSERVABLE (Dapat diamati): OBSERVABLE hanyalah aliran data. OBSERVABLE mengemas data yang dapat diteruskan dari satu utas ke utas lainnya. Mereka pada dasarnya memancarkan data secara berkala atau hanya sekali dalam siklus hidupnya berdasarkan konfigurasinya. Ada berbagai operator yang dapat membantu Observers untuk mengeluarkan beberapa data spesifik berdasarkan peristiwa tertentu, tetapi kami akan membahasnya di bagian mendatang. Untuk saat ini, Anda dapat menganggap yang OBSERVABLE sebagai pemasok. Mereka memproses dan memasok data ke komponen lain.

Observers (Pengamat): Observers mengkonsumsi aliran data yang dipancarkan oleh yang OBSERVABLE. Observers berlangganan ke yang OBSERVABLE menggunakan metode subscribeOn() untuk menerima data yang dipancarkan oleh yang OBSERVABLE. Setiap kali yang diamati memancarkan data, semua Observers yang terdaftar menerima data dalam callback onNext(). Di sini mereka dapat melakukan berbagai operasi seperti mem-parsing respons JSON atau memperbarui UI. Jika ada kesalahan yang dilemparkan dari yang OBSERVABLE, Observers akan menerimanya di onError().

Schedulers (Penjadwal): Ingatlah bahwa Rx adalah untuk pemrograman asinkron dan kami memerlukan manajemen utas. Di situlah jadwal masuk ke dalam gambar. Schedulers adalah komponen dalam Rx yang memberi tahu yang OBSERVABLE dan Observers, di utas mana mereka harus dijalankan. Anda dapat menggunakan metode observasiOn() untuk memberi tahu Observers, di utas mana yang harus Anda amati. Selain itu, Anda dapat menggunakan scheduleOn() untuk memberi tahu yang OBSERVABLE, di utas mana yang harus Anda jalankan. Ada utas default utama yang disediakan di RxJava seperti Schedulers.newThread() akan membuat latar belakang baru itu. Schedulers.io() akan mengeksekusi kode pada utas IO.


Bagaimana cara kerja pemrograman reaktif?

Pemrograman reaktif adalah semua tentang aliran, yang merupakan urutan urutan waktu dari pesan acara terkait. Aliran tertentu umumnya akan dimulai dengan pengamat, yang dapat berupa segmen kode di dalam aplikasi yang memantau beberapa kondisi terkait aplikasi, atau perangkat seperti sensor IoT yang menghasilkan suatu peristiwa. Aliran terkadang didiagramkan sebagai panah -- dari kiri ke kanan -- yang dimulai dengan proses pengamat dan mengalir melalui satu atau lebih penangan hingga selesai diproses, berakhir dalam status kesalahan, atau bercabang menjadi aliran turunan. Pemrograman reaktif adalah tentang membangun pengamat dan penangan tersebut dan melakukan threading aliran sesuai kebutuhan.

Aliran yang dihasilkan perangkat mudah dipahami. Tetapi aliran yang dihasilkan oleh pengamat yang dimasukkan perangkat lunak sedikit lebih rumit. Biasanya, elemen-elemen ini bekerja baik dalam kerja sama dengan pekerjaan pemrosesan yang dilakukan oleh aplikasi atau dijalankan secara berkala untuk memantau elemen database. Ketika elemen perangkat lunak ini mengenali suatu kondisi, ia menghasilkan suatu peristiwa di aliran.


Contoh Library Reactive

RxJS


Contoh library yang ada untuk Pemrograman Reactive antara lain : RXJS untuk Javascript dan Typescript biasanya digunakan dengan AngularJS, kemudian ada Combine dan RXSwift biasanya digunakan untuk pemrograman mobile di iOS, kemudian ada RXJava biasanya digunakan bersama dengan Kotlin dan Java untuk membuat aplikasi Mobile.


Reactive vs Imperative

Pemrograman imperatif berarti Anda bertanggung jawab untuk menarik acara dari antrean. Pemrograman reaktif berarti Anda mendaftarkan panggilan balik dan kerangka kerja bertanggung jawab untuk memanggil panggilan balik Anda dengan benar.

Secara sederhana : Pemrograman imperatif  itu seperti anda menghitung mobil diparkiran misal dalam parkiran ada 30 Mobil maka mobil akan berkurang atau bertambah ketika ada mobil atau masuk dan lebih mudah untuk dihitung namun space atau ruang terbatas.

Kemudian  Pemrograman Reactive seperti anda menghitung mobil di jalan raya, mobil berallau lalang dengan cepat dan space di jalan raya lebih dapat menampung banyaknya kendaraan yang ada karena Mobil silih berganti.

Baca Juga: