Minggu, 28 Januari 2018

Apa Beda Firebase Dengan MySQL?

Artikel kali ini akan membahas mengenai beda Firebase dengan MySQL. Sebenarnya salah jika kita membandingkan langsung Firebase dengan MySQL. Kenapa? Karena Firebase bukanlah nama sebuah database, tapi sekumpulan layanan yang disediakan oleh Google untuk memenuhi kebutuhan programmer, dan memudahkan pekerjaan programmer. 

Yang kita bisa bandingkan adalah Firebase Realtime Database dengan MySQL, atau Firebase Cloud Firestore dengan MySQL. Di artikel ini kita akan belajar perbedaan Firebase Realtime Database (FRD) dengan MySQL. MySQL yang dimaksud di artikel ini adalah MySQL Community Edition


Perbedaan #1. Firebase Realtime Database bertipe NoSQL sedangkan MySQL bertipe RDBMS.

Maksudnya, Data di FRD tidak terdiri dari tabel-tabel, melainkan hanya berupa 1 dokumen berformat JSON. Data FRD bisa digambarkan sebagai 1 file teks biasa yg isinya sebagai berikut:



Tentu saja isinya bisa sangat banyak, tapi formatnya selalu sama seperti di atas, yaitu format JSON. Penulis sendiri punya pengalaman dengan FRD sebesar 75MB. File teks tersebut disimpan di server Google, dan kita bisa mengaksesnya dari browser Chrome, app Android atau app iOS.

Perbedaan #2. Firebase Realtime Database bersifat realtime, sedangkan MySQL tidak realtime

Sesuai namanya, FRD bersifat realtime. Artinya jika ada 1 user yg memakai aplikasi kita mengupdate data dari hapenya, maka datanya yang ada di server Google akan langsung terupdate, dan sistem Firebase akan langsung mengupdate semua data di semua hape user yang lainnya yang sedang memakai aplikasi kita. Artinya datanya akan selalu sama di semua tempat setiap waktu. Sedangkan untuk MySQL kita perlu membuat dulu kodingan supaya datanya bisa selalu sama seperti ini. Dengan FRD, sistem Firebase lah yang melakukannya secara otomatis untuk kita.

[EDIT] Informasi tambahan didapat dari Sabda Utama Rosiadi, ada sedikit delay untuk menyamakan data di semua tempat, paling lambat 0,01 detik.

Perbedaan #3. Dengan Firebase Realtime Database kita tidak perlu membuat kodingan di sisi server

FRD hanya membutuhkan kita membuat kodingan untuk mengubah database di sisi client (web, aplikasi Android, atau aplikasi iOS), sedangkan MySQL biasanya membutuhkan kita untuk membuat kodingan di sisi server dengan bahasa-bahasa pemrograman server misalnya PHP, Go, Ruby dsb.

Perbedaan #4. Kodingan yang dipakai di Firebase untuk mengolah data yang kompleks lebih banyak dan rumit daripada kodingan yang dipakai untuk mengolah data MySQL

Karena data di FRD tidak terdiri dari tabel, kodingan untuk mengolah data yang kompleks (banyak dan saling berhubungan antara satu bagian dengan bagian lain) akan lebih banyak dan rumit daripada MySQL.

[EDIT] Informasi tambahan didapatkan dari Rudy Gunawan di Facebook, ada beberapa fungsi query yang sudah ada di MySQL, tidak tersedia di FRD. Ini juga yang membuat query di FRD menjadi kompleks.
contohnya, kita tidak bisa query dengan kondisi and atau or dengan mudah. Terimakasih Rudy untuk informasinya :)

Perbedaan #5. Firebase Realtime Database punya versi berbayar, sedangkan MySQL gratis sepenuhnya.

Menurut saya perbedaan inilah yang paling perlu kita perhatikan. Seperti bisa dilihat di https://firebase.google.com/pricing/ , Firebase punya 3 jenis tagihan yaitu Spark (gratis), Flame (25 dollar per bulan) dan Blaze (biaya sesuai pemakaian). Menurut saya Spark yang gratis tidak bisa memenuhi kebutuhan database untuk level perusahaan. Spark hanya bisa dipakai untuk mencoba2 saja. 

Penulis sendiri punya pengalaman mencoba FRD yang menghabiskan biaya sekitar Rp 5 juta per bulan. Dan dari sisi ekonomis, penulis menilai FRD tidak cocok untuk dipakai di perusahaan yang bisnisnya di Indonesia, karena perusahaan-perusahaan berbasis teknologi informasi di Indonesia rata2 masih UKM atau menengah ke bawah. FRD baru bisa dipakai secara efektif & sesuai harganya jika dipakai oleh perusahaan2 besar selevel Go-Jek, Tokopedia dsb. 


Demikianlah 5 perbedaan antara Firebase Realtime Database dengan MySQL yang disusun sesuai pengalaman penulis. Semoga berguna. Jika ada pertanyaan / feedback atau pemikiran apapun, Anda bisa menuliskannya di kolom komentar di bawah ini. Like page pintar-android.com di FB untuk mendapatkan artikel2 yang pastinya berguna di dunia pemrograman. 



Tersedia buku-buku untuk belajar pemrograman Android.

buku pertama, menginstall Android Studio: https://play.google.com/store/books/details?id=EOufCwAAQBAJ . Buku fisik di https://www.tokopedia.com/buku-meidika/koding-android-untuk-pemula-buku-pertama

buku kedua, membuat recyclerview yang menampilkan gambar2 dari internet menggunakan json: https://play.google.com/store/books/details?id=b-boDAAAQBAJ . Buku fisik di https://www.tokopedia.com/buku-meidika/koding-android-untuk-pemula-buku-2


buku registrasi user, membuat fitur login & register: https://play.google.com/store/books/details?id=FHMqDwAAQBAJ



kalau sudah beli, bisa dilihat di hape pake app google books, bisa dilihat di browser (misal chrome) di books.google.com -> My Library .


Tersedia juga DVD Android Studio 3.0.1 di tokopedia: 

https://www.tokopedia.com/buku-meidika/dvd-android-studio-3-0-jdk-32-bit-64-bit

Bagaimana Cara Bayar Akun Google Play Console?

Artikel kali ini akan membahas mengenai bagaimana cara membayar akun Google Play Console. Programmer android yang ingin aplikasinya didownlo...