Inilah 10 Framework CSS Terbaik di Tahun 2020!

Framework CSS
Sumber : Dokumen Pribadi

Tampilan website merupakan hal yang harus diperhatikan. Untuk mempercantik tampilan website, biasanya programmer akan menyematkan CSS dalam websitenya. Berbeda dengan jaman dulu, saat ini programmer sangat terbantu oleh adanya CSS Framework. Framework ini akan menyediakan berbagai komponen siap pakai bagi developer, seperti grid,UI patterns, web typography, tooltips, buttons, form elements, hingga icons. Elemen siap pakai ini akan memangkas waktu pengembangan, sekaligus me-responsive-kan website kita dalam berbagai device. Saat ini terdapat banyak pilihan framework CSS. TAS Official telah merangkumnya dalam 10 Framework CSS Terbaik di tahun 2020. Apa aja ya? Cekidot!

1. Bootsrap

Sumber : Petani Kode

Bootstrap adalah framework CSS yang paling umum. Twitter mempopulerkan framework ini pada tahun 2011. Nah, ketika kita memasukkan bootstrap class ke website, maka framework ini akan otomatis meng-adjust tampilan web dalam berbagai ukuran layar. Bootstrap memiliki banyak plugin dan theme builder yang akan membuat pengembangan tampilan website kita menjadi lebih cepat. Versi terbaru Boostrap adalah Bootsrap 4. Bootsrap 4 mendukung fitur SAAS. Dengan demikian, Bootsrap dapat mendukung LESS maupun SAAS. Keren kan? Nah, untuk melihat dokumentasinya silahkan klik link ini.

2. Foundation

Sumber : Tutplus

Foundation adalah saingan berat bagi Boostrap. Framework foundation dikembangkan oleh lima perusahaan besar Facebook, Ebay, Mozilla, Adobe, dan bahkan Disney. Seperti Bootstrap, Foundation juga memiliki 12 grid yang mambuat halaman website respomsive untuk berbagai device. Foundation mengusung teknologi Saas seperti Bootstrap. Fitur paling keren dari foundation adalah Fastclick.js yang mempercepat proses rendering pada mobile device. Foundation bersifat open source. Dokumentasi lengkap Foundation dapat dilihat pada link ini.

3. Bulma

Sumber : Dev.to

Bulma adalah framework yang relatif baru. Framework ini juga bersifat open source loh. Bulma mengusung Flexbox Layout model. Flexbox Layout akan membuat tampilan yang konsisten pada berbagai ukuran layar yang berbeda. Uniknya, Bulma tidak memerlukan Javascript. Pengembangannya 100% CSS. Bulma mengusung pendekatan ‘mobile-first’. Framework ini bersifat ringan dan sangat responsive. Sampai saat ini ada lebih dari 200.000 developer yang menggunakan framework Bulma. Untuk mengunjungi website resmi Bulam, klik link ini.

4. Pure

Sumber : SiloCreativo

Pure adalah CSS Framework yang dikembangkan oleh Yahoo. Framework ini juga ringan dan responsive terhadap berbagai device. Pure dikembangkan berdasarkan normalize.css. Normalize.css terbagi atas modul-modul kecil. Dengan konsep ini, jika kita hanya memerlukan grid maka website hanya akan mengimport grid.css. Hal ini akan membuat website jauh lebih ringan dan waktu loading website akan berkurang. Hanya saja, pure tidak memungkinkan developer untuk membuat fixed layouts. Hmm, sayang banget ya. Nah, jika kalian ingin berkenalan lebih jauh dengan pure silahkan klik link ini ya.

5. Semantic UI

Sumber : CodeTuts

Semantic UI adalah framework yang akan menjadi pesaing terberat Bootsrap. Benar saja, menurut Usablica, Semantic UI adalah framework CSS terbaik, sedangkan Bootsrap menempati posisi kedua. Semantic UI membuat kode CSS lebih manusiawi. Dengan semantic ui, kita bisa membuat tampilan website yang bagus dan unik tanpa banyak melakukan perubahan. Semanthic UI terkenal dengan thematic effect-nya yang simple dan elegan. Framework ini menawarkan lebih dari 3000+ Theming Variables and 50+ UI Components. Semanthic UI juag mendukung third party seperti React, Meteor, Ember, dan React. Tertarik ?

6. UI Kit

Sumber : UIKit

Untuk tipe developer yang menyukai desain minimalis, UI kit adalah framework yang layak dicoba. UI kit membawa konsep super-clean, elegant, dan beautiful web interfaces tanpa harus membuang-buang memori device. UI kit juga dibekali dengan SVG icon,  progress bars, image-maker, dan banyak fitur lain. Jangan khawatir, ternyata fitur-fitur ini juga costumizable. Selain itu, framework ini memungkinkan developer untuk menggunakan advance component seperti Nestable. Dengan UI kit, kita dapat membuat complex flexbox-based layouts hanya dengan menggunakan HTML. Wow! Website resmi UI Kit dapat dikunjungi ada pada link ini.

7. Materialize CSS

Sumber : Medium

Tidak mau kalah dengan situs besar lainnya, Pada tahun 2014 Google memperkenalkan framework CSSnya yang bernama Materialize CSS. Materialize CSS adalah framework CSS yang sangat recomended untuk pengembang Website atau Android web-apps. Materialize adalah framework CSS yang mendukung tampilan YouTube, Gmail, Google Drive, dan Google Docs. Framework ini menggunakan sistem 12-grid layout seperti Bootsrap, animation, transition, padding, dan advanced effect seperti lightning dan shadow. Materialize CSS memiliki fitur pre-built starter template yang akan menghemat pengembangan. Untuk mengunjungi website resmi Bulam, klik link ini.

