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.

Almanak Sejarah Singkat Tak Akurat Bahasa Pemrograman

Almanak Sejarah Singkat Tak Akurat Bahasa Pemrograman

Sepertinya halnya makhluk hidup, bahasa sebagai alat berkomunikasi terus berevolusi dari waktu ke waktu. Hal ini juga dialami oleh bahasa pemrograman, alat komunikasi antara manusia dengan mesin. Bedanya, jika diperlukan waktu berabad-abad untuk bahasa manusia berevolusi, bahasa pemrograman hanya membutuhkan waktu maksimal 10 tahun saja untuk berevolusi.

Hal ini disebabkan oleh kemajuan teknologi yang semakin cepat dan juga umur mesin atau komputer yang tidak selama manusia. Berapa banyak komputer yang diproduksi 15 tahun lalu masih hidup sampai sekarang? Apalagi sekarang perkembangan teknologi informasi lebih ke arah mobile. Tentunya akan menjadikan bahasa pemrograman yang kaku alias tidak bisa menyesuaikan diri di berbagai macam platform akan ditinggalkan.

Seperti kisah cinta yang bisa berujung manis dan lebih sering berujung pahit, kisah bahasa pemrograman juga mengalami hal yang sama. Ada yang populer dan menjadi idola developer kekinian ada juga yang digunakan programmer lawas hanya untuk bernostalgia mengenang kejayaan masa lampau. Seperti apa sih ceritanya? Yuk, kita simak almanak sejarah singkat tentang bahasa pemrograman yang tidak akurat ini!

 

1800 – Mesin Pemintal

Yup! Anda tidak salah baca. Mesin pemintal adalah cikal bakal lahirnya pemrograman. Mungkin inilah satu-satunya mesin yang menggunakan multi-thread secara harfiah. Joseph Marie Jacquard membuat mesin pemintal yang sebelumnya dilakukan secara manual menjadi bisa diprogram sesuai dengan keinginan manusia. Memang pemrograman yang dilakukan masih sebatas pemrograman mekanis karena pada saat itu bohlam lampu saja masih belum ditemukan. Mesin ini diperintah melalui media kartu berlubang yang terbuat dari kayu.

 

1842 – Algoritma

Pada tahun ini, Ada Lovelace seorang mathematician dan juga seorang penulis menciptakan sebuah mesin penghitung. Berbeda dengan mesin penghitung seperti simpoa, mesin ini dapat melakukan penghitungan yang jauh lebih rumit daripada itu. Pada suatu hari, Ada Lovelace merasa bosan dan tidak ingin dianggap makan gaji buta. Dia kemudian mengeluarkan buku panduan yang disebut-sebut algoritma pertama yang pernah ditulis untuk memrogram sebuah mesin walaupun saat itu belum ada komputer untuk diprogram.

 

1936 – Turing

