NSQ is a real-time distributed messaging platform developed in bit.ly. It’s relatively easy to install and use and my current company heavily use it in production.
NSQ middleware will enhance NSQ flexibility in handling consumed messages. It allows us to add custom handlers that can be run before the main handler function.
You have your RESTful API. You have your struct, it use JSON tag. Then, one of your developer friend introduce you to GraphQL. If you want to migrate your API to GraphQL without so much pain, this library is for you.
Easily create new graphql.Object from existing struct with bindgraphql.
Baru saja kemarin saya mengikuti Hackathon Merdeka 2.0 bersama dua kakak tingkat saya, Kak Reza dan Kak Faisal. Kami membentuk tim yang bernama Pempek Kerupuk. Nama Pempek Kerupuk dipilih setelah perdebatan yang cukup panjang hahaha 😀
Berbeda dengan Hackathon sebelumnya, Hackathon kali ini diselenggarakan serempak di 28 kota di Indonesia! Euforianya sangat terasa sekali. Begadang ngoding sendirian, udah biasa. Kali ini, kami ngoding bersama ribuan programmer dalam negeri untuk menyelesaikan masalah dalam negeri!
Sesuai dengan tema hackathon kali ini yaitu mengenai masalah data kependudukan, kami membuat solusi aplikasi pengingat kependudukan cerdas yang kami beri nama Lily.
Hackathon Merdeka Palembang. Tim Pempek Kerupuk ngoding di meja khusus (kiri-atas)
Pada jurusan saya, kami harus melewati 3 sidang untuk lulus. Yang pertama adalah Sidang Tugas Akhir I atau sidang proposal, kemudian Sidang Tugas Akhir II atau sidang program, dan yang terakhir Sidang Komprehensif. Saya melaksanakan sidang TA 1 pada bulan Februari lalu. Butuh waktu 8 bulan bagi saya untuk dapat lanjut ke sidang TA 2. Hal ini juga ditanyakan oleh penguji, apa kendalanya kenapa bisa sampai butuh waktu 8 bulan, dan saya jawab karena saya gagal memanajemen waktu saya dan sibuk dengan pengerjaan proyek program lainnya. Juga saya terkendala di bagian dokumentasi dan desain diagram-diagram program saya. Well, saya sangat malas mengerjakan dokumentasi.
Saya juga sudah sangat lama tidak menulis di sini. Hampir setahun. Ini hiatus terparah sejak saya memulai blogging. Sebenarnya banyak yang saya ingin tulis dan ceritakan di sini, namun pada ujungnya saya tidak jadi menulisnya, dan cerita-cerita tersebut akhirnya hanya menjadi draft di otak saya saja. Sudah lama saya ingin menulis lagi, namun karena kesibukan hingga saya tidak sempat menulis di sini. Seharusnya, sesibuk apapun saya, saya harus bisa menyempatkan waktu untuk menulis, namun saya gagal. Ya, manajemen waktu saya sangat berantakan selama ini. Tentang hal ini tidak akan saya tulis di postingan kali ini. Di postingan ini saya akan bercerita tentang Sidang Tugas Akhir II saya.
Weka adalah sebuah perangkat lunak yang memiliki banyak algoritma machine learning untuk keperluan data mining. Weka juga memiliki banyak tools untuk pengolahan data, mulai dari pre-processing, classification, regression, clustering, association rules, dan visualization. Weka adalah perangkat lunak open source berbasis Java dan kita dapat menggunakannya secara langsung atau melalui program Java kita. Weka juga bisa diimplementasikan ke program python. Untuk penjelasan Weka lebih lengkap, kamu bisa membuka halaman dokumentasinya di sini.
Pertama kali saya mengenal Weka ketika mengikuti mata kuliah Information Retrieval, pada pertemuan tentang Clustering. Clustering adalah proses mengelompokkan sekumpulan objek ke kelas-kelas dengan objek yang mirip (Cluster). Clustering adalah salah satu bentuk unsupervised learning. Banyak sekali algoritma untuk clustering, namun secara umum terbagi dua yaitu flat algorithms dan hierarchical algorithms. Pada kuliah tersebut, saya mempelajari tentang algoritma K-means yang merupakan flat algorithms, mulai dari teori K-means hingga implementasinya menggunakan Weka. Pada tulisan ini saya akan berbagi tentang penggunaan Weka untuk aplikasi Simple K-means. Diharapkan teman-teman telah sedikit membaca tentang K-means.
Oh ya, Weka juga dapat diimplementasikan untuk big data!
Instalasi Weka
Kamu bisa mendownload program instalasinya dari sini : http://www.cs.waikato.ac.nz/ml/weka/downloading.html. Sebelum menginstall, cek terlebih dahulu apakah kamu sudah menginstall JRE (Java Runtime Environment). Kamu bisa mengeceknya di folder ini : C:\Program Files\Java. Jika JRE sudah terinstall, kamu cukup mendowload file weka-3-6-11.exe. Jika belum menginstall JRE, kamu harus mendownload file weka-3-6-11jre.exe. Sesuaikan juga file yang didownload dengan tipe sistem operasi kita, apakah 32-bit atau 64-bit.
Setelah berhasil mendownload filenya, jalankan proses instalasi. Ikuti petunjuk instalasi, mudah kok. Setelah selesai, segera buka Weka 🙂
class A{
float a;
int b;
public:
A(int bb){};
~A(){};
void setA(float a){};
int getB(){};
};
Dari kutipan Source Code I, pernyataan berikut yang benar adalah? a. Benar jika pada baris 4 diberikan perintah A(). b. Atribut a dan b mempunyai visibilitas private. c. Pada kelas A, geter cukup dibuat sebagai prosedur tanpa nilai balikan dan tanpa parameter.
Jawaban : B. Pada bahasa C++, jika kita tidak menuliskan visibilitas suatu atribut, maka otomatis atribut tersebut memiliki visibilitas private.
Pilihan A salah, karena konstruktor A() harus memiliki visibilitas public.
Pilihan C salah, karena geter dibuat sebagai fungsi dan memiliki nilai balikan.
Dari kutipan source code I, pernyataan berikut yang benar adalah? a. setA() berkaitan dengan siklus hidup objek yaitu fase inisialisasi. b. ~A() berkaitan dengan proses pengalokasian objek di memori komputer.
c. Semua jawaban salah.
Jawaban : C. Semua jawaban salah karena :
Pada pilihan A, setA() berkaitan dengan siklus hidup objek fase manipulasi, bukan inisialisasi, dan
pilihan B, ~A() berkaitan dengan proses dealokasi objek, bukan pengalokasian.
Dari kutipan source code I, pernyataan berikut yang benar adalah? a. Jika ditambahkan method A(){} maka terjadi fenomena overriding. b. Untuk memberi nilai atribut float a, pada method setA() kita dapat menambahkan perintah this->a = a;.
c. Tidak bisa dilakukan overloading karena tidak ada inheritance.
Jawaban : B, sudah jelas.
Pilihan A, jika ditambahkan method A(){} maka yang terjadi adalah fenomena overloading.
Pilihan C, overloading tetap bisa dilakukan.
Source Code II – Bahasa C++
class X{
protected:
int x1;
public:
int x2;
X(){ cout<<”X hidup ”; };
~X(){ cout<<”X mati ”; };
};
class Y:public X{
public:
Y(){ cout<<”Y hidup ”; };
~Y(){ cout<<”Y mati ”;};
void tampilX1(){ cout<<x1; };
void tampilX2(){ cout<<x2; };
};
int main(){
Y *myY1;
myY1 = new Y;
delete myY1;
return 0;
}
Perhatikan Source Code II. Pernyataan berikut yang benar adalah?
Jika perintah baris 2 diganti private, maka baris 13 dan 14 keduanya error.
Jika pada baris 17 ditambahkan perintah X myX;, maka mengaktifkan Y() dahulu baru kemudian X().
Perintah pada baris 19 menghasilkan output : “X hidup Y hidup “.
Jawaban : C. Ketika konstruktor anak dijalankan, konstruktor induk akan diaktifkan terlebih dahulu.
Pilihan A, hanya baris 13 yang error.
Pilihan B terbalik karena konstruktor induk X() yang aktif terlebih dahulu..
Perhatikan Source Code II. Pernyataan berikut yang benar adalah?
Penghancuran objek anak tidak berakibat destruktor kelas induk aktif.
Perintah baris 20 akan menghasilkan output : “X mati Y mati “.
Semua jawaban salah.
Jawaban : C. Semua jawaban salah karena :
Pilihan A, jika objek anak dihancurkan, destruktor kelas induk akan ikut aktif.
Pilihan B, outputnya adalah : “Y mati X mati “. Dimana destruktor anak yang aktif terlebih dahulu.
Source Code III – Bahasa Java
class Aku{
int x;
static int y;
static void galau(){};
};
abstract class Kamu{
};
public class Dia{
static void main(String args[]){
Aku akuRapopo = new Aku();
}
}
Perhatikan Source Code III, maka pernyataan yang salah adalah?
Pada baris 12 dapat ditambahkan perintah akuRapopo.galau();.
Penambahan perintah akuRapopo.x = 1; pada baris 12 tidak akan menyalahi aturan OOP di bahasa Java.
Semua jawaban benar.
Jawaban : Mari kita tinjau jawabannya satu per satu.
Pilihan A benar. Pada baris 12 dapat ditambahkan perintah akuRapopo.galau();.
Pilihan B benar. Penambahan perintah akuRapopo.x = 1; pada baris 12 tidak akan menyalahi aturan OOP di bahasa Java. Referensi : http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
Pilihan C benar, karena semua jawaban benar.
Jadi nomor 6 bonus 🙂
Perhatikan Source Code III, maka pernyataan yang benar adalah?
Source code tersebut harus disimpan dengan nama file Aku.java.
Pada bahasa Java terdapat Garbage Collection sehingga bahasa Java tidak mengenal konstruktor.
Kamu tidak dapat digunakan untuk instansiasi objek.
Jawaban : C. Kamu adalah kelas Abstract dan tidak dapat diinstansiasi.
Pilihan A salah, karena seharusnya disimpan dengan nama file Dia.java
Pilihan C salah, karena Garbage Collection menggantikan fungsi destruktor.
Perhatikan Source Code III, maka pernyataan yang benar adalah?
Pada baris 7, penambahan abstract void cobaKamu(){ System.out.print
(“Oke”); }; adalah benar.
Pada baris 13 dapat ditambahkan perintah Kamu kamuJahat = new Kamu();
Semua jawaban salah.
Jawaban :
C. Semua jawaban saah karena :
Pilihan A salah, karena method abstract haruslah kosong tanpa definisi.
Pilihan B salah, karena kelas abstract Kamu tidak dapat diinstansiasi.
Source Code IV – Bahasa Java
public class Main{
static void main(String args[]){
int i = 0;
int j = 0;
int x = 0;
for(i=0; i<10; i++){
for(j=i; j<10; j++){
x++;
}
x--;
}
System.out.println(x);
}
}
Output dari Source Code IV adalah _45_. Sudah jelas 🙂
Halo, guys! Gue mau nanya nih, menurut kalian, ilmu yang diberikan dosen di kuliah tuh cukup atau lebih? Atau malah kurang atau sangat kurang? 😀 Rata-rata, mereka yang gue tanyain kayak gitu, jawabannya adalah “kurang”. Kalian juga jawab kurang gak? hehe
Jadi gimana dong biar kita gak kekurangan ilmu? Sedangkan di luar sana, teknologi-teknologi lagi cepet-cepetnya berkembang. Mengikuti online course adalah solusinya! 😀
Microsoft Virtual Academy adalah online course yang dibuat oleh Microsoft yang memberikan kursus tentang teknologi-teknologi Microsoft, seperti Windows 8, Windows Phone 8, bahasa C#, HTML5, dan lain-lain. Setiap menyelesaikan course, kita akan diberikan certificate dengan nama kita yang bisa kita taruh di CV kita 🙂
Setiap course terdiri dari beberapa module yang berisi video penjelasan oleh ahli yang dipilih oleh Microsoft, slide materi penjelasan, bahkan source code! Dan yang paling penting, kita bisa mengikuti semua course nya secara GRATIS! 🙂
Saat ini, saya memiliki misi untuk mengajak orang-orang sebanyak mungkin untuk tergabung dan belajar bersama di Microsoft Virtual Academy ini! Ayo segera join kami dan belajar bareng! 😀
Langsung aja buka linknya : http://www.microsoftvirtualacademy.com/ dan Sign In pake akun Microsoft atau SIgn Up Now! buat yang belum ada akun Micrososft. Setelah masuk MVA, isi sedikit data registrasi MVA juga. Selanjutnya, pilih mau course apa.
Untuk course yang diikutin, selesaiin minimal 3 modul yaaa, lalu screenshoot kayak ini sebagai buktinya :
Screenshoot selesai 3 modules
Screenshootnya dikirim ke chat facebook saya yaaa, sama data ini:
Nama :
NIM :
Email untuk login MVA :
No Hape : (untuk yang beruntung, akan dapet pulsa gratis 🙂 )
Screenshoot :