Latex Sebagai Alternatif Penulisan

Besok di kampus kami akan diadakan pelatihan Citation dimana kami diminta untuk mencoba terlebih dahulu program aplikasi latex yang dapat diakses di situs resminya. Untuk satu latex per user, kita bisa memanfaatkannya secara gratis dengan terlebih dahulu Sign Up dengan memasukan alamat email dan passwort kita ke program latex tersebut (bukan password email lho).

Sebenarnya kita bisa juga menulis secara gratis dengan google docs yang bisa dilakukan secara kolaboratif dengan rekan kita di berbagai penjuru dunia. Google docs dapat diakses disitus google dengan login gmail. Sepertinya Latex memiliki keunggulan tertentu dimana ada fungsi mengatur citation (pustaka). Ok kita lihat besok seperti apa.

Learning Weights in Rank Retrieval

Misal kita memiliki data training terhadap beberapa query dengan term-term tertentu berikut ini.

Pertanyaannya adalah berapakah nilai g –nya?

Sebelum menjawab pertanyaan itu terlebih dahulu didefinisikan istilah-istilahnya. Kita misalnya memiliki query “like dog cat temle ant bird wine girl”. Misalnya kita akan menentukan bobot antara ST dengan SB, maksudnya ST adalah letak suatu query pada Dokument (docID) pada Title atau Body, yang disingkat jadi T dan B pada S. Misal pada data pertama Ф1, query like ada di document ID = 17 pada Body, tetapi tidak ada di Title. Sementara ‘r’ adalah penilaian dari pakar (humen expert) yang menyatakan apakah data itu relevan atau tidak. Pada kasus ini diberi angka nol (0) berarti tidak relevan, yang nantikanya akan dijumlahkan dengan variabel n01n (artinya number of St=0, Sb=1 dan tidak relevan (n)).

Sementara g sendiri adalah bobot opimal yang akan kita cari dengan rumusan di bawah ini (buka buku Information Retrieval oleh Manning):

Masukan data-data n10r, n01n, n10r, n10n, n01r dan n01n. Sebagai contoh, n10r adalah jumlah St=1,Sb=0, r=1 dimana di tabel atas berjumlah 0, dan seterusnya.

Sehingga diperoleh nilai g

Instruksi SELECT pada SQL – Bagian 2

WHERE Clause

Seperti pada tulisan sebelumnya (bagian 1), jika kita akan melakukan query terhadap nama belakang dimana huruf keduanya ‘a’ maka dapat kita lakukan dengan bantuan garis bawah ‘_’. Gunakan WHERE dengan kata LIKE untuk lebih spesifik lagi.

Kita juga bisa menambahkan logika boolean seperti AND atau OR untuk dua kondisi LIKE seperti misalnya nama belakang di huruf kedua ‘a’ dan nama depan diawali ‘r’.

query_where

CONCATENATION

Syntax ini berfungsi untuk menggabungkan beberapa kolom menjadi satu kolom. Simbol yang digunakan adalah ||. Misalnya kita akan menggabungkan nama pertama dengan nama belakang dari tabel student.

GROUP BY dan COUNT()

Syntax ini untuk melakukan proses agregasi dari aksi filter sebelumnya. Misalnya kita ingin mengetahui berapa banyak Course yang diambil oleh seorang siswa, misalnya siswa dengan ID ‘st115996’.

HAVING Clause

Jika hasil proses GROUP BY ingin difilter lagi dapat kita gunakan klausa HAVING. Misalnya kita diminta menarik data jumlah Course yang memiliki jumlah kredit = 3. Jadi setelah yang punya kredit = 3 diperoleh dilakukan proses ‘count’ berapa jumlah course-course tersebut.

SUB-QUERY

Sub query adalah query di dalam query, biasanya dalam klause:

  1. WHERE
  2. FROM
  3. SELECT

Kata kunci yang digunakan adalah IN. Misal kita ingin mengetahui student_ID yang mengambil course. Dengan kata lain yang tidak mengambil course tidak kita ambil.

Ada satu soal latihan nih,

EXERCISE

  • A student is required to take 2 courses (4 credits) in the field of Technology
  • Management and should be offered by SET or SOM only.
  • Typically the courses for Technology Management have the word Management or
  • Technology or Technologies mentioned in the course name.
  • What choices does the student have? List Department, CourseName, Credits.
  • Use group by and having clause

Selamat Mencoba !

Karir Sebagai Dosen

Jika terdengar di telinga kata “dosen” ketika saya masih sekolah dulu, yang ada di benak saya adalah seseorang yang kerjaannya berfikir keras dan mengajarkan sesuatu yang sangat sulit bagi anak didiknya. Saya yakin tidak ada yang punya keinginan untuk jadi dosen. Walaupun dulu saya bercita-cita ingin jadi profesor, tetapi profersor yang saya maksud adalah orang yang bisa menciptakan robot atau alat canggih yang sering muncul di film kartun dulu.

Ketika saya memilih jurusan mesin di Universitas Gadjah Mada dulu, tujuan utama saya sebenarnya sederhana, setelah lulus kerja, berumah tangga, punya anak, dan seterusnya. Bahkan tawaran dari departemen ketika saya kuliah untuk menjadi dosen di sana (walau masih berstatus mahasiswa), walaupun dengan syarat IPK yang tidak perlu tinggi-tinggi serta adanya ikatan dinas ketika sedang kuliah (waktu itu sekitar 300-an ribu untuk uang tunjangan bulanan) tidak ada yang berminat. Karena di samping pengumuman itu, ada juga pengumuman dari Astra International bahwa alumni yang memiliki IPK di atas 3.00 bisa langsung masuk tanpa tes. Tentu saja banyak mahasiswa yang memilih bekerja dari pada menjadi dosen (walaupun berstatus Pegawai Negeri Sipil).

Tahun Kelam

