Information Retrieval and Data Mining

Mata kuliah ini termasuk mata kuliah yang baru dan cukup menarik dimana banyak riset yang sedang dilakukan berkaitan dengan tema yang sesuai dengan konten perkuliahan yang wajib bagi mahasiswa manajemen informasi. Materi ini cukup sulit dan luas karena gabungan Information Retrieval dengan Data Mining. Buku yang digunakan berasal dari buku text yang dibuat oleh Crishtoper Manning dan kawan-kawan dari Stanford University dan diterbitkan oleh Cambridge Univ. Press.

Konsep yang ditampilkan bagi saya merupakan hal baru walaupun setiap hari saya menggunakannya ketika searching di Google. Mungkin mahasiswa IT yang masih muda-muda pernah merasakannya di bangku kuliah Undergraduate-nya. Mungkin maksud perkuliahan ini bagus yaitu jika data terstruktur dioleh dengan Data Mining tetapi jika data tidak terstruktur, misalnya tulisan blog ini, maka mau tidak mau haru menggunakan Text Mining dengan konsep mengambil data dengan metode-metode yang dianjutkan di buku tersebut. Beberapa aplikasi telah menyediakan tool untuk menerapkan metode tersebut seperti contoh pada Matlab. Aplikasi ini menyediakan fungsi-fungsi untuk melakukan sorting dan pencarian berbasis text. Buku yang sering saya gunakan, dan telah diterapkan di mata kuliah Decision Support Technologies (DST) yaitu Text Mining With Matlab karangan Rafael E. Banchs.

Waktu itu saya menggunakan metode ini untuk kasus Big Data dimana jutaan record yang berisi pengarang, afiliasi, dan atribut-atribut lainnya harus dibersihkan karena beberapa record berisi duplikasi. Terkadang satu pengarang yang sama terekam beberapa kali, dan kita harus mendeteksinya terlebih dahulu sebelum diverifikasi apakah mereka adalah satu orang yang sama. Berikut ini video dari hasil script sederhana kami:

Many to Many Relationship Example

After installing oracle database and oracle sql developer (https://rahmadya.com/2014/09/05/instal-oracle11g/), now we try to use it. Many to many relationship sometimes said M:N is happened if every member of an entity has many members related to other entity. For example we have relation Student and Course. We have relationship Student with Course that every student could take more than one courses and every course has a lot of student who take it.

Open your SQL Developer to practice how to create that kind of relation. First create the Student and Course entity respectively. Use CREATE table:

  • CREATE TABLE Student(
  • Student_ID CHAR(10) CONSTRAINT StudentID_PK PRIMARY KEY,
  • First_Name CHAR(20) NOT NULL,
  • MI CHAR(1) NULL,
  • Last_Name CHAR(20) NOT NULL);

This will create a Student table with attribute/field Student_ID, First_Name, and Last_Name. The number inside the bracket “(” is number of character (look at Middle Name that only limited to one character). There some constraint such as PRIMARY KEY and NOT NULL. Add some record using INSERT statement:

  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115995’, ‘Rahmadya’,’T’,’Handayanto’);
  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115996′,’James’,’D’,’Brynt’);
  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115997’, ‘John’,”,’Travis’);
  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115998′,’Brian’,’L’,’Walk’);
  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115999’, ‘Susan’,”,’Tarson’);

If we want to retrieve the record that we have just insert, try to use SELECT * from Student;

Use the similar SQL Command to create a Course table with attribute Course_ID, CourseName, Credit, and Department. Use Course_ID as a primary key.

  • CREATE TABLE Course(
  • Course_ID CHAR(10) CONSTRAINT CourseID_PK PRIMARY KEY,
  • CourseName Char(50) NOT NULL,
  • Credits INTEGER NOT NULL,
  • Department CHAR(20) NOT NULL);

Then, Add some records e.g:

  • INSERT INTO Course (Course_ID, CourseName, Credits, Department) VALUES (‘AT72.01′,’Database Management System’, 3,’CSIM’);
  • INSERT INTO Course (Course_ID, CourseName, Credits, Department) VALUES (‘AT72.03′,’E-Business Development’, 3,’CSIM’);
  • INSERT INTO Course (Course_ID, CourseName, Credits, Department) VALUES (‘AT72.04′,’Decision Support Technologies’, 3,’CSIM’);

Because M:N relationship, when we convert from ER-Diagram into Relational Table we have to create one relation that connect the student to course, for example we name it Student_Course table.

  • CREATE TABLE Student_Course (Student_ID CHAR(10), Course_ID CHAR(10));
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115996′,’AT72.01’);
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115996′,’AT72.03’);
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115997′,’AT72.01’);
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115997′,’AT72.04’);

