Apa itu ITIL dan Apa Manfaatnya?

Saat ini teknologi informasi sudah masuk ke semua lini kehidupan manusia, termasuk di Perusahaan, Organisasi, maupun sektor pelayanan publik. Pemanfaatan teknologi ini mengharuskan organisasi untuk melakukan pengelolaan dengan baik karena jika tidak efektif maka efeknya bagi organisasi akan menjadi tidak optimal. Maka dari itu dibutuhkan pengelolaan yang berdasarkan best practice dan membutuhkan panduan-panduan. Salah satu kerangka dan rangkaian konsep yang bisa dipakai untuk pengelolaan layanan adalah Information Technology Infrastructure Library atau sering disebut dengan ITIL.

Apa itu Information Technology Infrastructure Library (ITIL) ?

Teknologi Informasi Infrastructure Library (ITIL) adalah satu set konsep dan teknik untuk mengelola teknologi informasi (TI) infrastruktur, pengembangan, dan operasi. ITIL ® adalah pendekatan paling baik untuk layanan manajemen TI di dunia. ITIL menawarkan pendekatan berdasarkan best practice, yang diambil dari sektor publik dan swasta internasional. 

Siapa saja yang menggunakan ITIL ?

ITIL telah digunakan dan diadopsi oleh banyak organisasi di dunia baik dari pemerintahan, swasta dan pendidikan. berikut beberapa contoh organisasi yang telah mengadopsi ITIL:

  • Microsfoft
  • IBM
  • Hewlett-Packard
  • Honda
  • Wal-Mart
  • Visa
  • DIsney
  • US Navy
  • US Army
  • Toyota
  • Shell Oil
  • Boeing
  • Australia Post
  • British Airways
  • British Telecom
  • Ohio State University
  • Oregon State University
  • University of Wisconsin
  • Yale University
  • PT Telekomunikasi Selular (Telkomsel)

dan masih banyak lagi organisasi yang mengadopsi ITIL sebagai kerangka kerja IT Service Management mereka. Pada Telkomsel sendiri adopsi ITIL terlihat berdampak baik pada kinerja perusahaan terbukti pada setiap tahun Telkomsel adalah penyumbang terbesar dari profit Telkom selama satu dekade terakhir.

Apa itu Manfaat ITIL ?

Dengan menggunakan dasar pendekatan sistematis ITIL untuk manajemen layanan TI, ITIL menawarkan peningkatan pada sebuah perusahaan diantaranya:

  • Peningkatan Return on Investment pada TI.
  • Peningkatan Kapabilitas dan produktivitas.
  • Peningkatan Kepuasan Pelanggan/Pengguna.
  • Peningkatan Hasil Pemanfaatan aset.
  • Peningkatan hubungan dan interaksi antara penyedia layanan TI dengan pengguna/pelanggan.
  • Menjaga organisasi untuk mengimbangi perubahan terkini yang mendorong organisasi untuk terus berkembang.
  • Integrasi Layanan TI

Peningkatan ini telah dibuktikan oleh banyak organisasi di dunia yang mengadopsi ITIL sebagai kerangka kerja layanan TI mereka.

Mengenal Deep Learning Untuk Yang Tak Mau Pusing

 

Bahasan machine learning di era revolusi industri 4.0 sudah bagaikan gosip selebritis yang tak ada habisnya. Belum sempat kita mendapat info si seleb A pacaran dengan seleb B, tahu-tahu kita baca berita di timeline jejaring sosial seleb A sudah menikah dengan seleb C. Belum sempat kita paham sepenuhnya tentang machine learning, tahu-tahu kita melihat istilah deep learning.

Well, karena Anda mengklik judul yang ada kata-kata ‘untuk yang tak mau pusing’, penulis akan berusaha untuk sebisa mungkin menjelaskan deep learning dengan bahasa yang gampang dengan metafora menggunakan kasus-kasus di sekitar kita. Jika Anda belum tahu tentang apa itu machine learning, Anda dapat membaca artikel mengenal machine learning yang kami tulis sebelumnya. Jika Anda pusing secara harfiah dan datang ke sini berharap deep learning dapat membuat pusing Anda hilang, segera cari tanda silang (x) di bagian atas dan tutup halaman ini segera.

 

Apa itu deep learning?

Sebelum kami menjelaskan deep learning dengan bahasa yang gampang, pertama-tama kami akan menjelaskan deep learning dengan bahasa resmi wikipedia supaya dianggap artikel yang berbobot.

Deep learning merupakan salah satu bagian dari berbagai macam metode machine learning yang menggunakan artificial neural networks (ANN). Jenis pembelajaran dalam deep learning dapat berupa supervised, semi-supervised, dan unsupervised. Dalam artikel ini yang akan kita bahas adalah metode supervised.

Sudah bingung? Jangan khawatir, setelah ini kami akan jelaskan dengan bahasa yang lebih manusiawi. Kami asumsikan, Anda telah membaca tentang machine learning di atas. Deep learning adalah metode pembelajaran yang dilakukan oleh mesin dengan cara meniru bagaimana sistem dasar otak manusia bekerja. Sistem dasar otak manusia bekerja ini disebut neural networks. Itulah kenapa deep learning disebut menggunakan artificial neural networks yang dengan kata lain menggunakan ‘neural networks buatan’. 