Terjadinya krisis moneter di tahun 1998 mengakibatkan banyak PHK masal di Indonesia. Beberapa alumni yang sudah bekerja di perusahaan di Indonesia banyak yang datang ke kampus untuk bekerja sebagai dosen. Tentu saja pihak kampus menerima walaupun akhirnya distop karena jumlahnya yang terlampau banyak. Waktu itu saya di akhir-akhir kuliah, dan sempat diajar oleh korban PHK, waktu itu dari PT Astra. Tiap ada bursa selalu diserbu oleh para lulusan kampus yang di ranking baik versi luar negeri maupun versi akreditasi masuk nomor satu di Indonesia selalu dibanjiri oleh pelamar. Waktu itu saya sendiri termasuk dalam kategori tersebut.

Kondisi lebih parah lagi ketika di Jakarta dimana persaingan bukan hanya dari kampus saya, melainkan dari seluruh kampus terkenal di Indonesia, waktu itu saingan terberat adalah UI dan ITB. Beberapa lulusan banyak yang banting stir, bekerja di luar bidangnya. Waktu itu saya berfikir betapa borosnya uang negara yang habis dipakai untuk subsidi mahasiswa kampus negeri tidak terpakai ilmunya. Ada satu penyelamat waktu itu, yaitu karir sebagai dosen. Waktu itu dosen saya pernah bilang tiap mahasiswa teknik disubsidi pemerintah 6 juta pertahun (sebagai perbandingan uang kuliah waktu itu 500 ribu pertahun).

Kebangkitan Perekonomian

Ketika krisis tentu saja menjadi dosen pun tetap sulit walaupun tidak terjadi PHK besar-besaran seperti di industri atau perkantoran. Walaupun penghasilannya menurun drastis tetapi tetap bisa bertahan. Untungnya perekonomian Indonesia mulai bangkit dan banyak berdiri institusi-institusi pendidikan yang membaca peluang karena melihat banyaknya sarjana-sarjana yang menganggur. Dengan mudahnya mereka merekrut dosen baru walau tanpa diberi status yang jelas, asalkan diberi honor yang sesuai dengan jam mereka mengajar mereka pasti menerima. Saya sendiri termasuk dalam kategori tersebut. Jujur saja status dosen saya waktu itu tidak bisa disamakan dengan dosen-dosen universitas negeri, atau minimal universitas swasta terkenal.

Munculnya kampus-kampus seperti ruko mungkin efek dari melimpahnya sarjana-sarjana yang belum terserap di dunia kerja. Anda mau buka jurusan apapun, tenaga pengajar selalu tersedia, jika tidak ada, boleh menggunakan praktisi ataupun PNS dan bahkan pensiunan. Untuk lebih jelasnya dapat dibaca pandangan Prof Rhenald kasil yang diposting di kompas dengan judul “Naiknya Harga Dosen“.

Namun sepertinya pemerintah membaca gelagat yang tidak beres dari kondisi seperti ini. Diawali dari rendahnya publikasi ilmiah dari dosen dan peneliti di Indonesia (seperti biasa, Malaysia jadi patokan) serta banyaknya penyimpangan-penyimpangan di institusi pendidikan memunculkan kebijakan keras dari pemerintah yang cukup menghancurkan kampus-kampus dadakan dengan munculnya aturan (sekitar 2010 mulai diberlakukan kalo nggak salah):

  1. Dosen Minimal S2
  2. Rasio Dosen 1: 30 atau 40
  3. Dosen tidak boleh sekaligus sebagai guru

Program Percepatan Doktor

Pemicu kebijakan ini menurut saya diawali dari kebijakan dari DPR untuk menaikan anggaran pendidikan sebanyak 20% yang jika tidak ada program yang tepat, tidak akan terpakai semua. DIKTI yang merupakan bagian dari KEMDIKBUD segera mencari cara untuk meningkatkan pendidikan yaitu dengan beasiswa dan tunjangan profesi. Beberapa dosen diberangkatkan ke luar negeri untuk studi lanjut (kebanyakan S3 dan beberapa S2 untuk yang masih berusia muda / calon dosen). Saya sendiri termasuk dalam kategori tersebut.

Gelombang demi gelombang keberangkatan dijalankan dan karena beasiswa berasal dari pemerintah dengan ikatan dinas tertentu, yang telah lulus kembali ke tanah air dan mengabdi. Ternyata diperoleh kualitas yang cukup baik jika dosen menempuh studi lanjut di luar negeri. Sementara itu di dalam negeri, DIKTI kian ketat menjalankan aturan yang ada, baik dari sisi usia dosen, bahkan hingga pengajar yang akan membuat NIDN harus disertai slip gaji bukti bahwa yang bersangkutan bukan dosen “cabutan” serta adanya tes potensi akademik (TPA) dan Toefl (bahasa Inggris). Pegawai-pegawai (biasanya swasta) yang namanya dipinjam sebagai dosen terpaksa harus studi lanjut atau tidak menjadi dosen lagi dengan aturan tersebut. Atau pegawai-pegawai yang menolak untuk berbohong bahwa ia bekerja full time sebagai dosen di suatu institusi menolak meneruskan menjadi dosen, atau memilih meninggalkan pekerjaannya dan memilih menjadi dosen. Saya sendiri termasuk dalam kategori tersebut, memilih menjadi dosen dan meninggalkan jabatan koordinator lapangan IT Bank Danamon wilayah Utara.

Penghargaan Pemerintah Kepada Dosen

Bayangkan dengan keluarga yang sudah memilki anak, tetapi dengan gaji dosen sepertiga dari gaji ketika menjadi pegawai waktu itu merupakan pertaruhan yang sulit, bahkan saya sempat mengalami sesak nafas karena beban fikiran. Untungnya karena adanya hibah-hibah penelitian, serta dihargainya kepangkatan, waktu itu sedikit membantu dan banyak waktu untuk melakukan riset kecil-kecilan karena jumlah waktu untuk nyambi mengajar di tempat lain bisa dikurangi tanpa khawatir kekurangan. Bahkan beberapa buku telah saya terbitkan dengan royalti yang cukup karena sebenarnya saya hanya memindahkan apa yang saya ajarkan ke dalam wujud buku (tanpa terlalu bekerja keras).

