Memahami Apa Itu Teknologi Blockchain

Tahukah Anda tren teknologi di tahun 2016-2017 kemarin yang sempat dibenci oleh para gamer hardcore? Ya! Tren cryptocurrencies dan para miner-nya yang membuat harga GPU (graphics processing unit bukan Gosok-Pijat-Urut)  melambung tinggi dengan memborong semua stok GPU di toko komputer sebagai komponen utama untuk dijadikan “mesin penambang” cryptocurrencies. Cryptocurrency seperti Bitcoin, Ethereum, atau Litecoin digadang-gadang akan menjadi alat tukar masa depan dengan sistem desentralisasi yang menggunakan teknologi blockchain.

Jika Anda bingung dengan kalimat terakhir di paragraf sebelum ini, jangan sedih!. Anda bukan satu-satunya orang yang tidak mengerti istilah “sistem desentralisasi” apalagi “blockchain”. Bahkan para miner sendiri pun banyak yang tidak mengerti apa yang dilakukan ‘mesin penambangnya’ hingga bisa menghasilkan sebuah ‘koin digital’. Daripada membuat gamer lebih emosional lagi karena lama menunggu artikel yang tidak kunjung memberikan penjelasan tentang apa itu blockchain, yuk kita bahas blockchain sebuah teknologi yang melatarbelakangi cryptocurrency.

 

Apa Itu Blockchain?

Secara teknis, blockchain adalah rangkaian block yang tersusun di dalam jaringan non-trusted peers. Setiap block adalah mereferensi block sebelumnya yang berisi data, kode hash di block itu sendiri, dan kode hash di block sebelumnya. Bagaimana? Sudah jelas? Santai saja! Kami akan menjelaskan setiap bagian dari blockchain yang memang bikin pusing.

Block

Setiap unit data yang tersimpan di dalam blok bisa merepresentasikan nilai apapun tergantung tipe dari blockchain tersebut. Setiap blok bisa menyimpan data tentang jumlah uang yang beredar, kepemilikan saham, sertifikat digital kepemilikan suatu barang, atau jumlah suara pada pemilihan umum.

Data di dalam block berisi informasi mengenai siapa saja yang berinteraksi dengan data tersebut. Misal Si Joni mengirimkan uang dua puluh dollar ke Jono. Kedua informasi tentang Agus dan Budi ini disimpan dalam block. Informasi itu tentunya sudah terenkripsi terlebih dahulu dengan hash SHA256. Sebenarnya untuk cryptocurrency yang tersimpan bukanlah informasi mengenai nama seperti contoh di bawah tapi berupa seri public key dari wallet (media penyimpanan uang digital) masing-masing.

Di dalam block ini, juga terdapat kode hash. Hash merupakan baris karakter acak yang tercipta dari sebuah fungsi matematika. Satu karakter yang berubah di data dalam block akan mengubah hash sehingga tampak sama sekali berbeda. Hash di dalam block ini ada dua, yaitu hash dari block sebelumnya untuk proses verifikasi dan hash dari block tersebut. Untuk lebih jelasnya bisa dilihat dari gambar di bawah ini.

 

Memahami Apa Itu Teknologi Blockchain 1

 

Blockchain

Block yang tercipta ini kemudian akan diteruskan ke block selanjutnya ada ataupun tidak ada perubahan data di dalamnya dan tentu saja dengan kode hash yang baru. Proses ini akan berjalan terus menerus. Untuk menambah 1 blok dibutuhkan daya komputasi yang sangat tinggi karena cara yang paling memungkinkan untuk bisa memecahkan kode hash adalah dengan melakukan brute force. Sebagai informasi, brute force merupakan usaha untuk memecahkan enkripsi dengan cara mencoba memasukkan kombinasi karakter satu per satu untuk melihat apakah verifikasi berhasil atau tidak. Jenis prosesor yang paling tepat untuk melakukan brute force ini adalah prosesor dengan tingkat flops (floating operation) tinggi seperti GPU. Inilah mengapa tren cryptocurrency membuat kantong para gamer yang ingin mengupgrade hardware menjadi tipis, setipis lapisan silikon pada microchip.

 

Memahami Apa Itu Teknologi Blockchain 2

Seperti yang dapat kita lihat bahwa setiap blok memuat kode hash dari blok sebelumnya kecuali pada block pertama. Inilah mengapa sistem ini disebut blockchain

 

Blockchain Network

Blockchain yang terdapat dalam suatu sistem biasanya tidak hanya terdiri dari satu rangkaian saja. Begitu ada transaksi, perubahan data langsung didistribusikan ke seluruh peer yang ada di suatu sistem.  Jika ada perbedaan informasi antara blockchain peer dalam suatu sistem yang akan dipakai adalah blockchain yang terpanjang. Seandainya memang ada yang nekat ingin memanipulasi data transaksi di suatu blok maka dia harus mengubah seluruh blok yang ada setelahnya dengan kecepatan melebihi nodes yang lain. Tentu saja ini membutuhkan daya yang sangat besar untuk bisa mengalahkan seluruh peer yang ada di jaringan blockchain.

 