Lalu bagaimana ANN bekerja? Tenang, hal tersebut akan kami jelaskan nanti karena sesuai dengan janji manis kami, kami akan menggunakan metafora sehari-hari dalam memberikan gambaran tentang deep learning. Deep learning merupakan teknologi yang dipakai pada image recognition dan computer vision. Oleh karena itu, kami akan memberikan contoh seputar pengenalan objek pada gambar.

Pada machine learning tradisional jika kita menyodorkan gambar seekor kucing lalu kita bertanya pada mesin tersebut apakah ini kucing atau bukan, proses ‘berpikir’ mesin tersebut didasari oleh algoritma yang kita buat. Contohnya, apakah objek memiliki dua mata? Apakah objek memiliki empat kaki? Apakah objek memiliki kumis panjang? Apakah objek memiliki bulu tebal? Jika sebagian besar atau semua jawabannya adalah ‘iya’ maka si mesin akan memutuskan bahwa itu adalah gambar kucing. Lalu bagaimana jika mesin tersebut disodori gambar seperti di bawah ini?

Jika kita menentukan algoritma pembelajaran seperti di atas pasti jawaban dari si mesin adalah ‘bukan’. Padahal kita sebagai manusia tahu kalau gambar tersebut merupakan gambar kucing. Misal kita disuruh mendeskripsikan bagaimana kita tahu kalau itu kucing dari ciri-ciri spesifik objek tersebut untuk kemudian dibuat algoritmanya tentu saja belum tentu berhasil. Tidak semua hewan berbulu, memiliki ekor, dan telinga menjuntai ke atas itu kucing. Lalu bagaimana kita mengenali itu kucing? Itulah di mana neural networks mengambil peran.

 

Artificial Neural Networks (ANN)

Artificial Neural Networks yang biasa disingkat dengan ANN adalah bagian yang paling ajaib ajaib dari deep learning. ANN ini mensimulasikan kerja otak kita yang tersusun jaringan saraf yang disebut neuron. Sama seperti sistem otak manusia, dalam jaringan artificial neural network ini si mesin menerima informasi pada titik-titik yang disebut nodes yang terkumpul pada satu layer untuk kemudian diteruskan dan diproses ke layer selanjutnya yang disebut hidden layers.

Contoh: kita mempunyai gambar berupa tulisan tangan angka 9 berukuran 28×28 pixel. Setiap piksel dari gambar ini kemudian dipecah menjadi nodes dalam layer input. Sehingga kita memiliki 784 nodes. Lalu untuk mengetahui angka apa itu, kita harus menset nodes output sebanyak 10 (0-9). Dalam hidden layers informasi tersebut difilter hingga akhirnya diteruskan dan informasi masuk di nodes output 9. Dalam kasus supervised learning, kita tak perlu mengatur algoritma yang ada di hidden layers. Yang perlu kita lakukan memasukkan angka yang ditulis tangan sebanyak mungkin dan menentukan outputnya sehingga terbentuk suatu pola dalam hidden layers. Jika pola dalam hidden layers sudah terbentuk, kita tinggal mengetes sejauh mana si mesin dapat mengenali gambar.

 

Convolutional Neural Networks (CNN)

Dalam kasus image recognition untuk gambar objek kucing di atas, metode yang digunakan sudah lebih canggih lagi dari ANN yang disebut Convolutional Neural Networks (CNN). Secara komputasi, metode CNN ini lebih irit daya, bayangkan jika gambar kucing tersebut berukuran 1920×1080 pixel. Ini berarti ada 2.073.600‬ nodes yang harus dibuat pada layer input. Belum lagi jika gambar tersebut berwarna di mana setiap pixel terdiri dari 3 warna RGB. Berarti jumlah nodes yang sudah banyak tadi harus dikalikan 3. Bisa dibayangkan berapa jumlah nodes pada layer pertama. Kami sendiri pun malas menghitungnya.

Berbeda dari ANN tradisional yang setiap node-nya terpisah, node dari convolutional neural networks sendiri terhubung satu sama lain. Lihat animasi di bawah agar terhindar dari kebingungan akut!

Mengenal Deep Learning Untuk Yang Tak Mau Pusing 4Mengenal Deep Learning Untuk Yang Tak Mau Pusing 5

CNN memindai bagian per bagian area kecil di dalam gambar tersebut untuk dijadikan node. Setiap angka dalam nodes merupakan hasil penghitungan matriks dari filter/kernel. Dalam CNN, terdapat bagian yang sama antara node satu dengan node yang ada di sebelahnya. Itulah mengapa tadi dikatakan bahwa node dalam CNN selalu terhubung. Hal ini tentu saja dilakukan untuk menghemat daya komputasi terutama deteksi objek secara live.

 

Penerapan Teknologi Deep Learning

Di tahun 2019 ini, penerapan teknologi deep learning sendiri sudah cukup banyak kita jumpai seperti Google Photos, face unlock di smartphone, sistem tilang otomatis, dan sebagainya. Deep learning sendiri juga merupakan komponen utama yang menjadikan artificial intelligence menjadi semakin mirip dengan manusia. Bisa saja adegan-adegan di film fiksi ilmiah mungkin saja akan segera menjadi kenyataan. Atau jangan-jangan cerita dalam film tersebut memang sudah dibuat oleh AI sehingga lebih cocok untuk disebut sebagai prediksi daripada khayalan? Hmmm…

***

