Back-End Developer

Back-End Developer

Jika dummy website sudah dibuat dan berjalan semestinya ,kali ini saatnya back end developer mengambil alih tanggung jawab. Kode HTML, CSS, dan JavaScript untuk setiap jenis atau bagian halaman dipecah lagi agar dapat dijadikan semacam template. Bagian footer yang pasti ada di setiap jenis halaman misalnya, kita tidak perlu menulis kode footer tersebut berulang-ulang setiap akan membuat halaman baru. Di sinilah peran back end developer diperlukan.

Back end developer bertanggung jawab memprogram server agar mengirimkan dokumen (dalam hal ini HTML, CSS, dan kode JavaScript) ke browser pengguna setiap kali pengguna memintanya melalui http request. Server biasanya memakai bahasa pemrograman PHP,JavaScript,Python,dan Ruby

Back end developer juga akan sering berkutat dengan database dan manajemen konten di suatu website. Bentuk dari tanggung jawab tersebut yang paling bisa dilihat adalah Content Management System (CMS). Kita tentunya sudah sering memakai blog seperti WordPress dan blogspot.

Back end developer juga bertanggung jawab memastikan keamanan sebuah web. Bagian yang paling menjengkelkan adalah ketika ada seorang ‘penyusup’ dapat mengakses web server dapat mengacak-acak konten, maupun database, dan yang terparah adalah mengganti seluruh system di server kita.

Untuk menjadi Seorang Back-End Developer ,tentunya harus mengerti skill yang harus dikuasai .Antara Lain,

A. Website dan Blog

Seperti website organisasi, company profile, instansi pemerintahan, tokoh politik atau landing page sebuah produk. Untuk project dengan fitur minimalis seperti ini, WordPress adalah salah satu pilihan terbaik sebagai pre-build backend. Untuk bisa mendevelop website berbasis WordPress, programmer harus memiliki skill PHP, Javascript dan MySQL. Dan tentu saja harus memahami seluk beluk WordPress agar tidak ada security hole.

Tentu saja, kamu bisa membangun website sekolah dengan Laravel misalnya, tapi kalau pihak sekolah hanya minta websitenya hanya sekedar company profile, haruskah menggunakan Laravel? WordPress sebagai CMS nya lebih dari cukup. Karena (menurut saya):

Coding bukan soal keren-kerenan bro, pakai ini pakai itu. Tapi coding soal efisiensi, dan dalam bisnis IT, semakin cepat kamu menyelesaikan sebuah project, maka semakin banyak project yang bisa kamu tangkap

Jika trafik diperkirakan tinggi, seperti membangun portal berita, atau blog yang sudah cukup terkenal. Bisa menggunakan WordPress atau Ghost.io, ditambah optimisasi pada server. Untuk ini skill tambahan yang harus kamu miliki adalah pengetahuan melakukan deploy dan server optimization [2].

Untuk WordPress, dapat dioptimisasi dengan menggunakan EasyEngine, atau Varnish. Tetapi sejauh ini, Debops adalah konfigurasi paling “joss” untuk website berbasis wordpress. Disini kamu akan berkutat dengan SSH, Linux CLI, Nginx / Apache Virtual Host, dll.

Pilihan lainnya untuk website trafik tinggi, adalah menggunakan static cms, seperti Jekyll. Dan ini favorit saya ketimbang harus optimisasi wordpress.
Kenapa static cms? karena web static tidak memakan resource server berlebihan, data yang disimpan tidak menggunakan database mysql, melainkan disimpan dalam bentuk file. Tapi jangan salah, meskipun katanya “static”, tetapi data tetap “dinamis” kok.

Tanpa harus banyak optimisasi seperti wordpress, hanya dengan server paling kecil dari DO saja, Jekyll bisa nampung ratusan ribu trafik. Amazing!

B. Sistem Informasi 

Misalnya membuat aplikasi siakad, aplikasi administrasi perkantoran, aplikasi stock dan semisalnya yang sifatnya manajemen data. Cukup menggunakanLaravel dan Lumen. Atau framework PHP lainnya seperti Symphony dan Yii, bebas. 