****

 

Itulah gambaran singkat mengenai blockchain beserta elemen-elemen yang ada di dalamnya. Jika ada kesempatan, kami akan menjelaskan bagaimana konsep proof of works dan proof of stakes melatarbelakangi munculnya para ‘miner’ dalam cryptocurrency.

Mengenal Ethical Hacker, Profesi Seorang Hacker Berhati Baik

Hacker, sebuah sebutan atau mungkin sebuah profesi bagi sebagian orang di bidang keamanan informasi yang paling populer di telinga orang awam. Film-film sci-fi dan action pun ikut-ikutan latah dengan memasukkan karakter seorang hacker di setiap skenarionya seolah-olah masa depan ada di tangan seorang hacker.

Sayangnya, konotasi yang melekat pada profesi ini selalu negatif karena sering dikaitkan dengan cybercrime.  Pencurian data yang bersifat rahasia, penyalahgunaan informasi kartu kredit, atau pemalsuan identitas adalah segelintir aktivitas yang memperburuk citra hacker. Belum lagi teror yang dimotori oleh seorang hacker di film-film action.

Sebenarnya ada ada beberapa jenis hacker di dunia ini. Yang paling sering kita dengar adalah black hat dan white hat hacker. Black hat hacker adalah sebutan untuk hacker nakal dan jahat yang sudah dibahas sebelumnya. Jika diibaratkan penyihir, merekalah penyihir ilmu hitam yang suka mengutuk orang dari yang paling ringan seperti kutukan tidur puluhan tahun sampai yang paling berat yaitu kutukan buruk rupa sehingga korban tak kunjung mendapatkan jodoh selama ratusan tahun. Black hat hacker menjebol suatu sistem informasi tanpa sepengetahuan orang atau organisasi yang memiliki otoritas berkaitan dengan sistem informasi tersebut. Mereka memanfaatkan celah di sistem tersebut untuk kepentingan pribadi baik itu kepentingan ideologi atau pun komersial.

Sebaliknya, white hat hacker adalah hacker yang memilki hati bersih nan mulia. Mereka menjebol sistem keamanan informasi dengan tujuan agar sistem tersebut agar perancang sistem keamanan dapat mengevaluasi kembali sistem keamanan yang telah mereka buat. Ada lagi sebutan untuk white hat hacker ini yaitu ethical hacker yang secara konsep hampir sama dengan white hat hacker.

 

Apa Yang Sebenarnya Yang Dilakukan Ethical Hacker?

EC-Council lembaga sertifikasi untuk  menyatakan bahwa ethical hacker adalah seseorang yang dipekerjakan dan dipercaya oleh suatu organisasi atau perusahaan untuk mecoba menembus sistem jaringan di organisasi/perusahaan tersebut dengan metode yang sama dengan metode yang dipakai oleh hacker. Jika berhasil menembus sistem keamanan, ethical hacker wajib menjelaskan metode yang dipakai agar dapat menjadi evaluasi perancang sistem.

Selain gambaran umum yang telah disebutkan di atas, inilah beberapa aktivitas ethical hacking yang dilakukan oleh seorang ethical hacker:

  • Memindai port menggunakan tools seperti Nmap ata Nessus untuk mencari port yang terbuka.
  • Meneliti setiap patch instalasi dan mencoba mengeksploitasi celah yang ada.
  • ‘Mengais sampah’ dari jejak digital karyawan perusahaan/organisasi seperti trash bin, sticky notes, dan bahkan media sosial mereka untuk mencari informasi yang menyangkut sistem keamanan. Hal ini sering disebut dengan dumpster diving.
  • Melakukan percobaan melewati IDS (Intrusion Detection System), IPS (Intrusion Prevention System), atau pun firewall.

 

 

Siapa Yang Cocok Untuk Menjadi Ethical Hacker?

Di film silat, yang namanya pendekar putih harus memiliki hati yang bersih. Tak berbeda dengan ethical hacker yang harus mempunyai keinginan yang tulus untuk membangun suatu sistem keamanan menjadi lebih baik. Itulah mengapa untuk mengambil sertifikasi CEH dari EC-Council kita harus mengambil sertifikasi CND (Certified Network Defender) terlebih dahulu (sertifikasi ethical hacker akan dibahas pada sub-bagian berikutnya).

Kebanyakan orang justru termotivasi untuk menjadi hacker karena ‘kepo’ dengan orang yang mereka taksir atau melampiaskan kesedihan yang mendalam terhadap mantan pacar dengan meng-hack akun media sosial mereka. Motivasi-motivasi seperti ini tentu saja akan memalukan dunia per-hacking-an. Selain karena alasan yang terlalu personal, meng-hack akun media sosial seseorang bertentangan dengan filosofi hacker beretika itu sendiri.