8. Tailwind CSS

Sumber : Codeburst

Framework Tailwind adalah low-level framework yang fleksibel dan costumizable. Melalui TailwindCSS , kita tidak akan menemukan pra-desain komponen seperti button, card, alert, carousel atau yang lainnya. Pengaturan property CSS pada Tailwind CSS langsung melalui class-class kecil. Konsep ini disebut konsep utility-first framework. Framework ini baru muncul pada tahun 2017. Dengan Tailwind, kita bisa membuat komponen yang benar-benar berbeda dengan developer lain meskipun menggunakan framework yang sama. Website Tailwind dapat dilihat di sini.

9. Skeleton

Sumber : Skeleton

Seperti namanya, skeleton adalah framework CSS yang paling simple dan minimal. Skeleton hanya terdiri atas 400 baris kode loh! Meskipun begitu, pengembangnya membekali Skeleton dengan bermacam-macam fitur seperti grids, typography, buttons, forms, lists, media queries, hingga tabel. Skeleton mendukung 12 grid layout dengan ukuran maksimal 960px. Skeleton sangat cocok untuk UI/UX designer pemula. Meskipun hanya memiliki komponen-komponen basic HTML tapi sudah cukup kok untuk membuat suatu tampilan website yang bagus. Cek dokumentasi skeleton melalui link ini.

10. Miligram

Sumber : Kaskus

Framework terakhir adalah miligram. Faktanya, ukuran framework ini hanya 2 Kb saja. Miligram ini kecil-kecil cabe rawit. Meskipun ukurannya yang mini, nyatanya framework ini mendukung semua fitur yang ada pada CSS3 loh. Miligram adalah flexbox based. Dokumentasi lengkap miligram terdapat pada link ini

Nah, itulah dia 10 Framework CSS Terbaik di Tahun 2020. Jadi kamu tim mana? Tuliskan jawabanmu pada kolom komentar ya!

Suka Duka Menjadi Software Tester

Sumber : Gojekan_Tekno

Dalam pengembangan aplikasi, pengujian adalah hal yang penting. Pengujian aplikasi menjadi tanggung jawab seorang tester. Tester adalah orang bertugas untuk memastikan aplikasi berjalan tanpa kesalahan ataupun kerusakan ketika sampai ke tangan client. Tanpa pengujian, tingkat kepercayaan pengguna akan rendah. Tester akan melakukan ad-hoc testing sehingga kualitas aplikasi akan lebih terjamin. Banyak yang berpikir bahwa tester adalah pekerjaan yang menyenangkan. Tester hanya perlu mencari bug, tanpa ikut mengembangkan aplikasi. Ternyata itu semua SALAH BESAR! Banyak suka duka yang akan didapatkan ketika menjadi seorang software tester. Artikel ini akan bercerita bagaimana Suka Duka Menjadi Software Tester

Keberhasilan Tester Adalah Kegagalan Developer

Seorang tester memegang kendali penuh atas aplikasi yang akan rilis. Pekerjaan ini membutuhkan kemampuan analisa yang tinggi. Tester harus memikirkan segala kemungkinan dari segala sudut pandang. Dalam pengujian, tester akan mencoba berbagai skenario. Base case, edge case, bahkan corner case tidak boleh terlewat dalam proses pengujian.

Dalam melakukan pengujian, tester selalu berpegang pada dua dokumen yakni SRS (System Requirement Specification) dan SAD (Software Architecture Document). Setelah mengetahui proses bisnis aplikasi, tester akan menyusun test case. Test case ini terbagi dalam berbagai modul. Tahap ini memerlukan imajinasi dan kreativitas yang tinggi. Tester harus berusaha keras menjatuhkan aplikasi yang akan rilis.

Terdapat dua jenis pengujian yaitu manual testing dan automatic testing. Manual testing akan menguji aplikasi tanpa dukungan tool apapun. Keunggulan manual testing ini adalah mendapatkan visual feedback. Tester dapat menguji interface dan experience dari pengujian ini. Sebaliknya, automatic testing akan menguji aplikasi dengan bantuan pra-scripted tools, salah satunya dengan Selenium IDE. Keunggulan automatic testing adalah dapat memperoleh lebih banyak bug dalam waktu yang lebih cepat.

Menjadi Musuh Developer

Developer dan tester kerap kali terlibat dalam perang dingin. Developer akan mati-matian membuat aplikasi, sementara tester akan mati-matian menjatuhkan aplikasi yang akan rilis . Tester harus bisa menemukan celah dari aplikasi. Bug is victory. Semakin banyak bug yang berhasil ditemukan maka kualitas software akan semakin bagus kualitas aplikasi. Testerlah yang akan memberikan lampu hijau, kapan aplikasi siap rilis.

Dengan privilege menahan aplikasi sebelum rilis inilah kualitas tester akan diuji. Memang sih, suatu aplikasi tidak mungkin 100% bug free. Tetapi tester harus meminimalisir kemungkinan bug yang bisa saja muncul setelah aplikasi rilis. Tester juga harus mendokumentasikan semua berkas pengujian. Jadi jangan bermimpi menjadi tester jika kamu tipe orang yang anti dokumentasi-dokumentasian.

Bertemu developer “ngeyelan” adalah nightmare bagi tester. Tipe programmer ini adalah tipe developer yang selalu mencari menolak bug yang terjadi Ada aja alasan yang muncul ketika tester menemukan kesalahan dan cenderung engga untuk menyelesaikannya. Inilah beban hidup tambahan bagi seorang tester. Tester harus bisa tegas menolak alasan ini agar kualitas aplikasi lebih terjamin.

