Belajar Ionic – Aplikasi Pertama

Ionic menyediakan 3 template aplikasi. 2 template yang siap dipakai dan 1 template blank. Untuk memulai kita cukup masuk ke folder dimana aplikasi ingin kita install dan jalankan perintah ini dari command prompt.

$ ionic start myApp tabs

 

Dimana myApp adalah nama aplikasinya dan tabs adalah nama Templatenya. Berikut adalah perintah untuk masing-masing template.

Template Ionic

 

Lalu jika ingin melihat hasilnya di Browser kita maka kita cukup menjalankan perintah berikut di folder myApp tadi.

$ ionic serve

Mari kita coba mengubah sedikit aplikasi starternya. Masuk ke source code dari myApp/www/templates/tab-dash.html lalu ubah codingnya menjadi

<ion-view title="Dashboard">
  <ion-content class="padding">
    <h1>Aplikasi Ionic Pertama</h1>
  </ion-content>
</ion-view>

Perhatikan bahwa begitu kita save maka Aplikasi kita di Browser akan berubah seketika.

Inilah aplikasi sederhana pertama menggunakan Ionic. Masih banyak yang bisa diexplore dan mungkin akan saya bahas di lain kesempatan.

 

Belajar Ionic – Installasi

Setelah memutuskan untuk menggunakan Ionic sekarang saatnya memulai dengan Installasi. Hal pertama yang dilakukan adalah memperhatikan Situs resminya Ionic. Jujur tampilan dan showcasenya memukau tetapi saat masuk ke start pagenya ternyata banyak sekali dependencies yang harus dipelajari!

Daftar Installasi dari Get Started Pagenya Ionic

 

Cordova/Phonegap sudah sangat jelas harus dipelajari tetapi rasanya cukup sulit jika harus juga menginstallasi Node.js, AngularJS selain Android SDK/iOS SDK. Untungnya pada Video Raymond Camden, dia memperlihatkan sebuah Alternatif installasi yaitu menggunakan Vagrant.

Vagrant menggunakan Virtual Box untuk mensetup Development Environment dari Box yang sudah disediakan oleh orang lain. Dalam pemahaman saya, sebuah Box itu identik dengan Image/ISO dan didalamnya sudah ada semua kebutuhan untuk mulai Development. Dalam hal ionic-android Box sudah langsung memiliki

  • Node.js
  • Git
  • Java SDK 7 update 65 (OpenJDK7)
  • Apache Ant
  • Android SDK
  • Cordova
  • Ionic Framework
  • Expect

Konsep ini membuka mata saya terhadap kemungkinan-kemungkinan lain. Saya bisa menggunakan banyak Box dan hanya mengaktifkan saat dibutuhkan. Hal yang mirip saat ini saya lakukan dengan services di Windows dimana saat saya sedang tidak menggunakan ColdFusion / SQL Server / Oracle maka servicenya tidak saya nyalakan. Walaupun cara itu juga bagus tetapi kenyataannya mungkin ada servis atau proses-proses yang nyala yang menghabiskan resources. Dengan menggunakan Vargrant/VM saya cukup menyalakan VM yang saya butuhkan saja dan mengatur berapa HD, Memori dan Processor yang saya alokasikan. Kekurangannya kita akan membutuhkan resource lebih banyak untuk OS dll milik si VM.

Walau secara teori terdengar sangat mudah namun prakteknya banyak hambatan, yaitu:

  • Vargant membutuhkan waktu untuk download Box, dengan koneksi internet 100-150 kbps ini bisa memakan 5 jam (maklum, Imagenya ukurannya 2.5 GB)
  • Berkali-kali mencoba meng-up kan Vargant tetapi terhenti di VM is Booting Up, entah apa masalahnya dan akhirnya harus menghabiskan waktu mencari solusi untuk mengendalikan Virtual Box dan tetap gagal

Karena sudah menghasibkan 1.5 hari untuk mencoba-coba dan tetap gagal, akhirnya saya memutuskan untuk menginstallasi masing-masing komponent secara manual. Ternyata lebih cepat dan tidak terlalu sulit (walaupun masih penasaran ingin lakukan development di VPN lokal).

Di situs resmi ada tutorial bagus untuk installasi Ionic di Windows ditambah SDK Android. Dan Videonya juga mudah diikuti.

Singkatnya, untuk Installasi Ionic saja (tanpa kebutuhan Builder) bisa dilakukan dalam 2 langkah mudah:

  1. Installasi Node.js
  2. Jalankan perintah berikut dari Command Prompt
npm install -g cordova ionic

Dan jika menggunakan Mac, tambahkan sudo di depan

sudo npm install -g cordova ionic

Akhirnya selesai Installasi dan akhirnya bisa ke bagian serunya. CODING!

Belajar Ionic – Pendahuluan

Saya baru menyelesaikan Dasar Logic Security dan CRUD Aplikasi InSys2 (Internal System milik Kantor) menggunakan Framework ColdBox berbentuk REST API. Untuk Akses ke APInya sendiri saat ini di kantor menggunakan extJS. Rasanya sekarang sudah saat yang tepat untuk berpikir ke arah selanjutnya yaitu penerapan ke Mobile.

Awal tahun saya sempat membandingkan antara Cordova/Phonegap dan Appcelerator/Titanium. Dan saat itu saya memutuskan untuk menggunakan Appcelerator. Tetapi seiring waktu saya perhatikan bahwa salah satu Guru Online saya, Raymond Camden aka ColdFusion Jedi, sering posting mengenai Phonegap dan betapa mudahnya membuat aplikasi cantik dengan Framework Ionic. Dan kebetulan pada saat Logic Dasar InSys2 selesai Raymond Camden memposting Video di Blognya saat memberikan Presentasi di NCDevCon.

Dalam Video berdurasi 45 menit tersebut, Ray memperlihatkan betapa mudahnya membuat aplikasi dengan Ionic dan ini membuat saya memutuskan untuk mencoba belajar Ionic di Waktu Senggang saya.

Saya kira mudah, ternyata saya salah

Agar pengalaman saya bisa bermanfaat untuk orang banyak, akhirnya saya memutuskan untuk mendokumentasikan perjalanan saya dari mulai Installasi sampai akhirnya sebuah App sederhana bisa saya selesaikan.

Apakah perlu dipertanyakan, “Bahasa Pemograman Mana Yang Terbaik?”

Saya pengguna ColdFusion selama hampir 8 Tahun dan sering ditanya “Kenapa sih menggunakan ColdFusion?”. Bukannya lebih baik pakai PHP/ASP/VB.NET/[Masukkan bahasa pemograman pilihan kamu]. Dan saya selalu menjawab bahwa ColdFusion lebih bagus karena ini dan itu dan akhirnya menjadi Debat.

Programming Languages
Programming Languages

Jadi mari kita coba telusuri lebih jauh pertanyaan ini. Tidak, saya tidak akan membahas jawaban dari pertanyaan tersebut karena tidak akan ada habisnya tetapi saya akan mengajak para pengunjung untuk membahas pertanyaannya sendiri “Bahasa Pemograman mana yang terbaik?” dengan tujuan sebagai masukkan untuk para calon-calon pemogram mahir di masa yang akan datang.

Sewaktu saya masih Kuliah saya giat sekali untuk belajar bahasa pemograman, saya coba bahasa Assembly, Pascal, Visual Basic, ASP, C, C++, dll. Semuanya dicoba, semuanya dicari bukunya, dicari pengetahuannya. Dan selalu saja saya berusaha menjawab pertanyaan “Bahasa Pemograman mana yang terbaik?” atau lebih tepatnya

Bahasa Pemograman mana yang terjamin digunakan di Dunia Kerja nanti?

Nah, saya coba berikan sebuah Analogi dengan menghapus kata “Pemograman” dari “Bahasa Pemograman”. Kita semua menggunakan Bahasa, saat ini saya menulis dengan Bahasa Indonesia. Saya mampu berbicara Bahasa Inggris daBahasa Jerman. Anggaplah pada saat saya lahir saya berpikir

Bahasa mana yang terbaik? Dan saya akan Bisu sampai saya mendapatkan jawaban!

Repot bukan? Anggaplah saya menemukan jawabannya pada saat saya berumur 12 tahun dan mengatakan bahasa Jepang adapah yang terbaik dan pada umur tersebut barulah saya mencoba untuk belajar bahasa Jepang. Siapapun pasti akan keteteran! Tetapi jika sejak kecil saya pelajari bahasa apapun yang telah diberikan kepada saya karena Takdir, contohnya bahasa Indonesia, maka belajar Bahasa Jepang ga susah-susah amatlah. Kita sudah memiliki kosa kata, sudah mengerti cara merangkai kalimat, sudah mengerti cara menyampaikan keinginan kita, tinggal diubah menjadi bahasa Jepang. Salah-salah dikit wajarlah, tetapi tidak akan se-ngaco orang yang baru pertama kali mempelajari bahasa. Atau misalnya, Ibu kalian memberikan pertanyaan dalam bahasa Inggris dan kalian menjawab “Saya menolak menjawab dengan Bahasa Inggris yang lebih rendah”. Bisa sih, bisa di-Tabok.

Sekarang kita kembalikan ke Topic “Bahasa Pemograman”. Kesalahan utama para pelajar muda, apalagi yang baru mulai mengenal bahasa pemograman, adalah terlalu banyak bertanya dan terlalu sedikit bertindak. Sewaktu Kuliah saya masih diajarkan Pascal di Kampus dan saya berusaha tidak mengeluh bilang bahwa bahasa Pascal sudah tidak dipakai dimana-mana. Setelah itu saya mendapatkan pelajaran Visual Basic, ternyata konsep pemograman sama aja. Ada Syntax, ada Expression, dll. Dari Desktop Programming pindah ke Web Based saat mempelajari PHP. Cara menampilkan informasi berbeda, konsepnya Server-Client. OK, tetapi konsep pemogramannya tetap sama. Ada Syntax, ada percabangan, ada Expression. Dan pada saat bekerja diberikan ColdFusion, pertanyaan pertama saya “Apa pula ini?” tetapi terima saja. Dan ternyata saya bisa, karena memiliki Basic Pemograman sebelumnya.

Sekarang jika ada yang berikan bahasa pemograman baru ke saya, baik itu LUA, Objective-C, Java, saya pasti akan lebih cepat menguasainya dibandingkan yang tidak pernah mempelajari Bahasa Pemogramannya. Dan jika kita menghayati pastinya semakin cepat bisa menguasainya.

Kalau masuk ke Forum, saya seringkali melihat pertanyaan. “Saya ingin bikin aplikasi X lebih bagus pakai bahasa A atau bahasa B?”. Kalau yang Fanboy pasti akan membela bahasa masing-masing dan akhirnya jadi Debat, tetapi sesekali akan ada beberapa Programmer Senior yang memberikan Jawaban, “Kamu coba aja dulu rasakan sendiri, yang penting itu memulai dan menceburkan diri.”

Semoga sedikti ulasan saya ini bisa bermanfaat buat yang baru mau terjun ke Dunia Pemograman atau yang baru mendapatkan Project baru dan perlu membuat keputusan.

Menjadi Manager atau Specialist?

Dulu saya sempat berdiskusi dengan Senior di tempat saya bekerja , diawali karena saya menceritakan keinginan saya untuk Kuliah S2 dibidang IT serta mengikuti seminar-seminar ilmu IT terbaru. Lalu dia mencoba menchallenge saya, untuk apa belajar ilmu tersebut? Memangnya akan kamu gunakan? Dari situ ia mulai menjelaskan bahwa saya harus bisa membuat keputusan untuk menjadi seorang Manager kelak atau seorang Specialist.

Mana yang lebih cocok untuk saya? Menjadi Manager atau Specialist?

Jawaban pertanyaan tersebut akan berbeda untuk setiap orang dan harus dimulai dengan menjawab pertanyaan-pertanyaan lain sebelumnya.

Seorang Manager harus mampu memanage (sesuai namanya), melakukan komunikasi baik keatas maupun kebawah,  mengeluarkan kemampuan tersembunyi dari Staffnya bersamaan dengan menekan kekurangan mereka. Untuk melakukan hal ini dibutuhkan skillset yang berbeda dengan menjadi Teknisi/Specialist.

Sebagai contoh jika di suatu perusahaan IT, programmer yang paling pintar dijadikan Project Manager belum tentu kepintaran dia bercoding menjadikan dia Project Manager yang baik. Bisa jadi dia justru akan gagal karena tidak mampu melakukan Project Management dengan baik. Diperlukan kemampuan untuk menjaga Timeline, mempush User/Klient serta menjaga Ekspektasi mereka, menjaga produktifitas Staff, dll. Seluruh Skill tersebut tidak berhubungan langsung dengan coding. Kebanyakan Skill ini memerlukan kita untuk dapat berkomunikasi dengan baik sehingga orang introvert mungkin kurang cocok menjadi Manager.

Banyak yang beranggapan kalau sudah menjadi Manager itu lebih baik atau bahkan bisa mendapatkan Gaji lebih besar, tetapi jangan salah, menjadi Specialist atas ilmu yang belum dikuasai banyak orang bisa memberikan harga yang sangat tinggi. Contohnya dibagian Pengeboran dimana pekerja kontrak dengan ilmu-ilmu kebumian dinilai sampai ratusan juta. Tetapi mereka ada di posisi dimana harus selalu mengembangkan diri. Apalagi bila berhubungan dengan technologi. Seorang Web Programmer/Designer Specialist untuk dapat memberikan harga yang tinggi harus tetap up-to-date dengan ilmu-ilmu terbaru. Cocok untuk mereka yang selalu ingin belajar hal baru.

Saya sih pasti tidak mau bayar tinggi Freelancer/Contractor yang hanya punya skill pas-pasan. Tetapi jika dia punya Portfolio yang memukan dan skill yang tinggi tentu saya berani bayar mahal.

Tetapi apakah Manager berarti harus putus hubungan dengan ilmu Technical?

Alasan saya Enggan menjadi Manager dulu karena takut nanti tidak lagi bisa belajar coding sedangkan saya sangat cinta dengan dunia IT dan Coding. Kenyataannya saya masih dapat belajar dan mencoba-coba hal baru di posisi manager bahkan bisa membuat project-project baru dengan ilmu yang dipelajari tersebut.

Jadi saran saya:

Jika ingin menjadi Manager harus menguasai management dan people skills. Mungkin terdengar boring tetapi posisi manager lebih banyak memiliki waktu luang untuk belajar maupun untuk keluarga. Cocok untuk yang memiliki people skills dan managing skills.

Jika ingin menjadi Specialist harus selalu mengembangkan diri. Jadilah yang terdepan dengan ilmu-ilmu terbaru agar kita dapat tetap memberikan harga tinggi atas kemampuan kita. Tetapi sebagai akibatnya waktu kita menjadi terbatas, kita harus Bekerja + mengembangkan diri. Cocok untuk yang Introvert atau gemar mempelajari ilmu-ilmu baru.

Pilih bekerja di Perusahaan Besar atau Kecil?

Pada saat berkarir sedang berkarir mungkin pembaca akan mencapai suatu titik dimana harus membuat pilihan apakah lebih baik bekerja di perusahaan besar atau di perusahaan kecil. Masing-masing memiliki kelebihan dan perlu dilakukan pertimbangan yang matang.

Saat dulu mencapai titik dimana harus membuat pilihan, saya menemukan sebuah pertanyaan bagus yang menjadi dasar pengambilan keputusan saya

Mana yang lebih baik? Menjadi Ikan Besar di Kolam Kecil atau menjadi Ikan Kecil di Kolam Besar?

Kolam mana yang cocok?
Kolam mana yang cocok?

Kita ibaratkan Perusahaan adalah Kolam dan kita sebagai Ikan.

Bekerja di Perusahaan Kecil memberikan kesempatan memaksa kita untuk Tumbuh dengan cepat. Job Description belum jelas atau kurangnya Pegawai bisa menjadi alasan dimana satu orang bisa diminta untuk melakukan berbagai hal ataupun multiple Job Description. Walaupun ini terasa mengambil keuntungan dari keluguan pegawai, menurut saya ini adalah kesempatan yang baik untuk tumbuh. Apalagi bagi Fresh Graduate yang Daya Tangkapnya masih cepat.

Turn Over pegawai besar dan kesempatan Promosi juga lebih terbuka. Dalam waktu beberapa bulan saja bisa seseorang diminta untuk menggantikan pegawai yang sudah resign. Dan jalur Komunikasi di perusahaan jauh lebih cepat karena orangnya hanya sedikit. Pemberian kenaikan Gaji dan Bonus juga lebih Royal sebagai usaha menjaga Karyawan tetap bertahan.

Tetapi disisi lain masih ada kemungkinan tidak stabilnya perusahaan. Bulan ini menerima Bonus besar, bulan berikutnya Gaji terpaksa dipotong karena Bisnis sedang kurang baik.

Berbeda dengan bekerja di perusahaan besar. Jika belum ada Training Map maka Pegawai diharapkan sudah membawa knowledge yang siap pakai. Job Description sudah sangat jelas, ini sangat bagus untuk stabilitas dan memastikan kita tidak diberi pekerjaan lebih. Turn Over lebih rendah yang menyebabkan kesempatan Promosi kecil (apalagi jika Perusahaan memiliki kebijakan untuk hiring External untuk posisi-posisi tinggi). Kenaikan Gaji dan Bonus tidak fexible, semuanya sudah menggunakan perhitungan yang matang karena kenaikan ini akan memperhitungkan peta bisnis, jumlah karyawan, dll. Dan ada masalah pada Jalur Komunikasi dimana Birokrasi panjang adalah hal yang harus kita biasakan.

Mungkin ada beberapa yang merasa sudah sangat mampu untuk bekerja di perusahaan besar dan saya hargai pendapat tersebut. Kondisi akhir yang ideal adalah mencapai posisi yang tinggi di perusahaan yang besar. Tetapi mencapai posisi tersebut tidak bisa dengan Instant, saya mengenal beberapa orang yang berada di posisi tinggi di suatu perusahaan besar setelah bekerja secara Loyal disana selama 15-20 tahun.

Saran saya adalah memulai karir di perusahaan kecil yang memiliki karir path yang baik (jangan perusahaan keluarga dengan kecenderungan nepotisme). Usahakan untuk dapat cepat bersinar dan dipromosikan ke posisi managerial. Setelah itu baru mulai mencari-cari pekerjaan di perusahaan besar. Atau dengan kata lain

Tumbuhlah menjadi Ikan Besar di Kolam yang kecil lalu saat anda sudah mulai terlihat tidak lagi dapat berkembang, mulailah mencari Kolam yang lebih besar

Tentunya ini bukan harga mati untuk sukses. Yang terpenting dimana pun anda bekerja berikan komitmen 100% dan buatlah prestasi anda diperhatikan.

Kebangkitan Fithbiz.com ?

Tahun 2008 situs Fithbiz.com dibuat dan 5 tahun kemudian sudah saatnya situs ini disegarkan, sepertinya kata-kata yang lebih cocok adalah dibangkitkan dari kubur. Tapi sebelum kita membangkitkan yang sudah mati suri ada baiknya kita mulai dengan sedikit sejarah dari situs ini.

Awalnya dua sahabat yang bersama-sama kuliah di USNI, yaitu Julian GM Alimin (Saya) dan Abdi Wisesa ingin mencoba membuat situs. Ambisinya sih sederhana, ingin dapat duit dari AdSense. Kalau diingat-ingat tujuan mendapatkan uangnya juga sederhana, buat Nikah. Nama Fithbiz ini juga berasal dari kepolosan masa kuliah, saat kuliah kita suka main Counter Strike dan dari kata-kata Fire in The Hole muncullah sebutan FITH. Rasanya seperti masa kehidupan yang lain.

Karena fith.com sudah ada yang punya dan saat pemiliknya dihubungi mereka mengatakan Not for Sale maka setelah memutar otak kita membeli domain fithbiz.com. Dan agar ga kelihatan Norak kita bilang kalau itu singkatan dari Free IT Help. Walaupun itu terdengar janggal, ngakunya Free tapi ada Biz yang berasal dari kata Biznis/Bussiness. Entah apa yang kita pikirkan saat itu.

Dulu kita buat Komitmen, pokoknya per minggu harus posting 5. Yang setelah beberapa minggu menjadi 2. Dan akhirnya gagal. Terhitung hari ini Saya berhasil posting 6 dan Abdi 26. Sorry Abdi :P. Jenis Komitmen StartUp ini saya namakan Komitmen H2TA atau dikenal sebagai Hangat-hangat Tahi Ayam (kalau hangatnya habis maka yang bersisa adalah?). Semoga tidak semua StartUp yang saya ikuti berakhir seperti ini.

Sudah 5 tahun berjalan sedangkan Hosting dan Domain dibayar terus. Kenapa? Saya mendapatkan penawaran yang murah dulu, bayar 696rb setahun dan mendapatkan 25GB Space dan 250GB Bandwidth dan situs personal saya julianalimin.com juga nebeng disini. Tapi sayang kalau situs ini tidak berlanjut jadi saya putuskan untuk mencoba menjalankan lagi Situs ini, tapi dengan ambisi dan arah yang berbeda.

Situs yang dulu dibuat dengan Bahasa Inggris karena masalah Adsense tadi. Versi 2 ini ingin saya buat dalam Bahasa Indonesia karena beberapa alasan (Audiencenya, Pengalaman yang saya share mungkin sudah diulas dalam Bahasa Inggris, dan rasa malas menterjemahkan ke Bahasa Inggris).

Dulu berharap bisa kaya raya dari AdSense, sampai-sampai bisa berhenti bekerja di Kantor dan hanya nulis-nulis santai di rumah, sekarang saya ingin membagi pengalaman-pengalaman saya saja. Pengalaman apa yang bisa saya share? Pengalaman-pengalaman saya bekerja di DataOn selama 7 tahun (dan masih bertambah), yaitu mengenai Management, Project Management, IT, Coding, DBMS, dll.

Agar benar-benar fresh maka saya buat WordPress Blog yang baru dengan alamat http://fithbiz.com/v2, situs yang lama masih bisa diakses di http://fithbiz.com/press. Settings dan Themes saya biarkan di default saja dan hanya melakukan installasi Plugins yang menurut saya harus ada. Sambil jalan pelan-pelan akan saya tentukan arah dari situs ini tapi yang penting bisa mulai belajar berjalan dahulu.

Semoga situs ini tidak hanya bangkit dari kubur agar bisa mati suri lagi setelah beberapa bulan/minggu (seperti yang sudah-sudah).