Selain hati yang bersih, seorang ethical hacker juga harus memiliki pemahaman tentang jaringan dan pemrograman sekaligus. Dan tidak menutup kemungkinan bahwa seorang hacker harus tahu seluk-beluk suatu sistem operasi. Bahkan banyak di antara hacker yang sudah expert memahami bahasa Assembly, bahasa yang digunakan dalam arsitektur hardware. Tapi jangan khawatir, karena semua skill yang disebutkan tadi masih dapat dipelajari.

 

 

Sertifikasi Ethical Hacker

Ethical hacker bagaimanapun juga merupakan sebuah profesi yang jarang apalagi di Indonesia. Hacker memang banyak tapi sebagian besar dari mereka menempuh jalan kegelapan dengan menjadi black hat hacker.

Kepercayaan untuk mempekerjakan seorang ethical hacker tentunya sangat dibutuhkan suatu perusahaan atau organisasi. Hal inilah yang mendasari sertifikasi untuk seorang ethical hacker. Selain alasan kepercayaan hacker tidak membocorkan rahasia perusahaan, sertifikasi juga dibutuhkan untuk mengukur skill dari hacker itu sendiri.

Sertifikasi untuk ethical hacker yang paling umum di Indonesia adalah dari EC-Council. Sama seperti sertifikasi jaringan macam CISCO dan MikroTik, sertifikasi EC-Council juga mengenal jalur tingkatan yang sebentar lagi akan kita bahas.

 

Certified Network Defender (CND)

Seperti yang sudah dibahas sebelumnya, ethical hacker harus meningkatkan pertahanan terlebih dahulu sebelum menyerang. Sertifikasi ini bertujuan untuk menciptakan network administrator yang terlatih dalam menjaga, mendeteksi, dan merespon setiap ancaman keamanan jaringan. Seorang network administrator biasanya akrab dengan komponen jaringan, traffic, performa dan utilisasi, topologi jaringan, dll. Dengan sertifikasi  CND, network administrator akan mendapatkan pemahaman bagaimana mendesain keamanan jaringan yang lebih canggih dan perencanaan respon terhadap serangan.

Lihat selengkapnya di silabus pelatihan sertifikasi Certified Network Defender.

 

Certified Ethical Hacker (CEH)

Jika sudah paham tentang bagaimana pertahanan, saatnya negara api menyerang. Sertifikasi CEH ini bertujuan membentuk mindset seorang hacker ke seseorang yang telah memiliki sertifikat CND. Dalam CEH, Certified Network Defender akan mempelajari bagaimana meningkatkan sistem keamanan informasi yang telah dibuat sendiri dengan cara mencoba membajaknya sendiri.

Lihat selengkapnya di silabus pelatihan sertifikasi Certified Ethical Hacker.

 

EC-Council Certified Security Analyst (ECSA)

Sertifikasi ECSA ditujukan untuk seorang ethical hacker bersertifikasi yang sudah berpengalaman dan mungkin bisa memindai jaringan sambil tidur. Sertifikasi ini akan melatih seorang yang bersertifikat CEH menjadi seorang analis yang benar-benar memahami penetrasi keamanan ke berbagai sistem dan perangkat.

Lihat selengkapnya di silabus pelatihan sertifikasi EC-Council Certified Security Analyst.

 

***

Itu tadi informasi singkat tentang ethical hacker yang bisa berikan. Bagaimana? Tertarik untuk menjadi hacker jagoan yang akan membanggakan dunia per-hacking-an profesional?

Quantum Computer dan Segala ‘Ketidakjelasannya’

Kata quantum atau kuantum jika diadaptasi ke dalam Bahasa Indonesia sempat populer di beberapa dekade terakhir. Yang paling terkini adalah istilah quantum computer yang sempat diprediksi menjadi konsep komputasi masa depan. Google dan IBM merupakan dua perusahaan raksasa yang rela melakukan investasi besar-besaran dalam riset dan pengembangan komputer kuantum ini.

 

Salah Kaprah Tentang Kata Kuantum

Secara awam, mungkin kata kuantum kerap dikaitkan dengan hal-hal yang ajaib seperti supernatural, sihir, atau yang lebih parah lagi, klenik. Hal ini merupakan salah kaprah yang sering terjadi di masyarakat Indonesia. Jika benar, tentu saja bengkel body repair bakal mengganti nama metodenya dari ‘ketok magic’ menjadi ‘ketok quantum’.

Mari kita akhiri basa-basi garingnya dan langsung menuju ke pembahasan yang tajam, singkat, dan lebih serius. Seserius balet!

Kata ‘quantum’ berasal dari istilah fisika yang berarti jumlah minimum dalam suatu entitas fisik. Contohnya photon merupakan sebuah kuantum dari cahaya atau radiasi elektromagnetik yang lain. Jika masih bingung, bayangkan saja atom dengan elektron yang mengitari intinya. Inilah kemungkinan penyebab mengapa kuantum kerap disalahartikan dengan sesuatu yang ghaib karena kuantum merupakan hal yang tak kasat mata.

 

Lalu Apa Yang Dimaksud dengan Komputer Kuantum?

Komputer tradisional yang kita kenal sampai saat ini didasari pada bilangan biner yaitu 0 dan 1. Ada atau tidak ada arus. Jadi untuk menciptakan 8 data yang berbeda kita harus menggunakan 3 karakter bit.

