Mengenal MU-MIMO Pada Teknologi Wireless

Jika membicarakan teknologi jaringan wireless terutama Wi-Fi pada level pengguna pasti ada di antara kita yang menjadi pendukung fanatik atau pun penolak die hard. Mendukung atau menolak biasanya tergantung dari device dan kebutuhan. Orang serba simpel, tak mau ribet, dan kelihatan keapple-applean tentu banyak yang cinta mati dengan Wi-Fi dan merasa jijik dengan konektor RJ45. Sebaliknya orang yang suka nonton video streaming 4K dan para gamer tentu saja tak bisa hidup tanpa kabel ethernet.

Seperti yang kita ketahui bahwa Wi-Fi yang biasa kita pakai di coffee shop, perpustakaan, dan tempat umum memiliki beberapa kelebihan dan kekurangan. Kelebihannya sudah jelas yaitu pengguna tak perlu terjerat oleh kabel yang membatasi ruang gerak bahkan hanya untuk sekedar menggeser laptop. Sedangkan untuk kelemahan, kualitas koneksi Wi-Fi tentu saja kalah dengan kabel ethernet biasa apalagi jika jumlah pengguna dalam satu router cukup banyak. Tapi sekarang para fans wi-fi tak perlu berkecil hati lagi karena hadirnya teknologi baru pada wireless network yang disebut MU-MIMO

 

Apa itu MU-MIMO?

MU-MIMO adalah singkatan dari Multi User, Multiple input, Multiple Output. Walaupun singkatannya imut dan menggemaskan, MU-MIMO ini memiliki kemampuan lebih yang signifikan bila dibandingkan dengan generasi sebelumnya yaitu SU-MIMO (Single User, Multiple input, Multiple Output) yang mulai kita jumpai pada protokol 802.11n di sekitar tahun 2007. Pada MU-MIMO sendiri protokol yang digunakan adalah 802.11ac tapi tidak semua chipset Wi-Fi yang mendukung protokol 802.11ac juga mendukung fitur MU-MIMO.

Tidak seperti SU-MIMO yang hanya memiliki satu jalur untuk beberapa pun jumlah penggunanya, MU-MIMO menggunakan beberapa jalur terpisah untuk dapat digunakan oleh beberapa user. Jumlah jalur ini tergantung dari angka pada spesifikasi router atau access point. Router 2×2 memiliki 2 jalur yang berarti 2 user/device dapat mengirimkan request dan mendapatkan response secara bersamaan. Sistem yang sama juga berlaku untuk access point 3×3, dan 4×4.

 

Mengenal MU-MIMO Pada Teknologi Wireless 1

 

Bagaimana Cara MU-MIMO bekerja?

Seperti yang disebutkan sebelumnya, MU-MIMO membuat router atau access point bisa berkomunikasi dengan beberapa perangkat/pengguna dalam satuan waktu dengan beberapa jalur yang berbeda. Jika dianalogikan, MU-MIMO seperti memiliki beberapa kasir dalam sebuah supermarket yang dapat memecah antrian orang belanja. Secara umum jalur-jalur yang dimiliki ini terpisah secara spasial, jadi user yang berada di sebelah utara access point memiliki jalur yang berbeda dengan yang ada di selatan, barat, atau timur access point.

Keuntungan penggunaan MU-MIMO ini tidak hanya didapatkan dari perangkat yang telah mendukung MU-MIMO saja tapi juga pengguna yang perangkatnya belum mendukung MU-MIMO. Hal ini disebabkan karena jika banyak pengguna yang mendukung MU-MIMO dalam antrian tersebut otomatis jumlah antrian akan berkurang karena pengguna MU-MIMO tersebut terlayani dengan cepat. Selain masalah kecepatan, masalah keamanan bisa dijadikan alasan untuk menggunakan MU-MIMO karena sinyal yang dikirim atau diterima oleh access point MU-MIMO terenkripsi.

 

Keterbatasan MU-MIMO

Bagaimana sudah tertarik untuk membeli access point MU-MIMO? Jangan terburu-buru dulu! Selain kelebihan MU-MIMO yang sudah kami sebutkan di atas, MU-MIMO memiliki beberapa keterbatasan yang dapat membuat kita harus berpikir dua kali sebelum membeli access point MU-MIMO yang harganya tentu saja di atas access point biasa.

Keterbatasan MU-MIMO:

  • MU-MIMO mengharuskan router dan perangkat client harus mendukung teknologi ini. Jadi jika perangkat pengguna banyak yang belum mendukung MU-MIMO, membeli access point MU-MIMO adalah sesuatu yang sia-sia.
  • Performa MU-MIMO hanya terasa jika banyak pengguna yang terhubung
  • Pembagian jalur MU-MIMO spasial membuat kita tidak bisa berpindah pindah memutari router dan kemungkinan router akan memindahkan user tersebut ke jalur SU-MIMO
  • MU-MIMO tidak meningkatkan kecepatan upstream, jadi untuk pengguna yang membutuhkan upstream tinggi seperti mengupload konten video tidak seberapa merasakan perbedaan antara MU-MIMO dan dan Wi-Fi biasa.

 