Kolaborasi Adalah Kunci

Sofware Tester dan Developer
Sumber ; Dokumen Pribadi

Tester adalah jembatan antara product owner dan developer. Testerlah yang akan menjadi penyeimbang antara keduanya. Product owner selalu ingin produk yang cepat rilis, begitupun developer. Namun, untuk menjamin kualitas aplikasi perlu adanya testing yang komperhensif dengan jiwa yang tenang. Walaupun waktunya kadang tidak tersedia.

Developer dan tester harus berjalan seiringan untuk mengantarkan aplikasi yang baik. Keduanya harus membangun chemistry yang baik. Chemistry ini bisa dibangun dalam beberapa cara, seperti sekadar makan dan minum bersama atau sekadar ngopi bersama untuk memperat hubungan. Selain itu, keduanya harus memiliki inisiatif yang tinggi. Developer harus berinisiatif menghindari bug. Sementara itu, tester harus menyadari pola bug yang memudahkan pekerjaan developer

Nah, terdapat pola pengerjaan aplikasi yang baik untuk para developer. Pertama, pelajari proses bisnis yang akan berjalan pada aplikasi. Pikirkan segala kemungkinan yang mungkin akan terjadi. Setelah benar-benar paham barulah mulai pengerjaan aplikasi. Fokuslah hanya pada aplikasi dan jangan termakan pikiran adanya bug. Setelah modul dan aplikasi selesai, pengujian akan berlangsung. Dari testing inilah bug akan ketahuan. Revisi bug itu sampai selesai. Lakukan hal yang sama sampai akhirnya aplikasi menjadi layak rilis.

Nah itulah Suka Duka Menjadi Software Tester. Ternyata gampang-gampang susah ya. Ada yang ingin jadi tester?

Tidak perlu aplikasi yang sempurna. Mendekati sempurna saja sudah lebih lebih dari cukup

(Tester, 2020)

10 Alasan Mengapa Programmer Adalah Pasangan Terbaik!

Untuk menemani weekend kalian, kali ini kita nggak bakal membahas hal-hal yang berat. Pembahasan kali ini jauh lebih menarik dari pembahasan-pembahasan masalah teknologi yang udah kita bahas lo. Kali ini kita akan bahas seputar asmara. Meskipun kesehariannya hanya di depan laptop/PC, ternyata programmer adalah calon pasangan hidup yang baik loh buat kamu. Wah kok bisa ya? Nah penasaran kan? Inilah 10 alasan mengapa programmer adalah pasangan terbaik

1. Bertanggung Jawab

Alasan pertama dari 10 Alasan Mengapa Programmer Adalah Pasangan Terbaik adalah Bertanggungjawab. Programmer tetap seorang manusia biasa yang tak luput dari kesalahan dan dosa. Programmer juga bukan Tuhan yang bisa menciptakan segala sesuatu dengan sempurna. Program yang buatpun tentu tak luput pula dari yang namanya error. Namun, programmer adalah orang yang tidak bisa duduk santai saja melihat kesalahan ini. Mereka pasti dengan cepat akan memperbaiki temuan error tersebut. Programmer akan senantiasa berusaha keras untuk memperbaiki error dan meningkatkan kualitas pada programnya. Keseharian inilah yang membentuk karakter programmer menjadi berani bertanggung jawab dan selalu sigap berbenah atas kesalahannya, termasuk kesalahan yang mungkin akan mereka lakukan sama kamu. Keren kan?

2. (Mungkin Bakal) Kaya Raya

Kalau bicara soal orang paling kaya sedunia, pasti nggak bakal jauh-jauh dari Bill Gates dan Mark Zuckerberg. Siapa sih yang nggak kenal dua tokoh besar ini? Bill Gates adalah CEO dari Microsoft, pembuat sistem operasi Windows. Orang ini pernah menjadi orang terkaya sedunia pada tahun 1995 – 2007. Konon katanya nih, kalau dia bawa uang 10 juta rupiah lalu jatuh, dia tidak perlu repot mengambilnya, karena tiap detiknya bisa menghasilkan 2,5 juta rupiah. Wow! Rakyat jelata can’t relate ☹.

Sedangkan Mark Zuckerberg adalah Founder & CEO jejaring sosial Facebook. Berbeda dengan Bill Gates, Mark Zukerberg adalah orang terkaya nomor lima dunia dengan total kekayaan mencapai 970 triliun. Selain itu, Mark Zuckerberg juga merupakan sosok termuda dari 100 orang terkaya di duia loh. Mark bisa menghasilkan 417 juta dalam semenit atau sekitar 7 jutaan per detik. Wih! Tahu nggak sih apa pekerjaan mereka? Yups, mereka adalah seorang programmer. Programmer adalah salah satu pekerjaan dengan gaji tertinggi loh. Kalau kamu punya pasangan programmer, finansialmu bakal terjamin min min.

3. Pintar

Programmer dituntut untuk menemukan jawab atas permasalahan clientnya. Programmer akan berusaha keras untuk mencari logika dan menyusunnya menjadi solusi permasalahan itu. Pemikirannya yang terstruktur dan sistematis membuktikan kalau programmer adalah orang yang pintar. Sorry to say, bukannya sombong nih. Tapi programming adalah salah satu pekerjaan tersulit di dunia. Oleh karena itu, tidak mungkin programmer memiliki kepintaran di bawah rata-rata. Selain itu, programmer adalah orang yang up to date. Segala tren atau sekadar gosip selebritis pasti lewat pada layar komputernya. Kamupun pasti akan terbawa dengan kepintaran yang dimilikinya. Kamu juga nggak perlu susah-susah mencari topik pembicaraan kalau lagi kencan. Dia pasti membawa gosip informasi terbaru yang lagi ngetrend.