Dalam komputer kuantum dikenal istilah quantum bit atau sering disingkat dengan qubits. Jika satu bit ditentukan dari ada atau tidaknya arus, nol atau satu, qubits ditentukan dari arah pergerakan partikel sub-atom. Arah perputaran partikel ini memiliki suatu posisi yang disebut dengan superposition di mana setiap arahnya dapat direpresentasikan dengan bilangan yang berbeda.

Quantum Computer dan Segala 'Ketidakjelasannya' 3

Mirip seperti bumi yang dikelilingi oleh satelit. Arah satelit ini tidak hanya terbatas pada searah jarum jam atau berlawanan dengan jarum jam saja, tapi juga bisa ke depan, ke belakang, ataupun ke arah di antara yang telah disebutkan di atas tadi.

Akan tetapi, tantangan dalam mengembangkan komputer kuantum ini sangatlah besar. Mengukur arah perputaran partikel tidaklah semudah mengukur putaran bola hasil tendangan bebas Christiano Ronaldo. Ada banyak parameter yang dapat mengacaukan pengukuran ini salah satunya gelombang elektromagnetik.

Walaupun banyak metode yang digunakan dalam komputer kuantum, hampir semuanya menggunakan perangkat yang terisolasi dari radiasi elektromagnetik. Hal ini tentunya membutuhkan tempat yang tidak kecil, mungkin hampir seukuran kamar kos-kosan mahasiswa teknologi informasi di Indonesia. Belum lagi harus menjaga suhu partikel tersebut serendah mungkin.

 

Sejauh mana teknologi komputer kuantum telah dikembangkan?

Sejauh artikel ini ditulis, Google mengklaim telah mengembangkan mesin komputer kuantum 72 qubit miliknya yang disebut Bristlecone. Tapi jangan dikira komputer kuantum ini sudah memiliki kemampuan super sehingga bisa menguasai dunia seperti Skynet di film Terminator. Komputer kuantum ini masih jauh dari kata stabil karena hanya mampu mempertahankan ‘quantum microstate’ tidak sampai 1 detik. Ini berarti segala proses data harus selesai dalam waktu kurang dari itu. Proses data yang panjang tidak mungkin berjalan dengan benar apalagi untuk penyimpanan data.

Inovasi juga datang dari perusahaan komputer legendaris seperti IBM. Perusahaan ini telah mengembangkan komputer kuantum dan menawarkan kepada para peneliti  untuk bereksperimen dengan komputer kuantum 20 bit miliknya melalui cloud sejak tahun 2017.

 

Penerapan Komputer Kuantum Bila Dibandingkan Dengan Komputer Tradisional

Komputer kuantum memiliki sistem yang berbeda dari komputer tradisional sekarang sehingga cocok untuk memecahkan masalah matematika seperti mencari bilangan prima dengan jumlah yang besar. Bilangan prima merupakan komponen penting yang digunakan dalam kriptografi. Hal ini menimbulkan kekhawatiran yang jauh lebih besar bila dibandingkan dengan istilah ‘ketok quantum’ yang telah disebutkan di atas.

Kemampuan komputer kuantum ini memunculkan istilah ‘quantum hacking’ yang secara teori bisa menembus sebagian besar sistem keamanan informasi yang ada sekarang. Tapi tenang saja, sampai sekarang komputer kuantum masih jauh dari tahapan itu. Lagipula para peneliti sedang berusaha keras untuk mengembangkan sistem keamanan informasi yang bisa mengatasi masalah ini.

Selain untuk memecahkan masalah matematika, komputer kuantum juga berpotensi untuk menciptakan model reaksi kimia yang sangat kompleks. Tahun 2016, Google berhasil membuat model molekul hidrogen untuk pertama kali dan IBM bahkan telah membuat model perilaku molekul yang lebih rumit lagi.

Itu tadi penjelasan secara singkat tentang komputer kuantum. Kami harap para gamer yang suka membeli hardware canggih terbaru yang cukup menguras isi kantong dan ATM untuk tidak terburu-buru membeli komputer kuantum. Karena selain harganya tak terjangkau, komputer kuantum ini belum bisa diajak untuk bermain game, bahkan untuk game sesimpel Pacman.

Fuchsia OS : Sistem Operasi yang Mungkin akan Menggantikan Android dan Chrome OS

Hampir setahun sudah Google merilis Fuchsia OS. Fuchsia OS merupakan sistem operasi open source besutan Google yang menggunakan micro kernel ‘Zircon’. Hal ini berbeda dengan OS yang dilahirkan Google sebelumnya yaitu Android dan Chrome OS yang  menggunakan kernel Linux.

Jika dilihat dari user interface-nya yang berupa card atau widget, Fuchsia OS merupakan universal device OS. Ini berarti Fuchsia dapat dipasang di smartphones, tablet, ataupun komputer. Dan jika dilihat secara arsitektural, Fuchsia akan mendukung sepenuhnya bahasa-bahasa pemrograman dari ekosistem Google seperti Go, Dart, Rust, Kotlin, dan menggunakan Flutter sebagai framework-nya. Tetapi Google juga tidak menutup diri terhadap bahasa pemrograman di ekosistem Apple yaitu Swift.