Jika Anda masih penasaran dengan teknologi machine learning Anda dapat mengikuti pelatihan machine learning selama 5 hari di Inixindo Jogja.

Bagaimana Mobil Self-Driving Bekerja?

Tentu kita mengenal istilah autopilot sebagai teknologi aviasi yang ada pada pesawat-pesawat komersial. Konsep autopilot ini membuat sistem komputer mengambil alih kemudi pesawat dan memungkinkan pesawat untuk terbang secara otomatis. Bahkan saat ini teknologi autopilot sudah mampu untuk melakukan take-off dan landing secara otomatis. Pertanyaan yang kemudian muncul adalah apakah teknologi ini aman? Terlepas dari kesalahan yang terjadi pada Boeing 737 Max, secara statistik autopilot lebih aman karena sebagian besar kecelakaan terjadi karena faktor human error.

Karena alasan inilah banyak perusahaan otomotif dan bahkan perusahaan teknologi raksasa seperti Google mencoba menerapkan autopilot pada transportasi darat dalam kasus ini mobil. Cukup masuk akal memang, mengingat traffic di jalan jauh lebih padat daripada di udara dan tingkat kepatuhan pengemudi di jalan raya yang sangat parah bila dibandingkan dengan pilot yang harus menempuh pelatihan dan uji sertifikasi bertahun-tahun. Self-driving cars, begitulah istilah yang sering muncul pada headline berita-berita teknologi di tahun 2018-2019 ini. Self-driving car adalah konsep transportasi di mana mobil sepenuhnya dikendalikan oleh komputer.

Impian autopilot untuk mobil ini merupakan tantangan yang besar. Situasi dan kondisi jalan yang rumit dengan berbagai jenis kendaraan bahkan pejalan kaki. Selain itu, rambu-rambu lalu-lintas juga turut memperbesar tantangan yang harus dihadapi oleh self-driving car di mana mobil ini akan bergantung sepenuhnya kepada komputer dalam mengontrol kemudi mobil. Tapi dengan adanya teknologi machine learning dan artificial intelligence yang semakin maju, impian perusahaan teknologi tersebut akan semakin nyata. 

 

Teknologi di Balik Self-Driving Car

Seperti yang kita tahu beberapa tahun yang lalu Google sempat mengembangkan Google Car yang sekarang menjadi Waymo, startup armada taksi tanpa pengemudi di California. Selain Google, Tesla produsen mobil milik Elon Musk juga memasukkan fitur autopilot pada produk mobilnya yang membuat pengemudi bisa rileks sejenak. Terlepas dari perbedaan filosofi teknologi yang mendasari keduanya, secara umum self-driving menggunakan proses yang hampir sama seperti:

  1. Computer Vision
  2. Sensor Fusion
  3. Localization
  4. Path Planning
  5. Control

Agar bisa memahami bagaimana mobil self-driving atau yang juga biasa disebut autonomous vehicle bekerja, mari kita bahas proses di atas satu per satu.

 

Computer Vision/LIDAR

Computer vision merupakan adalah proses di mana serangkaian kamera saling terkoneksi untuk memberikan gambaran terhadap keadaan sekitar dari subject yang dalam hal ini adalah mobil. Gambar atau video yang dikirimkan dari kamera ini diproses oleh komputer dengan kemampuan machine learning. Tugas dari komputer machine learning ini adalah melabeli setiap objek yang tampak dalam gambar atau video tersebut seperti mobil, pejalan kaki, rambu-rambu lalu lintas, dan sebagainya.

 

 

Proses computer vision ini dilakukan secara real time yang tentunya membutuhkan kemampuan komputasi yang tinggi. Walaupun begitu, dengan kemajuan teknologi sekarang ini, image recognition bukanlah hal yang sulit lagi, bahkan bisa dilakukan oleh smartphone kita. Kekurangan dari computer vision ini adalah walaupun kamera bisa memberikan rich data seperti pergerakan dan warna, kamera tidak dapat memberikan data secara akurat seberapa jauh objek dari lensa.

Tesla merupakan salah satu perusahaan teknologi yang ‘percaya’ pada teknologi ini. Seperti machine learning pada umumnya, computer vision yang dimiliki oleh Tesla membutuhkan banyak data untuk proses belajarnya. Data ini diambil dari kamera yang merekam perjalanan semua mobil Tesla dan tentunya data ini bersifat anonimus. Tesla cukup pede dalam menggunakan computer vision sebagai teknologi utama yang dipakai fitur autopilot-nya walaupun ditunjang dengan sensor jarak yang terpasang di body mobil.

 

 

Berbeda dengan pendekatan yang dilakukan oleh Tesla yang memakai kamera, Google sendiri lebih memilih teknologi yang disebut LIDAR (Light Detection and Ranging) sebagai alat untuk memberikan data visual. LIDAR dapat memberikan data yang jauh lebih akurat bila dibandingkan kamera. LIDAR juga dapat berfungsi dengan baik tanpa bantuan cahaya sekalipun karena menggunakan sensor infra merah. Akan tetapi, LIDAR tidak dapat membedakan rambu-rambu maupun warna lampu-lintas. Bagi orang-orang yang mengutamakan penampilan, alat LIDAR yang terpasang di atas mobil juga secara estetis dirasa kurang menarik.

 

Sensor Fusion