Beberapa kasus korupsi terjadi di institusi-institusi pemerintahan, bahkan kementerian hukum dan HAM hingga Kementerian Agama pun ditemui kasus korupsi. Namun kementerian pendidikan walaupun ada sedikit kasus pengadaan alat praktikum yang terjadi korupsi, namun karena sistem yang mulai tertata dan aturan-aturan yang ada mulai ketat, dunia pendidikan di Indonesia mulai bergerak maju. Beberapa hal yang membantu antara lain:

  1. Adanya Tunjangan Profesi (SERDOS)
  2. Hibah-Hibah Penelitian dan Pengabdian
  3. Diperluas kesempatan untuk Studi Lanjut (dalam dan luar negeri)

Naiknya Harga Dosen

Jadi memang benar apa yang dikatakan oleh Prof. Rhenald Kasali, bahwa harga dosen mulai naik. Beberapa rekan saya yang mengajar di tempat saya nyambi sebagai dosen honorer satu persatu pindah ke kampus-kampus yang memberikan penghargaan yang layak terhadapnya. Sebenarnya bukan hanya uang yang mereka cari, penghargaan dan diakui sebagai dosen merupakan salah satu faktor juga yang menyebabkan transfer dosen dari satu kampus ke kampus yang lain. Saya sendiri termasuk dalam kategori tersebut

Kampus jika tidak dipimpin oleh pimpinan yang mampu membaca peta atau arah pendidikan nasional akan kesulitan, terutama meramu seluruh kekuatan yang ada baik dari sisi dana, kurikulum dan sumber dayanya. Para dosen pun mulai berani dan sadar akan kekuatan yang selama ini masih berupa potensi.

Aturan baru tentang jumlah SKS untuk S2 dan S3 sedikit banyak juga bisa mencegat aksi kampus yang memaksakan untuk menambah rasio dosen dengan melulus cepatkan mahasiswa S2- nya, apalagi yang swasta. Dengan jumlah SKS sebanyak itu mengakibatkan masa tunggu untuk memperoleh calon dosen dengan syarat minimal (S2) jadi sedikit bertambah, belum lagi jika kampus itu memiliki program pasca sarjana yang mutlak harus berpendidikan S3.

Kisruh Dana Beasiswa

Harga dosen yang sudah naik menurut Profesor dari UI seperti diutarakan di atas mungkin menjadi “lebih naik lagi” manakala dosen-dosen yang sedang menempuh pendidikan S3 di luar negeri mengalami kesulitan dana beasiswa (terlambat), seperti curahan hati dosen-dosen penerima beasiswa seperti dapat anda baca dari blog-blog mereka, misalnya rekan saya Ahmad-hamid yang mengambil studi di Jepang. Bahkan yang lebih parah lagi adalah curahan hati dari benua di selatan kita, Australia, yang kesulitan karena lewatnya masa batas beasiswa S3 yaitu tiga tahun yang dia tumpahkan di kompasiana. Ketika menulis ini, lagi-lagi Saya sendiri termasuk dalam kategori tersebut (cuma telat dikit sih).

Pergantian pemerintahan yang kebetulan terjadinya kisruh ini semoga lebih baik lagi tertata di pemerintahan yang akan datang, amiin.

Yuukk … siapa yang mau jadi dosen 😀

Spatial analysis dengan ArcView – Bag 2

Setelah pada tulisan yang lalu kita menganalisis pengaruh lokasi, kondisi geografis, dan kandungan tanah terhadap produktivitas pertanian sekarang kita akan mencoba mencari lokasi yang optimal suatu toko berdasarkan informasi pelanggan, populasi, dan jarak toko yang ada saat ini.

Setelah mengeset satuan menjadi meter, tambahkan di view tiga shape file yang menjadi dasar penentuan lokasi toko seperti ditunjukkan pada gambar di atas. Untuk shape file Stores kita pertama-tama menentukan toko-toko yang ada saat ini yang memiliki keuntungan sebagai dasar perhitungan. Gunakan Querry untuk mencari toko-toko mana saja yang memiliki [Revenues] > 0.

Metode-metode pada postingan sebelumnya masih digunakan di latihan kali ini seperti reclassify, konversi shape file menjadi GRID, dan lain-lain. Saat mengkonversi yang penting untuk diperhatikan adalah outputnya, dalam latihan ini output diarahkan dengan View yang dibandingkan, misalnya ‘Same As Distance to Store.shp‘.

Jika dari Distance to Store, number of pupulation related to Store, dan perilaku pelanggan sudah terpetakan tinggal menghitung skor yang ada untuk ditampilkan hasilnya dalam format graduated colour. Jika tanpa bobot, tiga faktor itu tinggal dijumlahkan dan hasilnya dibagi tiga.

( [Reclass of Density from Pop.shp] + [Reclass of Distance to Stores.shp] + [Reclass of Group]) / 3

Jika diberi bobot, misalnya [Reclass of Distance to Stores.shp] memiliki bobot dua kali faktor yang lain maka kita tinggal mengalikan dengan dua. Tetapi ketika saya coba berkali-kali tidak berhasil, bahkan ArcView tiba-tiba closed, wahh .. untungnya project sudah saya simpan. Ternyata dengan menjumlahkan dua kali faktor yang berpengaruh dapat dihasilkan hitungan yang berbobot (Weighted). Tentu saja pembaginya juga ditambah, dari tiga menjadi empat (ingat cara menghitung Index Prestasi siswa kan?).

( [Reclass of Density from Pop.shp] + [Reclass of Distance to Stores.shp] + [Reclass of Distance to Stores.shp] + [Reclass of Group]) / 4

Kemudian dihasilkan gambar di bawah ini. Perhatikan makin gelap warna makin tinggi skor untuk toko didirikan di sana. Tentu saja masih banyak faktor lain yang perlu dipertimbangkan seperti tersedianya akses jalan, lahan parkir, dan sebagainya.