Keputusan Google mengembangkan OS baru ini bukan didasari pada keisengan mereka saja. Banyak developer yang sudah memprediksi bahwa cepat atau lambat, Google akan menciptakan OS baru karena beberapa faktor berikut.

 

Fuchsia OS : Sistem Operasi yang Mungkin akan Menggantikan Android dan Chrome OS 4

 

Satu OS untuk Semua

Baru-baru ini Google mengizinkan aplikasi Android untuk diinstall di Chrome OS. Walaupun begitu, fitur ini masih belum berjalan sempurna. Masih banyak aplikasi yang belum mendukung untuk dipasang di Chrome OS. Permasalahan ini dapat terpecahkan jika seandainya mempunyai satu OS yang dapat dijalankan diberbagai platform perangkat. Bahkan kabarnya, para developer Fuchsia ingin OS ini dapat menjalankan Home Speaker keluaran Google dalam 3 tahun mendatang.

 

Selamat Tinggal Java

Sebagian kode pada Android mengandung kode Java di dalamnya. Bahkan pada saat awal pengembangan awal Android, Google menggunakan memasang JVM (Java Virtual Machine) di dalam Android. Maka tidak heran jika dulu aplikasi Android dapat dipasang di ponsel berbasis Java atau sebaliknya. Selain itu, Android Studio juga menggunakan Java sebagai bahasa resmi yang digunakan. Hal ini memicu kekhawatiran Google karena mereka tidak bisa benar-benar berkuasa atas sistem operasinya sendiri.

 

Kernel Yang Lebih Sering Diperbarui

Android dan Chrome OS menggunakan Linux sebagai kernelnya yang berarti sangat bergantung pada usaha OEM untuk membuat dan mengupdate patch. Padahal, kita tahu sendiri OEM sangat malas mengupdate patch apalagi menyentuh bagian yang terlalu dalam seperti kernel sehingga rentan terhadap eksploitasi pihak yang tak bertanggung jawab. Dengan kernel kustom yang dinamai Zircon, aplikasi dalam Fuchsia terisolasi dalam mengakses kernel secara langsung. Beberapa layer keamanan yang didesain untuk rutin diperbarui membuat Fuchsia jauh lebih aman.

 

Ramah Terhadap AI

Secara mendasar, Fuchsia didesain untuk mengakomodasi Google Assistant. Apapun yang nampak di layar atau apapun yang dilakukan pengguna pada perangkatnya bisa dilihat dan dimengerti oleh Assistant. Fitur ini sebenarnya sudah ada di Android Oreo di mana saat kita menekan dan menahan tombol home maka AI akan membaca informasi pada recent apps. Dengan Fuchsia, Assistant diberikan akses yang lebih dalam lagi. AI ini dapat mengakses segala entitas data seperti orang di kontak, history di browser yang kita pakai, event di kalender, atau konsep lain yang akan berusaha dipelajari oleh Assistant.

***

Itulah beberapa faktor yang menyebabkan para pengamat teknologi informasi berpendapat bahwa Fuchsia akan menggantikan Android dan Chrome OS. Walaupun begitu Google  sempat membantah pernyataan CNET bahwa Fuchsia OS akan menggantikan Android dan Chrome OS dalam jangka waktu lima tahun. Google hanya menyatakan bahwa Fuchsia merupakan salah satu dari sekian banyak project eksperimen yang dilakukan Google.

Update 2 Juli 2019 :

Google akhirnya merilis website untuk development Fuchsia OS yang berisi dokumentasi. 

Scrum! Sebuah Framework Project Management Pendobrak Tradisi

Istilah scrum mulai mencuat sejak tren digital meningkat tajam. Banyaknya tech start up yang lahir menuntut pengembangan produk piranti lunak dilakukan dengan tempo yang sesingkat-singkatnya dan dengan tim yang seramping-rampingnya. Walaupun begitu, masih belum banyak yang belum mengetahui apa arti sebenarnya dari scrum yang sering digembar-gemborkan oleh pelaku tech start up ini.

 

Berawal Dari Agile

Scrum merupakan sebuah framework project management yang bermula dari metode agile. Bagaikan pasangan yang baru 12 jam pacaran, hubungan agile dan scrum tak terpisahkan. Atau jika ingin mencari perumpamaan yang lebih akurat lagi, agile bisa diumpamakan sebagai bahasa pemrograman php dan scrum adalah Laravel. Scrum sendiri merupakan framework yang paling populer dalam agile (baca artikel “Agile: Project Management yang Fokus ke Pengguna“) jauh mengungguli kanban dan iterative development.