Seperti yang dibahas pada bagian computer vision, kamera yang terpasang tidak dapat memberikan data akurat mengenai jarak objek yang ada di depannya. Setiap mobil autonomous pasti dilengkapi sensor lain. Dalam proses ini data yang berasal dari kamera atau pun LIDAR digabung dengan data dari sensor yang lain. Sensor parkir misalnya, sensor ini memberikan penginderaan jarak dekat yang lebih akurat hingga hitungan sentimeter.

Proses penggabungan antar sensor ini bisa dibilang ‘hasil akhir’ untuk dijadikan referensi keadaan sekitar oleh komputer di mobil self-driving. Sensor fusion juga dapat berfungsi sebagai backup plan jika terjadi kerusakan atau kegagalan sistem pada kamera atau LIDAR.

 

Localization

Setelah tahu kondisi sekitar, saatnya mobil autonomous untuk mengetahui di mana dia berada, apakah dia ada di jalan atau di halaman parkir. Tahu di mana kita berada akan berpengaruh pada kecepatan dan gaya mengemudi. Hal ini tentunya mudah bagi manusia untuk menyesuaikan gaya mengemudinya. Contohnya, jika kita berada di lahan parkir, kita akan mengemudi perlahan-lahan walaupun kondisi di lahan parkir tersebut sedang sepi dan jarang ditemui mobil lain yang terparkir. Otak kita mengantisipasi jika ada orang membawa troli tiba-tiba melintas.

Proses localization juga berguna dalam path planning guna menentukan di bagian mana kita berjalan. GPS biasa mungkin hanya dapat memberikan informasi di jalan mana kita berada bukan di lajur kanan atau kiri. Oleh karena itu proses localization membutuhkan sistem navigasi yang lebih baik yang biasa disebut HD GPS.

 

Path Planning

Proses selanjutnya yang dilakukan oleh mobil self-driving adalah merencanakan jalur mana  yang akan dipilih agar sampai tujuan. Selain jarak tentunya ada faktor lain yang menjadi pertimbangan komputer. Salah satunya adalah waktu tempuh. Tidak setiap jalur yang memiliki jarak tempuh terdekat selalu memiliki waktu tempuh yang tercepat. Hal ini dipengaruhi oleh traffic lalu-lintas, kondisi jalan, serta force majeure.

Path planning terlihat seperti hal yang tak mungkin dilakukan 1 dekade yang lalu karena tidak mungkin dilakukan tanpa adanya data stream tentang kondisi lalu lintas. Akan tetapi dengan adanya Google Maps, path planning bahkan bisa kita lakukan sendiri melalui smartphone. Bedanya, path planning yang dilakukan mobil self-driving ini lebih mendetail karena harus mempertimbangkan data dari proses-proses sebelumnya.

 

Control

Proses paling akhir adalah ‘control’. Proses ini dilakukan oleh alat yang sering disebut ECU. Teknologi ECU (Electronic Control Unit) memang bukan teknologi yang benar-benar baru. Memang di mobil konvensional ECU berfungsi untuk penghematan bahan bakar, keamanan, serta kenyamanan berkendara. Di mobil self-driving ‘kekuasaan’ dari ECU lebih besar lagi. ECU dapat mengontrol kemudi hingga putaran penuh, mengerem, dan bahkan menginjak pedal gas.

***

 

Masa Depan Mobil Self-Driving

Proses-proses yang dilakukan di dalam self driving ini sangat bergantung pada teknologi machine learning dan artificial intelligence. Walaupun jalan yang ditempuh dalam pengembangan mobil self-driving ini masih panjang (pun intended) dan masih perlu banyak perbaikan di sana-sini, mobil self-driving atau autonomous vehicle ini sebenarnya merupakan sebuah solusi yang cukup logis untuk mengatasi masalah pengemudi ugal-ugalan. Selain itu bukan tidak mungkin di masa depan dengan semakin terbatasnya lahan parkir, tidak lagi ada kepemilikan mobil. Mobil akan menjadi sebuah layanan dengan metode berlangganan.

 

****

 

Jika Anda tertarik mempelajari teknologi machine learning yang melatarbelakangi mobil self-driving ini, Anda dapat mengikuti pelatihan machine learning di Inixindo Jogja.

Pengembangan UI/UX: Merancang Nyawa Sebuah Aplikasi

 

Beberapa hari yang lalu startup unicorn (atau decacorn) di bidang jasa angkut penumpang atau penumpang mengganti logonya setelah sekian lama berada di jajaran puncak tangga daftar aplikasi yang ada di Google Play di Indonesia. Netizen Indonesia yang ramah dan murah komentar tak mau ketinggalan obrolan seputar perubahan ini. Tak hanya perubahan logo yang menjadi bahasan netizen karena memang bukan hanya logonya saja yang berubah tapi user interface-nya juga berubah. Mulai dari icon-icon yang terdapat pada aplikasi hingga font.

Kenapa perubahan user interface ini ramai dibicarakan? Well, sebelum kita membahas mengapa user interface itu penting, yuk kita dalami dulu apa itu user interface, apa itu user experience (UX) dan mengapa penyebutan dua hal tersebut UI/UX sering dijadikan satu bagaikan komponen yang tak terpisahkan?

 

Apa itu UX?

