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' 1

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 2

 

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 3

 

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.

Membuat Single Page Aplication Menggunakan React

Membuat Single Page Aplication Menggunakan React

Belakangan ini cara pemrograman web berubah cukup signifikan. development menjadi lebih komplex dengan di baginya pengebangan menjadi dua sisi yang berbeda yaitu Front end, dan Back end. tuntutan pengembangan di sisi front end membuat keluar nya teknologi baru dalam pengembangan sebuah aplikasi web yang biasa disebut dengan Single Page Application.
Single Page Aplication merupakan sebuah terobosan baru dalam front end development. single page application mengutamakan pengambilan tampilan dari server secara dinamik, dibandingkan harus mengambil seluruh tampilan dari server.

Ada beberapa framework Front end yang berkembang saat ini diantaranya adalah React, VueJs, Angular. Tutorial kali ini kita akan menggunakan React sebagai framework front end. Alasan utama kenapa memilih react adalah pengguna react lebih besar dibandingkan framework lainya.

Membuat Single Page Aplication Menggunakan React 4

gambar diatas merupakan data statistic download dari website npm, menunjukkan bahwa jumlah download react jauh meninggalkan dua rival nya. Klik DIsini

pada tutorial kali ini kita akan mencoba membuat aplikasi spa (Single Page Application) sederhana menggunakan react yang kurang lebih hasil akhir nya nanti adalah seperti gambar di bawah ini :

Membuat Single Page Aplication Menggunakan React 5

A. Persiapan

Ada beberapa alat yang harus disiapkan sebelum kita bisa melakukan life codding.

  • install NPM (Node JS)

untuk menginstal Node JS bisa dilihat langsung ke websitenya nodejs

  • Install React App

buka command Prompt dan ketikkan perintah di bawah ini

npm install -g create-react-app

Proses instalasi react

  • Buat Project Baru

untuk membuat project baru, sangat disarankan utuk memilih direktori yang tidak terlalu dalam. dalam kasus ini kita akan membuat project baru di direktory D:. kita akan membuat project spa-inix. ketikkan perintah dibawah ini  untuk membuat project baru.

D:

create-react-app spa-inix

cd spa-inix

Membuat Single Page Aplication Menggunakan React 6

proses instalasi otomatis akan membuat folder dengan nama project di directory kita mengetikkan perintah. dalam kasus gambar diatas kita membuat project di D: maka otomatis akan dibuatkan folder spa-inix. cek folder D:\spa-inix\ lewat windows explorer. kurang lebih seperti gambar di bawah ini:

Membuat Single Page Aplication Menggunakan React 7

  • Install React Router

pastikan command prompt directory telah di ubah ke directory project D:\spa-inix> dengan mengetikkan perintah cd spa-inix, sebelum menginstall react router. react router merupakan salah satu komponen yang sangat penting, karena react router yang membaca url dan mengarahkan tampilan mana yang akan di load. untuk menginstall react router ketikkan perintah:

npm i react-router-dom --save

Membuat Single Page Aplication Menggunakan React 8

sampai disini proses persiapan selesai. kita bisa melihat hasil dari instalasi dengan menjalankan perintah npm start dan kemudian buka browser dengan mengakses http://localhost:3000/maka akan tampil halaman default react.

B. Coding

karena kita akan memulai tutorial ini dari scratch alias kosongan, supaya kita bisa lebih memahami bagai mana cara kerja react js maka sebelum kita memulai terlebih dahulu hapus semua isi file dalam folder public dan src. folder public cuma berisi file index.html dan folder development kita focus ke folder src.

1. Membuat File Index.html di folder public

setelah semua file didalam folder di hapus buat file index.html di folder public yang berisi coding seperti di bawah ini

  
    
    

 

2. Membuat File Index.js di folder src

buat file baru dengan nama index.jsdi folder src. nama file harus sama persis karena file tersebut adalah file yang pertama akan di jalankan. isikan coding di bawah ini.

import React from "react";
import ReactDOM from "react-dom";
import Main from "./Main";
 
ReactDOM.render(
  , 
  document.getElementById("root")
);

Inti dari codding disini file index.js memanggil Class Main.js yang merupakan inisialisasi awal aplikasi kita atau yang akan menjadi halaman router dari aplikasi kita. semua hasil routing yang ada akan di tampilkan atau diInjectkan ke element dengan id=’root’.

3. Membuat File Main.js

setelah file index dibuat selanjutnya kita membuat file Main.js sesuai yang telah kita deklarasikan di langkah 2. awal mula buat file Main.js dengan code seperti dibawah ini. kita akan banyak bekerja dengan file ini setelahnya.
/src/Main.js

import React, { Component } from "react";
 
class Main extends Component {
  render() {
    return (

 

INIX Simple SPA (Single Page Application)

 

 

 

 

 

 

); } } export default Main;

tidak ada yang istimewa dari coding diatas. jika dilihat di browser pun tampilan masih sangat sederhana tanpa styling. tapi dari kode diatas kita dapat belajar beberapa hal diantaranya adalah render() yang digunakan untuk menampikan output dari sebuah class.

Membuat Single Page Aplication Menggunakan React 9

4. Menambahkan Content