Metode agile mengharuskan sebuah pekerjaan dalam suatu project dibagi hingga bagian yang lebih kecil lagi dan sering disebut sprints oleh para pengguna scrum. Metode ini memungkinan sebuah pengembangan produk piranti lunak berjalan tanpa adanya project manager. Karena bagian pekerjaan dipecah menjadi beberapa bagian kecil, setiap bagian dari tim sudah mengetahui apa dan kapan sprints masing-masing harus dikerjakan. Bahkan dengan metode agile, sebuah tim dapat mengetahui workflow dari tim lain sehingga memudahkan setiap bagian dari organisasi untuk berkolaborasi.

 

Sejarah Scrum

Scrum diperkenalkan pertama kali pada tahun 1986 oleh Hirotaka Takeuchi dan Ikujiro Nonaka dalam sebuah artikel di The Harvard Business Review yang berjudul “The New Product Development Game.” Mereka menggunakan metafora untuk menggambarkan dua pendekatan yang berbeda. Sebagian tim seperti pelari estafet yang berlari secara bergantian dengan mengoper tongkat estafet dan berada dalam satu jalur. Tim yang lain bagaikan tim rugby yang bermain secara bersamaan, saling mengoper satu sama lain jika dibutuhkan, dan disatukan oleh kesamaan objective untuk mencetak skor sebanyak mungkin.

Takeuchi dan Nonaka beranggapan bahwa tim ‘pelari estafet’ tersebut ketinggalan jaman dan percaya bahwa cara ‘tim rugby’ akan memberikan perusahaan sebuah kekuatan untuk bersaing di dunia bisnis multinasional.

Lalu beberapa tahun setelahnya, John Sutherland, John Scumniotales, dan Jeff McKenna mengatakan bahwa mereka telah mencoba scrum di Easel Corp pada tahun 1993. Pada tahun 1995, Ken Schwaber dan Sutherland berkolaborasi dengan beberapa orang (ternasuk McKenna dan Scumniotales) mempresentasikan sebuah paper di OOPSLA yang berjudul “SCRUM Development Process.” Hasilnya? Scrum membuat para developer mempertanyakan efektivitas dari metode klasik ‘waterfall.’

 

Prinsip dan Komponen Scrum

Ada beberapa nilai di dalam scrum yang menjadikan framework ini paling populer di antara metode agile. Beberapa nilai tersebut adalah :

  • Commitment
    Sebuah tim dalam scrum mengarahkan dan mengawasi dirinya sendiri. Setiap anggota tim berarti telah mengerti dengan tanggung jawabnya dan mendedikasikan dirinya untuk menyelesaikan sebuah pekerjaan yang telah disepakati bersama.
  • Courage
    Sebuah tim merupakan satu entitas di mana gagal atau berhasilnya sebuah ide beserta eksekusinya ditanggung bersama.
  • Focus
    Prinsip scrum yang paling terasa adalah fokus. Metode scrum membatasi distraksi sehingga setiap anggota tim akan lebih berkonsentrasi pada pekerjaan yang harus diselesaikan pada hari itu.
  • Openness
    Sebuah tim diberikan kesempatan untuk berkumpul dan berbagi agar setiap anggotanya dapat menyampaikan ide, permasalahan, atau pun pandangannya tentang sebuah pekerjaan.
  • Respect
    Setiap tim terdiri dari anggota yang memiliki kelebihan dan kekurangan masing-masing. Setiap kelebihan dan kekurangan tersebut harus dihormati agar tidak saling menyalahkan jika membahas suatu kendala atau kegagalan.

 

Selain prinsip tersebut, Scrum juga memiliki beberapa komponen yang membedakannya dari framework manajemen yang lain. Komponen itu adalah product owner, scrum master, dan scrum development team.

  • Product Owner
    Anggota tim ini berperan sebagai perantara antara customer atau klien dan tim development. Product owner bertanggung jawab untuk memastikan produk akhir sesuai dengan ekspektasi klien atau customer dan memastikan bahwa ekspektasi klien sesuai dengan kemampuan development team.
  • Scrum Master
    Scrum master merupakan seorang fasilitator bagi seluruh anggota tim agar sistem scrum dapat berjalan semestinya. Kebanyakan peran scrum master ini disalahartikan sebagai ‘supervisor’ yang mengawasi setiap anggota tim. Padahal seperti yang telah disebutkan di atas, scrum mewajibkan anggota timnya untuk mengawasi dirinya sendiri. Peran scrum master hanyalah menjadwalkan seluruh ritual dari scrum dan menjadi moderator di dalamnya.
  • Scrum Development Team
    Tim inilah yang bertanggung jawab membuat, menguji, dan mengembangkan suatu produk.

 

Sebuah Framework Dengan Ritual

Dalam prosesnya, scrum mengajak para praktisinya untuk secara terus-menerus mengevaluasi bagian mana dari pekerjaan kita yang berhasil dan mana yang tidak. Dalam scrum, komunikasi adalah bagian penting dari sebuah proses. Oleh karena itu, scrum memiliki beberapa ritual meeting yang disebut dengan event. Beberapa event itu adalah :

 

Daily Scrum

