Apa Bedanya Frontend, Backend, dan Fullstack?
Kamu pernah melihat lowongan pekerjaan lalu bingung apa itu arti backend dan frontend? Atau kamu salah satu yang ingin mempekerjakan software developer tetapi bingung mana yang kamu butuhkan? Belum lagi terkadang, ada juga istilah fullstack.
Kebingungan ini sering sekali terjadi, salah-salah kamu bisa terjerumus di pekerjaan yang tidak kamu inginkan. Artikel ini semoga bisa membantumu untuk mengerti perbedaannya.
Yuk, simak perbedaan mendasar dari ketiga istilah ini.
Penjelasan Singkat
Ketiga jenis pekerjaan ini biasanya dikaitkan dalam karir web development atau pembuat website. Tapi tidak menutup kemungkinan istilah ini digunakan di jenjang karir lain. Artikel ini hanya membahas istilah ini dalam konteks web development.
Sebelum masuk ke detil, ada baiknya kita mengerti gambaran kasar dari ketiga istilah ini. Ketiga istilah ini digunakan untuk menjelaskan scope atau cakupan suatu pekerjaan. Seperti halnya interior design dan exterior design yang memiliki cakupan yang berbeda: satu untuk di dalam rumah, yang satunya di luar.
Agar lebih jelas, berikut ini penjelasan singkat untuk masing-masing istilah,
-
Frontend
Orang yang mengerjakan bagian ini, hasilnya akan langsung terlihat oleh pengguna website. Frontend mencakup bagian-bagian yang berinteraksi langsung dengan pengguna. Contohnya, pembuatan tombol, menu, navigasi, layout pada website. Menekankan kepada apa yang ditampilkan dan bagaimana menampilkannya.
-
Backend
Pekerjaan ini bisa dikatakan berada di bagian belakang (itulah kenapa disebut back-end), biasanya tidak terlihat oleh orang awam. Pekerjaan ini mencakup pembuatan logika bisnis dan interaksinya dengan basis data (database). Contoh sederhananya, pembuatan program yang mengatur bagaimana pengguna bisa login ke aplikasi. Menekankan kepada bagaimana sistem bekerja.
-
Fullstack
Singkatnya, pekerjaan ini menuntut untuk bisa mengerti baik frontend maupun backend. Terkadang di suatu proyek yang kecil, batasan antara frontend dan backend tidaklah begitu jelas, sehingga muncul istilah ini. Karena gabungan dari keduanya, maka skill yang dibutuhkan juga merupakan gabungan dari kedua pekerjaan.
Nah, sampai sini semoga sudah cukup jelas gambaran kasarnya. Mari kita lanjutkan ke penjelasan mendetil dari masing-masing istilah ini.
Mengenal Lebih Dalam tentang Frontend
Tujuan utama dari frontend adalah membuat penampilan website sesuai dengan keinginan perusahan / pemilik / stakeholder. Tampilan website pada dasarnya mencakup tiga hal utama yakni HTML, CSS, dan Javascript. Sehingga, pengetahuan mengenai ketiga benda ini sangatlah penting karena hampir kebanyakan framework dan tools yang frontend pakai akan berdasarkan dari ketiga hal ini.
Pengetahuan Teknis
Untuk dapat melakukan pekerjaan frontend dengan baik, seseorang tentu butuh pengetahuan dasar mengenai website. Hal ini mencakup HTML, CSS, dan Javascript.
Ketiga benda tersebut harus benar-benar dikuasai matang-matang karena akan menjadi pondasi utama. Terkadang, lowongan pekerjaan bahkan meminta untuk menguasai hal khusus yang merupakan interaksi antar HTML dan Javascript seperti AJAX.
Selain itu, kebanyakan dari website yang ada sekarang sudah menggunakan framework yang digunakan untuk membuat web kompleks. Framework ini sendiri berganti-ganti seiring berjalannya waktu sehingga tidak mudah untuk mengetahui framework mana yang harus di pelajari. Untuk saat ini, beberapa framework yang sering digunakan untuk frontend development adalah Vue, React, dan Angular.
Pengetahuan tentang tools juga menjadi sangat penting karena dapat membantu development menjadi lebih cepat dan rapi. Tools yang sering digunakan untuk membantu pembuatan CSS adalah SASS dan LESS. Dalam pembuatan website sendiri pengetahuan mengenai NPM dan NodeJS menjadi cukup penting, walaupun interaksimu dengan tools ini tidak akan sesering backend.
Hubungan dengan Tim Lain
Selain pengetahuan akan pemrograman, framework, dan tools, perlu juga kemampuan berkomunikasi karena frontend tidak bekerja sendirian. Terdapat beberapa pekerjaan yang erat kaitannya dengan Frontend seperti UI/UX Designer dan Graphic Designer. Merekalah yang biasanya menentukan desain dan frontend developer yang mengimplementasikannya menjadi kode.
Tidak ketinggalan, Backend juga menjadi salah satu tim yang berkaitan erat. Frontend dan Backend harus memiliki komunikasi yang intens. Kenapa? Frontend perlu tahu cara menggunakan sistem yang dibuat oleh Backend sehingga website dapat berjalan sesuai dengan rencana. Jika tidak ada komunikasi, produk yang dihasilkan tidak akan menjadi satu kesatuan. Berbeda dengan tim lain, cara berkomunikasi Backend biasanya melalui dokumentasi teknikal seperti API documentations.
Mengenal Lebih Dalam tentang Backend
Tim backend mempunyai tujuan untuk membuat sistem yang sesuai dengan keinginan perusahan / pemilik / stakeholder. Sistem ini cakupannya bisa menjadi sangat luas, mulai dari program, server, database, bahkan desain dan infrastruktur software (beda ya dengen hardware!) pada kasus-kasus tertentu.
Pengetahuan Teknis
Hal yang paling utama yang perlu dimiliki oleh backend adalah menguasai pemrograman dan beberapa bahasa pemgrograman. Bahasa yang digunakan untuk membuat sistem backend sangatlah variatif dan bisa saja terdiri dari lebih dari satu bahasa dalam satu sistem yang sama.
Dalam pemrograman web bahasa yang sering digunakan adalah PHP, Ruby, Python, Java, dan .Net. Namun tidak menutup kemungkinan bahasa lain muncul atau menjadi populer contohnya Go dan Rust. Dengan banyaknya bahasa, seorang backend engineer tidak boleh hanya mengerti penggunaan bahasa, tetapi juga logika berpikir pemrograman.
Komponen lain yang biasanya digunakan oleh backend adalah database. Database sendiri juga variatif, beberapa diantaranya adalah MySQL, PostgreSQL, MongoDB, Oracle. Tim backend tidak boleh hanya bisa menggunakan database, tetapi juga mengerti bagaimana database itu bekerja serta apa kelebihan serta kekurangannya. Hal ini diperlukan agar aplikasi dapat bekerja dengan maksimal.
Framework dan tools juga harus dikuasai oleh backend contohnya Flask (Python), Laravel (PHP), Spring (Java), Ruby on Rails (Ruby). Framework ini gunanya untuk membantu pekerjaan backend menjadi lebih mudah.
Beberapa hal teknis lain yang tidak disebut di sini mungkin dibutuhkan. Tergantung dari perusahaan dan sistem yang kamu kerjakan, pengetahuan yang dibutuhkan juga bervariatif.
Hubungan dengan Tim Lain
Tentunya, tim backend tidak lepas dari komunikasi dengan tim lain. Tim backend biasanya akan berkomunikasi erat degan tim seperti DevOps dan Database Administrator. Mereka biasanya menyediakan komponen-komponen yang dibutuhkan backend seperti database dan CI/CD sehingga backend bisa fokus hanya dalam pembuatan sistem saja.
Tidak lupa, Frontend adalah salah satu tim yang berkaitan sangat erat. Tugas backend adalah memberikan fungsionalitas yang dibutuhkan oleh frontend agar bisa bekerja dengan baik. Selain itu, backend harus memiliki dokumentasi yang jelas dan terstruktur agar tim frontend dapat menggunakan sistem yang dibuat.
Banyaknya Pengecualian
Walaupun backend dan frontend memiliki definisinya tersendiri, seringkali perusahaan tidak mengikuti definisi ini. Jadi, jangan sungkan untuk bertanya kepada perusahaan atau orang yang mengajakmu bekerja sama mengenai definisi yang mereka gunakan.
Terkadang juga, backend mau tidak mau harus mengerjakan frontend. Kejadian seperti ini biasanya karena backend membuat sistem internal yang tidak digunakan oleh orang di luar perusahaan. Karena digunakan internal, tampilan bukan masalah utama sehingga tampilan yang seadanya pun cukup.
Untuk para HR yang kebingungan dengan istilah ini, tidak masalah untuk tidak menggunakan istilah ini. Lebih baik jabarkan cakupan pekerjaan yang dibutuhkan sehingga para pencari kerja lebih mengerti apa yang diinginkan perusahaan.
Backend dan frontend bukanlah istilah yang memiliki garis batas yang tegas. Pengecualian sering terjadi dan sangat wajar jika sudah dikomunikasikan dengan baik.
Bagikan di
Kolom Diskusi