Delete SQL dengan Matlab

Mudah-mudahan mas yang menanyakan masalah DELETE data dengan Matlab sudah menemukan jawaban. Kalau belum, semoga postingan ini bermanfaat.

Berbeda dengan instruksi INSERT dan SELECT yang memasukkan data dan menampilkannya, instruksi DELETE harus didefinisikan dengan jelas record yang akan didelete. Untuk instruksi INSERT dan SELECT telah diuraikan pada postingan saya yang lalu ‘Koneksi Matlab dengan Sistem Basis Data‘. Berikutnya kita coba dengan instruksi DELETE.

Pastikan Anda sudah mengkoneksikan ODBC dengan tabel yang berisi X, dan Y yang berisi bilangan numerik.

Jika masih kosong, tambahkan tabel tersebut dengan instruksi ini:

>> insert(Conn,’lokasi’,data,[1,3])

>> insert(Conn,’lokasi’,data,[1,4])

>> insert(Conn,’lokasi’,data,[2,4])

>> insert(Conn,’lokasi’,data,[3,4])

>> Results=fetch(Conn,’select * from lokasi’)

Results =

[1] [3]

[1] [4]

[2] [4]

[3] [4]

Saya menggunakan tabel ini untuk menyimpan koordinat longitude dan latitude suatu lokasi. Dengan instruksi SELECT diketahui data sebagai berikut:

Database membutuhkan lokasi mana yang ingin dihapus. Misal kita ingin menghapus data pada tabel lokasi yang memiliki field x = 1, maka kita membutuhkan instruksi SQL Query ini:

>> deleteQuery = [‘delete from ‘,Conn.Instance,’ where’,’ x’,’ =’,’1′,’;’];

Dilanjutkan dengan mengeksekusinya:

>> hapus=exec(Conn,deleteQuery);

Jika Anda melihat isi dari lokasi diperoleh data bahwa seluruh record dengan field x =1 hilang.

>> Results=fetch(Conn,’select * from lokasi’)

Results =

[2] [4]

[3] [4]

Bagaimana jika field y yang dihapus? Mudah saja ganti saja ‘x’ dengan ‘y’, misal y=4 akan dihapus.

>> deleteQuery = [‘delete from ‘,Conn.Instance,’ where’,’ y’,’ =’,’4′,’;’];

Dilanjutkan dengan mengeksekusinya:

>> hapus=exec(Conn,deleteQuery);

>> Results=fetch(Conn,’select * from lokasi’)

Results =

[]

Tampak data dengan y=4 terhapus. Bagaimana jika ingin mengosongkan seluruh isi tabel? Gunakan Query: DELETE FROM <nama_tabel>;

 

 

Spatial Analysis dengan ArcView – Bag 1

Tingkat kesulitan praktikum ArcView kian sulit dari minggu ke minggu. Kali ini setelah mengikuti kuliah Data Manipulation and Analysis, dilanjutkan dengan praktek penerapannya di ArcView. Ada dua bagian yaitu menganalisa hasil panen suatu region dengan berbagai komponen, misalnya kandungan organik tanah, potassium dan variabel-variabel lainnya. Seperti biasa, kami diberikan data-data tentang region yang akan dianalisa.

Konversi Satuan

Buat project baru terlebih dahulu dan sebelumnya tambahkan ‘Spatial Analysis‘ pada extension di menu File. Satu hal penting adalah masalah satuan karena jika salah maka dampaknya akan buruk dari kualitas hasil pekerjaan kita di ArcView. Konversi satuan dapat dirubah setelah menambahkan satu View kemudian klik di Menu View – Properties. Dalam praktek di lab ini, kami menggunakan satuan Standar Internasional (SI) yaitu meter.

Lihat posting sebelumnya untuk menambahkan extension, juga teknik-teknik untuk membuat Event Theme dari data txt di bab ‘Georeference and GPS’.

Gambar titik-titik adalah lokasi pertanian dan kotak biru tersebut adalah peta pertanian dari shapefile. Berikutnya akan dilakukan interpolasi GRID terhadap hasil panen (Yield). Interpolasi merupakan satu metode analisa untuk memperkirakan nilai suatu titik/lokasi berdasarkan sebaran dari lokasi-lokasi yang melingkupinya. Untuk lokasi di luar lokasi-lokasi yang berdekatan diberi nama lain yaitu extrapolasi.

Gambar di atas adalah hasil interpolasi grid dari Yield. Teknik lain yang penting untuk diketahui adalah reclassify suatu data.

Reclassify

Reclassify adalah teknik merubah suatu nilai kontinyu menjadi interval, misalnya kita memiliki data usia dari 0 – hingga 80 tahun. Maka kita dapat melakukan klasifikasi, misalnya 0 – 5 tahun, 5 – 10 tahun, dan seterusnya.

Digital Elevation Model (DEM)

DEM merupakan model yang merepresentasikan elevasi / ketinggian suatu wilayah. Model ini memiliki bagian utama berupa data vektor, dan sebagai pelengkapnya adalah data raster. Selain DEM, dikenal juga Digital Terrain Model (DTM) dan Digital Surface Model (DSM). Data DEM bisa diperoleh lewat photogrammetry, LIDAR, ifSAR, survey tanah, dan sebagainya.

Tambah pada View data grid dari DEM yang telah kita miliki. Jika sudah maka kita memiliki pilihan pada Surface Menu. Buat Contour, Slope, dan Aspect di View Anda. Contour adalah garis dengan ketinggian yang sama, Slope adalah kemiringan dan Aspect adalah lokasi berdasarkan arah mata angin, misalnya North East, North West, dan sebagainya.

Gambar di atas contoh hasil analisa permukaan yang berupa garis Contour. Berikutnya dengan cara yang sama kita dapat membuat permukaan berdasarkan variabel-variabel yang menentukan hasil panen yaitu organic matter dan potasium misalnya. Ada satu kendala ketika diminta merubah nama Theme. Ternyata mudah saja dengan mengklik menu Theme – Properties dan ganti nama theme di kolom name. Hmm .. itulah gunanya praktek.