Daily scrum merupakan rapat berdiri yang sangat singkat yang dilakukan setiap hari. Pada setiap kali pertemuan, anggota tim membahas tentang pekerjaan yang telah selesai di hari sebelumnya dan merencanakan pekerjaan apa yang harus selesai dalam waktu 24 jam ke depan. Dalam kesempatan inilah, setiap anggota tim bisa mengungkapkan masalah yang mungkin akan timbul dalam pengerjaan suatu project.

 

Sprint Planning Meeting

Sprint sebenarnya merujuk pada pekerjaan mana yang harus diselesaikan dalam satuan waktu. Waktu untuk setiap sprint berbeda-beda. Di meeting inilah tim merencanakan dan  mensinkronisasi semua sprint dalam jangka waktu seminggu ataupun sebulan tergantung dari jenis project.

 

Sprint Review

Di dalam meeting inilah semua pihak yang terlibat dalam sebuah project bertemu untuk meninjau sebuah sprint yang telah dikerjakan. ‘Product owner’ bisa bertindak sebagai stakeholder yang memberikan pandangan tentang hasil produk final dari sebuah sprint, tapi alangkah baiknya jika stakeholder sendiri ikut dalam sprint review ini.

 

Sprint Retrospective

Sprint retrospective diadakan saat seluruh sprint sudah selesai dikerjakan. Di dalam ritual ini, anggota tim development mengevaluasi seluruh proses sprint. Fokus dari ritual ini adalah ‘bagaimana pekerjaan yang lalu dikerjakan’ bukan ‘apa yang telah dikerjakan.’ Jadi goal dari ritual ini adalah lebih ke pengembangan diri dari setiap anggota tim bukan produk karena  untuk evaluasi produk sudah dilakukan pada saat sprint review.

 

Scrum! Sebuah Framework Project Management Pendobrak Tradisi 5

 

Artefak Agar Tidak Lupa Dengan Sejarah

Salah satu kelebihan scrum adalah dokumentasi dari sebuah proses yang disebut dengan ‘artefak.’ Artefak ini membuat scrum menjadi sebuah framework yang membuat proses perencanaan, komunikasi, dan evaluasi menjadi mudah. Inilah jenis-jenis artefak dalam scrum :

  • Product Backlog
    Yang dimaksud dengan product backlog adalah bagian dari produk baik itu fungsi atau fitur dari suatu produk yang harus diselesaikan. Product backlog ini biasanya disusun oleh product owner bersama klien.
  • Sprint Backlog
    Sprint backlog adalah turunan dari product backlog yang disusun dalam sprint planning meeting. Sprint backlog ditujukan agar setiap tim dapat mengetahui bagian mana saja yang harus dia kerjakan dalam suatu product backlog.
  • Product Increment
    Product increment terdiri dari product backlog yang sudah selesai dikerjakan. Product increment ini mencerminkan sampai sejauh mana progres dari pengerjaan suatu product.
  • Burn Down
    Burn down adalah visualisasi data yang berisikan informasi pekerjaan yang belum terselesaikan dan waktu yang tersisa. Burn down menampilkan chart yang membandingkan linimasa pengerjaan ideal dengan linimasa pengerjaan aktual dari sebuah sprint.

 

Itulah tadi penjelasan singkat mengenai scrum. Jika kita dapat melihat gambaran besarnya, kita akan mengetahui alasan mengapa tech startup kekinian memfavoritkan scrum sebagai framework kerja dalam pengembangan sebuah produk. Tentu saja framework ini bukan tanpa kelemahan. Banyak kendala untuk mentransformasikan sistem manajemen klasik ‘waterfall’ seperti SDM yang masih awam sampai kendala tim yang terlalu besar sehingga scrum tidak berjalan efektif. Solusi yang paling masuk akal untuk menerapkan pada bisnis yang sudah lama berdiri adalah dengan mengadaptasikan scrum secara pelan-pelan ke dalam konsep waterfall yang sudah mengakar dari lama.

Front-End vs Back-End Developer. Apa Bedanya?

Jika Anda mengetikkan URL di tab browser Anda dan menekan enter. Seketika Anda disuguhkan dengan tamplilan visual web yang memukau. Animasi-animasi indah serta konten interaktif yang memberikan experience lebih kepada kita sebagai pengguna terkadang menggelitik rasa penasaran kita, bagaimana membuat website yang seperti ini?

Sering kali website yang eksepsional seperti itu dibuat tidak hanya oleh seorang web developer saja melainkan satu tim dengan spesialisasi masing-masing. Dalam tim tersebut biasanya terdiri dari 3 profesi yaitu UI/UX designer, front-end developer, dan back-end developer. Apa saja perbedaan pada setiap profesi tersebut? Yuk kita bahas satu per satu!

 

UI/UX Designer