***

 

Walaupun MU-MIMO punya banyak keterbatasan, pengembangan di teknologi jaringan masih belum berhenti untuk berusaha memecahkan masalah keterbatasan tersebut dan saat artikel ini dipublikasikan sudah banyak perangkat laptop atau pun smartphone yang sudah mendukung MU-MIMO.

8 Situs Freelancing yang Direkomendasikan Untuk Programmer

Beberapa bulan yang lalu, kami sempat menulis artikel tentang tips menjadi programmer freelance. Setelah sekian lama, sebuah pertanyaan lalu muncul yang kemudian menjadi beban pikiran kami “bagaimana jika ada dari pembaca yang benar-benar resign dari pekerjaannya dan memutuskan menjadi programmer freelance?”

Seketika tim penulis Inixindo Jogja memiliki perasaan yang campur aduk, ada yang merasa bertanggung jawab, ada yang merasa bersalah, bahkan ada yang khawatir setengah mati bagaimana jika pembaca yang nekat tersebut diceraikan pasangannya, dihukum orang tuanya, atau jadi bahan obrolan tetangga gara-gara status ‘kerja serabutan’. Walaupun sebenarnya ada juga di antara kami yang cuek dan masih asik makan bubur kacang ijo di pantry, tapi kami sepakat untuk membantu pembaca yang nekat dalam mencari pekerjaan serabutan sebagai programmer atau developer lepas.

Biasanya karena sibuk coding, para programmer freelance kurang bersosialisasi dengan orang yang berpotensi menjadi klien mereka. Memang ada yang suka berkumpul atau ‘nongkrong bareng’ tapi itu pun biasanya dengan rekan seprofesi yang notabene adalah kompetitor mereka. Solusi untuk masalah ‘kurang main’ programmer freelance sebenarnya sudah ada sejak beberapa tahun yang lalu dengan hadirnya situs-situs cari kerja lepas.

Mirip dengan marketplace produk, situs-situs freelance dibuat untuk mempertemukan orang yang mencari pekerja dengan orang yang membutuhkan kerja tentu saja dalam konteks freelance yang berarti kontrak pekerjaannya per project. Dalam situs ini, kita sebagai freelancer harus bersaing dengan freelancer lain yang menawarkan jasa dengan skill tertentu. Si pemberi kerja biasanya memilih berdasarkan preferensinya sendiri-sendiri, ada yang menilai berdasarkan kualitas portfolio, pengalaman, popularitas, dan yang paling sering adalah harga.

Ya! Kami mengetahui betapa sakitnya freelancer yang handal dan memiliki jam terbang yang tinggi harus mengalah kepada fresh graduate atau juga mahasiswa yang memasang rate jauh lebih murah dibanding harga pasaran. Tapi bagaimanapun juga mereka tidak bisa disalahkan karena kita pernah mengalami betapa sulitnya membangun portfolio pada saat awal kita terjun di dunia freelancing.

Meskipun begitu, kita tak boleh menyerah begitu saja. Saatnya melebarkan sayap demi meningkatkan reach dari personal brand kita dengan memasang lapak di setiap situs freelancing yang ada di muka bumi! Yup, itu usulan dari digital marketing kami. Agak berlebihan memang, tapi paling tidak inilah delapan situs baik dari luar maupun dalam negeri yang bisa kalian coba agar kesempatan mendapatkan klien semakin besar.

 

  1. Sribulancer
    Jika kalian belum seberapa percaya diri untuk memiliki klien dari luar negeri, kalian bisa mencoba situs dalam negeri ini. ‘Act locally’ kata pepatah. Selain berkomunikasi dengan klien lokal lebih mudah, saingan kalian juga tak sebanyak situs internasional yang datang dari berbagai penjuru dunia untuk memperebutkan satu gelar yaitu deal dengan klien. Kekurangan dari situs ini adalah rate yang sudah ditetapkan oleh situs tersebut.  
  2. Freelancer
    Walaupun bukan berasal dari Indonesia, situs dari Australia ini memiliki basis pengguna yang kuat di Indonesia dan juga di seluruh dunia. Situs ini juga merupakan salah satu pionir situs freelancing.  
  3. Upwork
    Situs ini adalah paling populer di antara para developer walaupun sebenarnya situs ini menyediakan berbagai pilihan jenis pekerjaan. Sempat beken 2 tahun lalu, Upwork banyak menuai kritikan karena customer support yang buruk padahal Upwork mengambil komisi yang cukup besar yaitu sebesar 20%.  
  4. Fivver
    Situs ini sebenarnya lebih cocok untuk para freelancer di bidang kreatif seperti desain, animasi, dan musik. Meski begitu, situs ini juga menyediakan tempat bagi para freelancer di bidang teknologi seperti web & app development sampai ke database. Aura kreatif memang sengaja diciptakan oleh situsini dengan menyebut suatu pekerjaan dengan kata ‘gig’.  
  5. Gigster
    Kelebihan Gigster yang mungkin bisa menjadi panutan bagi situs freelancing lainnya adalah milestone pekerjaan yang telah ditentukan oleh Gigster. Milestone ini sangat realistis jika dibandingkan freelancer di situs lain yang menawarkan web development dalam satu hari saja (walaupun kita tahu itu hanya memasukkan data ke dalam template saja).  
  6. Toptal
    Salah satu unique selling proposition yang ditawarkan Toptal adalah kualitas dari freelancer. Website ini mengklaim bahwa mereka menawarkan developer pilihan top 3% yang artinya jika ada 100 developer dengan rate dan keahlian yang sama maka yang ditawarkan 3 developer peringkat teratas. Sampai artikel ini terpublikasi, kami masih belum mengetahui bagaimana proses screening yang dilakukan oleh Toptal.  
  7. Stack Overflow
    Kiblat untuk copy paste kode pemrograman ini juga menyediakan fitur marketplace pekerjaan. Sebagian besar project yang ditawarkan di sini bersifat long term jadi bagi yang gemar akan stabilitas ketahanan dompet tentu situs ini dapat dijadikan pilihan.  
  8. Hired
    Sistem yang digunakan Hired ini mirip seperti Tinder. Maksudnya, klien yang akan menghubungi programmer freelance hanyalah yang berstatus ‘match’ saja di mana kecocokan antara kebutuhan klien dan skill freelancer. Walaupun terlihat praktis, baik klien maupun freelancer harus melewati proses yang cukup panjang (sekitar 90 menit termasuk tes untuk freelancer). Karena proses yang agak rumit ini, kebanyakan project yang ditawarkan bersifat jangka panjang.