Membuat Grafik Histogram

Histogram adalah grafik yang menggambarkan sebaran frekuensi suatu data dengan suatu interval. Misalnya kita ingin mengetahui jumlah penduduk pada interval berapakah yang terbanyak? Di dalam kasus ini kita akan melihat grafik histogram antara hasil panen dengan sebaran potasium dan kandungan organik suatu wilayah sehingga kita dapat menarik kesimpulan hubungan keduanya (antara Yield dengan kandungan organik dan antara Yield dengan potasium).

Untuk membuatnya kita sorot Yield yang sudah kita reclassify kemudian klik Analysis – Histogram by Zone pada menu.

Setelah itu masuk ke Exercise II yang sedikit lebih rumit (Bersambung).

Incident Matrix dan Inverted Index

Bab pertama pada mata kuliah Information Retrieval adalah seputar bagaimana kita mencari suatu kata dalam beberapa berkas yang telah kita simpan. Berkas-berkas tersebut berupa format text dari aplikasi-aplikasi pengolah kata (word processing).

Incident Matrix

Jika kita ingin mengetahui dalam document mana saja kah kata tertentu, misalnya Indonesia berada? Caranya adalah kita melihat kata Indonesia dalam incident matrix kemudian melihat dalam matrix itu dalam dokumen mana saja kata Indonesia berada. Dalam prakteknya incident matrix sangat memboroskan memori karena seperti kita perkirakan, jumlah keberadaan sangat sedikit, atau dengan kata lain banyak jumlah nol dibanding satu.

Berikut ini contoh soal dari buku referensi Information Retrieval karya Manning, dkk tentang pembuatan incident matrix dan inverted index. Jawaban soal dapat Anda lihat di situs ini, walaupun baru bab 1 saja yang diselesaikan.

Doc 1 – breakthrough drug for schizophrenia
Doc 2 – new schizophrenia drug
Doc 3 – new approach for treatment of schizophrenia
Doc 4 – new hopes for schizophrenia patients

Perhatikan soal di atas, dimana misalnya kita memiliki empat dokumen. Dokumen satu berisi kata breakthrough, drug, for, schizophrenia. Tentu saja ini hanya perumpamaan, karena satu dokument tentu bisa saja hingga berjuta-juta kata. Bagaimana cara membuat incident matrixnya? Sesuai dengan namanya, incident matrix berarti matriks yang berisi keberadaan suatu kata dalam dokumen. Jadi kita cari kata ‘breakthrough‘ ada di dokumen satu, ‘drug‘ di dokumen satu dan dua, dan seterusnya.

Doc 1 Doc 2 Doc 3 Doc 4
approach 0 0 1 0
breakthrough 1 0 0 0
drug 1 1 0 0
for 1 0 1 1
hopes 0 0 0 1
new 0 1 1 1
of 0 0 1 0
patients 0 0 0 1
schizophrenia 1 1 1 1
treatment 0 0 1 0

Terlepas dari kelemahan dari sisi kapasitas matriks yang besar, incident matrix sangat baik digunakan untuk mencari kata dengan operasi boolean (boolean retrieval). Misalnya kita diminta mencari kata-kata dengan boolean:

for AND NOT (drug OR approach)

Maka kita dengan mudah melakukan operasi logika dari incident matrix.

Term vectors
for – 1 0 1 1
drug – 1 1 0 0
approach – 0 0 1 0

Seperti operasi aljabar boole yang telah kita pelajari dari mata kuliah logika, kita kerjakan terlebih dahulu yang dalam kurung (drug OR approach).

1 1 0 0 OR 0 0 1 0 = 1 1 1 0

Setelah operasi NOT diperoleh invers dari jawaban di atas yaitu : 0 0 0 1 dan terakhir dilakukan proses AND dengan for:

1 0 1 1 AND 0 0 0 1 = 0 0 0 1

Inverted Index

Bentuk incident matrix jarang sekali digunakan saat ini. Bentuk yang terkenal adalah Inverted Index, di mana Term di hubungkan dengan lokasi document dimana term tersebut berada. Term adalah suatu kata kunci yang dijadikan objek searching. Pada contoh di atas kita menggunakan kata, walaupun terkadang kita harus memanipulasi kata tersebut, misalnya words yang jamak kita konversi menjadi word (kata dasarnya), serta metode-metode lain yang dibahas di buku Manning di bab-bab berikutnya.

approach,1 Doc 3
breakthrough,1 Doc 1
drug,2 Doc 1 Doc 2
for,3 Doc 1 Doc 3 Doc 4
hopes,1 Doc 4
new,3 Doc2 Doc3Doc4
of,1 Doc 3
patients,1 Doc 4
schizophrenia,4 Doc 1 Doc 2 Doc 3 Doc 4
treatment,1 Doc 3

Perhatikan bentuk inverted index di atas. Suatu Term, misalnya ‘for‘ memiliki frekuensi keberadaan sebanyak 3. Di sebelah kanannya berjajar posting list yang sudah tersortir berdasarkan lokasi dokumen, diberi nama docID. Sebenarnya bentuk inverted index tidak seperti di atas, bentuk di atas hanya mempermudah pengetikan saja, aslinya adalah sebagai berikut:

Maaf tulisannya kayak gitu .. tapi jika Anda bisa membacanya, dijamin seumur hidup Anda bisa membaca seluruh jenis tulisan :D.

Musik dan Billyard di Asian Institute of Technology (AIT)

Seharian kuliah dan belajar jika tidak diselingi dengan hiburan bisa pecah kepala. Untungnya di tempat saya kuliah tersedia studio musik gratis. Dalam rangka acara Welcome Show mahasiswa baru kami dari persatuan mahasiswa Indonesia Thailand (PERMITHA) cabang AIT akan menyumbangkan beberapa kontes dari dance, music dan talent.