Kita tidak akan banyak membahas tentang UI/UX designer karena profesi ini lebih ke arah desain (baca: Pengembangan UI/UX: Merancang Nyawa Sebuah Aplikasi jika ingin mengetahui tentang pengembangan UI/UX lebih dalam). Seperti halnya arsitek, UI/UX designer sangat berperan dalam menentukan estetika dan pengalaman pengguna dalam sebuah web yang Anda kunjungi. Peran UI/UX designer hanya sebatas membuat wireframe (sketsa layout untuk sebuah web) dan tentunya web design itu sendiri mulai dari komposisi letak, jenis dan ukuran font, sampai warna-warna yang digunakan. Seorang UI/UX designer sama sekali tidak mengotori tangannya dengan menulis kode. Walaupun begitu biasanya UI/UX designer memahami bagaimana HTML, CSS, dan JavaScript bekerja sehingga tidak ngawur dalam mendesain website.

 

Front-End Developer

Setelah UI/UX designer menuangkan ide-ide cemerlang dan tangan terampilnya dalam desain sebuah web, kini giliran front end developer yang akan meneruskan proyek membangun website ini.

Jika tadi UI/UX designer kita ibaratkan sebagai arsitek, si front end developer ini adalah engineer-nya. Tugas front end developer adalah merealisasikan desain kreatif nan imajinatif dari sang UI/UX designer. Jika ada ungkapan “architect’s dream is the engineer’s nightmare” di proyek properti, di proyek website ini ungkapannya hampir sama yaitu “Designer’s dream is front end developer’s nightmare”.

Ya! Tugas front end developer adalah memastikan konten yang ditampilkan di browser pengguna berjalan sesuai desain disepakati. Header yang menggeser ke samping atau yang disebut slider, ikon menu yang berubah saat di-scroll, serta animasi-animasi lucu dan menggemaskan yang membuat kita ingin mencubit layar monitor adalah fitur yang ditulis dengan kode pemrograman oleh sang front-end developer. Bahasa teknisnya, front end developer adalah orang yang bertanggung jawab atas semua kode yang dikirim dari server dan diterima oleh browser masing-masing pengguna.

Untuk menjadi seorang front end developer, kita mempelajari bahasa mark up seperti HTML dan CSS serta bahasa pemrograman JavaScript. JavaScript sendiri mempunyai banyak library dan framework seperti jQuery, AngularJS, ReactJS, dan lain-lain. Seorang front end developer juga harus mengerti bagaimana RESTful Service dan API bekerja. RESTful sangat dibutuhkan ketika kita ingin menghubungkan web kita dengan aplikasi web lain seperti Facebook atau Twitter.

Seperti profesi yang lain, ada bagian di mana menjadi seorang front end developer itu menyenangkan dan ada bagian tidak enaknya pula. Bagian menyenangkannya adalah semua output dari kode yang kita tulis dapat dilihat dengan mata sehingga memudahkan kita untuk mencari bagian mana dari kode yang kita tulis yang tidak berjalan. Bagian tidak enaknya adalah web yang kita buat harus berjalan dengan sempurna di berbagai browser dan berbagai perangkat yang dimiliki pengguna, apalagi sekarang lebih banyak orang yang membuka web dari perangkat mobile.

 

Back-End Developer

Jika dummy website sudah dibuat dan berjalan semestinya di browser masing-masing pengguna, 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. PHP, JavaScript, Python, dan Ruby adalah bahasa pemrograman yang biasanya dipakai di server.

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. Nah, CMS ini mirip dengan aplikasi blogging sehingga memudahkan admin web untuk mengisi konten tanpa harus menuliskan kode HTML maupun CSS. Tentu saja tidak semua back end developer membuat sendiri CMS website yang sedang mereka kembangkan. Banyak dari back end developer yang memakai CMS yang dikembangkan oleh pihak ketiga seperti WordPress yang merupakan CMS open source yang bisa kita install sendiri di server kita.

Selain CMS dan database, seorang 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.

 

Full Stack Developer

Sebenarnya tidak ada yang perlu dijelaskan lagi mengenai full stack developer karena full stack adalah front end dan back end developer yang dirangkap oleh 1 orang. Perkembangan teknologi yang cepat membuat batasan front end dan back end semakin kabur. Apalagi sekarang banyak diantara bisnis yang menginginkan hasil cepat dan murah sehingga para developer ‘penyendiri’ mulai mengembangkan dirinya menjadi full stack untuk menghemat waktu dan tentu saja biaya produksi.

Memang kebanyakan dari full stack developer memiliki kecenderungan untuk lebih ahli di sisi front end atau back end. Sangat sedikit yang kemampuannya benar-benar hebat di dua bidang tersebut sekaligus. Selain memiliki logika dan problem solving yang baik seperti back end developer, seorang full stack developer juga dituntut untuk memiliki kreativitas yang tinggi seperti front end developer.

Full stack developer merupakan profesi yang populer setelah Facebook merekrut full stack developer walaupun untuk mengerjakan bagian front end saja atau back end saja. Alasannya adalah full stack developer lebih paham bagaimana proses pembuatan website di dua bagian tersebut sehingga mempermudah komunikasi antara divisi front end dan back end.

Jika Anda tertantang untuk menjadi seorang full-stack developer dari nol, Anda bisa ikut bootcamp full stack web programming yang diselenggarakan Inixindo Jogja. Batch bootcamp ini dibuka tiap bulan.