***

Itu tadi 8 situs yang dapat kalian jadikan referensi untuk mendapatkan gigs/project. Serta jangan lupa bahwa kebanyakan situs di atas mengambil komisi antara 10-30% dari rate yang kita tawarkan. Jadi perlu hitung-hitung lagi tentang neraca pengeluaran dan pendapatan kita untuk kebutuhan sehari-hari. Selamat mencoba dan terus belajar!

Container VS Virtual Machine

 

Salah satu kendala yang paling awal saat dihadapi oleh tim developer pada saat melakukan pengembangan app adalah kekhawatiran jika aplikasi yang mereka kembangkan tidak berjalan secara sempurna ketika ketika dideploy. Perbedaan konfigurasi di environment milik seorang developer dengan server atau dengan developer yang lain merupakan penyebab utamanya. Hal ini juga sering dirasakan oleh sysadmin ketika mereka hendak mengupdate kernel. Ada beberapa app dalam server mereka jadi bermasalah karena belum mendukung kernel terbaru.

Sebenarnya solusi untuk permasalahan ini sudah ada sejak lama dengan hadirnya teknologi virtualisasi. Ada dua macam teknologi virtualisasi yaitu virtual machine dan container. Apa saja perbedaan dua teknologi virtualisasi ini? Mari kita kupas satu per satu dari teknologi virtualisasi tersebut.

 

Apa itu Virtual Machine

Virtual machine (VM) adalah sebuah emulasi dari sebuah sistem komputer. Secara sederhana, virtual machine membuat kita bisa membagi resource hardware dari satu hardware fisik menjadi beberapa sistem komputer.

Sebagai contoh, kita memiliki satu PC yang memiliki prosesor dengan 4 core, RAM sebesar 8 GB serta harddisk 500GB misalnya. Tanpa VM tentu kita hanya bisa menginstall 1 OS atau beberapa OS tapi tak bisa berjalan bersamaan. Dengan VM, kita bisa membagi sistem komputer menjadi dua masing-masing memiliki prosesor 2 core,  RAM 4GB, serta harddisk 250GB dan tentu saja pembagian resource hardware tidak harus sama rata. Dengan ini, maka kita dapat menginstall OS di setiap sistem komputer dan dapat menjalankannya secara bersamaan sehingga kita seolah memiliki 2 PC yang berbeda.

Teknologi ini sering digunakan untuk server dan memunculkan istilah Virtual Private Server (VPS) tapi sedikit pula digunakan oleh app developer karena project yang sedang dikerjakannya memiliki platform yang berbeda dengan platform yang dimiliki.

 

Keunggulan VM

  • Resource hardware yang eksklusif sehingga tidak terganggu jika ada apps yang lain tiba-tiba membutuhkan resource yang tinggi
  • Memiliki management tools dan security tools yang sudah matang
  • Secara umum memiliki tingkat keamanan sedikit lebih tinggi bila dibandingkan dengan container

 

 

Apa Itu Container

Berbeda dari VM, container adalah sebuah virtualisasi OS yang dapat membungkus suatu aplikasi beserta dependency dan environment-nya. Setiap container ini memiliki process yang terisolir sehingga tidak mengganggu host OS ataupun container yang lain. Prinsip container ini mirip dengan kontainer yang ada di kapal kargo di mana kapal kargo tersebut diibaratkan sebagai sistem komputer.