We have a simple Student_Course table with four students who enroll the class. This table has not used relation between student and course. Therefore we have to add foreign key from Student and Course table using ALTER statement.

  • ALTER TABLE Student_Course ADD CONSTRAINT CourseID_FK FOREIGN KEY (Course_ID) REFERENCES Course (Course_ID);
  • ALTER TABLE Student_Course ADD CONSTRAINT StudentID_FK FOREIGN KEY (Student_ID) REFERENCES Student (Student_ID);

Do we been allowed to insert duplicate foreign key? For example a student takes many courses? Test using this INSERT example:

  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115996′,’AT72.01’);
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115996′,’AT72.04’);

We need a primary key to identify the transaction of student who make an enrollment.

ALTER TABLE Student_Course ADD CONSTRAINT Student_ID_Course_ID_PK PRIMARY KEY (Student_ID, Course_ID);

The unique attribute sometimes needed if we avoid the similar record that different primary key. For example we make the course_name unique.

  • ALTER TABLE Course ADD CONSTRAINT CourseName_uk UNIQUE(CourseName);

For example we add record that violate this Unique constraint.

  • INSERT INTO Course (Course_ID, CourseName, Credits, Department) VALUES (‘AT72.10′,’Database Management System’, 3,’CSIM’);

You will see an error on it. That’s it.

Georeference and GPS

Georefernece is an activity to match the map to coordinate exactly by using some methods such as comparing to google map or by surveying the location on the map and getting the real coordinate by Global Positioning Service (GPS). GPS use some satellites that counting the location of object based on location of the satellite. Because location of the satellite is exactly counted, the location of object must be easily counted, but of course there will be some errors.

We have tried to locate some point on our campus map and try to make our map with the real longitude and latitude coordinate system. First we create a text file from data that we have gotten by GPS. We also use excel for easily typing the data and then save as (convert) into text (delimited text file).

Open the arcview and load the data file for making the theme from this data (event theme). Create new view and followed by clicking View – Add Event Theme. Choose the coordinate of latitude and longitude based on your data.

You will see some points that show the coordinate from data/table. This theme is only temporary because after we convert it into shape file, we can delete it from our project. Click Theme – Convert file to Shp. Click yes if you are asked wether add this shape file to the view. Now you can delete of the old event theme.

Now we try to connect the map to this shape file from GPS data. First we have to add facility to image analysis by choosing from File – Extension and thick the image analysis and others that related to image.

I have problem when first time installing the arcview and there are some extention available, so I have to add some AVX file or I just add the Arcview folder from our laboratory’s arcview. Click OK, and add new theme, and chose “Image Analysis” option. Search your map and try to match it to GPS data by using “align” facility.

To match the map with GPS coordinate we have to match at least three points in the edge of our map. And we can see the name of point by seeing it using “identify” tool. May be you make an “auto lable” to those point, but first you have to modify the text (colors and size), because the text may be too big for the map. Double click the theme in view to see the legend.

The technique for matching is simple, click the map theme, and then click the “align” tool. Do not forget to click first the location on the map and followed by clicking the point.

You can convert this theme to JPG file or other kinds of layout. Just try it.

Beasiswa DIKTI

Beberapa hari ini banyak bermunculan keluhan-keluhan seputar beasiswa DIKTI karena keterlambatan pengiriman uang kuliah (tuition fee) dan biaya hidup (living allowance). Beasiswa DIKTI sudah masuk tahun keenam dan sampai saat ini permasalahan yang muncul adalah keterlambatan pengiriman uang yang sangat dibutuhkan oleh penerima beasiswa tersebut. Sebenarnya masalah ini tidak jadi soal di awal-awal munculnya program beasiswa oleh pemerintah lewat DIKTI, tetapi karena berlangsung terus-menerus dan membandingkan dengan beasiswa dari pihak lain seperti LPDP, Kemenag, DEPTAN, dan institusi pemerintah lainnya, wajar jika penerima beasiswa DIKTI, yang sama-sama pemerintah, menuntuk untuk disamakan, atau setidaknya kejelasan mengenai kapan uang beasiswa tersebut cair.

Beberapa mahasiswa yang mengambil studi di eropa tentu saja kewalahan menghadapi biaya hidup yang memang cukup tinggi di sana. Dana talangan yang jika memang dibutuhkan, tentu saja besar jika dibandingkan dengan yang mengambil studi lanjut di asia seperti, Taiwan, korea, Filipina, Malaysia, Thailand, dan kota tertentu di Jepang. Ada kampus-kampus tertentu yang cukup toleran dan membolehkan mahasiswanya menunggak uang kuliah, tetapi banyak juga yang menerapkan aturan ketat, seperti diblokirnya akses terhadap perpustakaan, dan fasilitas lainnya dan yang lebih parah adalah biaya sewa kamar (dormitory) yang tentu saja di luar wilayah kampus. Sementara aturan dari VISA terkadang harus adanya jaminan tempat tinggal. Tentu saja jika ini tidak terpenuhi, mahasiswa yang bersangkutan terancam dideportasi.