4. Humoris

Siapa bilang programmer adalah orang yang selalu serius? SALAH TOTAL. Ada banyak banyolan yang siap ia lontarkan kalau kalian lagi kencan. Programmer adalah orang yang paling update kalau masalah meme dan shitposting. Bukan cuma penikmat nih, ternyata programmer seringkali membuat meme loh. Punya pasangan seorang programmer bakal ngebuat hubungan kalian ngga ngebosenin. Kalian nggak bakalan putus hanya perkara masalah bosan!

5. Tidak Pelit

Sumber : Gojekan Tekno

Seandainya kalian tahu apa saja pekerjaan para programmer dunia, pasti kalian memiliki kekaguman tersendiri. Mereka bekerja tidak hanya untuk diri sendiri namun juga untuk banyak orang, meskipun terkadang tanpa bayaran. Untuk kalian yang belum tahu, ada satu situs website yang namanya Github. Github ini adalah tempat menyimpan kode program oleh para programmer seluruh dunia. Dan hebatnya lagi, setiap orang bisa menggunakanya secara gratis loh. Wow! Kok mereka mau ya? Nah, bukan cuma programnya aja loh yang tersimpan dalam Github. Biasanya, mereka juga menyematkan dokumentasinya secara rapi. Tujuannya tidak lain tidak bukan adalah agar programmer lain dapat dengan mudah memakainya. Wah, berhati malaikat banget kan?

6. Perhatian

Seorang programmer benar-benar memikirkan kode programnya, agar program dapat berjalan dengan baik. Tidak hanya itu programmer juga memikirkan bagaimana kode yang ia tulis dapat dimengerti programmer lain. Setiap titik, koma, kurung, spasi, tab, penamaan variable, kelas dan sebagainya ia perhatikan dengan baik. Mereka juga selalu aware terhadap kesalahan sekecil apapun. Sama program aja perhatian perhatian, apalagi sama kamu? Sudah tentu, mereka akan mencurahkan perhatian penuhnya ke kamu! Sweet banget kan?

7. Setia

Sumber : Dokumen Pribadi

Seperti yang kita tahu nih, kebanyakan programmer akan menghabiskan waktunya di depan komputer. Hal ini akan mengurangi interaksi mereka dengan orang lain. Nah, gimana mau selingkuh coba? Programmer akan cenderung setia pada pasangannya. Ketika sudah menemukan sosok yang sosok yang memahami dan mau menerima pola pekerjaannya ia akan cenderung memilih untuk bersama orang tersebut. Mereka tidak akan mau susah-susah mencari orang yang baru.

8. Sabar

Ketika programnya mengalami error, programmer akan dengan sabar meniti baris demi baris, karakter demi karakter untuk mencari sumber masalah. Nah, ternyata nggak cuma itu loh. Sifat sabar mereka juga teruji ketika menghadapi deadline dari Bos loh. Selain itu, mereka juga kerap kali harus ekstra sabar dalam menghadapi client yang bikin emosi dan labil. Menghadapi pekerjaannya aja sabar, apalagi meluluhkan hati orang tuamu. Hiyahiyahiya!

9. Pantang Menyerah

Sumber : Dokumen Pribadi

Programmer adalah orang yang pantang menyerah. Dalam mengembangkan aplikasi, mereka akan menghadapi error yang nggak hanya sekali dua kali. Mereka akan bolak balik ganti algoritma hingga mencapai solusi sesuai keinginan clientnya. Tapi anehnya, semakin error mereka akan semakin terpacu untuk menyelesaikannya. Senyum puas client akan menjadi cambukan untuk programmer melanjutkan kekurangan programmer. Sudah tentu nih, mereka tidak akan akan menyerah dalam memperjuangkanmu!

10. Rasional

Nah, ada satu lagi sifat programmer yang bakal membuat kamu makin klepek-klepek loh. Mereka adalah mahluk rasional. Kesehariannya yang menuntut logika penuh, membuat mereka tidak akan main-main dengan pemikirannya. Setelah mengasah kemampuannya dalam memecahkan berbagai jenis permasalahan selama bertahun-tahun, mereka akan terbiasa untuk berfikir rasional. Mereka nggak bakal ngambek atau bahkan minta putus hanya karena masalah sepele. Mereka juga nggak bakalan kok PHP-in kamu ! Makin sempurna kan?

Nah setelah membaca 10 Alasan Mengapa Programmer Adalah Pasangan Terbaik!, setuju nggak kalau mereka yang punya pasangan programmer adalah orang yang beruntung ? Nah dari sekarang, yuk hunting pasangan programmer!

Cara Install Composer di Windows, MacOS, dan Linux

Apa itu composer? Buat kalian yang baru aja bergabung ke dunia web development pasti baru denger ini kan? Tapi, no problem, semua master berawal dari pemula. Bagi kalian yang udah jago mungkin ga perlu lagi baca tulisan ini , tapi jaga-jaga kalo kalian yang lupa caranya, boleh kok mampir and baca tulisan ini untuk mengulik tutorial install composer baik di Windows, MacOs, maupun Linux.

Dependency Manager

