Mau Jadi Developer? Kenali Jenis-jenis Database Ini!

1


Geliat bisnis berbasis teknologi tumbuh subur di berbagai belahan dunia, termasuk Indonesia. Pertumbuhan yang pesat ini tak dapat dipungkiri banyak dipengaruhi oleh kemajuan teknologi.

Namun, kebutuhan untuk menyimpan data yang berkaitan dengan bisnis akan semakin meningkat. Sayangnya, kapasitas memori penyimpanan di perangkat, seperti komputer, laptop dan smartphone tidak akan memadai. Mungkin flash drive dan hardisk adalah memori penyimpanan eksternal yang akan kamu pilih untuk menyimpan data. Tapi perlu diingat, baik flash drive maupun hardisk sama-sama memiliki batas maksimum penyimpanan data.

Disinilah peran database memiliki peranan penting guna menjaga keberlangsungan bisnis dan terjaga keamanannya setiap data. Sebagai developer, kamu harus memahami database-database apa saja yang kini populer digunakan di pasaran. Tidak perlu bingung, Iskandar Soesman, Senior Software Engineer di Kumparan membagikan ilmunya untuk kamu melalui wawancara singkat bersama TechForID.

Ada banyak tipe database. Apa bedanya?

Database sekarang yang lebih terkenal Postgre, MySQL. Udah lebih dari 20 tahun yang lalu, tapi secara teknologi masih terpakai sampai sekarang. MySQL dipakai di Google. Postgre masih dipakai Instagram.

Tapi banyak developer menganggap fitur-fitur yang ada di database lama ini, kurang bisa meng-cover kebutuhan aplikasi jaman sekarang.

Aplikasi jaman sekarang mindset nya itu cloud. Cloud secara data tidak terhingga. Bayangin ketika data tak terhingga, satu komputer tidak akan cukup buat nampung semua data itu. Karena salah satu kemudahan menggunakan cloud dari scale itu sendiri, (scale adalah memperbanyak jumlah resource atau komputer atau storage). Dengan scale ini, orang-orang mulai liat perlu juga database dengan bentuk scale. Istilahnya high accessibility, mudah untuk di scale semuanya.

Postgre dan MySQL tidak mudah di scale? Kenapa?

Kalau saya liat, keduanya tidak didesain dari awal untuk bisa di scale. Sementara database-database yang datang belakangan, contohnya MongoDB, itu dari awal didesain untuk di scale dan running di multiple server. Itu yang bedain vendor baru dengan yang lama. Mindset itu tadi kalau aplikasi kekinian punya data yang besar, mengandalkan kecepatan, dan seterusnya. Belum lagi masalah durability.

Bayangin aplikasi kayak Instagram. Instagram itu aplikasi global. Bayangin kalau dia menaruh data semua usernya cuma di satu tempat, kayak di satu kota di US lah. Itu tidak mungkin karena kalau kota itu terjadi gempa atau terkena musibah lain, hilang semua datanya. Berarti harus mereplikasi data itu ke region lain atau negara lain agar ketersediaan dan keakuratan data tetap terjamin. Bayangkan kalau data center cuma ada di satu kota, terus di kota itu kena gempa, semua data di data center hilang. Kalau dia punya data di tempat lain, langsung backup, istilahnya hot backup dan langsung di up in.

Tadi pagi Facebook dan Instagram down tuh. Yang kayak gini kalau kejadian, mereka udah punya akal untuk mengerjakan ini-itu. Contoh Google, di US punya beberapa data center. Tapi beberapa tahun lalu, data center nya itu kebakaran. Dan karena dia udah desain datanya distributed, kesebar di beberapa tempat, ketika kebakar tinggal take down dari cluster nya mereka dan nyalain data center di tempat lain. Inilah yang disebut durability. Bayangkan kalau ke replikasi tapi tidak bisa digunain kan sama saja.

Jadi database-database yang baru ini udah didesain untuk mengatasi isu-isu seperti ini? Apakah MySQL dan Postgre bisa juga?

Bisa juga, biasanya tambahannya itu tools-tools tiap tiga, another project open source. Beda dengan MongoDB yang by default udah kayak gitu.

Selain MongoDB apalagi database baru?

Kalau kita pakai layanan berbayar kayak AWS, AWS itu punya namanya AuroraDB, walaupun private. Google punya namanya Bigquery. Mereka hanya meng-address billing yang kita punya, namanya spinner. Spinner itu secara desain mirip MySQL tapi cross data center. Selain itu ada Cretio, basisnya SQL tapi distributed. Tools-tools nya tuh keren, dari sisi developer pasti mau nyoba. Tapi lagi-lagi kendalanya siapa yang bisa provide tempatnya. Sementara dari sisi dia kan fokus ke coding, main di aplikasi, database-nya udah ada. Kalau dia harus otak atik server segala macam, PR banget.