UX adalah singkatan dari user experience. Hampir sama dengan arti literalnya, user experience berbicara tentang bagaimana pengalaman seorang user atau pengguna dalam menggunakan suatu produk. Yup, UX tidak melulu dikaitkan dengan software atau yang sekarang lebih sering kita sebut apps. Bahkan produk semacam closet duduk pun berhak memiliki UX yang baik. 

Pengembangan (development) user experience memiliki tujuan agar produk dapat memberikan suatu nilai kepada pengguna entah itu kemudahan, kenyamanan, kepuasan, estetika atau apapun itu sehingga user ingin terus menggunakan produk tersebut. Jika berbicara tentang produk software, fokus dari pengembangan user experience apalagi kalau bukan membuat wireframe dan struktur komponen-komponen yang ada dalam sebuah apps beserta fungsinya. 

 

Apa itu UI?

UI adalah akronim dari user interface sering diterjemahkan sebagai antarmuka pengguna. Hal ini juga bisa diartikan sebagai apapun yang ada di depan muka pengguna ketika mereka berinteraksi dengan suatu produk. Setiap halaman, tombol, icon, font, atau warna dalam sebuah aplikasi merupakan elemen-elemen yang ada dalam UI. Pengembangan software atau aplikasi belakangan ini semakin bersifat user centered menjadikan UI sebagai komponen utama.

Berbicara tentang UI tentu saja kita harus berbicara tentang desain, kegunaan, konten, dan masih banyak lain. Masih ingat beberapa dekade lalu ketika kita mengetikkan sebuah password di halaman web dan yang muncul masih berupa tulisan yang masih bisa dibaca bukan bulatan-bulatan kecil seperti sekarang ini? Yup, UI memang tidak hanya berbicara masalah estetika tapi juga keamanan.

 

Komponen dalam UI/UX

Penyebutan user interface dan user experience sering digabung sehingga tak sedikit yang bingung membedakan mana UI dan mana UX. Sebenarnya memang UI dan UX merupakan komponen yang tak terpisahkan, pengembangan UI akan percuma jika tidak memenuhi objective dari UX. Begitu pula pengembangan UX sepertinya tidak akan berjalan tanpa adanya UI. Dalam pengembangan UI/UX terdapat beberapa komponen penting yang berperan untuk ‘mengarahkan’ perilaku user dalam menggunakan suatu apps.

 

Information Architecture

Information architecture yang biasanya disingkat IA secara singkat adalah struktur dari segala bentuk informasi yang akan ditampilkan ke pengguna. IA merupakan bentuk paling dasar dari UI/UX baik itu web ataupun aplikasi native. Sebelum merancang information architecture kita harus memahami informasi apa saja yang dibutuhkan saat user membuka aplikasi kita. Tidak hanya ‘apa’ tapi kita juga harus tahu seberapa penting informasi tersebut bagi pengguna.

Membanjiri pengguna dengan semua informasi sekaligus dalam satu langkah dapat membuat pengguna bingung, membuatnya tak bisa mengingat poin utama yang ingin kita sampaikan, dan bahkan dapat menimbulkan ‘pengalaman buruk’ bagi pengguna karena merasa dipaksa. Oleh karena itu, mengapa setiap website terdapat ‘navigation bar’ yang membuat pengguna bisa memilih sendiri informasi apa saja yang ingin dia dapatkan.

Aktivitas utama dalam IA adalah mengorganisir informasi baik itu apa, kapan, di mana, dan bagaimana user mendapatkan informasi tersebut. Ada beberapa contoh metode untuk mengorganisir informasi dalam information architecture yaitu:

  • Hierarchical
    Metode pengorganisasian informasi berdasarkan hirarki didasari pada teori psikologi yang dikemukakan oleh Gestalt tentang hirarki visual di mana setiap elemen visual seperti bentuk, warna, letak, dan ukuran menyimpan informasi seberapa penting hal tersebut untuk dihiraukan. Metode inilah yang menyebabkan mengapa menu navigasi di suatu website walaupun terbilang kecil tapi terletak di atas dan ada di setiap halaman karena menu navigasi bukan informasi utama tapi informasi yang berfungsi sebagai penunjuk sesuai dengan namanya.
  • Sequential
    Metode pengorganisasian sequential adalah mem-breakdown informasi menjadi beberapa tahapan yang harus dilalui user satu per satu. Fungsi dari metode ini adalah agar user tidak lupa dengan informasi yang diberikan. Metode sequential banyak digunakan oleh e-commerce yang memiliki banyak detail informasi yang diberikan sebelum user melakukan pembelian.
  • Matrix
    Bisa dibilang metode pengorganisasian informasi yang magabut (makan gaji buta) karena metode ini melimpahkan kerjaan mengorganisir informasi kepada user. Sorting merupakan fitur yang menggunakan metode matrix. Tapi jangan senang dulu, metode ini sebenarnya agak merepotkan bagi seorang information architect karena menyusun jenis metadata apa saja yang berguna bagi user untuk setiap data cukup memakan waktu.

 

Interaction Design

Seperti yang semua orang tahu, user tidak hanya berperan pasif dengan cuma memandangi produk seperti layaknya karya seni. Mereka disebut user karena menggunakan suatu produk yang tentu saja terdapat interaksi di dalamnya. Oleh sebab itu, desain interaksi termasuk komponen yang tak kalah penting dalam pengembangan UI/UX.