Composer merupakan dependency manager pada bahasa PHP. Apa sih dependency manager ? Secara bahasa, dependency artinya ketergantungan. Nah, ngapain sih ada ketergantungan ? Bukanya lebih baik kalo apa-apa mandiri? Gini guys, aku kasih sedikit rahasia. Zaman now, apa yang kita buat hampir 90% lebih udah pernah dibuat orang. Artinya masalah yang kita hadapi juga udah pernah dihadapi oleh banyak orang. Oleh karena itu, tentunya udah banyak orang yang mendokumentasikan secara rapi. Kita cukup googling aja, and viola. Muncul lah jawabannya. 90% jawaban itu bakal muncul dari web bernama stackoverflow. Biasanya, pilihan jawaban yang sudah verified merupakan jawaban atas masalah yang lagi kamu alami.

Sama halnya dengan dependency manager ini. Ternyata banyak programmer berhati malaikat yang udah bisa resolve masalah dan berbaik hati berbagi dengan programmer lain. Programmer malaikat ini membuat suatu library dan membagikannya dalam repository publik, sehingga orang lain bisa gunain lewat internet. Nah itulah latar belakang adanya dependency, jadi jika kita bikin aplikasi dan membutuh suatu library library yang ternyata library itu udah ada orang lain yang buat, kita tinggal download aja melalui dependency manager. Dependency manager ini ibaratadalah jalan tol untuk memecahkan masalah kita.

Kembali lagi ke Composer. Sebenarnya, apa itu composer? Composer merupakan dependecy manager dalam bahasa PHP. Apa hanya untuk PHP? Of Cuorse. Buat kalian yang terbiasa menggunakan Java, composer ini seperti maven / gradle dan ibarat npm kalau pada NodeJS. Kalau kita ingin install composer sebenarnya gampang banget kok. Tinggal buka composer, lalu ikutin aja step-stepnya.

Nah sekian tutorial kali ini. Wkwkwkw nggak-nggak. Bercanda.

Oke , ga usah panjang lebar langsung kita coba aja install Composer. Nah perlu kalian tahu, instalasi composer ternyata beda-beda sesuai sistem operasinya. Nah perlu kalian tahu, instalasi composer ternyata beda-beda sesuai sistem operasinya. Karena itu, jangan sampai salah memilih tutorial ya.

Instalasi Pada Windows

Untuk kalian yang pake sistem operasi windows, kalian bisa langsung buka halaman Getting Started. Lalu kalian dibawa ke halaman berikut ini

Sumber : Composer

Pilih 4.1 Installation Windows -> Using Installer. Otomatis file installer Composer akan terdownload. Double klik pada installernya, kemudian next-next aja sampai selesai. Jika kalian diminta untuk menunjukan path dari php, maka pilih php.exe pada web server yang kalian install. Jika kalian menggunakan XAMPP (yang paling umum), path php terletak pada C:\Xampp\php\php.exe.

Instalasi Pada MacOs atau Linux

Kalian bisa bisa ikuti daftar command line berikut ini pada Terminal:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '8a6138e2a05a8c28539c9f0fb361159823655d7ad2deecb371b04a83966c61223adc522b0189079e3e9e277cd72b8897') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Composer akan terinstall namun masih dalam bentuk file composer.phar, pindahkan ke /usr/local/bin/ agar dapat menggunakan perintah CLI composer

mv composer.phar /usr/local/bin/composer

Selesai

Nah itulah tutorial boleh kok mampir and baca tulisan ini untuk mengulik tutorial cara install composer baik di Windows, MacOs, maupun Linux. . Jika mengalami masalah kalian bisa tinggalkan komentar ya. See ya in next article !

Mana Yang Lebih Baik, Golang Atau Node js?

Sumber : Dokumen Pribadi

Mana Yang Lebih Baik, Golang Atau Node js? – Saat ini, web developer memiliki beragam pilihan bahasa pemrograman. Golang dan NodeJS adalah bahasa pemrograman paling revolusioner dalam pengembangan website. Bahasa ini perlahan menggeser bahasa server tradisional seperti Java dan PHP. Keduanya mendukung pengembangan website baik dari segi front-end maupun backend. Namun, mana yang lebih baik? Golang atau NodeJS?

Meskipun sama-sama backend side programming keduanya memiliki perbedaan mendasar. NodeJS merupakan suatu framework pengembangan JavaScript yang mulai populer pada tahun 2018. Sementara itu, Golang atau Google Go adalah bahasa pemrograman baru terkenal beberapa tahun terakhir.

Tren pengembangan back-end website saat ini membawa kita pada pola non-UI code yang berarti akan mengurangi kode terhubung langsung ke end-user. Untuk keperluan instance, data dari database hanya akan tersimpan dalam suatu tempat (umumnya dalam bentuk JSON). User hanya dapat mengakses data dari JSON ini.

GoLang

Sumber : http://educative.io

Golang adalah bahasa pemrograman open source dan gratis yang dikembangkan oleh Google pada tahun 2009. Bahasa ini cukup terkenal atas kontribusinya dalam membuat aplikasi jaringan  yang lebih kuat, mudah, dan efisien. Golang membawa evolusi pada pengembangan website. Jargon Golang sesuai dokumentasinya adalah ekspresif, ringkas, bersih, dan efisien. Biasanya golang menempati sisi server karena sifatnya yang cepat, dan built in concurrency. Selain itu, juga mendukung website dengan tingkat trafik yang tinggi. Bahasa ini juga bersifat static sehingga tidak aka nada runtime error. Lebih lanjut, Golang juga mampu membuat tools dev-ops. Golang adalah teknologi yang membentuk aneka tools seperti Docker, Kubernetes, Terraform, dan Vault