Beasiswa Kemeterian Agama

Kementerian agama baru sekitar dua tahun menyelenggarakan beasiswa (terutama dari institusi pendidikan seperti Universitas Islam Negeri yang dulu bernama IAIN). Beasiswa yang diberikan cukup menarik karena diberikan di awal selama setahun. Kelemahannya hanya satu yaitu biaya yang dikirimkan dalam bentuk rupiah dan dikirim lewat rekening bank di dalam negeri (saya tidak tahu jenis bank-nya) sehingga bermasalah ketika akan digunakan di luar negeri (biaya konversi mata uang). Tetapi karena status waktu pengirimannya yang jelas maka dengan sedikit mengatur anggaran pengeluarannya, mahasiswa penerima beasiswa Kemenag lebih nyaman dan dapat fokus belajar.

Beasiswa Departemen Pertanian

Beasiswa ini khusus PNS dari DEPTAN yang memang mendapat tugas belajar (biasanya dari divisi LITBANG) yang memang mengharuskan berpendidikan lebih tinggi dari Strata 1. Di tempat saya kuliah, mahasiswa tidak perlu memperhatikan masalah uang kuliah, karena DEPTAN langsung mentransfer uang kuliah ketika kampus yang dituju menagih (invoice). Masalah hanya muncul untuk biaya hidup yang dikirim tiga bulan sekali dan terkadang terlambat. Tetapi karena biaya hidup, mahasiswa bisa mengatasi dengan tidak memakai habis uang kuliah tiga bulan, untuk jaga-jaga jika ada keterlambatan.

Kementerian Keuangan

KEMENKEU memberikan beasiswa lewat jalur LPDP yang terkenal. Beberapa dosen banyak yang beralih dari DIKTI ke LPDP, tetapi dengan aturan baru, calon yang memiliki nomor induk dosen (NIDN) tidak diperbolehkan dan diarahkan ke DIKTI. Beasiswa ini cukup terkenal karena memberikan lama beasiswa empat tahun untuk mahasiswa S3, lebih tinggi dari DIKTI, sebelum DIKTI mengambil kebijakan empat tahun. Sistem penerimaan dan informasi LPDP lebih baik. Cerita dari rekan saya yang mengikuti LPDP, ketika akan wawancara mereka ditelepon, beda dengan DIKTI yang harus lihat secara rutin situs DIKTI (www.dikti.go.id). Terkadang waktu acara dengan pengumuman sangat dekat, dan memberatkan calon penerima beasiswa dari pulau lain. Untuk rincian uang bulanan, saya belum mendapatkan informasi yang akurat.

Beasiswa dari Tempat Studi Lanjut

Beberapa teman ada yang mendapat beasiswa dari institusi tempat dia melanjutkan studi. Rekan saya bahkan melepas beasiswa DIKTI dan mengambil beasiswa dari tempat studi lanjut di Taiwan. Untuk jenis beasiswa ini sangat bervariasi, tapi yang jelas, uang kuliah tidak akan terlambat mengingat beasiswa memang langsung dibayarkan dari kampus tersebut. Untuk uang hidup, biasanya walaupun sedikit tetapi teratur dan kampus memberi pekerjaan terhadap mahasiswa tersebut. Di tempat saya kuliah, uang hidup mahasiswa yang memperoleh beasiswa separuh dari beasiswa DIKTI. Mahasiswa tersebut terpaksa bekerja (sebagai staf atau asisten dosen) untuk memenuhi biaya hidupnya.

Sebenarnya beasiswa DIKTI jika dibandingkan dengan beasiswa dari institusi lain lebih tinggi, hanya saja masalahnya adalah keterlambatan dan kejelasan waktu penerimaan beasiswa tersebut. Jadi jika Anda berminat mengambil beasiswa DIKTI maka persiapkanlah dana talangan untuk jaga-jaga jika uang DIKTI terlambat, dan masalah lainnya seperti tahun keempat (walaupun ketika saya berangkat DIKTI menjanjikan beasiswa selama empat tahun untuk mahasiswa S3 serta adanya tunjangan keluarga jika keluarga diajak). Saya pun tetap setia dengan DIKTI karena ketika menandatangani perjanjian saya harus konsekwen terhadap apapun yang terjadi.

Installing ArcGIS 9

ArcGIS is developed from ArcVIEW that support other powerful facilities. Of course If you understand ArcView it is easy to understand ArcGIS with some additional new materials. ArcGIS more complete than ArcView with additional package ArcEditor, ArcInfo and also ArcView itself. Here is a simple installation of this software.

Click “Install ArcGIS Desktop” After notification that this software need license from ESRI, we ready to install it. Click “I Accept the license Agreement”.

You have to choose installation type, but if you do not understand, just choose “typical”. Click Next.

You can choose folder location for GIS program, but you are allowed to choose the default location by just clicking next.