Jika dibandingkan dengan VM, secara pengaturan kontainer lebih mudah. Hal ini disebabkan karena konsep berbagi resource hardware dari container lebih fleksibel bila dibandingkan VM. Sebagai contoh, tadi disebutkan bahwa kita mempunyai 1 PC dengan 4 Core, RAM 8 GB, dan storage sebesar 500GB. Katakanlah kita mempunyai 2 container dengan kebutuhan RAM berbeda. Beberapa apps dalam container A membutuhkan RAM 5GB sedangkan apps dalam container B membutuhkan RAM 2GB. Dengan container, kita tak perlu menset kebutuhan hardware resource setiap container karena berada dalam satu sistem komputer. Sementara jika kita memakai VM dengan hardware resource yang sudah kita bagi sama rata seperti disebutkan di contoh sebelumnya, kita tidak mungkin memasang apps di container A di salah satu sistem komputer karena RAM maksimal yang bisa kita pakai hanyalah 4GB.

Faktor portabilitas juga menjadi kelebihan yang dimiliki oleh container. Para developer bisa membagikan container dengan format ISO image ke setiap perangkat yang dia pakai ataupun ke developer lain.

 

Platform Container

Linux Containers (LXC)

Platform ini merupakan cikal bakal lahirnya container. Linux Containers (LXC) ini adalah virtualisasi OS yang memungkinkan kita menjalankan beberapa sistem Linux di dalam satu sistem komputer secara bersamaan. Tentu saja platform ini hanya berlaku untuk Linux saja.

Docker

Pada awalnya, project pertama Docker adalah membangun single app LXC container, mengenalkan beberapa perubahan pada LXC sehingga lebih portabel dan fleksibel. Lama-kelamaan Docker berkembang hingga memiliki container runtime sendiri.

 

Keunggulan Container

  • Fleksibel dan scalable
  • Mengurangi resource yang dibutuhkan dalam IT Management
  • Waktu yang dibutuhkan untuk mengemas dan memasang app dalam container lebih cepat bila dibandingkan dengan VM

 

 

VM vs Container (Final Round)

Secara singkat, perbedaan antara VM dan Docker dapat dijabarkan dalam tabel berikut :

 

Virtual Machine

Container

Berat

Ringan

Performa terbatas pada konfigurasi VM

Performa maksimum tergantung pada hardware fisik

Virtualisasi pada level hardware

Virtualisasi pada level OS

Waktu start up dalam hitungan menit

Waktu start up dalam hitungan detik

Terisolasi penuh pada level hardware sehingga lebih aman

Terisolasi pada level proses

 

Tentu jika melihat rangkuman perbedaan antara VM dan Docker pada tabel di atas kita tahu bahwa VM dan container memiliki fungsi masing-masing. Untuk project yang bersifat monolitik di mana setiap apps yang kita kembangkan membutuhkan environment dan dependencies yang tidak terlalu berbeda maka menggunakan VM lebih bijak. Akan tetapi jika kita menggunakan arsitektur microservices dalam pengembangan software, penggunaan container lebih dianjurkan.

***

Jika Anda tertarik dalam pengembangan software dengan arsitektur microservice menggunakan Docker dan Kubernetes, Anda dapat mengikuti workshop cloud native di Inixindo Jogja.

 

Mengenal Headless CMS

 

Siapa yang tak tahu tentang CMS? Mungkin semua akan sepakat bahwa mulai dari web developer hardcore yang harus menulis kode di mana pun dan kapan pun sampai ke penulis blog romantis yang harus minum kopi di saat senja dan turun hujan saat menuangkan idenya dalam tulisan membutuhkan content management system dalam mengelola suatu website. Terima kasih kepada WordPress sebagai platform CMS open source yang mempopulerkan blogging kepada siapa saja.

CMS dan Content Management System adalah sebuah sistem yang dibuat untuk mendukung penerbitan (dalam hal ini penerbitan di web) mulai dari penulisan, editing, modifikasi, dan publikasi konten. Tujuan CMS dibuat sebenarnya adalah untuk memudahkan penulis dalam mempublikasikan artikelnya. CMS juga mendukung iklim kolaboratif sehingga satu media bisa memiliki beberapa koresponden sekaligus yang bisa mengunggah artikelnya di mana saja dan kapan saja karena umumnya CMS dibuat dengan memanfaatkan teknologi Web.

 

CMS Tradisional

Sebelum kita membahas tentang headless CMS, mari kita mengingat kembali tentang karakteristik dan metode dari CMS tradisional seperti WordPress atau Joomla. Pada CMS tradisional, seorang user (dalam hal ini kreator konten) menulis konten di dalam sebuah editor baik WYSIWYG (What You See Is What You Get) di mana tampilan yang dituliskan hampir menyerupai tampilan ketika konten terpublikasi di halaman web, walaupun ada beberapa CMS yang hanya memiliki HTML editor di mana penulis harus memiliki pengetahuan tentang kode HTML. Konten yang ditulis ini kemudian disimpan dalam database dan kemudian disajikan oleh template tampilan yang dimiliki oleh CMS tersebut menjadi sebuah halaman web. Untuk lebih jelasnya dapat dilihat dari gambar berikut.

 

Mengenal Headless CMS 2

 