Yang harus diperhatikan adalah skema database, sehingga skill optimisasi database dan relasi antar tabel sangat diperlukan dalam mendevelop aplikasi-aplikasi seperti ini.

C. Cross Platform Application

Nah, lagi musim project yang seperti ini. Klien minta buatin website plus aplikasi mobile nya (Android dan iOS). Biasanya yang order mau buat marketplace, portal pencarian, aplikasi startup, dsb.

Untuk tipe project seperti ini, saya menerapkan Write Once Run Everywhere (WORE) kepada anak-anak backend, yaitu menulis codingan aplikasi hanya satu kali, tetapi bisa berjalan di platform mana saja, seperti desktop, android, ios, dan web. 

Yang dibutuhkan:

1. Serverless Database

Yaitu database di host di pihak ketiga. Jadi kita tidak lagi pusing memikirkan melakukan backup database, maintenance, ataupun scaling up. Bagi yang pemula, bisa mencoba baqend.com sebagai database. Yang lebih pro bisa coba DynamoDB dari Amazon, Firebase dari Google, dan masih banyak lagi. Tipe database rata-rata NoSQL dan ketika diakses format yang ditampilkan dalam bentuk JSON.

Untuk database user, dalam handle Autentifikasi (login/signup + password), bisa menggunakan auth0.io atau strompath. Pernah lihat google, produk-produk nya banyak (Drive, Email, Docs, Playstore, dll) baik versi web maupun aplikasi mobile, tapi login nya cukup pakai satu ID saja kan? Nah, auth0 dan Strompath adalah rahasianya.

Untuk bisa terhubung dengan database ini semua menggunakan REST API yang disediakan, dan REST API dapat diakses dengan banyak cara, salah satunya Javascript.

2. Cloud Storage untuk static file

Jika aplikasi memiliki fitur untuk upload gambar profil, atau foto produk, kita menggunakan Amazon S3 sebagai tempat penyimpanannya.
Pilihan lainnya, bisa di Firebase, Azure Storage, Dropbox. Dan Cloud Storage juga dapat digunakan untuk menyimpan file JS, logo, dokumen, dll.

Cara upload file ke Cloud Storage salah satunya melalui REST API yang disediakan atau melalui SFTP.

3. Cross Platform IDE

Aplikasi di develop menggunakan IDE/Platform yang bisa save hasil codingan agar berjalan di Android, iOS, Linux, dan Windows. Seperti:

  • MeteorJS, bahasa HTML + CSS + Javascript
  • Scade, IDE menggunakan bahasa Swift
  • Intel XDK, IDE menggunakan bahasa HTML + CSS + Javascript
  • Xamarin, IDE menggunakan bahasa C#

Dan masih banyak lagi pilihannya. Dengan bahasa-bahasa universal tersebut, dengan satu kali coding, aplikasi kita dapat berjalan di Android, Windows, Linux, dan iOS.

4. Middleware server

Salah satu cara komunikasi antara aplikasi ke Serverless Database dan Cloud Storage, adalah melalui REST API. Namun menghubungkan langsung aplikasi yang ada di tangan user ke serverless database, sangat riskan. Oleh karena itu kita memerlukan satu server sebagai middleware

Begitu juga untuk mengolah / menggenerate data, kita memerlukan sebuah server untuk menjalankan script. Script tersebut biasanya dicoding menggunakan Flask (Python), atau Ruby. Atau bisa juga menggunakan Javascript + NodeJS. Bahasa-bahasa tersebut dipilih karena script lebih cepat dan ringan ketika dieksekusi.


Nah, kalau dirangkum skill-skill yang harus dimiliki backend programmer saat ini adalah pengetahuan seputar:

Junior Programmer: 

PHP, MySQL, Linux Server & CLI, Javascript, Laravel, Lumen

Senior Programmer: 

PHP, MySQL, Linux Server & CLI, Javascript, Laravel, Lumen, REST API, JSON, Swift, NodeJS, C#, NoSQL, Python atau Ruby?

Itu semua sudah lebih dari cukup dan sebagai gerbang untuk membuka dunia backend yang lebih dalam.