The ArcGIS is supported by Phyton programming language, and you have to install and choose the location for it. Click Next twice.

Wait until the installation completed and register message appears.

 

Google Map Street View in Bekasi

Google map is free web-based application that serve the geographical position all over the world. It serves map, satellite view (via landsat satellite), and now serves with street view. What is street view? The street view is a function that send the user a picture around some points. They are captured by a car with a special camera.

After our capital city, Jakarta, now my lovely place, Bekasi District, also has been surveyed by this car. Therefore, we can accessed picture behind the street similar to we directly drive a vehicle along the street. For example, my university where I work as a lecturer: https://www.google.co.th/maps/@-6.256911,107.005114,3a,75y,114.85h,87.48t/data=!3m4!1e1!3m2!1sCPhxI8TQG3qCR3IEiLwHdw!2e0

I think it is very useful especially for one who wants to visit an object. Some road may be one direction only, there are some road overlapping, underpass and fly over, etc. For me it is very useful for my research that optimizing a location based on some point that must far away because dangerous if near these object such as hospitals, electrical substations, rivers, schools, and so forth.

Instal Oracle11g

Tak dapat dipungkiri Oracle merupakan software system basis data yang terkenal dan banyak digunakan oleh institusi-institusi baik swasta maupun pemerintah yang menginginkan keamanan, kecepatan, dan kemudahan dalam mengorganisirnya. Software ini bukan software yang open source, biaya lisensi pun berdasarkan prosesor, bukan server. Jika server Anda punya 4 prosesor dan semuanya menjalankan oracle, maka Anda harus membayar empat lisensi. Sementara jika kita hanya ingin belajar, dan tidak menggunakan Oracle untuk production, maka kita bias mendownload secara gratis dengan kualitas software yang sama dengan yang lisensi (baca lembar lisensinya). Download di situs resminya: http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html.

Jalankan file yang telah didownload.

Klik next

Centang “I accept the terms in the license agreement”

Klik Next, dan Anda diminta untuk memasukkan password

Berikutnya sebelum diinstall oracle akan memberikan informasi apa saja yang akan diinstal

Berikutnya tunggu beberapa saat hingga Oracle selesai diinstal.

Berikutnya kita tinggal belajar menggunakannya. Syarat minimal adalah kita memahami dasar-dasar Standard Query Language (SQL).

SQL DEVELOPER

Instal terlebih dahulu Java

Tunggu hingga aplikasi selesai diinstal dan siap dijalankan

Ok, selamat ber-query ria:

Konversi Scope ke Figure-2