Keunikan Golang adalah lebih sederhana. Meskipun Golang tidak mendukung object oriented programming (karena tidak ada  kelas dan object), tetapi golang mendukung struct. Dalam struct, user mendefinisikan sendiri tipe datanya. Oleh karena itu, Golang sering menjadi teknologi untuk membangun rest API. Golang juga termasuk dalam 16 bahasa pemrograman paling populer menurut Stack Overflow pada tahun 2018. Golang membangun website-website besar seperti Uber, BBC, Sound Cloud, dan Basecamp.

NodeJS

Sumber : http://medium.com

NodeJS adalah framework bahasa Javascript yang berbasis Google Chrome’s V8 engine. Untuk yang belum tahu, NodeJS diperkenalkan pertama kali pada JSConf 2008. Sama halnya dengan Golang, Node JS juga bersifat open-source dan mendukung crossplatfrom. Javascript mendukung front-end maupun back-end side. Oleh karena itu web developer tidak perlu mempelajari dua bahasa pemrograman yang berbeda.

NodeJS merupakan bahasa pemrograman yang paling populer menurut StackOverflow. NodeJS cukup mumpungi untuk membangun website besar seperti Netflix, eBay, dan Groupon. Menurut NodeJs Foundation, 39% pengunanya menggunakan NodeJS untuk membangun front-end dan full-stack development. Sebaliknya, NodeJS tidak cukup terkenal untuk pengembangan front-end dan desktop application.

Untuk mempermudah kelancaran pengembangan aplikasi, NodeJS difasilitasi oleh pustaka yang kaya dengan modulJS. Framework ini juga memiliki webserver sendiri sehingga memungkinkan untuk menjalankan website tanpa dukungan aplikasi lain seperti Apache. Penggunaan NodeJS sangat disarankan untuk pengembangan aplikasi real-time.

Golang VS NodeJS

Sebelum menentukan bahasa mana yang lebih baik, mari kita bandingkan kedua teknlogi ini berdasarkan faktor yang mempengaruhi kinerja bahasa pemrograman

  1. Performa

Golang mumpuni untuk pengembangan aplikasi yang memiliki banyak microservices. Kecepatan Golang setara dengan C dan C++ yang artinya termasuk dalam kategori cepat. Built-in Garbage yang akan memonitor penggunaan memory.

Sementara itu, Node JS mendukung asynchoronous process. Service yang kecil akan  dieksekusi di belakang layar tanpa mengganggu thread utama.  Kode dalam nodeJS bersifat reusable. Hal ini cocok untuk proses update data dalam aplikasi real-time

2. Scalability dan concurrency

Golang sangat terkenal dengan concurrency-nya. Fitur ini membuat Golang sangat ringan dan memilik performa yang sangat baik. Dengan concurrency ini, Golang dapat mengirim method dari satu channel ke channel yang lain. Sementara itu, NodeJS hanya mendukung single thread

3. Komunitas Pengembang

NodeJs memiliki komunitas yang jauh lebih besar daripada GoLang. Hingga saat ini, NodeJS telah mencapai 1 juta download dan 56000 bintang pada Github. Golang memiliki komunitas yang lebih kecil. Namun, bukan berarti Golang dapat disepelekan. Komunitas ini terus berkembang dari tahun ke tahun.

4. Tools

NodeJS lebih banyak didukung IDE daripada Golang. Npm adalah tools yang paling utama dari NodeJS, meskipun terkadang prosesnya sangat lama. Namun, NodeJS memiliki robust tools, seperti Gofmit, Godoc, GoMetaLiner, and Go ru

  • Error handling

NodeJs menggunakan program tradisional seperti try..catch untuk mendukung error handling. Namun, ini jauh lebih baik daripda Golang. Oleh karena itu, NodeJs

Mana yang lebih baik?

Bergantung jenis aplikasinya. Jika kita akan mengembangkan aplikasi dengan banyak microservices, dan berskala besar, gunakan Golang. Namun, jika project berupa aplikasi yang memiliki manual solution gunakan NodeJs

Oleh karena itu, jawaban pertanyaan mana yang lebih baik, golang atau nodejs termasuk sulit untuk dijawab karena bergantung beberapa hal. Semoga mendapatkan pencerahan ya!

Cek juga artikel kami mengenai kelebihan keyword tool.io untuk riset keyword.

Implementasi Message Broker dengan RabbitMq dan Laravel

Implementasi Message Broker dengan RabbitMq dan Laravel

Pertama-tama kita buat baru project laravel dengan mengetikan command

composer create-project --prefer-dist laravel/laravel laravel-rabbitmq

Kemudian masuk ke folder laravel-rabbitmq, dan jalankan

composer require vladimir-yuldashev/laravel-queue-rabbitmq

Setelelah itu buka file app/config/queue.php tambahkan konfigurasi driver rabbitmq ke dalam file tersebut,

'connections' => [
    // ...

    'rabbitmq' => [
    
       'driver' => 'rabbitmq',
       'queue' => env('RABBITMQ_QUEUE', 'default'),
       'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,
   
       'hosts' => [
           [
               'host' => env('RABBITMQ_HOST', '127.0.0.1'),
               'port' => env('RABBITMQ_PORT', 5672),
               'user' => env('RABBITMQ_USER', 'guest'),
               'password' => env('RABBITMQ_PASSWORD', 'guest'),
               'vhost' => env('RABBITMQ_VHOST', '/'),
           ],
       ],
   
       'options' => [
           'ssl_options' => [
               'cafile' => env('RABBITMQ_SSL_CAFILE', null),
               'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
               'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
               'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
               'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
           ],
       ],
   
       /*
        * Set to "horizon" if you wish to use Laravel Horizon.
        */
       'worker' => env('RABBITMQ_WORKER', 'default'),
        
    ],

    // ...    
],