Yang terpenting dari adanya acara sebenarnya adalah kumpul-kumpulnya karena akibat kesibukan, biasanya kami jarang bertemu satu sama lain. Karena jauh dari kampung halaman, kami merasa seperti saudara sendiri, dan saat berkumpul adalah saat yang tepat untuk menumpahkan uneg-uneg di kepala, dari masalah studi hingga masalah keluarga bahkan keuangan.

Student Union Café (SU Café) merupakan sarana mengusir penat kami para mahasiswa. Syukurlah dengan aturan baru pemerintah Thailand, di seluruh kampus tidak boleh diperjual belikan minuman keras. Sebelum berlatih, kami memanfaatkan meja billyard yang ada, lumayan. Bagi mahasiswa apa sih yang tidak menarik dari yang gratisan, he he.

Seperti biasa, jari-jari terasa sakit karena lama tidak menyentuh senar gitar. Untungnya tangan masih lincah dan feeling masih ok. Karena kami rata-rata sudah berumur (aliran 80-an) terpaksa kami mencari lagu yang slow, misalnya lagu “love will keep us alive” yang dibawakan oleh group Eagles di tahun 90-an. Mengingatkan saya ketika akhir-akhir SMA dahulu.

Elias Gamma & Delta Coding

Kompresi sangat bermanfaat karena kecepatan prosesor dalam melakukan encode dan decode jauh di atas kecapatan baca dan tulis dari disk ke memory. Apalagi jika kita menggunakan Single-Pass In Memory Indexing (SPIMI) dimana kita dapat melakukan kompresi pada Terms dan Postings. Berbagai metode dapat kita gunakan untuk melakukan kompresi pada Terms, sementara untuk Postings dapat kita lakukan dengan dua cara yaitu:

  1. Storing successive docIDs, dengan kata lain menggunakan offset. Misal dari pada kita menulis <1001,1010,1052,…> kita dapat menuliskannya dengan <1001,9,42,…> dimana menghasilkan angka yang jauh lebih kecil.
  2. Menggunakan variable size dari prefix code. Caranya adalah dengan melihat nilai maksimum dari sebaran angka, akibatnya terhindar dari pemborosan kapasitas byte tiap Posting. Nah, akan kita bahas penggunakaan variable size ini dengan kode Elias gama dan delta.

Elias Gamma Coding

Metode ini dikembangkan oleh Peter Elias. Dengan teknik pengkodean:

  1. Tulis dalam biner
  2. Jumlah bit pada proses no.1 dikurang satu untuk menentukan jumlah nol (zeros) yang harus ditambahkan di muka angka tersebut.

Contoh kita punya bilangan 11 langkah pertama adalah konversi 11 menjadi biner, yakni 1011. Langkah dua menghasilkan tiga yang berasal dari 4 bit dikurang satu. Hasilnya adalah 0001011. Deretan angka 11, 15, dan 27 dengan elias gamma code menjadi 00010110001111000011011.

Bagaimana dengan docede-nya? Caranya gampang, hitung jumah nol (zero) sebelum ditemukan bilangan 1, misalnya kita akan mendekode 0001011. Karena ada 3 zero maka (3+1) setelah zero itu adalah bilanganya, yaitu 1011, yang jika dikonversi ke desimal menjadi 11. Apa fungsi Elias Gamma Coding tersebut? Tentu saja manfaatnya adalah kita dapat mengirim tiga angka berjajar sekaligus, sebab jika kita hanya meng-concatenate tiga bilangan tersebut akan tidak bermakna, misalnya tiga bilangan tersebut di atas jika dikirim 1011111111011 ada berjuta2 variasi kombinasi biner tersebut yang setara dengan desimalnya.

Elias Delta Coding

Seperti Elias Gamma, kode ini ditemukan oleh Peter Elias. Kode ini menerapkan juga metode pada gamma coding, terutama di bagian kepala. Tekniknya adalah sebagai berikut:

  1. Cari pangkat tertinggi binernya, misalnya desimal 11 jika dibinerkan menjadi 1011 dimana pangkat tertingginya adalah 3. Jadi N’=3.
  2. Gunakan Gamma Coding untuk mengkodekan bilangan N dimana N=N’+1. Jadi untuk kasus desimal 11 maka kita harus membuat Gamma Coding dari 4 yaitu 00100.
  3. Tambahkan sisa N’ binary pada hasil no.2. Jadi diperoleh jawaban 00100011.

Berikutnya adalah medekode Elias Delta Coding, prinsipnya adalah kebalikan dari langkah satu sampai tiga di atas. Misalnya kita akan mendekode 00100011.

  1. Temukan jumlah zero sebelum ditemukan angka satu, yaitu 00, berjumlah dua. Berarti ada (2+1) angka yang harus diperhatikan setelah dua angka nol ini yaitu 100 yang dalam desimalnya berarti 4, jadi kita mendapatkan N’ dengan N-1 = 4-1 = 3.
  2. Jika N’ telah diketahui, yaitu 3 maka ada tiga bit tersisa yang menjadi bagian bilangan itu yakni 011. Jadi diperoleh jawaban 1011 yang artinya 11.

Jika kita diberikan rentetan biner sebagai berikut: 00110000110011110010100111110000 merupakan deretan angka 35, 101, dan 112. (Perhatikan warna biner di atas untuk memudahkan).

Reference

Manning, Christopher D., Prabhakar Raghavan and Hinrich Schütze (2008), Introduction to information retrieval, Cambridge: Stanford University.

Mining Itemset using Vertical Data Format (Menghitung Closed Itemset )

Satu bab yang cukup rumit pada mata kuliah Data Mining adalah Mining Itemset using Vertical Data Format. Berikut ini adalah contoh soal dengan 5 buah transaksi:

  • T1: a,b,c
  • T2: a,b,c,d
  • T3: c,d
  • T4: a,e
  • T5: a,c

Pertanyaannya adalah:

  1. Cari closed sets!
  2. Jika minimum support =2, cari closed frequent dan maximal frequent set –nya.

annotsrc1410163109914