Dalam produk software atau aplikasi, desain interaksi berbicara tentang bagaimana user mengklik, menekan, menggeser layar dan apa yang terjadi setelah itu. Desain interaksi yang baik itu mengacu pada ergonomi dan kebiasaan/perilaku dari pengguna. Salah satu contoh dari desain interaksi ini adalah bagaimana Google menerapkan ‘swipe’ (menggeser) untuk mengarsip email pada Gmail. Metode ‘swipe’ ini menggantikan metode ‘hold’ (menekan lama) karena metode ‘swipe’ dinilai lebih efisien dan praktis daripada ‘hold’ sedangkan jumlah rata-rata email masuk ke user semakin bertambah dari tahun ke tahun sehingga manfaat perubahan ini dapat dirasakan oleh pengguna.

 

Usability

Usability jika diterjemahkan ke dalam Bahasa Indonesia berarti kegunaan. Secara definisi usability adalah seberapa mudah pengguna menggunakan produk. Jika Anda pernah mendengar istilah ‘user-friendly’, hal tersebut merupakan tujuan dari komponen ini. Usability sering kali berbicara tentang seberapa familiar dan kompeten seorang pengguna dalam menggunakan fitur dari sebuah produk. Selain itu, usability juga berbicara tentang berapa lama waktu yang dibutuhkan bagi user untuk memahami apa yang harus dia lakukan untuk menggunakan suatu fitur dalam sebuah produk.

 

Wireframing

Wireframe merupakan prototype kasar dalam pengembangan UI/UX. Ketika kita sudah mempunyai IA, desain interaksi, dan konsep usability, saatnya bagi UI/UX designer untuk menyusun ketiga komponen dalam sebuah layout. Layout ini berfungsi sebagai acuan utama bagi engineer dalam proses produksi software atau aplikasi. Wireframe juga berguna dalam melakukan pre-test terhadap sebuah fungsi atau fitur.

 

Visual Design

Ketika wireframe sudah ada di tangan, sekarang saatnya bagi visual designer berkarya menuangkan ide-idenya dalam bentuk, warna, dan juga font. Walaupun ini merupakan komponen terakhir dalam UI/UX, visual design adalah komponen yang paling mudah untuk dapat dikenali, dikomentari, bahkan dicela. Ini terjadi karena visual design berada di garda depan sebuah UI/UX. Dari mata langsung jatuh ke hati, begitulah metafora yang sering dipakai oleh para pujangga untuk menggambarkan pentingnya peran elemen visual dalam membangun experience pengguna.

 

Pentingnya Pengembangan UI/UX untuk Sebuah Produk

Memberikan pengalaman yang baik bagi pengguna merupakan objective paling utama, tentunya setelah produk tersebut bisa digunakan. Seringkali UI/UX menjadi faktor penentu apakah pengguna mau untuk terus menggunakan produk tersebut atau tidak. Bahkan, UI/UX suatu produk turut menentukan asumsi seseorang terhadap produsen brand. Ya, UI/UX juga merupakan bagian dari branding. Maka tidak heran jika pengembangan UI/UX seharusnya mendapat perhatian lebih agar umur produk berlangsung lama.

Berkenalan Dengan Julia, Bahasa Pemrograman Berperforma Tinggi Tapi Mudah Dipelajari

Bulan Juli telah tiba. Mungkin di bulan ini kita akan sibuk mengucapkan ulang tahun kepada teman yang bernama Yuli, Yulia, Julia, atau Yulianto. Omong-omong tentang Julia, ada bahasa pemrograman dengan nama tersebut dan bisa dibilang masih lucu-lucunya karena belum genap berumur setahun sejak stable release versi 1.0 pada Agustus 2018. Yup! Secara de facto Julia lahir di bulan Agustus. Mungkin seharusnya para kreator Julia mulai memikirkan untuk mengganti nama Julia menjadi Agus.

Julia merupakan bahasa pemrograman umum (general purpose) level atas (high level) yang dikembangkan oleh tim dari MIT (Massachusetts Institutes of Technology). Walaupun belum genap setahun, komunitas Julia berkembang secara eksponensial. Pada Januari 2019 saja, Julia telah mencapai 3,2 juta unduhan dan lebih dari 1 juta Docker image dari Julia tersebar di seantero dunia.

 

Latar Belakang Diciptakannya Julia

Julia lahir dari tangan Jeff Bezanson, Stefan Karpinski, Viral B. Shah, dan Alan Edelman. Mereka adalah para ilmuwan komputer di MIT yang memiliki cita-cita menciptakan bahasa pemrograman high-level tapi dengan performa yang cepat untuk siapa saja. Pada tahun 2012, mereka merilis website untuk memberi kabar kepada dunia tentang misi mereka kepada dunia. Julia sendiri sudah rilis di tahun yang sama semenjak para kreator merilis website-nya tapi versi yang dirilis pada saat itu masih merupakan versi alfa dan beta. Sintaks pada versi sebelum versi 1.0 masih sering berubah-ubah sehingga jauh dari kata stabil.

Jika ditanya kenapa memilih nama ‘Julia’, para kreator tersebut hanya memberikan jawaban diplomatis, “Tak ada alasan khusus dalam memberi nama. Kami hanya menerima usulan dari teman kami dan menurut kami itu nama yang cantik.” 