Jika kita menggunakan CMS, dalam mengubah tampilan akhir web yang bisa kita lakukan hanyalah mengganti template yang sudah disediakan oleh platform CMS tersebut. Lalu bagaimana jika ingin melakukan kustomisasi pada tampilan tampilan akhir halaman web? Ada dua cara yaitu menginstall plugin web builder pada CMS kita dan yang kedua adalah membuat mengedit file template yang ada di dalam CMS. Kedua solusi ini sama-sama mendatangkan problem baru. Website builder plugin dapat membuat performa web kita menurun karena banyak sekali proses yang berjalan sebelum halaman web berhasil ditampilkan. Sedangkan, jika kita memilih untuk mengedit sendiri file template yang berada di dalam CMS dapat dibayangkan berapa banyak waktu yang harus diperlukan untuk mempelajari ribuan baris kode yang dimiliki CMS tersebut dan tentu saja kita juga harus berada dalam batasan logic dari CMS tersebut.

Kekurangan dari CMS tradisional adalah banyak front-end developer yang tidak bisa mengembangkan bakat terpendamnya karena biasanya klien sebagai user dari CMS ingin sesuatu yang mudah digunakan dan sang back-end juga agaknya keberatan jika harus membuat CMS sendiri dengan deadline yang alakadarnya.

 

Headless CMS

Berbeda dari CMS tradisional memiliki komponen yang bisa langsung menyajikan tampilan front-end ke audience, headless CMS sama sekali tidak bisa men-generate halaman web secara otomatis. Inilah mengapa model CMS ini kemudian disebut ‘headless’ atau tanpa kepala yang berarti tak memiliki wajah. Kami sempat penasaran kenapa tidak disebut faceless saja agar tidak menimbulkan aura horor dan masih belum menemukan jawabannya.

Headless CMS tidak memliki sistem front-end secara default seperti CMS tradisional sehingga CMS ini sering disebut dengan front-end agnostic. Headless CMS menyajikan konten secara mentah melalui API. Hal ini menjadikan headless CMS dapat digunakan di berbagai macam framework. Untuk perbedaan lebih jelasnya bisa dilihat di gambar berikut.

 

Mengenal Headless CMS 3

 

Banyak dari developer headless CMS ini menyebut produknya sebagai CaaS (Content as a Service) hasil dari modifikasi SaaS (Software as a Service). Jika sebelumnya developer CMS versi komersial tradisional menjual secara bundling (domain, platform CMS, dan hosting). Untuk developer headless CMS komersial biasanya menerapkan tarif sesuai dengan besarnya konten. Tapi jangan khawatir dulu, banyak juga headless CMS open source gratis yang bisa kita deploy sendiri di cloud VPS milik kita.

Hadirnya headless CMS ini tidak langsung serta-merta menyelesaikan masalah yang dibahas dalam CMS tradisional sebelumnya. Sama seperti sistem-sistem yang lain, headless CMS ini memiliki pro dan kontra.

Pro

Inilah beberapa kelebihan headless CMS bila dibandingkan dengan CMS tradisional:

  • Front-end agnostic
    Ini merupakan alasan kenapa headless CMS diciptakan. Konten yang berada dalam headless CMS dapat disesuaikan dengan platform framework front-end seperti React, Vue, atau Angular.
  • API
    Headless CMS menggunakan API sebagai penghubung antara back-end dan front-end yang pada dasarnya merupakan dua sistem yang terpisah dan juga memungkinkan berada dalam 2 server yang berbeda. Hal ini berarti menurunkan resiko kehilangan seluruh konten jika ada yang berhasil menembus keamanan web server kita.
  • Future proof
    Karena headless CMS pada dasarnya hanya menyajikan data mentah, jika ada inovasi teknologi baru maka konten-konten yang ada di dalam CMS ini dapat dengan cepat disesuaikan. Sebagai contoh, jika ada platform voice assistant baru di device tanpa layar seperti smartwatch atau smart speaker maka kita akan dengan mudah memasukkan konten kita di platform tersebut.

Kontra

Selain kelebihan-kelebihan di atas, headless CMS juga memiliki beberapa kekurangan sebagai berikut :

  • Tidak Untuk Semua Orang
    Sebagian besar orang yang menggunakan CMS tradisional seperti WordPress tidak memiliki pengetahuan tentang pemrograman. Sementara headless CMS ini menuntut seseorang untuk memiliki pengetahuan tentang pemrograman web. Hal ini membuat para blogger dan pemasar digital enggan menggunakan headless CMS.
  • Memiliki 2 Stack Yang Terpisah
    Selain jadi kelebihan yang sudah terlebih dahulu dibahas, memiliki 2 stack terpisah antara front-end dan back-end juga bisa menjadi kekurangan bagi headless CMS. Bayangkan berapa besar effort maupun waktu yang kita butuhkan untuk membuat dua stack yang terpisah demi membuat blog pribadi.
  • Tidak Ada Preview
    Para kreator konten selaku pengguna sebuah CMS sering mem-preview konten yang mereka buat agar sesuai dengan yang mereka inginkan. Masalahnya, di dalam headless CMS tidak ada preview terlebih dahulu kecuali kita memisahkan antara fase staging dan production yang mana akan lebih menghabiskan waktu dan effort.

 