langkah selanjutnya setelah Main Class ter buat langkah selanjutnya adalah menentukan isi dari content ketika link di klik.
langkah selanjutnya buat file Home.js. untuk sementara kiti isi cotent text sederhana saja
/src/Home.js

import React, { Component } from "react";
class Home extends Component {
  render() {
    return (

 

Selamat Datang

 

Aplikasi Ini merupakan Contoh sederhana implementasi SPA (Singgle Page Aplication) menggunakan react JS. Langkah Step By Step dapat anda Lihat di website inixindojogja.co.id. inixindojogja adalah lembaga training IT profesional.

 

inixindojogja.co.id Didirikan sejak 1 Juli 2001 di Yogyakarta, Inixindo Jogja menjawab kebutuhan para pebisnis dan profesional IT akan lembaga pelatihan/training dan konsultan IT yang berkualitas dan kompeten. Kualitas para tutor (instructor) dengan keterampilan mengajar yang tinggi, bersertifikasi internasional, dan berpengalaman mengelola proyek IT yang luas, membuat Inixindo Jogja dipercaya oleh banyak perusahaan terkemuka dan instansi pemerintah, tidak hanya dalam hal peningkatan kemampuan individu maupun SDM TI, namun juga sebagai konsultan yang memberikan solusi lengkap dalam bidang Teknologi Informasi, mulai dari perencanaan, pembangunan, implementasi, dan evaluasi. Inixindo Jogja kini telah dipercaya sebagai konsultan Smart City di beberapa kota di Indonesia.

 

); } } export default Home;

langkah selanjutnya membuat About.js

import React, { Component } from "react";
 
class About extends Component {
  render() {
    return (

 

About Us

 

Inixindo Jogja mempunyai beberapa layanan utama diantaranya:

 

    1. Training IT Profesional

 

    1. Assesment Center

 

    1. Consultan Smart City

 

 

); } } export default About;

selanjutnya buat tampilan untuk Contact dengan membuat file Contact.js

import React, { Component } from "react";
class Contact extends Component {
  render() {
    return (

 

Ada Pertanyaan?

 

Jika ada pertanyaan silahkan kirim email ke wawan@inixindojogja.com dengan subject tanya SPA. atau hubungi marketing inixindojogja di https://inixindojogja.co.id/

 

); } } export default Contact;

setelah ketiga content telah kita buat langkah selanjutnya yaitu mengkonfigurasi react routing supaya dikenali ketika di klik link Home maka akan menampilkan Home.js, ketika di klik About maka akan di jalankan About.js, dan ketika di klik contact akan di jalankan Contact.js.

5. Menggunakan React Router untuk menghandle Link

sampai dengan langkah 4 ketika di klik link dia belum mengarah sesuai dengan keinginan. untuk mencapai tujuan tersebut kita perlu menggunakan react router.
langsung saja pada Main.js tambahkan script import menjadi seperti di bawah ini

import {
  Route,
  NavLink,
  HashRouter
} from "react-router-dom";
import Home from "./Home";
import about from "./About";
import Contact from "./Contact";

dalam script diatas kita mendeklarasikan bahwa kita akan menggunakan, fitur Route,
NavLink,
HashRouter
yang mana Route digunakan untuk membaca url dan uri NavLink digunakan untuk membuat Anchor atau Link.
HashRouter digunakan untuk menentukan content yang akan di routingkan.
cara kerja dari HashRouter adalah dengan menentukan area yang akan di jadikan HashRouter. maka sekali lagi tambahkan HashRouter di Main.js
hingga Main.js Secara Keseluruhan akan menjadi:

import React, { Component } from "react";
import {
  Route,
  NavLink,
  HashRouter
} from "react-router-dom";
import Home from "./Home";
import About from "./About";
import Contact from "./Contact";
class Main extends Component {
  render() {
    return (

 

INIX Simple SPA (Single Page Application)

 

    • Home

 

    • About

 

    • Contact

 

 

 

 

    );
  }
}
export default Main;

sampai disini maka seharusnya spa kita telah berjalan sesuai cuma tinggal satu langkah lagi yaitu menambahkan CSS sebagai styling supaya tampilan terlihat lebih cantik.

6. Menambahkan CSS

langkah terakhir dalam coding kita adalah menambahkan file index.css di folder src. tulis kan coding di bawah ini pada file index.css kita

body {
  background-color: #82BDFB;
  padding: 20px;
  margin: 0;
}
h1, h2, p, ul, li {
  font-family: sans-serif;
}
ul.header li {
  display: inline;
  list-style-type: none;
  margin: 0;
}
ul.header {
  background-color: #111;
  padding: 0;
}
ul.header li a {
  color: #FFF;
  font-weight: bold;
  text-decoration: none;
  padding: 20px;
  display: inline-block;
}
.content {
  background-color: #FFF;
  padding: 20px;
}
.content h2 {
  padding: 0;
  margin: 0;
}
.content li {
  margin-bottom: 10px;
}
.active {
  background-color: #0099FF;
}
/*347114000400801510*/

selanjutnya setelah file di buat langkah terakhir adalah include file index.css tersebut ke Main.js
dengan cara menambahkan kode seperti di bawah ini pada bagian import.

import "./index.css";

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.