Julia lahir karena para kreator ingin memecahkan masalah klasik yang dialami oleh para programmer. Saat memilih bahasa pemrograman, para programmer selalu dihadapkan pada situasi di mana mereka harus memilih salah satu saja antara performa yang dimiliki oleh bahasa pemrograman low-level atau kemudahan yang ditawarkan oleh bahasa pemrograman high-level.

Edelmen melakukan pengamatan yang dilakukan di organisasi besar bahwa seringkali pengembangan software dilakukan dengan menggunakan bahasa pemrograman high-level di tahap awal kemudian organisasi tersebut kemudian merekrut tim lain untuk menulis ulang kode software-nya dengan bahasa pemrograman low level. Menurutnya, metode ini sangat tidak efektif karena harus memulai siklus baru. Itulah sebabnya dia dan teman-temannya menciptakan Julia.

 

Apa yang Membuat Julia Berbeda

Seperti yang telah dibahas sebelumnya, Julia adalah bahasa pemrograman high-level dengan performa yang dapat menyaingi bahasa pemrograman low level. Julia disebut-sebut sebagai bahasa pemrograman yang memiliki kecepatan seperti C dengan kemudahan seperti Python, dinamis seperti Ruby, kemampuan matematika yang hebat seperti MatLab, dan keahlian statistik seperti R. Memang janji ini terkesan sedikit utopis, akan tetapi dengan angka popularitas Julia yang naik dengan cepat agaknya sebagian besar janji ini berhasil ditepati. 

Julia memang bahasa pemrograman yang dapat digunakan untuk keperluan apapun, akan tetapi para kreator dari Julia mengatakan bahwa Julia lebih menyasar ilmuwan. Dengan performanya yang tinggi, Julia diharapkan dapat membantu para ilmuwan untuk melakukan analitik big data, melakukan penelitian yang memiliki komputasi tinggi untuk penelitian ilmiah, serta simulasi desain rekayasa.

Sama seperti Python dan JavaScript yang populer belakangan ini, Julia merupakan bahasa pemrograman multi-paradigma yang berarti bisa digunakan untuk pemrograman object-oriented maupun pemrograman fungsional. Selain itu, bahasa pemrograman ini juga mendukung penggunaan multi-thread dan multi-core pada CPU secara built-in baik itu dalam sebuah chip ataupun dalam sebuah sistem yang memiliki banyak chip. Ke depannya para kreator dari Julia akan meningkatkan kemampuan Julia dalam menggunakan berbagai macam jenis core seperti Graphic Processing Unit (GPU) dan Tensor Processing Unit (TPU) milik Google. Tentu hal ini akan membantu performa Julia dalam pengembangan AI maupun visualisasi big data.

Core yang ada dalam Julia sendiri menggunakan bahasa C dan C++ dalam LLVM-nya. Yup! Feel dari Julia seperti scripting language yang menggunakan JIT compiler. Akan tetapi, Julia dapat juga di-compile ke berbagai kode natif bahasa pemrograman low-level.

 

Syntax Julia Mirip Dengan Python

Karakter syntax yang digunakan dalam Julia sangat sederhana dan memang dirancang untuk keperluan matematis. Hal ini tentu saja mengingatkan kita dengan bahasa pemrograman Python. Berikut beberapa contoh syntax yang digunakan dalam Julia:

 