Sambungan dari postingan dua tahun yang lalu (https://rahmadya.com/2012/04/12/konversi-scope-ke-figure-pada-matlab/). Berikut ini akan saya coba merubah scope yang tampilannya tidak bagus untuk dicetak menjadi figure yang lebih nyaman, terutama dari sisi penggunaan tinta printer. Maklum background scope yang hitam membuat tinta printer cepat habis. Selain itu figure sangat mudah untuk dimanipulasi seperti menambahkan garis panah yang menjelaskan suatu lengkung kurva, dan sebagainya.

Gambar di atas adalah salah satu contoh yang akan kita buat figure-nya. Jika dijalankan dan menekan dobel scope bernama Grafik2 (panah ungu) Anda akan melihat grafik berikut ini (contoh kasus perbandingan beberapa model lewat mekanisme multiplexing):

Tampak grafik yang mirip tampilan alat ukur listrik. Sebenarnya ketika kita menjalankan model, Matlab dapat merekam hasilnya jika kita melakukan inisiasi pada scope. Pada gambar di atas coba Anda klik icon parameters. Tekan tab “Data history“.

Centang “Save data to workspace” agar setiap model di-running akan menyimpan hasilnya dari variabel “keluaran“, dengan format “Array“. Jika Anda tidak percaya, setelah di running, Lihat Matlab, Anda akan menemukan satu variabel baru yang muncul di workspace (jendela ini secara default terletak di pojok kanan, kalo belum diutak-atik).

Sebenarnya tugas sudah selesai, karena Matlab sudah menyediakan matrix keluaran yang berisi data yang merepresentasikan grafik pada scope. Coba saja anda ketik pada command window> keluaran.

Tampak enam kolom yang merepresentasikan garis pada scope. Yang mana saja? Tentu saja yang membuat model yang tahu. Perbandingan dari gabungan beberapa kontroler memang sulit membedakan, tapi jika kita sudah tahu jenis keluaran di satu kontroler, untuk perbandingan pasti tahu dong. Tapi kalau dilihat sepintas, kolom pertama itu time (waktu), kolom kedua itu pasti yang berwarna kuning (karena konstant 25). Coba kita buat grafik antara kolom satu dengan kolom dua terlebih dahulu:

>plot(keluaran(:,1),keluaran(:,2))

Apaan tuh? Jangan bingung. Jika kita akan membuat plot sumbu horizontal, x, dengan sumbu vertikal, y, maka formatnya adalah plot(x,y). Tapi di sini sumbu horizontal-nya keluaran(:,1), maksudnya adalah seluruh baris kolom ke-1. Begitu juga keluaran(:,2) artinya seluruh baris kolom kedua. Hasilnya adalah sebagai berikut.

Lanjutkan dengan membuat plot dari kolom kesatu dengan ketiga, keempat, dan seterusnya hingga keenam. Eiit.. jangan lupa mengetik hold, agar gambar sebelumnya tidak terhapus.

>hold

>plot(keluaran(:,1),keluaran(:,3)

>plot(keluaran(:,1),keluaran(:,4)

Terus hingga muncul hasil sebagai berikut. (Note: Tidak perlu diketik semua, cukup tekan panah atas di keyboard dan edit angka terakhirnya).

Kok ada tulisannya .. Ah itu gampang, tinggal insert – Text Arrows aja dan arahkan ke kurva yang akan anda rinci, termasuk x-label dan y-labelnya.

Kuliah Geographic Information System (GIS)

Seperti semester yang lalu dimana saya mengambil mata kuliah wajib jurusan lain yaitu Artificial Intelligent and Neuro-Fuzzy (AI), kali ini saya mengambil mata kuliah wajib jurusan lain yaitu Geographic Information System (GIS). Kalau AI adalah jurusan mechantronic, GIS masuk dalam jurusan Remote Sensing – Geographic Information System (RS-GIS).

Walaupun sudah tiga tahun saya melakukan riset dengan tema GIS saya belum pernah mendapat pengetahuan dasar GIS. Riset yang dibiayai dikti (hibah bersaing) tersebut dengan menggunakan Matlab. Sementara mata kuliah GIS di Asian Institute of Technology (AIT) Thailand (http://www.rsgis.ait.ac.th/main/) menggunakan produk ESRI dan tentu saja yang open source juga dipelajari baik desktop maupun web.

Walaupun produk-produk ARCxxxx dari ESRI tidak gratis tetapi ternyata bajakannya mudah dijumpai di internet, bahkan versi 10 sudah tersedia. Untuk lab sendiri masih menggunakan versi yang lama yang jika diinstall di windows 64 bit akan muncul pesan kesalahan.

Tetapi ternyata sudah ada juga ArcView 3.3 yang 64 bit. Untuk menginstall-nya lumayan sederhana, tinggal klik, tungga dan selesai. Hari ini saya mencoba membuat aplikasi sederhana yang berfungsi memahami konsep tipe data pada GIS (vektor, raster, dan atribut).

Kendala yang ada tentu saja banyak, mungkin karena baru pertama kali menggunakan. Terutama saat join antara dua tabel terkadang tidak berhasil, padahal tidak ada pesan kesalahan. Sistem informasi berbasis data spasial (data dengan koordinat lokasi) saat ini sedang giat-giatnya di explore oleh para periset di seluruh dunia.

Mahkamah Konstitusi – Benteng Terakhir

Setelah kisruh yang berlarut-larut dengan diselingi demonstrasi yang sangat mengganggu akhirnya tanggal 21 Agustus 2014 Mahkamah Konstitusi (MK) mengumumkan keputusannya tentang kasus pilpres yang diajukan oleh kubu Prabowo-Hatta. Hasilnya sangat mengecewakan kubu pemohon dimana seluruh gugatannya ditolah oleh MK yang dipimpin oleh ex aktivis dari partai Bulan Bintang, Hamdan Zoelva. Untungnya pembacaan keputusan dilakukan malam hari setelah para demonstran yang melakukan aksi demo di sekitar gedung mahkamah konstitusi sudah pulang sehingga tidak terjadi aksi pengrusakan di sekitar gedung MK walaupun beberapa tempat, seperti patung kuda, rusak akibat banyaknya massa yang berdemonstrasi (untungnya kendaraan perang dunia kedua, UNIMOG berhasil disita karena akan menerobos pagar berduri).

Penasehat hukum kubu yang kalah melakukan protes karena hakim sama sekali tidak menyebut adanya kesalahan dalam pilpres kali ini. Padahal menurutnya sidang etik KPU, yang berlangsung sebelumnya, telah memecat dan menyatakan beberapa anggotanya telah melanggar etika. Tetapi sepertinya hakim masih menganggap pelanggaran etika tersebut belum sampai melanggar hukum (sama seperti sidang etik perwira pasca kerusuhan Mei 98 yang memutuskan Letjen Prabowo Subianto melanggar etika tetapi tidak melanggar hukum/tidak dihukum). Apa boleh buat, karena keputusan MK adalah keputusan terakhir dan mengikat, tidak boleh ada pihak lain yang keberatan terhadap keputusan itu.

Kubu Prabowo-Hatta, koalisi merah putih, segera mengadakan jumpa pers yang berisi penerimaan mereka terhadap keputusan MK walaupun berpendapat kurang tepat. Sayang tidak dihadiri oleh capres dan cawapresnya yang saat itu sedang mengunjungi para demonstran yang berada di rumah sakit terkena peluru karet, gas air mata, dan lain-lain. Sayangnya pula tidak ada kata-kata selamat terhadap presiden baru Indonesia, Joko Widodo dan wapres Jusuf Kalla.

Keesokan harinya di PRJ, Jokowi-JK mengadakan jumpa pers mengenai tugas-tugasnya yang berat setelah pelantikan nanti. Dimulai dari kasus kementrian yang harus dibenahi (dibuat ramping, sesuai idenya dahulu), hingga kasus subsidi BBM yang terlambat dihapus ketika presiden masih dipegang Susilo Bambang yudhoyono. Jusuf Kala mengatakan tidak menghapus subsidi BBM, hanya saja mengalihkan dari BBM ke rumah sakit, pendidikan, nelayan dan lainnya, dengan kata lain subsidi BBM menjadi subsidi rakyat. Selamat untuk presiden ketujuh Indonesia, Joko Widodo .. Salam tiga jari.

‘Password crypt authentication not supported’ Problem di ODBC postgreSQL

Berhubung aplikasi WebGIS menggunakan Ruby on Rail dengan database PostgreSQL mau tidak mau Matlab menggunakan dua metode koneksi ke database tersebut:

  1. Dengan JDBC
  2. Dengan ODBC

Berhubung error ketika menggunakan JDBC dimana ada pesan kesalahan pada driver, akhirnya saya memutuskan untuk menggunakan ODBC. Buka ODBC di Administrative Tools yang sesuai (32 bit atau 64 bit), dilanjutkan dengan membuat database-nya.

Ketika selesai dibuat, check apakah sudah terbaca di Matlab dengan instruksi di command window:

getdatasources

Jika datasource ODBC Anda berhasil dibuat, akan muncul namanya di antara tanda petik pada variabel ans. Jika tidak, maka Anda harus mengulangi langkah pembuatan ODBC tersebut. Lakukan pembuatan koneksi.

Perhatikan pesan kesalahan (Message) : Password crypt authentication not supported. Pesan ini terjadi karena Windows tidak menerapkan encrypt password. Hal ini terjadi karena ketika membuat ODBC saya memilih PostgreSQL saja (default). Harusnya saya memilih PostgreSQL dengan unicode:

Disable SSL Mode kemudian lakukan ‘Test‘ dengan menekan tombol Test dilanjutkan dengan ‘Save‘. Buat koneksi conn lagi ke PostgreSQL (lihat help untuk koneksi database dengan Matlab). Pastikan tidak ada pesan kesalahan, serta jika Anda ketik isconnection(conn) di command window jawabannya satu bukan nol.

Cek dengan mengambil data:

Tampak isi tabel Projects saya di Ruby on Rail.

Koneksi Matlab dengan Sistem Basis Data

Lama tidak ngeblog tidak enak juga. Banyak hal-hal yang bisa saya sharing ke orang lain yang siapa tahu membutuhkan informasi tertentu yang saya miliki. Terkadang sedih juga membaca komentar-komentar di tulisan saya yang mengatakan “sotoy”, jangan asal tulis, dan lain-lain, bahkan ada yang mengatakan saya asal “copas”. Tapi sesuai dengan prinsip situs saya “just a Little Kindness”, saya coba untuk memberi kebaikan walau hanya sedikit.

Saya dulu pernah membuat tulisan mengenai akses database dengan Visual Query Builder, dan banyak yang tidak puas dengan koneksi seperti itu. Lama saya tidak mencoba “ngoprek” hal itu karena belum merasa perlu karena akses dapat dilakukan dengan menggunakan excel atau notepad. Untuk data kecil sebenarnya tidak ada masalah, tetapi jika data yang berukuran besar, Excel tentu saja tidak sanggup menanganinya. Saya pernah mencoba mengkonversi file CSV ke dalam Access kemudian saya kembalikan lagi menjadi TXT untuk diolah Matlab dalam rangka Data Mining (waktu itu tugas Text Mining dari dosen saya). Tetapi tentu saja tidak efektif. Perlu dilakukan koneksi data langsung dari DBMS ke Matlab.

Berawal dari Hibah Penelitian dari Dikti (Hibah Bersaing) dimana tahun ketiga saya harus mengkoneksikan GIS desktop dengan Web GIS, mau tidak mau saya membutuhkan sistem basis data. Terpaksa saya harus mengkoneksikannya langsung. Cari paling mudah adalah lewat mekanisme Open Data Base Connectivity (ODBC) yang tersedia di Windows. ODBC ini memiliki keunggulan dalam hal fleksibilitas, dimana jika kita sudah merakit ODBC maka program yang telah dibuat dengan Matlab tidak tergantung dengan software DBMS yang telah ada karena koneksi antara program dengan database lewat ODBC, beda jika kita mengkoneksikan Matlab dengan Software DBMS langsung (Access, MysQL, Oracle, PostgreSQL, dll). Jika kita mengganti software DBMS, kita harus mengeset lagi program yang telah kita buat. Dengan DBMS, jika kita akan mengganti Software DBMS, tinggal menghubungkan Software DBMS dengan ODBC lagi, termasuk user dan password jika diperlukan.

Untuk membuat ODBC Anda dapat membaca literatur yang membahas tata caranya. Yang penting Anda ketahui adalah Windows yang Anda miliki, 64 Bit atau 32 Bit. Jika 32 bit sepertinya tidak ada masalah. Nah, masalah muncul jika windows yang digunakan versi 64 bit, karena ODBC yang digunakan harus mundur yang 32 bit karena software DBMS kebanyakan masih berversi 32 bit. Untuk windows 8 dengan searching di control panel, akan ditemukan dua pilihan, ODBC 32 bit atau ODBC 64 bit. Sedangkan jika Windows 7 64 bit, maka Anda harus masuk ke folder SysWOT di C: dan menjalankan file odbcad32.exe. Jika Anda memaksa menggunakan ODBC 64 bit padahal program yang Anda gunakan versi 32 bit, akan memunculkan pesan kesalahan saat melakukan koneksi Matlab dengan ODBC (mismatch .. bla bla).

Untuk menghubungkan Matlab dengan ODBC dapat Anda lakukan dengan langkah sebagai berikut. Misalkan Anda telah memiliki ODBC dari database Anda, misalnya bernama “lokasi” dengan user ID “user” dan password “123”, lakukan koneksi dengan instruksi:

Conn=database(‘lokasi’,’user’,’123)

Cukup sederhana. Cek koneksi dengan instruksi isconnection(Conn). Jika jawabannya 1 maka koneksi berjalan dengan baik, sebaliknya jika jawabannya nol, maka Anda harus mengecek error-nya. Ketik saja Conn.Message untuk melihat instruksi kesalahannya. Jika Database telah terisi, Anda dapat mengecek dengan instruksi sql “select”.

Results=fetch(conn,’select * from lokasi’)

Misalnya tabel yang ada di database kita lokasi. Anda akan menerima data dari database dengan nama Results yang siap Anda olah dengan Matlab. Bagaimana dengan input data ke database? Mudah saja, gunakan instruksi insert. Hanya saja sedikit rumit karena ada tata cara penulisan nama field yang ada di tabel. Misal ada dua field yaitu x dan y. Kemudian akan saya isi data dengan x=1 dan y=2, maka gunakan instruksi sebagai berikut:

Insert(Conn,’lokasi’,[{‘x’} {‘y’}],[1 2])

Jika tidak ada pesan kesalahan sintax di Matlab, cek apakah data sudah masuk di database Anda. Selamat mencoba.

Hasil Pilpres 2014

Setelah hampir sebulan terjadi pertarungan sengit antara kubu pendukung calon nomor satu Prabowo Subianto dengan calon nomor dua Joko Widodo akhirnya pada tanggal 22 Juli 2014 KPU mengumumkan pemenang pilpres kali ini. Sebelum diumumkan, secara mengejutkan calon presiden Prabowo mengumumkan bahwa dia mengundurkan diri dari pilpres karena kecewa dengan kinerja KPU yang menurutnya tidak adil dan tidak demokratis. Namun KPU tetap pada pendiriannya untuk menyelesaikan perhitungan suara yang kurang dua provinsi lagi, yaitu papua dan sumatera utara walaupun saksi dari pasangan nomor urut satu meninggalkan ruangan KPU atas instruksi capres Prabowo Subianto.

Setelah seluruh provinsi dihitung dan dimenangkan oleh pasangan Joko Widodo – Jusuf kalla, untuk mengumumkan secara resmi presiden terpilih, rapat pleno diskors hingga pukul delapan malam. Kubu Prabowo bermarkas di Polonia, sementara kubu Jokowi mengadakan acara buka bersama sambil menunggu pengumuman KPU di Kebagusan, rumah kediaman Megawati Sukarnoputri.

Terlambat sekitar 30 menit, akhirnya KPU mengumumkan pemenang pilpres dengan terlebih dahulu membacakan hasil perhitungan suara di 33 provinsi. Hasilnya adalah Jokowi unggul sekitar 8 juta (53%) suara dari kubu prabowo (47 %). Kubu Prabowo diberi waktu tiga hari untuk mengajukan banding ke Mahkamah Konstitusi (MK) jika keberatan dengan hasil perhitungan suara KPU.

Setelah era pemerintahan yang tersentralisasi di jaman Sukarno dan Suharto, serta era transisi di jaman Habibie, Gus Dur, dan Megawati, akhirnya munculah era di mana sosok rakyat biasa bisa menjadi presiden setelah dua periode dikuasai oleh mantan militer (presiden SBY). Kali ini rakyat sudah meninggalkan bayang-bayang masa lalu di mana pemimpin harus memiliki keahlian di atas rata-rata atau keturunan dari pemimpin masa lalu dan bersifat sebagai “orang tua” rakyat biasa dan saat ini bisa membedakan antara “the king” dengan “presiden”. Bahkan ada ungkapan saat ini tetangga sebelah rumah bisa saja menjadi presiden, asalkan dipercaya oleh rakyat. Selamat untuk presiden RI yang baru Ir. Joko Widodo, eks Gubernur Jakartaf, Walikota Solo, pengusaha mebel .. dan alumni Universitas Gadjah Mada .. Kampus tercintaku.

Memanggil Web GIS di Browser Dari Matlab

Ketika membuat program yang berisi peta geografis terkadang kita ingin menampilkan koordinat bukan di tampilan koordinat lokal Sistem Informasi Geografis (SIG) kita melainkan di koordinat global pada Web GIS, contohnya google maps.

Langkah pertama, Matlab memerlukan url yang akan dijadikan target situs yang akan dibuka. Misalnya kita mempunyai lokasi dikoordinat -6.2478456,106.983, maka kita definisikan dengan suatu variabel misalnya bernama url. Ketik pada command window:

url = ‘https://www.google.com/maps/@-6.2478456,106.983,20z’

Dengan instruksi web, Matlab akan membuka browser bawaannya dan menampilkan alamat situs url. Browser secara default menggunakan browser bawaan Matlab yang menurut saya kurang baik dibanding Mozilla, Google Chrome, Internet Explorer dan sejenisnya. Tambahkan option ‘-browser’. Agar kita membuka lewat browser default kita, misalnya saya menggunakan Mozilla Firefox.

web(url,’-browser’)

Ketika dijalankan maka browser akan membuka alamat tersebut dan mengakses peta lokasi sesuai dengan alamat situs url.

Training JST

Melakukan training dengan JST sedikit berbeda dengan ANFIS. Pada ANFIS, input dan target disatukan sementara untuk JST kita harus memisahkan menjadi dua matriks. Buka toolbox JST dengan mengetik pada command window.

>>nntool

Siapkan terlebih dulu data trainingnya yaitu data input dan data target. Misalnya kita sudah menulis data input dan data target dengan notepad berturut-turut dengan nama ‘input.dat’ dan ‘target.dat’, maka kita tinggam memanggil data tersebut untuk dikonversi menjadi variable ‘*.mat’ yang dikenali oleh toolbox nntool matlab.

Perhatikan, formatnya sedikit berbeda dengan ANFIS, pada JST masukan dinyatakan dengan baris, misalnya baris pertama itu input pertama, baris kedua input kedua, dan seterusnya. Sementara target mengikuti inputnya, jadi target kolom pertama input adalah kolom pertama pada vector target. Dari contoh data di atas, input 3.2760, 32.3, 7, dan 0.0020 memiliki target 34.5.

Kembali ke NNTOOL, klik import untuk memasukan data input dan target ke toolbox JST. Jangan lupa hubungkan input dengan input dan target dengan target seperti gambar berikut.

Lakukan hal yang sama juga dengan target, dilanjutkan dengan klik ‘import‘. Berikutnya meramu JST yang akan kita buat untuk mentraining data input dan target yang telah kita siapkan. Klik New untuk membuat JST yang akan di-training. Beri nama, input, dan outputnya sesuai dengan data yang kita import sebelumnya.

Setelah di klik Create maka Anda telah berhasil membuat JST. Pastikan pada NNTOOL Anda terdapat data input, target, dan jst. Setelah itu kita siap melakukan training dengan mengklik ganda jst yang baru saja kita buat.

Pilih train dan masukan input dan target yang sesuai, lanjutkan dengan mengklik Train Network untuk memulai proses training. Tunggu beberapa saat karena Matlab sedang mentraining JST yang ada buat tersebut.

Berikutnya adalah kita coba mengecek apakah hasil training sudah sesuai atau tidak. Untuk mengetahui kualitas training, masukan aja data input ke jst yang telah Anda training, apakah sesuai dengan target atau tidak. Sebelumnya simpan terlebih dahulu jst yang telah Anda latih tersebut. Caranya dengan kembali ke jendela NNTOOL dengan mengklik Export dilanjutkan dengan memilih mana yang akan disimpan. Pastikan jst anda pilih.

Setelah mengklik Save maka Anda telah berhasil melatih jst Anda. Pastikan jst yang Anda save terletak pada directory kerja Anda. Berikut cara menguji hasil training Anda.

Perhatikan yang dilingkari adalah hasil training yang tidak cocok dengan target (ada error). JST bias memprediksi output jika input berbeda dengan data training, misalnya data berikut ini.