Minggu, 21 April 2019

TUGAS SOFTSKILL PENGANTAR KOMPUTASI MODERN 2

Review NoSQL


Latar Belakang
Pada setiap aplikasi yang dibangun oleh developer tidak akan lepas dari peran database. Database atau basis data sendiri adalah kumpulan data yang disimpan secara sistematis di dalam komputer yang dapat diolah maupun direkayasa menggunakan perangkat lunak untuk menghasilkan informasi. Basis data merupakan aspek yang sangat penting dalam sistem informasi dimana basis data merupakan gudang penyimpanan data yang akan diolah lebih lanjut. Basis data menjadi penting karena dapat mengorganisasi data, menghidari duplikasi data, hubungan antar data yang tidak jelas dan juga update yang rumit. Dan beberapa sistem yang telah ada masih mengadopsi cara kerja single-tenant database. Cara kerja seperti ini cenderung akan membatasi proses bisnis yang akan berkembang kedepannya.
Perencanaan sumber daya perusahaan, atau sering disingkat ERP dari istilah bahasa Inggris-nya Enterprise Resource Planning, adalah sistem informasi yang diperuntukkan bagi perusahan manufaktur maupun jasa yang berperan mengintegrasikan dan mengotomasikan proses bisnis yang berhubungan dengan aspek operasi, produksi maupun distribusi di perusahaan bersangkutan.
Ritel/eceran atau disebut pula retail dalam bahasa inggris adalah salah satu cara pemasaran produk meliputi semua aktivitas yang melibatkan penjualan barang secara langsung ke konsumen akhir untuk penggunaan pribadi dan bukan bisnis. Jadi ERP Retail merupakan sebuah sistem informasi yang menangani kebuhan perusahaan dalam hal pemasaran produk termasuk penjualan barang hingga sampai ke konsumen.
Isi dari makalah ini adalah membandingkan antara database relational (SQL) dengan database non-relational (NoSQL) dalam hal performance, flexibility, dan scalability. Setelah terbukti database mana yang lebih unggul dari keduanya maka akan diterapkan untuk aplikasi ERP Retail yang berorientasikan multitenancy. Dengan begitu diharapkan ERP Retail yang dibangun akan memiliki performa yang optimal dalam hal store data. Juga menjadikan aplikasi yang bersifat fleksibel agar mampu mensuport penyimpanan data yang dinamis berdasarkan skema setiap tenant, dan perkembangan proses bisnis yang akan selalu berkembang kedepannya. Dan menjadi aplikasi yang scalable dalam artian mampu mengatasi jumlah data yang selalu berkembang dengan distributed database.
Metode
            Metode yang digunakan oleh penulis adalah dengan melakukan pengujian fleksibilitas yang dilakukan dengan memasukkan beberapa data berbeda yang membentuk skema dalam database.
Analisis
            Isi dari makalah ini adalah membandingkan antara database relational (SQL) dengan database non-relational (NoSQL) dalam hal performance, flexibility, dan scalability. Setelah terbukti database mana yang lebih unggul dari keduanya maka akan diterapkan untuk aplikasi ERP Retail yang berorientasikan multitenancy.
Uji coba pada Query Insert


Uji coba pada Join/Agregasi


Uji coba pada Select


Uji coba pada Delete


Uji coba pada Update


Kelebihan dan Kekurangan
Kelebihan NoSQL di banding Relasional Database
a.       NoSQL bisa menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar (big data/cloud).
b.      Menggunakan OOP dalam pengaksesan atau manipulasi datanya.
c.       NoSQL tidak mengenal schema tabel yang kaku dengan format data yang kaku. NoSQL sangat cocok untuk data yang tidak terstruktur, istilah singkat untuk fitur ini adalah Dynamic Schema.
d.      Autosharding, istilah sederhananya, jika database noSQL di jalankandi cluster server (multiple server) maka data akan tersebar secara otomatis dan merata keseluruh server.

Kekurangan dari database NoSQL
a.       Hostingnya mahal, beberapa layanan di luar negeri mencharge biaya 100-200USD untuk hosting database noSQL. Selain itu, saya belum pernah menemukan hosting Cpanel yang mendukung database MongoDB atau database noSQL lainnya.
b.      Perlu waktu untuk belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka anda harus belajar lagi dari awal, berbeda dengan database RDMS.
Kesimpulan
            Database NoSQL terbukti unggul dalam proses transaksi CRUD daripada SQL dengan jumlah selisih runtime insert 0,167, select 0,009, update 0,44, delete 0,056. Namun lemah untuk menghadapi transaksi join/agregasi dengan jumlah selisih runtime 0,039. Database NoSQL mampu memenuhi kebutuhan aplikasi ERP Retail yang bisa mensupport perbedaan skema dari setiap tenant dan mengikuti perkembangan proses bisnis kedepannya. Database NoSQL bersifat scalable dibuktikan dengan mendistribusikan 1000 data raw ke dua shard (shard1 dan shard2).

Sumber: