Beberapa hari yang lalu, penulis iseng - iseng lihat sebuah framework node js yang katanya sedang naik daun. Awalnya penulis agak bingung karena di tutorialnya dijelaskan mulai dari server dan client bisa dijadikan menjadi 1 project tanpa perlu bantuan API. Selama ini, penulis biasanya akan membuat API terlebih dahulu lalu membuat client untuk dapat melakukan akses API tersebut, biasanya client yang digunakan adalah angular js atau vue js. Berbeda dengan meteor, dimana client yang terdapat di dalam project meteor dapat langsung memanggil method yang berada pada server.
Apa Itu Meteor ?
Meteor adalah sebuah platform yang dibangun di atas Node JS untuk membuat aplikasi web real-time.
Karena meteor dibangun diatas node js maka kita dapat membuat aplikasi server dan client. Meteor js mendukung beberapa templating yang dapat kita gunakan yaitu Blaze, Angular js (1), Angular 2 dan React. Pada artikel kali ini, penulis akan mencoba membahas mengenai templating blaze, mengapa demikian ? dikarenakan jika anda menggunakan templating seperti angular js maka anda wajib mengerti terlebih dahulu cara kerja angular js :D. Mulai dari server hingga client, kita akan menggunakan bahasa pemrograman javascript, dan javascript yang akan kita gunakan adalah ES6, tapi browser kita masih menggunakan ES5 gimana dong ? tidak perlu khawatir karena meteor akan secara otomatis melakukan convert dari ES6 menjadi ES5.
Instalasi Meteor Dan Setup Project
Jika anda penggunakan keluarga GNU/Linux maka bersyukurlah karena instalasi meteor sangatlah mudah, silahkan jalankan perintah berikut untuk melakukan instalasi meteor.
Bagi anda pengguna windows silahkan download installernya di install meteor. Jika berhasil, maka akan muncul output seperti berikut.
Oke, tahap selanjutnya kita akan mencoba membuat project sederhana dengan menggunakan meteor. Project yang akan kita buat adalah aplikasi chatting sederhan dengan menggunakan meteor, template yang akan kita gunakan adalah blaze. Silahkan jalankan perintah berikut untuk membuat project dengan menggunakan meteor.
Maka secara otomatis, meteor akan membuat sebuah project dengan nama Belajar-Meteor. Lalu akses folder project dengan menggunakan terminal anda. Lalu jalankan perintah berikut untuk menjalankan project yang telah kita buat.
Maka akan muncul output berikut pada terminal anda.
Silahkan akses http://localhost:3000/
pada browser anda, jika berhasil maka akan muncul output seperti berikut.
Menambah Package Dan Mengatur Tampilan
Meteor telah menyediakan banyak package, package yang anda perlukan dapat anda temukan di Atmosphere. Pada artikel kali ini, kita akan mencoba menggunakan bootstrap 4 untuk memperindah tampilannya, karena bootstrap 4 masih alpha maka mereka masih banyak menggunakan scss sebagai css preprocessor mereka. Untuk dapat menggunakan package sass, silahkan akses folder project anda kembali lalu jalankan perintah berikut untuk menghapus standard minifier css.
Lalu jalankan tambahkan package minifier autoprefixer dengan perintah.
Tahap selanjutnya, tambahkan package sass yang kita butuhkan dengan perintah.
Silahkan rename file main.css
menjadi main.scss
yang terdapat di dalam folder client, lalu masukkan codingan seperti berikut.
Codingan diatas berfungsi untuk melakukan import bootstrap ke project meteor yang telah kita buat. Kemudian silahkan buka file main.js
yang ada di folder client, dan ubah codingannya menjadi seperti berikut.
Jika tadi kita telah melakukan import library bootstrap dengan extensi scss, maka untuk melakukan import bootstrap dengan extensi js cukup dengan melakukan import pada file main.js
. Lalu buka file main.html
dan ubah codingan htmlnya menjadi seperti berikut.
Langkah selanjutnya, silahkan buat folder imports/ui/
kemudian buatlah 2 file di dalam folder tersebut yaitu chat.js
dan chat.html
. Meteor tidak memiliki suatu struktur folder yang disepakati maka oleh karena itu, anda dapat membuat struktur project berdasarkan keinginan anda. Folder imports/ui
adalah folder untuk semua codingan bagian client, dimana nantinya file - file yang ada disini akan kita import ke file main.js
yang berada pada folder client
. Buka file chat.js
kemudian masukkan codingan seperti berikut.
Kemudian untuk file chat.html
silahkan isikan codingan seperti berikut.
Kemudian silahkan akses browser anda, dan hasilnya akan muncul seperti berikut :D.
Membuat Collections
Secara default, meteor menggunakan database mongodb. Apakah kita diharuskan melakukan instalasi mongodb ? jawabannya adalah tidak, dikarenakan secara default meteor telah membuat database mongodb di dalam folder project anda. Jika anda buka folder .meteor
yang di hidden maka anda dapat melihat bahwa database mongodb terdapat di dalam folder local/db
seperti gambar berikut.
Collection disini sebenarnya adalah sesuatu yang sederhana, dimana collection ini sama seperti tabel jika kita berada pada database yang berbasis RDBMS, hanya saja collection disini berbeda dengan pada tabel biasa dimana collection ini dapat kita gunakan tanpa perlu mendefinisikan column apa saja yang akan kita gunakan. Pada tutorial ini, kita akan menggunakan 4 column yang berada pada collection chats
diantaranya adalah:
- id : string
- nama : string
- pesan : string
- waktu : date
Langkah selanjutnya silahkan buat folder imports/api
kemudian buat sebuah file chats.js
lalu tambahkan codingan seperti berikut.
Codingan diatas berfungsi untuk membuat sebuah collection chats, kemudian kita lakukan export agar dapat digunakan oleh file javascript yang lain. Lalu silahkan buka file main.js
yang berada pada folder server
lalu ubah codingannya menjadi seperti berikut.
Codingan diatas berfungsi untuk melakukan insert data jika data yang terdapat di dalam collection chat tidak tersedia. Hal ini kita lakukan untuk melihat data yang akan kita tampilkan nantinya. Lalu buka kembali file chat.js
dan ubah codingannya menjadi seperti berikut.
Codingan diatas berfungsi untuk mengambil data chat, dimana data chat ini akan bersifat realtime, mengapa demikian ? dikarenakan kita melalukan akses data tersebut berada di dalam method helpers
milik meteor, data tersebut akan tersimpan di dalam variabel chats
. Kemudian silahkan buka file chat.html
lalu ubah codingannya menjadi seperti berikut.
Jika berhasil, maka outputnya akan seperti berikut.
Membuat Forms Dan Events
Untuk membuat form sama seperti membuat form biasa, kita dapat melakukan submit, click dan sebagainya. Pada tutorial kali ini, penulis ingin menggunakan fungsi submit pada form untuk mengirim pesan. Untuk mendeteksi adanya event submit dari user maka kita harus menggunakan attribut id atau class yang ada pada html, penulis akan menggunakan attribut id untuk membuat event submit. Silakan buka file chat.html
yang berada di dalam folder imports/ui
kemudian ubah codingannya menjadi seperti berikut.
Bisa kita lihat bahwa codingan diatas terdapat id form-kirim-pesan yang nantinya akan kita gunakan untuk mendeteksi event submit sebuah form, dan deklarasikan nama setiap text input agar kita dapat mengambil data dari inputan tersebut. Langkah selanjutnya silahkan buka file chat.js
yang berada di dalam folder imports/ui
lalu ubah codingannya menjadi seperti berikut.
Nah disini kita mendeklarasikan event submit untuk id form-kirim-pesan
, kemudian untuk mengambil inputan dari user, kita dapat menggunakan variabel event.target
, setelah mendapatkan valuenya, value tersebut kita simpan ke dalam collection yang telah kita buat. Silahkan anda jalankan kembali project yang telah anda buat, jika berhasil silahkan jalankan di 2 browser, misalnya disini penulis menjalankan di 2 browser yang berbeda yaitu di chromium
dan firefox developer
berikut adalah hasilnya.
Deploy Aplikasi Meteor Ke OpenShift
Melakukan deploy aplikasi meteor merupakan sesuatu yang lumayan susah, mengapa demikian ? dikarenakan beberapa hosting tidak menyediakan support untuk meteor. Penulis beberapa kali mencari referensi, termasuk ke heroku akan tetapi repository yang dapat kita gunakan rata - rata masih belum mendukung meteor 1.3, ada yang mendukung tapi kita diwajibkan untuk melakukan verifikasi kartu kredit. Akhirnya, setelah lama mencari referensi, OpenShift merupakan pilihan yang tepat karena didukung oleh repository dan ketersediaan database mongodb :D. Bagi anda yang belum melakukan konfigurasi OpenShift bisa dilihat di artikel belajar membuat cloud storage dengan owncloud.
Untuk melakukan deploy project meteor ke OpenShift, kita akan menggunakan repository meteor-openshift milik om jeeeyul. Tahap pertama adalah, kita akan membuat cartridge baru pada OpenShift dengan perintah.
Jika berhasil maka akan muncul output seperti berikut.
Lalu silahkan akses folder belajarmeteor
lalu jalankan perintah berikut untuk menghapus konfigurasi openshift.
Kemudian jalankan perintah berikut untuk fetch meteor bundle.
Jika terjadi warning seperti ini.
Maka jalankan perintah pull seperti berikut.
Jika sudah, silahkan akses kembali directori folder project meteor anda, lalu jalankan perintah
Berikut adalah contoh jika penulis menggunakan perintah diatas.
Langkah selanjutnya silahkan akses lagi folder repository openshift anda, lalu jalankan perintah berikut untuk melakukan deploy ke openshift.
Jika sukses maka akan muncul output seperti berikut di terminal anda.
Berikut adalah output dari aplikasinya.
Aplikasi chat sederhana dapat anda akses di https://belajarmeteor-mufrizal.rhcloud.com/. Untuk source code nya silahkan lihat di belajar meteor. Sekian artikel mengenai belajar meteor dan terima kasih :)