Misalnya saya mau scraping data, disimpan di MySQL, datang begitu banyak, akhirnya dia harus cross-table lama sekali. Apakah kalau pakai MongoDB lebih cepat? Seperti scraping data dari marketplace, cari-cari data, terus jadi lama pakai MySQL?

Bisa jadi lebih cepet, bisa jadi tidak. Sebenernya concern nya di desain datanya. Kecepatan akan berpengaruh dari segi desain. PR nya adalah ketika kita coba pakai suatu vendor, harus kita perhatiin gimana si vendor itu best practice nya. Karena kalau pake MongoDB hanya biar keren, tapi salah cara pakainya, ya lambat juga akhirnya. Solusi dari vendor takutnya tidak bisa mengatasi. Itulah mengapa developer diperlukan untuk ongoing learning. Oke misal baru kenal MongoDB, tapi nanti merasakan lambat, akhirnya dia belajar, oh ternyata saya salah di sini. Meskipun takes time, tapi belajar. Makanya di beberapa layanan penyedia pembelajaran masalah IT, mereka sudah mulai menggunakan tools yang modern.

Kalau tools yang kerennya apa?

Satu mereka dikenalin sama mojes. Banyak loh yang coding pake mojes. Mojes itu basisnya JavaScript. Dengan dia bisa menguasai JavaScript, dia bisa coding buat backend API, coding untuk bikin aplikasi, istilahnya web, dan bisa bikin mobile apps. Semua modelnya JavaScript. Makanya yang diajarin selain mojes ya JavaScript buat backend, diajarin juga apakareak, single patch application, magnetic js, kemudian diajarin egmatic juga. Nanti tinggal muridnya yang menentukan mau spesifikasi apa, mau jadi mobile apps kah, mau jadi developer web, dan seterusnya. Sementara 3 tools ini lagi di pakai banget.

Di layanan penyedia pembelajaran masalah IT, promosi ke calon-calon murid dengan memberikan garansi dapat kerja walaupun harganya mahal, mulai Rp30-40 juta. Kenapa bisa digaransi dapat kerja? Karena fokus belajarnya bener-bener tools yang dipakai.

Kita ngomongin tools, ngomongin apa aja?

Bahasa pemrograman, itu pasti. Kedua bagaimana cara bekerja di perusahaan startup ini. Kolaborasi pasti pake bit hub, kalau baris pakai coding. Memakai tools ini mesti diajarin kan. Terus gimana cara deployment ke AWS, ke Google cloud. Yang namanya kerja, bukan cuma coding, tapi bisa tau deploy dan seterusnya. Diajarkan juga membuat testing, sebuah cloud harus quality testing, agretion test. Karena itu culture concept modern programming. Beberapa tahun lalu tidak terlalu aware soal itu, makin ke sini yang dikejar dari segi kultur adalah cepat rilis. Untuk cepat rilis, developer di push. Untuk bisa deploy secepat itu, harus ada yang jagain. Siapa yang menjamin kode yang diubah barusan tidak bikin break di fitur lain? Itulah mengapa tes itu penting, mengurangi kesalahan. Contoh, fitur log in, ada fungsi yang memvalidasi bahwa username dan password dicocokkin pakai algoritma MD5. Tapi ternyata ketika ada deploy baru, MD5 diganti dengan yang lain. Kalau tidak ada tes, siapa yang menjamin log in nya tidak gagal. 4 hal itu aja udah sangat penting untuk di startup.

Temen-temen di Detik dan Kumparan juga nantinya pindah pasti ke Tokopedia, Traveloka, startup-startup unicorn lah. Kultur seperti itu dibutuhkan, harus ada. Menurut saya itu lack dari developer kita. Tokped itu aplikasi keren tapi masih jauh untuk mencapai simpatik, jernih mate nya belum komplit. Saya merasakan banget pas harus hire orang itu susah banget. Bahkan saya pernah post di Facebook, buka position dengan gaji start Rp12 juta. Yang apply banyak tapi sebelum diundang interview atau tes, kita liat dulu akun bit hub nya. Hal-hal yang gitu saja belum punya mereka. Makanya hire orang susah.

Bayangkannya gini, Australia saja mencari developer ke Indonesia. Emang sedikit tapi permintaan banyak, jadi makin susah mencari developernya. Bayangkan di Indonesia saja ketarik sama startup-startup luar. Makanya value dari developer itu tinggi banget.

Share.

About Author

Iskandar Soesman

Senior Software Engineer at Kerb Australia Project Lead - Founder Panada PHP Framework

1 Komentar

Leave A Reply