Cara mengerjakannya adalah mengikuti soal tersebut, karena pertanyaan 1 dan 2 merupakan urutannya. Pertama-tama kita rinci terlebih dahulu closed sets dari item-itemnya, dimulai dari yang set terkecil (satu).

Set    Support    closed set/tidak ?

  1. {a}    4        closed set
  2. {b}    2        bukan closed set
  3. {c}    4        closed set
  4. {d}    2        bukan closed set
  5. {e}    1        bukan closed set

Mengapa {b} bukan closed set? Karena dia memiliki super-itemset yang jumlahnya juga dua (yaitu {a,b,c} dan {a,b,c,d}). Syarat closed itemset adalah supportnya harus lebih besar dari super-itemsetnya. Untuk sementara diperoleh closed sets = {{a}, {c}} dan karena keduanya di atas nilai minimum support (dua), maka sets tersebut juga closed frequent.

Berikutnya untuk yang jumlah setnya dua.

Set    Support    closed set/tidak?

  1. {a,b}    2        bukan closed set
  2. {a,c}    3        closed set
  3. {a,d}    1        bukan closed set
  4. {a,e}    1        closed set
  5. {b,c}    2        bukan closed set
  6. {b,d}    1        bukan closed set
  7. {b,e}    –        bukan closed set
  8. {c,d}    2        closed set
  9. {c,e}    –        bukan closed set
  10. {d,e}    –        bukan closed set

Closed Frequent = {{a,c}, {c,d}}. Mengapa {a,e} walaupun closed set tetapi tidak frequent? Karena supportnya hanya satu maka tidak memenuhi persyaratan frequent yaitu lebih besar atau sama dengan minimum supportnya (dua). Berikutnya untuk jumlah item tiga.

  1. {a,b,c}    2
  2. {a,b,d}    1
  3. {a,c,d}    1
  4. {b,c,d}    1

Dan diperoleh Closed Frequent ={{a,b,c}} karena yang lainnya di bawah min_support. Jadi diperoleh Closed Frequent sets = {{a},{c},{a,c},{c,d},{a,b,c}}.

Untuk soal no.2 kita diminta mencari Maximal Frequent Sets yaitu sets yang frequent, misal X, dan tidak memiliki Super-Itemsets yg frequent juga, Y, dimana Y ᴐ X.

Jawabannya adalah {{c,d},{a,b,c}}.

Mengapa {c,d}? lihat di transaksi, {c,d} tidak memiliki super-itemset, dan item tersebut frequent, jadi {c,d} adalah maximal. Bagaimana dengan {a,b,c}? walaupun dia memiliki super-itemsets {a,b,c,d} tetapi itemset ini tidak frequent (di bawah min_support).

Untuk yang ingin mendalami lebih jauh, bisa baca jurnalnya di sini.

Instruksi SELECT pada SQL – Bagian 1

Hari kedua tutorial Oracle membahas tentang instruksi SELECT untuk mengambil data dari database yang telah dibuat lewat mekanisme Data Definition Language (DDL). Instruksi SELECT sendiri masuk dalam kategori Data Manipulation Language (DML). Untuk yang belum meninstal SQL dapat dilihat pada tulisan sebelumnya untuk instalasi dan juga cara mengoperasikan DDL.

Perlu diketahui Oracle Database versi Express hanya memiliki satu database saja, oleh karena itu kita bersihkan terlebih dahulu tabel-tabel yang telah dibuat pada praktek sebelumnya. Gunakan erase_table untuk membersihkannya. Jangan jalankan semua, melainkan perblock dengan cara setelah copy-paste, sorot/blok instruksi yang baru saja dipindahkan, klik tombol atau dengan menekan F5.

Instruksi SELECT *

Jika sudah lanjutkan dengan membuat tiga tabel yaitu Student, Course, dan Student_Course add_tables_and_records Perhatikan setiap menjalankan instruksi SQL pastikan berjalan dan tanpa pesan kesalahan. Jika sudah maka Anda telah berhasil membuat tiga tabel yang akan kita utak-atik dengan instruksi terkenal SQL SELECT. Untuk melihat isi seluruh tabel, gunakan instruksi SELECT *;

  • SELECT * from Student;
  • SELECT * from Course;
  • SELECT * from Student_Course;

Jika tidak ingin seluruh Field ditampilkan, pada instruksi SELECT, ganti * dengan field-field yang Anda inginkan dengan disekat koma.

SELECT Student_ID, Last_name FROM Student;

CONDITIONAL CLAUSE

Terkadang kita ingin menampilkan yang lebih spesifik lagi, tidak hanya sekedar field-fieldnya. Oleh karena itu kita memerlukan Conditional Clause yang tersedia di SQL yakni:

  • WHERE
  • GROUP BY
  • HAVING
  • ORDER BY

Berikut ini kita akan mengambil data dari tabel Student yang memiliki nama belakang diawali ‘W’ dan memiliki nama tengah (Middle Initial).

SELECT * FROM Student WHERE (Last_Name LIKE ‘W%’) AND (MI IS NOT NULL);

Cek apakah ada error, oiya, jangan lupa gunakan tanda petik satu (‘) dari keyboard Anda, entah mengapa jika copas dari blog dianggap bukan tanda petik satu oleh SQL. Gunakan teknik garis bawah untuk menentukan letak huruf ke berapa dari field yang kita inginkan.

(Bersambung).

Dialog Dikti dengan Karyasiswa Mengenai Permasalahan Pencairan Beasiswa

Setelah hampir satu minggu tidak ada titik temu antara mahasiswa penerima beasiswa dengan pihak DIKTI akhirnya suasana kembali cair setelah adanya dialog yang diprakarsai oleh berita satu. Dialog tersebut dapat diakses secara streaming lewat internet, atau rekamannya dapat dilihat di situs salah satu mahasiswa yang berdialog dengan DIKTI, Abdul Hamid, Lihat di sini.

Sesi 1.