Langkah Selanjutnya adalah menginstall RabbitMq, Anda bisa mengunjungi halaman berikut https://www.rabbitmq.com/download.html untuk Installasinya. Kali ini kita gunakan docker untuk install rabbitmq di lokal, maka tingga jalankan command berikut:

docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

Setelelah itu Buat Template Email SendMailTemplate.php di app/Mail/SendMailTemplate.php dengan code berikut:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class SendMailTemplate extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * The content instance.
     *
     * @var content
     */
    protected $content;


    public function __construct($content)
    {
        $this->content = $content;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('templateEmail')
            ->with([
                'content' => $this->content
            ]);
    }
}

Setelah itu, buat viewnya pada folder resources/views dengan nama templateEmail.blade.php Isikan sebagai berikut:

{{ $content }}

Lalu buat MailController.php pada folder app/Http/Controllers dengan nama MailController.php

<?php

namespace App\Http\Controllers;

use App\Mail\SendMailTemplate;
use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
    public function sendEmail()
    {
        $email = request("email");
        Mail::to($email)->send(new SendMailTemplate("Halo"));
    }

    public function sendEmailQueue()
    {
        $email = request("email");
        Mail::to($email)->queue(new SendMailTemplate("Halo"));
    }
}

Tambahkan pada file routes/web.php. Routing atas adalah mengirim email secara syncronous tanpa menggunakan message broker, sedangkan yang bawah menggunakan message broker dengan queue driver yang kita set dengan rabbitmq.

Route::post('/mail', 'MailController@sendEmail');
Route::post('/mail-queue', 'MailController@sendEmailQueue');

Kemudian setting file .env pada bagian MAIL config, sesuaikan dengan mail server yang anda punya, saat ini kita gunakan smtp gmail , maka konfigurasinya sebagai berikut

MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL KAMU
MAIL_PASSWORD=PASSWORD GMAIL KAMU
MAIL_ENCRYPTION=ssl

Setelah itu jalankan “php artisan serve“. dan jalankan pula “php artisan queue:work”

Kemudian kita buka postman untuk mengetest kedua route tersebut.

Nampak perbedaan yang sangat signifikan antara post pertama dengan post kedua, karena post kedua menggunakan queue karena proses pengiriman email secara paralel. Sehingga ketika kita melakukan request belum tentu setelah mendapatkan response email berhasil terkirim.

Kalian bisa melihat hasil kodenya di https://github.com/agung3wi/laravel-rabbitmq

Demikian Merupakn artikel mengenai Implementasi Message Broker dengan RabbitMq dan Laravel.

Baca Artikel Kami Lainnya : Skill Set yang kalian harus pelajari jika ingin menjadi fullstack enginer zaman now

Message Broker: Apa dan Mengapa penting?

Secara bahasa Message Queue atau Message Broker dapat diartikan sebagai pesan terputus. Tujuannya, memecah proses pengiriman pesan dari aplikasi kita. Terdapat beberapa platform pendukung fitur ini yakni RabbitMQ, Apache Kafka, dan ActiveMQ (JMS). Dengan fitur ini, pengiriman pesan ke user tidak lagi menjadi synchronous. Artinya pengiriman pesan tidak perlu menunggu proses sebelumnya selesai.

Pentingnya Message Broker

Message broker akan mengubah skema business logic menjadi ‘asynchronous process’. Sebenarnya jika kita ingin menjalankan proses bussines logic dalam aplikasi secara synchronous tidaklah akan menjadi masalah, aplikasi akan tetap berjalan selama coding kita tidak error.

Contoh Kasus

Pada artikel ini, kita akan menggunakan contoh kasus pada suatu marketplace. Gambar berikut ini menunjukkan business logic dari suatu marketplace

Proses Order terdiri Authorization, Transaction (Insert Table Order, OrderItem, etc), kemudian send email & send notification. Setiap process berjalan secara berurutan, artinya proses harus menunggu proses sebelumnya selesai. Sayangnya, send email kerap kali memakan waktu yang lama sebab send email menggunakan protokol seperti SMTP/ POP3 dan perlu memanggil service yang lain.

Untuk mengurangi response time, kita dapat memecah proses ketiga dan keempat menjadi satu proses sendiri. Dengan hal ini, waktu pemanggilan service send email dan transaction dapat terjadi dalam waktu yang sama. Artinya, setelah transaction selesai, program hanya perlu mengirim message queue ke message broker. Kemudian Subscriber akan menangkap pesan tersebut dan melanjutkan ke proses selanjutnya. Dengan hal ini, waktu response time dapat meningkat.

Message broker bukan sebatas untuk send email saja. Masih banyak implementasi lain dari fitur ini. Dengan fitur ini, repsonse time akan menjadi lebih bagus. Namun, tetaplah berhati-hati dalam memecah business logic ya. Memecah pada proses yang salah, akan menyebabkan data dalam database kita tidak reliable.

Setelah mengenal fitur ini, semoga fitur ini juga dapat bertengger di aplikasimu ya. Cara menggunakan message broker dengan RabbitMQ akan diupload di artikel berikutnya ya!


Referensi : https://www.tibco.com/reference-center/what-is-a-message-broker

Benarkah NodeJS Akan Menggantikan PHP?

Web development semakin berkembang dari waktu ke waktu. Teknologi baru selalu bermunculan setiap harinya. Dari sisi back-end, terdapat dua bahasa pemrograman yang cukup mendominasi yaitu NodeJS dan PHP. PHP yang menjadi tulang punggung duni per-website-an diprediksi akan tergerus NodeJS yang merupakan pemain baru. Mampukah PHP tertap bertahan? Atau justru NodeJs akan berhasil menggantikan PHP?