***

 

Bagaimana? Sudah mempertimbangkan apakah headless CMS merupakan solusi yang tepat untuk kalian? Jika kalian adalah seorang yang sudah terbiasa membuat website dan sudah cinta mati dengan yang namanya headless CMS, kalian bisa tunggu artikel kami selanjutnya yang akan membandingkan satu per satu platform headless CMS seperti Directus, Strapi, ataupun Butter.

Teknologi Web Yang Akan Menjadi Tren di Tahun 2019

 

Beberapa waktu yang lalu, kami sempat mempos di media sosial tentang tingkat popularitas bahasa pemrograman di tahun 2018 lalu. Dalam pos tersebut, kita dapat melihat bahwa Javascript (yang seharusnya secara resmi disebut ECMAScript) sebagai bahasa pemrograman web mengalami peningkatan, sementara bahasa pemrograman Java yang digunakan dalam pengembangan aplikasi Android justru menurun. Padahal, saat ini hampir semua orang memiliki smartphone di mana Android menguasai sistem operasi perangkat mobile jika dilihat jumlah penggunanya.

Jika kita menilik kembali 5 tahun belakangan ini, perkembangan teknologi web semakin cepat bila dibandingkan dengan tahun-tahun sebelumnya. Framework-framewok pengembangan aplikasi web pun tumbuh cepat apalagi sejak hadirnya node.js di mana Javascript dapat digunakan sebagai bahasa pemrograman back-end. Belum lagi Google perusahaan teknologi yang memang dulunya lahir sebagai aplikasi web menambahkan banyak fitur dalam Chrome agar para pengembang web dapat mendobrak batasan-batasan dalam aplikasi web.

Beberapa tahun yang lalu kita juga mengenal istilah responsive design yang sering dibawa-bawa oleh pengembang web dalam menawarkan jasanya. Responsive design waktu itu memang suatu yang sebaiknya dimiliki oleh website. Sekarang? Website bisa dikatakan ketinggalan jaman, jadul, atau bahkan bisa disangka artefak jika desainnya tidak responsif. Di tahun 2019 tren teknologi web sudah beralih ke teknologi yang lebih canggih dari sekedar desain yang responsif. Berikut ini adalah tren teknologi web yang bisa Anda bangga-banggakan dalam portfolio Anda sebagai pengembang web.

 

Progressive Web App

Progressive Web App mungkin adalah teknologi yang paling berpengaruh dalam pengembangan aplikasi web. Secara singkat, Progressive Web App (PWA) adalah aplikasi web yang memiliki experience layaknya aplikasi native baik mobile atau desktop. Experience ini dapat berupa push notification, dapat dibuka secara offline, serta akses terhadap hardware yang ada di device seperti GPS, kamera, dan sensor-sensor yang lain.

Teknologi ini diinisiasi oleh Google. Seperti yang kita ketahui bahwa selain Android, Google juga memiliki operating system yang dipakai di laptop dengan harga terjangkau yaitu Chrome OS. Pada dasarnya Chrome OS ini adalah sebuah browser yang dijadikan operating system dengan kernel Linux di dalamnya. Jadi agar environment Chrome OS ini tidak miskin aplikasi Google berusaha mendorong para web developer untuk menjadikan PWA sebagai standar aplikasi web. Selain itu, kabarnya Google juga sedang mengembangkan Fuchsia OS (sebuah operating system mirip Chrome OS tapi untuk perangkat mobile) yang disiapkan untuk menggantikan Android.

 

Teknologi Web Yang Akan Menjadi Tren di Tahun 2019 4

 

Contoh beberapa aplikasi terkenal yang sudah menggunakan teknologi PWA antara lain:

  • Alibaba
  • Twitter
  • The Washington Post

Anda bisa mengikuti Pelatihan Progressive Web App (PWA) dari Inixindo Jogja jika Anda ingin bisa mengembangkan web dengan teknologi ini.

Accelerated Mobile Pages

Siapa yang tak kenal Google News? Aplikasi milik Google yang tersedia di Android dan iOS ini memiliki fungsi membagikan berita ke pengguna sesuai dengan minat dari penggunanya. Konten yang dibagikan oleh Google News tersebut merupakan konten yang telah mendukung format Accelerated Mobile Pages (AMP). Accelerated Mobile Pages (AMP) adalah sebuah framework pengembangan web minimalis. Hanya HTML dan CSS saja dalam halaman web AMP tidak ada Javascript.

Misi dari AMP ini adalah me-load halaman web dalam waktu kurang dari dua detik. Oleh karena itu, penggunaan AMP cocok untuk halaman berita dan blog di mana konten artikel atau foto menjadi elemen utama. Selain itu, keuntungan sebuah halaman web yang mendukung format AMP adalah SERP. Ya! AMP ini sangat berpengaruh terhadap ranking halaman web di Google Search. Bukan rahasia lagi jika algoritma web crawler yang dimiliki Google sekarang lebih mengutamakan performa web sebuah eksternal link.