1 + 1      # => 2
8 1      # => 7
10 * 2     # => 20
35 / 5     # => 7.0
10 / 2     # => 5.0  
div(5, 2# => 2    
5 \ 35     # => 7.0
2^2        # => 4
12 % 10    # => 2


# Contoh variabel
someVar = 5
if someVar > 10
    println(“someVar is totally bigger than 10.”)
elseif someVar < 10    # Klausa ini opsional
    println(“someVar is smaller than 10.”)
else                    # Klausa ini juga optional.
    println(“someVar is indeed 10.”)
end
# => Mengeluarkan “some var is smaller than 10”


# Membuat fungsi
function add(x, y)
    println(“x is $x and y is $y”)
    x + y
end
add(5, 6)
# => x is 5 and y is 6
# => 11

Untuk dokumentasi lebih lengkapnya,bisa dilihat di situs Julia Programming

 

***

Itulah tadi sekilas tentang bahasa pemrograman baru Julia. Kepopuleran Julia yang langsung meningkat drastis mungkin saja disebabkan oleh semakin umumnya pemakaian machine learning hampir di semua industri. Dengan fitur-fitur yang dimiliki dan yang sedang dikembangkan oleh Julia, bukan tidak mungkin jika Julia juga bisa digunakan untuk game development sehingga game dapat memanfaatkan pemrograman multi-threded secara efisien.

GraphQL : Solusi Pintar untuk Berkomunikasi dengan API

Beberapa waktu yang lalu, kita sempat membahas perbedaan antara jenis database SQL dan NoSQL di mana perbedaan terbesar terletak pada bahasa query-nya. Mumpung masih mengandung QL dalam memori kita walaupun sebenarnya agak berbeda, kali ini kita mengupas tentang bahasa query yang lain yaitu GraphQL.

Berbeda dengan SQL dan NoSQL yang merupakan bahasa query database, GraphQL merupakan bahasa query untuk sebuah API (Application Program Interface) yang bisa juga dinobatkan sebagai konsep baru API. Oleh karena itu, GraphQL ini tidak bisa ditandingkan dengan SQL atau pun NoSQL. Lawan sesungguhnya GraphQL ini adalah siapa lagi kalau bukan API legendaris yang dipakai jutaan umat manusia yaitu REST (Representation State Transfer).

 

Asal-usul GraphQL

GraphQL diciptakan oleh tim internal Facebook yang juga digunakan untuk keperluan internal pada tahun 2012. Karena dianggap terlalu sakti untuk digunakan Facebook sendiri, akhirnya pada tahun 2015 Facebook merilis GraphQL untuk publik. Project GraphQL kemudian berpindah tangan dari Facebook ke organisasi baru yaitu GraphQL Foundation yang berada di bawah naungan Linux Foundation pada tahun 2018.

Ide diciptakannya GraphQL sendiri adalah untuk memecahkan masalah keterbatasan yang dimiliki oleh REST API. Contohnya, katakanlah kita ingin menampilkan beberapa item buku dalam sebuah situs toko buku dan dalam setiap item menampilkan profil singkat dari penulis buku tersebut. Jika kita menggunakan API tradisional kita harus menarik data dari dua endpoint. Pertama, data item yang berisi judul buku, harga, atau sinopsis dengan endpoint misal tokobuku.shop/item/:id. Kedua, data penulis yang berisi nama, foto profil, buku apa saja yang pernah ditulis, dan biografi dengan endpoint tokobuku.shop/author/:id. Beban akan semakin bertambah jika kita harus menampilkan data lain seperti review dari pembeli dan lain sebagainya.

 

Solusi yang Bernama GraphQL

Solusi yang ditawarkan oleh GraphQL sebenarnya sangat simpel, “daripada harus mengurus beberapa endpoint ‘bodoh’ , kenapa tidak buat satu endpoint ‘pintar’ yang bisa menangani query rumit lalu mengemas output data dalam bentuk apapun yang client minta.” Pada intinya GraphQL berfungsi sebagai layer antara client dan beberapa data source, menerima request dari client, dan memberikan data sesuai dengan apa yang diminta. Untuk lebih jelasnya bisa dilihat dari gambar berikut.

Jika masih bingung, saatnya kita bermain metafora! Bayangkan kita adalah client yang banyak maunya, server GraphQL adalah seorang personal assistant, dan sumber data adalah toko. Suatu hari kita butuh mengambil laundry, memesan makanan, dan belanja bulanan. Karena kita tak mau repot dan memiliki personal assistant yang tahu di mana letak toko langganan kita, kita tak perlu mendatangi tempat laundry, restoran, atau supermarket. Yang perlu kita lakukan hanyalah menyerahkan daftar belanjaan, mengatakan menu yang kita inginkan, dan memberikan nota laundry ke personal assistant kita. Kita tinggal santai-santai di rumah atau mengerjakan hal lain dan menunggu personal assistant kita datang membawa barang-barang pesanan kita.

 

3 Pondasi Utama

GraphQL sendiri dibangun atas 3 pondasi utama yaitu query, resolver, dan schema.

 

Query

Dengan masih memakai metafora yang sama, kita tentunya harus memakai bahasa yang sama dengan assistant kita agar komunikasi berjalan lancar bukan? Walaupun bahasa query yang digunakan GraphQL agak berbeda dengan bahasa query yang lain, query tersebut sangat sederhana dan mudah dipahami. Berikut contoh pemakaian query GraphQL untuk menarik data salah satu item buku.

 

query {
  book(id: “10002a”) {
    title
    synopsis
    author {
      name
      avatarUrl
      profileUrl
      }
   }
}

 

Familiar? Yup! Query GraphQL sangat mirip dengan dokumen JSON.  Dalam GraphQL kita dapat memasukan argumen untuk setiap field. Agar bisa men-generate item buku secara dinamis, kita dapat memasukkan query berikut.

 

query ($id: String) {
  book(id: $id) {
    title
    synopsis
    author {
      name
      avatarUrl
      profileUrl
    }
  }
}

 

Resolver

Kembali lagi ke metafora sebelumnya. Personal assistant kita tidak tahu akan ke mana jika dia tidak mengetahui alamat dari masing-masing tempat yang akan dituju. Untuk kita harus memberi tahu alamat dari masing-masing tempat. Sebuah resolver memberitahu GraphQL bagaimana dan di mana sebuah data akan dikirimkan sesuai dengan field-nya masing-masing. Berikut merupakan contoh resolver yang menggunakan GraphQL-Tools dari Apollo.

 

Query: {
  book(root, args) {
    return Books.find({ id: args.id });
  }},
Book: {
  author(book) {
    return Users.find({ id: book.authorId})
  }}

 

Dalam query di atas, selain memiliki resolver pada root kita juga memiliki resolver pada field author di dalam book.

 

Schema

Schema adalah pondasi utama yang paling utama atau jika meminjam salah satu bapak-bapak YouTuber yang sangat jenius itu schema merupakan “core of the core” dari GraphQL. Akan terlalu panjang jika membahas schema dalam GraphQL. Jika penasaran dengan bagaimana schema dari GraphQL silahkan kunjungi situs GraphQL yang memuat dokumentasi schema GraphQL.

 

***

 

Itulah tadi artikel yang bertujuan mengenalkan GraphQL. Tak akan ada habisnya jika kita membahas GraphQL secara keseluruhan karena banyak sekali library Node.JS yang memiliki relasi terhadap graphQL ini seperti Express ataupun Gatsby.

WhatsApp Chat via Whatsapp