Pembahasan ini sebenarnya cukup “keramat” untuk diperbincangkan. Meskipun, pada awal kemunculannya Javascript hanya pada sisi front end,lambat laun merambah ke back-end dan menjadi kompetitor tangguh bagi PHP. Terlebih beberapa artikel pergeseran teknologi dari PHP ke NodeJS beberapa kali ter-blow up. Bukan hanya dalam negeri, artikel seperti “Which is better for back-end – PHP or Node js?” , “Is Node js killing PHP?” atau “Is NodeJS eating PHP Market?” sering menjadi topik perbincangan developer luar negeri.

Sebagian orang akan mengganggap hal ini sebagai keuntungan. Tipe-tipe ini biasanya vendor besar yang sering mendapat ‘jatah’ project dari pemerintahan. Namun, tentu saja tidak sedikit yang akan menganggap hal ini menjadi malapetaka, karena project mereka akan otomatis berpindah tangan ke vendor yang lebih mampu. Jelas hal ini sebenarnya konsep yang salah kaprah. Jika ada teknologi baru yang lebih baik, mengapa tidak memilih yang lebih mudah?. Namun, benarkan NodeJS lebih baik dari PHP? Dan apakah PHP akan terus tergerus NodeJS? Sampai-sampai WordPresspun akan berpindah haluan ke NodeJS.

NodeJS VS PHP

PHP merupakan bahasa pemrograman paling umum yang dalam pengembangan webiste. Bahasa pemrograman ini dapat berperan sebagai compiler sekaligus interpreter. PHP pertama kali rilis pada tahun 1995. Saat ini versi terbaru PHP adalah 7.0.16 dan 7.1.2 yang resmi rilis pada tanggal 17 Februari 2017.

Nah, NodeJS sebenarnya bukan merupakan bahasa pemrograman. Jadi, salah jika seseorang mengatakan bahasa pemrograman NodeJs. NodeJS merupakan suatu framework yang akan membawa bahasa pemrograman JavaScript ke sisi back-end. Untuk dapat menggunakan NodeJs kita harus paham bahasa pemrograman.

Dari segi popularitas, NodeJS lebih unggul dari PHP. Sejak 2014 Framework NodeJS merajai kepopuleran bahasa pemrograman dengan angka 49,6% jauh melebihi PHP. Apa keuntungannya? Semakin populer suatu framework maka semakin dokumentasi akan semakin banyak. Hal ini akan mempermudah kita ketika mengalami kendala pengembangan proyek.

Sumber : stackoverflow.com

Sebaliknya, tingkat pengguna bahasa pemrograman PHP semakin berkurang dari waktu ke waktu. Tingkat penurunan yang terjadipun cukup signifikan yakni mencapai 7% .  Di sisi lain , pengguna NodeJS meningkat tajam 18% selama 4 tahun. Dengan ini, terbukti bahwa developer-developer website mulai beralih ke NodeJS

Sumber : stackoverflow.com

Selama proses development, PHP memerlukan web server. Meskipun server ini merupakan bawaan, namun hal ini akan memakan banyak resource server. Penggunaan server tambahan  seperti nginx tetap diperlukan untuk meningkatkan performa kecepatan PHP. Sebaliknya, NodeJS merupakan tipe single-fighter yang mampu berdiri sendiri tanpa memerlukan web server lain. NodeJS memiliki waktu eksekusi yang lebih baik dari PHP terutama dalam penambahan angka. Namun PHP memiliki waktu eksekusi yang lebih baik dalam hal operasi string, pengisian array, MySQL, dan membaca file.

Sumber : blog.teknosejahtera.co.id

Perfoma NodeJS vs PHP

Untuk kasus multi-tasking, NodeJS jauh lebih handal daripada PHP. Misal kita memiliki dua task yakni mengambil data dari database, dan menghapus file. Jika kita menggunakan PHP, proses ini akan dilakukan berurutan. Hapus file akan dilakukan setelah pengambilan data selesai. Namun, jika kita menggunakan NodeJS kedua hal ini dapat dilakukan bersamaan. Hasilnya, bisa jadi file terhapus duluan sebelum pengambilan data selesai.

sumber : Sebuah Seni Menerapkan “Clean Code”

Hal ini tidak berlaku untuk multithread. NodeJS menggunakan konsep single thread, artinya hanya akan ada satu proses yang berjalan sepanjang waktu, berbeda dengan PHP yang berbasis multi-threaded. Misal terdapat empat orang mengunjungi web kita. Dalam PHP, proses ini dibuat empat thread dimana setiap pengunjung dilayani oleh 1 thread khusus. Setiap thread akan diproses dengan sistem antrian seperti sebelumnya. Sedangkan di Node.js, empat pengunjung itu akan di layani oleh 1 thread saja. Thread secara bergantian berpindah dari satu proses ke proses lain tanpa harus menunggu proses yang satu selesai.

Sumber : quora.com

Sanggupkah NodeJS Menggantikan PHP?

Sampai saat ini, kita belum bisa menyimpulkan bahwa NodeJS akan menggantikan PHP. Penggunaan NodeJS dan PHP sangat bergantung pada jenis aplikasi yang akan kita kembangkan. Pada akhirnya yang terjadi antara NodeJS dan PHP bukanlah kompetisi melainkan sinergi. Sebagai contoh, untuk project yang bersifat real-time, NodeJS lebih cocok untuk dipakai. Sebaliknya,  tidak semua hosting mendukung NodeJs, saat itulah kita harus memilih menggunakan PHP.

Selamat bereksplorasi ! #HappyEnjoyneering!