Setelah sesi pertama pihak DIKTI yang diwakili olep Prof. Supriadi Rustad, yang sering kita dengar dan baru kali ini saya melihat wajahnya. Beliau memberikan alasan keterlambatan (yang seharusnya sudah cair bulan Juli) seperti masalah kegagalan metode pengumpulan progress report (PR), serangan Hacker, dan masalah administratif lainnya. Di studio juga dihadiri oleh pemerhati masalah pendidikan, yang juga pernah menerima beasiswa DIKTI.

Sesi 2.

Sesi kedua kembali menjadi tegang sebentar tapi akhirnya lega karena DIKTI kembali ke cara lama dimana Progress Report (PR) tidak supervisor yang memberikan melainkan dia hanya tanda tangan saja (kembali ke metode yang lama).

Sesi 3.

Syukurlah Minggu depan mulai proses pencairan, karena hanya tinggal segelintir karyasiswa yang belum mengirimkan PR (dari ribuan tinggal ratusan).

Sesi 4

Memang sistem yang ada di DIKTI sudah saatnya diperbaiki, terutama jumlah personal yang mengurusi beasiswa. Bandingkan saja, LPDP dari kementerian keuangan ditangani oleh 50-an orang, sementara DIKTI hanya 5 orang.

Catatan Kuliah dengan Android

Lama-lama malas juga kalo datang kuliah dengan berbekal buku-buka tebal dengan buku catatan yang terkadang serabutan (seluruh materi mata kuliah yang berbeda dalam satu buku). Saya coba dengan belajar hanya lewat tablet, ternyata ada sedikit kekurangan, yaitu tidak bisa mencorat-coret, hanya bisa menandai saja (garis stabilo, atau anotation). Memang benar tablet termasuk salah satu perangkat pasif dan tidak seproduktif laptop. Tetapi membawa laptop tentu saja lebih merepotkan dari membawa buku.

Pen – Stylus

Sempat saya mencoba pen stylus capasitive, tetapi hasilnya berbeda dengan menulis dengan pena. Akurasinya kurang baik dimana kerap terjadi ketika membuat garis, putus-putus di tengahnya.

Iseng-iseng saya lihat di youtube dan tertarik dengan S-pen Galaxy Note yang mirip seperti menulis dengan pena di atas kertas. Bahkan ada aplikasi-aplikasi tertentu untuk menggambar dan pdf reader yang berfungsu juga sebagai MEMO (menulis).

Tablet with S-Pen

Ada beberapa tablet yang mampu digunakan dengan S-pen yaitu Microsoft Surface Pro dan Samsung Galaxy Note. Microsoft Surface Pro sangat mahal, sementara Microsoft Surface RT tidak kompatibel dengan S-Pen. Produk Apple entah mengapa tidak memfasilitasi tablet-nya dengan S-pen, padahal jika ada saya sudah membelinya. Akhirnya pilihan saya jatuh pada Samsung Galaxy Note 10.1 2014 Edition dengan disertai Flip case dan S-Pen tambahan original karena S-pen bawaan asli tablet ini terlalu kecil di tangan saya.

Aplikasi Untuk Membuat Catatan

Aplikasi untuk memfasilitasi S-pen sangat banyak dijumpai di Google Store, dari yang gratis hingga yang berbayar. Salah satu andalan saya adalah LectureNotes. Aplikasi ini membuat sebuah buku catatan baru dengan kertas bergaris. Hasil dapat dikonversi ke PDF atau tetap dalam formatnya. Program ini walaupun dapat diunduh secara ilegal di internet, tetapi sebaiknya kita beli, khawatir virus yang saat ini sudah masuk ke sistem operasi android.

Salah satu yang saya kagumi adalah Ez-pdf. Aplikasi ini sebenarnya untuk membaca buku elektronik dengan fasilitas thumbnail dan bentuk yang kontinyu dari satu lembar ke lembar berikutnya sehingga kita bisa melihat bersamaan hingga tiga lembar. Agak repot memang jika tidak ada fasilitas ini, terlebih jika kita membaca informasi grafik/gambar tapi terletak di halaman yang berbeda. Namun, ternyata aplikasi yang berharga 40-an ribu rupiah ini mampu digunakan untuk membuat catatan/memo dengan jumlah halaman yang bisa kita tambah/sisipi. Jadi slide yang biasa diberikan oleh dosen dapat kita corat-coret bahkan disisipi dengan gambar. Perhatikan, tiga halaman dapat kita lihat bersamaan dan jika ingin fokus ke satu halaman tinggal zoom saja. Halaman di tengah adalah halaman pdf tambahan pada slide yang disisipi foto ketika kuliah berlangsung. Praktis bukan?

Survey Lokasi dengan GPS

Georeference dengan GIS telah dibahas lewat tulisan terdahulu saya, sedikit ribet karena melibatkan Image Analysis. Sebelumnya dilakukan terlebih dahulu sample lokasi dimana kami menentukan koordinat dengan menggunakan GPS. GPS merupakan alat yang berfungsi menentukan lokasi koordinat (X,Y) berdasarkan lokasi satelit yang memberikan koordinatnya masing-masing. Jika lebih dari tiga satelit telah memberikan koordinatnya masing-masing, maka GPS akan menghitung berapa koordinat si pemegang GPS saat ini. Prinsipnya sangat sederhana dan telah digunakan jauh sebelum masehi oleh phytagoras. Modalnya adalah peta dari satelit, kemudian menandai lokasi-lokasi yang akan dituju kemudian memindahkan koordinat-koordinat lokasi itu ke ArcView, seperti pengarahan berikut ini:

Beberapa lokasi telah kami pindai, bahkan lokasi di kampus kami yang belum pernah saya jajaki, seperti kolam renang:

Hingga lapangan Golf.

Yang wajib di data sebenarnya adalah lokasi pada sudut-sudut di peta yang akan kita cari koordinat longitude dan latitude-nya. Hmm .. ternyata melelahkan juga. Sebenarnya bisa saja kita menggunakan Google Map untuk menentukan koordinatnya.