Anda bisa melihat dokumentasi dari AMP Project di sini.

 

Voice Search Optimization

Voice search memang fitur yang masih jarang dimanfaatkan oleh orang Indonesia. Home speaker pintar dari Amazon, Apple, atau Google bukan barang yang dicari. Memang fitur Google Assistant atau SIRI terpasang secara default di perangkat Android atau iPhone tapi karena terkendala oleh masalah bahasa masih jarang juga orang Indonesia yang memakai fitur ini. Walaupun begitu, seiring dengan berjalannya waktu, AI dari masing-masing voice assistant tentunya akan semakin pintar karena terus akan mempelajari bahasa selain Bahasa Inggris.

Voice search optimization merupakan metode optimasi halaman web agar pengguna dapat melakukan interaksi dengan halaman web tersebut melalui suara. Sebenarnya Voice Search Optimization memiliki tujuan yang mulia yaitu agar sebuah web dapat menjangkau siapa saja termasuk tuna netra. Dalam voice search API terdapat dua komponen yaitu speech recognition dan speech synthesis. Untuk melihat dokumentasinya Anda bisa klik di sini.

 

API First Development

Konektivitas antar aplikasi tentunya sudah menjadi suatu hal yang semestinya di jaman di mana hampir semua orang menggunakan aplikasi dalam aktivitas sehari-hari. Integrasi antar dua aplikasi atau lebih ini biasanya sering dimanfaatkan oleh website e-commerce dengan melakukan integrasi pembayaran, pengiriman, lokasi, ataupun kurs mata uang. Semuanya memanfaatkan teknologi yang disebut application programming interfaces (API).

API memang bukan teknologi baru yang baru di sini adalah development yang berbasis API. Apa bedanya? Biasanya pengembangan aplikasi atau web tidak terfokus pada API. Pengembangan API sering kali dianggap sebagai proyek sampingan yang tidak memiliki proses desain, pengembangan, dan testing yang baik.

Pada development tradisional proses yang biasanya terjadi adalah sebagai berikut:

  1. Tim R&D menciptakan desain aplikasi
  2. Tim back-end developers mengerjakan prototype sementara tim yang lain seperti QA dan front end menunggu.
  3. Setelah prototype jadi tim QA dan front-end mendapatkan akses dan langsung bekerja
  4. Jika terdapat bugs, penambahan fitur, atau pun improvement, siklus di atas akan berulang.

Teknologi Web Yang Akan Menjadi Tren di Tahun 2019 5

Sedangkan pada API first development, suatu tim tidak harus menunggu tim yang lain menyelesaikan sebuah pekerjaannya. API first development menggunakan API mocking (baca di sini untuk mengetahui apa itu API mocking) sehingga QA, back-end, dan front-end bisa bekerja secara simultan.

Teknologi Web Yang Akan Menjadi Tren di Tahun 2019 6

***

Itulah tadi teknologi web yang akan menjadi tren di 2019. Bagi kalian yang ingin membuat project web app tidak ada salahnya untuk belajar lebih dalam mengenai teknologi yang sudah disebutkan tadi.

Daftar Istilah A-Z Yang Sering Dipakai Dalam Machine Learning

Daftar Istilah A-Z Yang Sering Dipakai Dalam Machine Learning

Beberapa waktu yang lalu kami telah banyak menulis artikel tentang machine learning (konsep dasar, tutorial, sampai hubungan antara teori chaos dan machine learning). Karena banyak dari pembaca yang protes karena artikel tersebut penuh dengan istilah teknis dan agar para pembaca tidak perlu membuat machine learning yang dapat mengartikan istilah asing dalam artikel dan tutorial machine learning, maka kami akan membuatkan semacam glosarium untuk istilah-istilah yang sering dipakai dalam machine learning.

Kami akan memakai istilah asli yang ditulis dalam Bahasa Inggris untuk menghindari kesalahan pemilihan kata terjemahan. Istilah-istilah tersebut akan diurutkan secara alfabetik sehingga mempermudah Anda untuk melakukan pencarian.

*****

A/B Testing

Metode statistik dasar yang digunakan untuk membandingkan 2 cara atau lebih. A/B testing digunakan untuk mengukur cara/teknik mana yang memiliki performa lebih tinggi. Selain itu A/B testing juga digunakan untuk mengetahui seberapa signifikan perbedaan antar teknik/cara tersebut.

Artificial Intelligence

Sebenarnya istilah ini sudah dibahas pada artikel sebelumnya tapi demi kepentingan kelengkapan glosarium, kami tetap akan membahasnya.  Artificial intelligence jika diterjemahkan secara harfiah adalah kecerdasan buatan. Istilah ini sebenarnya sudah lama dipakai bahkan awal perkembangan teknologi komputer. Konsep artificial Intelligence yang sering disingkat sebagai AI ini adalah bagaimana membuat mesin dalam hal ini komputer dapat berpikir layaknya manusia mulai dari analisis sampai pengambilan keputusan. Nah, machine learning termasuk salah satu metode dalam artificial intelligence di mana komputer dapat belajar dengan sendirinya untuk menjadi ‘cerdas’.