Pada tahun ini, Alan Turing menerbitkan sebuah makalah berjudul “On Computers Numbers, with Application to the Entscheidungsproblem” yang membuktikan bahwa the turing machine yang dia ciptakan dapat memecahkan segala problem matematika jika ditunjang dengan algoritma yang benar. Mesin inilah yang kemudian dianggap sebagai awal lahirnya komputer modern. Sebenarnya ada satu matematikawan lagi pada tahun ini yang bernama Alonzo Church yang juga memecahkan Entscheidungsproblem tapi tidak bisa seterkenal Alan Turing (mungkin karena Alonzo Church tidak mirip dengan Benedict Cumberbatch. 🙂

 

1957 – FORTRAN

John Backus menciptakan bahasa pemrograman pertama yang hampir mirip dengan bahasa pemrograman masa kini dan benar-benar digunakan programmer untuk memrogram komputer.

 

1959 – COBOL

Karena Grace Hopper tidak bisa berbahasa Jawa, dia lalu menciptakan bahasa pemrograman yang lebih mendekatkan diri ke Bahasa Inggris yang disebut COBOL. COBOL merupakan singkatan dari Common Business Oriented Language. Benar kan? Dari singkatannya saja kita bisa tahu kalau bahasa ini mirip dengan Bahasa Inggris.

 

1964 – BASIC

John Kemeny dan Thomas Kurtz menganggap bahwa bahasa pemrograman yang ada terlalu rumit dan memutuskan untuk back to basic dengan cara menciptakan bahasa pemrogaman yang disebut BASIC.

 

1970 – Pascal

Niklaus Wirth suka membuat bahasa pemrograman. Maka dari itu dia membuat bahasa Pascal dan bahasa pemrograman lainnya. Dia juga mencetuskan Wirth’s Law yang mengukuhkan Moore’s Law karena software developer cenderung menulis program yang semakin boros resource yang bahkan komputer mainframe susah payah untuk menjalankan software tersebut.

 

1972 – C

Dennis Ritchie yang merasa bosan lalu membuat sebuah bahasa pemrograman C. Banyak yang berspekulasi mengapa disebut C. Ada yang mengatakan gara-gara si Dennis hanya mendapatkan nilai C di kelas Bahasa Inggris dan ada yang mengatakan C diambil dari ‘curly braces’ di mana banyak digunakan di bahasa pemrograman ini. Masih merasa makan gaji buta akhirnya si Dennis bersama temannya menciptakan sistem operasi yang disebut Unix.

 

1980 – Object Oriented Programming

Alan Kay menemukan bahasa pemrograman yang memiliki paradigma Object-Oriented Programming dan dinamakan SmallTalk. Di bahasa ini, semua adalah object, bahkan object adalah object. Tak ada yang mengerti mengapa bahasa pemrograman ini disebut SmalTalk.

 

1983 – C++

Bjarne Stroustrup berkelana dengan mesin waktu dan saat sampai di masa lalu dia menemukan fakta bahwa C terlalu lama di-compile. Dia lalu kembali ke masa depan lalu menambahkan semua fitur di C dan dinamai C++.

 

1986 – Objective C

Brad Cox dan Tom Love memutuskan untuk membuat versi C yang tidak dapat dibaca yang terinspirasi dari SmallTalk. Semua orang tidak dapat mengerti syntax dari Objective C ini.

 

1987 – Perl

Larry Wall menciptakan bahasa Perl. Tiba-tiba dia ingin pergi umrah dan mengeluarkan buku “Programming Perl” dengan unta yang dijadikan sebagai model cover buku.

 

1991 – Python

Guido Van Rossum tidak menyukai kurung kurawal (curly braces) dan akhirnya menciptakan Python bahasa pemrograman yang namanya justru lebih mirip kurung kurawal bila dibandingkan dengan bahasa C.

 

1994 – PHP

Rasmus Leedorf membuat template engine untuk CGI scripts yang akan digunakan untuk halaman web pribadinya dan kemudian merilis dot-file di web. Semua orang akhirnya menggunakan dot-file untuk semua hal. Karena semangat yang terlalu menggebu-gebu akhirnya si Rasmus memberikan database binding ke dot-file ini dan menyebutnya PHP.

 

1995 – Ruby

Yukihiro Matsumoto tidak begitu bahagia, programmer lain juga tidak bahagia. Dia menciptakan Ruby agar semua bahagia. Setelah menciptakan Ruby, Matz (nama panggilan Matsumoto) menjadi bahagia, komunitas Ruby juga bahagia, dan semua orang bahagia.

 

1995 – Javascript

Brendan Eich memanfaatkan akhir pekannya untuk mendesain bahasa yang akan digunakan seluruh web di dunia dan mungkin juga Skynet. Dia menawarkan ke Netscape dan bilang bahwa “ini adalah LiveScript”. Pada saat Netscape sedang direview semua orang sedang keranjingan Java dan akhirnya mereka memutuskan untuk menggunakan kurung kurawal (curly braces) serta menyebutnya Javascript.

Java akhirnya diberi trademark yang dapat menyebabkan masalah pada Javascript. Jadi, Javascript kemudian diberi nama ECMAScript tapi sampai saat ini orang-orang masih menyebutnya Javascript.

 

1996 – Java

James Gosling membuat Java, bahasa pemrograman yang sangat terlalu digembar-gemborkan sekali sebagai bahasa OOP (Object-Oriented Programming) pertama dimana desain dianggap jauh lebih penting daripada pragmatisme.

 

2001 – C#

Anders Hejlsberg menggubah kembali Java dan menyebutnya C# karena menurutnya memrogram dengan C jauh lebih keren dibandingkan dengan Java. Semua orang suka dengan versi baru Java ini karena benar-benar berusaha tidak mirip dengan Java.

 

2005 – Ruby On Rails

David Heinemeier Hansson menciptakan framework untuk Ruby dan menyebutnya Ruby On Rails. Sekarang orang-orang tak ingat lagi jika Ruby dan Ruby On Rails itu merupakan bagian yang terpisah.

 

2006 – jQuery

John Resig merancang sebuah library untuk JavaScript. Semua orang menganggap jQuery adalah bahasa pemrograman. Sekarang orang bisa mendapatkan penghasilan dengan cara meng-copy-paste kode jQuery dari internet.

 

2009 – GO

Ken Thompson dan Rob Pike memutuskan untuk membuat bahasa pemrograman mirip C tapi dengan safety equipment, menamakannya “GO” , dan membuatnya lebih marketable dengan memakai Gophers sebagai maskot yang imut.

 

2010 – Rust

Graydon Hoare juga ingin membuat bahasa seperti bahasa C. Dia lalu menamakannya Rust. Tiba-tiba semua orang ingin semua software ditulis dengan Rust sesegera mungkin. Karena ingin dompetnya setebal ensiklopedia, Graydon bergabung dengan Apple untuk mengerjakan Swift.

 

2012 – TypeScript

Anders Hjelsberg ingin menulis C# di web browser. Dia merancang TypeScript, bahasa pemrograman yang mirip JavaScript dengan lebih banyak unsur Java di dalamnya.

 

2013 – CoffeeScript

Jeremy Ashkenas ingin bahagia seperti para developer Ruby. Jadi, dia menciptakan CoffeeScript yang ter-compile menjadi JavaScript tapi lebih mirip Ruby. Jeremy Ashkenas tak akan pernah menemukan arti kebahagiaan sejati seperti Matz dan developer Ruby lainnya.

 

2014 – Swift

Chris Lattner menciptakan Swift dengan obyektif utama “tidak menjadi Objective C.” Pada akhirnya, Swift lebih mirip Java.

 

Itulah tadi sejarah singkat tapi tak akurat tentang bahasa pemrograman. Kami harap artikel ini dapat dijadikan bacaan ringan yang menghibur untuk mengisi waktu luang seperti menunggu air yang Anda masak untuk membuat kopi matang. Kami sangat tidak menganjurkan artikel ini dijadikan referensi baik skripsi ataupun thesis. Kami menyediakan link ke Wikipedia jika Anda ingin sejarah yang akurat.