Classification Model

Salah satu tipe machine learning yang dapat membedakan dua data atau lebih menurut kelas. Contohnya dalam model natural pengklasifikasian bahasa yang dapat membedakan apakah suatu kalimat ditulis dalam Bahasa Inggris, Perancis atau Bahasa Indonesia. Contoh lain untuk model machine learning adalah regression model.

Clustering

Metode dalam mengidentifikasi data dengan cara membuat grup data secara vektoral berdasarkan kemiripan data. Metode ini digunakan dalam unsupervised learning. Ada beberapa metode clustering seperti K-mean dan K-median.

Data Augmentation

Data augmentation merupakan metode untuk meningkatkan jumlah examples dengan cara mentransformasi example yang sudah ada. Sebagai contoh, jika Anda ingin membuat machine learning yang bisa mengidentifikasi bunga akan tetapi Anda hanya punya satu gambar bunga sebagai example. Karena machine learning merasa butuh lebih dari satu example, maka dia menciptakan gambar baru dengan cara memutar, men-distort, ataupun membalik gambar tadi sehingga tercipta beberapa example baru.

Data Set

Kumpulan dari beberapa example.

Deep Model

Deep model ini biasa disebut dengan istilah deep learning. Deep model menggunakan metode berlapis (neural networks) yang disebut layer di mana setiap lapisan layer terdiri dari neuron. Di tengah lapisan itu terdapat lapisan yang disebut dengan hidden layers. Model ini terinspirasi dari bagaimana cara otak manusia bekerja.

Example

Satu barisan dalam satu data set yang memiliki feature dan label.

Feature

Sebuah input variabel dalam membuat prediksi.

Hierarchical Cluster

Metode clustering yang dilakukan dengan membuat cabang-cabang bertingkat. Metode ini terinspirasi dari bagaimana manusia mengidentifikasi jenis hewan atau tanaman melalui spesies, jenis, ordo, dsb.

K-Means

Sebuah metode clustering yang paling populer dalam unsupervised learning. K-means membuat cluster berdasarkan jarak antara titik tengah yang disebut centroids dengan example.

K-Median

K-Median hampir mirip dengan metode K-Means. Bedanya adalah formula dalam menentukan cluster.

Label

Label merupakan hasil dari pengelompokan example melalui clustering. Sebagai contoh, machine learning yang berfungsi menyaring email spam, melabeli setiap example dengan ‘spam’ atau ‘not spam’.

Model

Model sebenarnya merupakan sebuah fungsi yang berfungsi mengatur bagaimana machine learning mengambil input dan mengeluarkan output yang berupa prediksi.

Neural Network

Neural network merupakan kumpulan layer yang setiap layer-nya terdiri dari sebuah neuron. Neuron berfungsi layaknya transistor dalam komponen elektronik. Bedanya, jika transistor memiliki 3 kaki, neuron memiliki jumlah kaki yang tergantung dari posisi layer dan jumlah neuron di dalam layer.

Regression

Regression (mengacu pada regression model) adalah sebuah model menghasilkan nilai output berupa bilangan pecahan (floating point). Berbeda dengan classification model yang memiliki bilangan bulat pada outputnya.

Supervised Learning

Merupakan model pembelajaran pada machine learning di mana kita menentukan label pada beberapa example dengan harapan machine learning dapat menentukan label terhadap input baru yang masuk.

Unsupervised Learning

Kebalikan dari supervised learning, dalam model pembelajaran unsupervised learning ini kita tidak menentukan label dalam dataset. Metode ini menggunakan clustering di mana machine learning melakukan pengelompokan sendiri di dalam data set.

<div id="glossary" style="position: fixed; padding: 20px 10px 20px 10px; background:#eeeeee;"><!-- [et_pb_line_break_holder] --><a href="#ab-testing">A</a><!-- [et_pb_line_break_holder] --><a href="#classific-model">C</a><!-- [et_pb_line_break_holder] --><a href="#data-aug">D</a><!-- [et_pb_line_break_holder] --><a href="#examp">E</a><!-- [et_pb_line_break_holder] --><a href="#feat">F</a><!-- [et_pb_line_break_holder] --><a href="#hierarchi">H</a><!-- [et_pb_line_break_holder] --><a href="#k-means">K</a><!-- [et_pb_line_break_holder] --><a href="#labell">L</a><!-- [et_pb_line_break_holder] --><a href="#Modell">M</a><!-- [et_pb_line_break_holder] --><a href="#Neural">N</a><!-- [et_pb_line_break_holder] --><a href="#Regression">R</a><!-- [et_pb_line_break_holder] --><a href="#supervise">S</a><!-- [et_pb_line_break_holder] --><a href="#unsupervise">U</a><!-- [et_pb_line_break_holder] --></div>

***

Jika Anda tertarik untuk bisa membuat machine learning yang dapat membantu perusahaan/organisasi Anda dalam mengambil keputusan, Anda bisa mengikuti Kelas Pelatihan Machine Learning dari Inixindo Jogja. Klik di sini untuk info lebih lanjut dan permintaan penawaran.