Saturday, March 12, 2016

Membuat aplikasi GUI dengan GUIDE di MATLAB

Dalam tutorial kali ini saya ingin mempertontonkan kepada pembaca tentang bagaimana cara membuat aplikasi GUI sederhana di MATLAB. Mudah-mudahan ini bisa bermanfaat. Saya akan mendemokan kasusnya untuk hal yang sederhana, selanjutnya pembaca tinggal menyesuaikannya untuk kasus yang lebih rumit, ya… yang smart dikit lah bro….
1. Step pertama buka MATLAB, yang tampilan keseluruhan window-nya kira-kira seperti berikut:

1

2. Jika sudah dibuka, selanjutnya di command window-nya ketikkan perintah guide dan tekan ENTER:

2

3. Pilih aja ‘BLANK Gui (default)’ dan klik ‘OK’ yang selanjutnya Anda akan digiring menuju tampilan sebagai berikut:

3

4. Jika sudah pencet CTRL + S atau pada menunya klik save as:

4

5. Dan save di komputer Anda dan beri nama misalnya test1:

5

6. Jika sudah, nanti di folder itu akan terbuat (tergenerate) sebuah m file yang namanya itu menyesuaikan dengan nama .fig file yang sudah kita simpan tadi.

6

7. Dan ini secara otomatis akan tampil di editor MATLAB:

7

8. Hal yang perlu pembaca pahami adalah di file editor ini kita tidak boleh melakukan pengeditan secara sembarangan, karena nama-nama variabel atau function di file ini sudah disesuaikan dengan file .fig yang menjadi pasangannya.  Di dalam m file ini terdapat opening-function yang dieksekusi ketika GUI nya pas mulai tampil. Dan ini fungsinya hampir miriplah dengan konstruktor di bahasa java. Untuk saya pribadi biasanya di opening-function ini saya taruh perintah clc, jadi ketika GUI nya tampil,  maka command-windownya dibersihkan dulu.

8

9. Kita kemudian menambahkan beberapa control pada file fig nya tadi, misalnya sebuah button dan sebuah textfield (atau dalam terminologi MATLAB nya disebut sebagai static text), caranya tinggal di drag n drop aja dari panel sebelah kiri:

9

10. Selanjutnya untuk mengeset nilai dari control-control tadi, tinggal klik kanan kemudian ‘Property Inspector’ dan kemudian muncul window buat pengaturan properties-nya:

10
11

11. Di window property inspector itu selanjutnya kita bisa mengatur beberapa hal, misalnya dengan mengganti text dari button-nya menjadi sesuatu yang lain, contoh kita ganti textnya menjadi ‘BUTTON MAKAN’, caranya lihat ke baris String, dan pada kolom di kanannya berikan text sesuai dengan yang Anda kehendaki, setelah itu CTRL + S:

12

12. Jadi Button tadi sudah berubah tampilan

13

13. Untuk memberikan fungsi pada tombol tadi, misalnya jika dia di-klik akan menghasilkan nilai tertentu, maka hal yang dilakukan adalah mengatur variabel pada property inspector nya yakni pada baris CallBack. Nah di situ kan di kolom sebelah kanan ada icon tertentu yang Anda boleh klik:

14

14. Jika sudah di-klik, nanti di m file nya ter-generate (maaf saya kurang tahu apa bahasa Indonesia yang tepat untuk menerjemahkan kata generate, tapi menurut Prof. Bobby Eka Gunara yang jadi dosen di ITB, itu diterjemahkan sebagai membangkitkan, tapi berhubung ini membahas MATLAB maka saya abaikan dulu ajaran beliau itu) sebuah fungsi yang disesuaikan dengan nama dari tombol tadi. Nama tombol ini bisa dilihat pada baris tag pada property inspector:

15

16

15. Jadi jika kita meng-klik tombol/button tadi, maka apapun perintah yang valid yang ditempatkan di dalam fungsi pushbutton1_Callback ini akan dieksekusi.
16. Selain itu, fungsi utama dari baris Tag dari property Inspector ini adalah agar kita bisa mengakses button tadi dari m-file. Misalnya kita ingin mengeprint  text pada button tadi ketika button tersebut di klik, maka yang dilakukan adalah tempatkan perintah berikut pada function pushbutton1_Callback:

17

Jadi dapat kita lihat, bahwa handles  di sini mengacu pada parameter ketiga dari  function pushbutton1_Callback, yang mana ini menyimpan global variabel dari m file nya yang merupakan nilai-nilai yang diset pada fig file. Jadi dalam kasus pushbutton1, handles.pushbutton1 merupakan tag dari button ini. Itu yang kita panggil dan kita tampung dalam variabel y. Kemudian dengan get(y, ‘string’) maka kita mengambil nilai string nya atau text yang ditampilan pada pushbutton1. Dan ini akan ditampilkan pada output.
Sebenarnya banyak hal sih yang bisa kita atur dari property inspector ini.

Wednesday, March 9, 2016

Masa depan Israel

Menyatukan arab dan yahudi dalam dua buah negara yang damai tanpa saling mengganggu itu ibarat menyatukan minyak dengan air, suatu hal yang mustahil di mata negara Israel. Anda jadi Arab dan berpaham syiah, itu sangat mudah bagi Anda kehilangan nyawa jika tetangga Anda adalah penganut Wahabi, gimana halnya jika Anda seorang Yahudi? Maka dengan demikian Israel menganggap terdapat wilayah minimum yang dibutuhkan agar mereka mampu menopang keamanan warga yang berdiam di dalamnya, itulah yang sedang diperjuangkan saat ini: single jewish state across palestinian border. Israel harus menempuh cara-cara kotor demi menjamin kemaslahatan dan eksistensi mereka sebagai negara bagi bangsa Yahudi.

Ya, biar mudahnya yahudi cabut saja dari Israel, karena di kiri kanannya adalah tanah arab, dan sudah beberapa generasi Palestina itu memang wilayahnya orang arab. Namun sebuah keganjilan jika bangsa yang sudah berusia ribuan tahun ini tidak punya negara sendiri, sementara jika mereka berdiam di negara yang dikuasai oleh bangsa lain, hal yang mereka dapati adalah penindasan dan pembantaian. Di mana lagi Yahudi harus mendirikan negaranya kalau bukan di daerah yang menjadi lahan historis bagi keberadaan mereka: tanah yang dijanjikan Tuhan.

Defenisi Tuhan di sini pun tidak bisa kita pahami sebagai single entity yang menciptakan alam semesta, Tuhan yang kita maksud adalah Yahweh yakni Tuhan nya orang yahudi. Yahudi  merupakan sebuah bangsa yang mengimani agama tertentu. Dan dalam penafsiran kontemporer terhadap Taurat yang dipaparkan di Misnah, Yahudi tetap disebut sebagai yahudi kendatipun mereka tidak lagi mengimani Yahweh (Tuhan yahudi ini) karena status keyahudian ini diperoleh melalui garis ibu (matrilineal). Jadi seseorang yang mengidentifikasi dirinya sebagai yahudi sudah seharusnya bisa melacak status keyahudian mereka hingga jauh ke beberapa generasi sebelumnya. Jadi tidak mungkin ada yahudi tiba-tiba seperti yang dituduhkan oleh beberapa penulis arab selama ini.

Israel juga sebenarnya tidak begitu rakus dengan wilayah hingga kemudian menganeksasi wilayah bangsa lain dengan serta merta. Semenanjung Sinai yang sebelumnya dikuasainya kemudian dikembalikan kepada Mesir karena Israel merasa bahwa daerah ini tidak terlalu berharga untuk dipertahankan, setidaknya jika ditinjau dari sudut pandang pertahanan. Namun kengototan Israel untuk mempertahankan Dataran Tinggi Golan dalam wilayahnya merupakan buah dari banyaknya tentara Israel yang dikorbankan untuk memperebutkan wilayah ini selama perang 6 hari. Dan pencaplokan wilayah ini oleh Israel kemudian membuka mata Syiria bahwa  mereka di ambang bahaya jika perang ini diteruskan. Mesir adalah negara di dunia ini yang begitu lunak  dengan Israel jika membahas soal Palestina. Hal ini terlihat dari tindakan yang mereka ambil ketika ada warga Palestina menyerobot untuk memasuki wilayah Mesir, yakni tembak mati.

Keengganan Mesir untuk mengambil Jalur Gaza menjadi wilayahnya makin memperjelas persoalan bahwa ini tidak sesederhana kelihatannya. Demikian pula keengganan Jordan untuk menampung penduduk Palestina yang notabene saudara-saudara mereka sesama bangsa Arab merupakan sebuah keganjilan. Penyebutan bangsa Palestina dalam nomenklatur makin memperkeruh suasana, loh emang selama ini ada yang namanya Bangsa Palestina, bukannya mereka semua sama-sama arab? Dikotomi Iran vs Irak memang wajar karena Iran sendiri didiami oleh Bangsa Persia sejak ratusan tahun, namun dikotomi Irak vs Arab atau Arab Saudi vs Kuwait semata-mata hanya dinamika semu kesejarahan mengingat kedua negara tersebut sama-sama diduduki oleh bangsa Arab. Lantas mengapa rakyat Palestina dibiarkan punah berjuang dengan kebodohannya jika negara-negara kaya minyak ini bisa memberikan alternatif yang lebih realistis dan manusia yakni dengan menyerap rakyat Palestina sebagai penduduk dari wilayahnya?

Monday, March 7, 2016

Beberapa alasan untuk tidak lagi memilih Ahok sebagai Gubernur

"Dan janganlah kamu memalingkan mukamu dari manusia (karena sombong) dan janganlah kamu berjalan di muka bumi dengan angkuh. Sesungguhnya Alloh tidak menyukai orang-orang yang sombong lagi membanggakan diri (angkuh)." (QS. Luqman:18)

Berikut ini beberapa point penting mengapa saya tidak menyukai Gubernur Ahok.

1. Gubernur Ahok terkesan sombong dan memandang rendah kaum pribumi. Gubernur Ahok menyatakan pernyataan semisal, “Kalau tahun depan terbukti ada (calon gubernur) yang lebih adil dan lebih jujur daripada saya, jangan pilih saya. Inilah ajaran nabi, bukan memanipulasi orang ikut dia membabi buta, tetapi dikasih pencerahan.” (sumber)

Dalam pernyataannya ini secara implisit Gubernur Ahok ingin menunjukkan pada kita bahwa tidak mungkin ada lagi gubernur yang bakal lebih adil dan lebih jujur ketimbang dia. Dia menganggap calon gubernur selain dia bakal melakukan kesalahan-kesalahan yang sama seperti yang dibuat oleh gubernur-gubernur sebelumnya: malas, kurang praktis hanya bisa berteori, suka KKN, tidak bisa melepaskan diri dari jeratan kongkalikong antar kolega dekat, dan banyakan hanya melakukan kebijakan dengan tujuan untuk memperkaya diri sendiri atau kolega dekat.

Saya juga kurang setuju dengan pernyataan beliau yang mengatakan bahwa dia jujur, sebab apakah benar selama ini Gubernur Ahok sudah jujur? Sejujur-jujurnya orang china, selalu saja tertanam dalam mindsetnya tabiat nyari untung, dan kita tidak mungkin bisa jujur sekaligus nyari untung, harus salah satunya dikorbankan. Mungkin juga ini berlaku pada diri Gubernur Ahok, who knows?

Sikap Gubernur Ahok yang menolak saran Megawati Soekarnoputri untuk mengambil Boy Sadikin sebagai wakilnya merupakan bentuk arogansi  paling nyata dari beliau. Gubernur Ahok seolah lupa bahwa tanpa peran PDI-P sebagai mesin politik, maka Gubernur Ahok sama sekali tidak bisa menjadi DKI-1 saat ini dan masih berjuang menjadi jagoan kampung di Belitung. Naiknya Ahok menjadi Gubernur DKI tidak bisa dipungkiri merupakan tuah dari posisinya sebagai wakil dari Jokowi, dan popularitas Jokowi sebagian besar disumbang oleh posisinya yang berasal dari etnis pribumi mayoritas di Jakarta, suku jawa. Silakan Gubernur Ahok melakukan survei untuk mencari tahu latar belakang etnis/suku di DKI, berapa persen china, berapa persen jawa, berapa persen betawi, Kristen, arab, Islam, dll, baru kemudian Gubernur Ahok bisa mengambil kesimpulan apakah naiknya dia di singgasana DKI-1 karena popularitasnya semata, atau karena kecipratan rejeki dari rumah sebelah. Dan kesuksesan Jokowi waktu Pilkada kemarin juga tidak bisa lepas dari peran partai sebagai mesin politiknya. Andaikan Jokowi maju dari partai PKS, PKB, atau PPP maka ceritanya kemungkinan bisa lain mengingat partai-partai tersebut kurang populer di pulau jawa ini. Coba bandingkan figure Jokowi dengan figure jawa lainnya (misalnya Dahlan Iskan) yang peruntungan nya berbeda hanya karena menunggangi mesin politik yang berbeda. Jokowi bisa naik jadi DKI-1 tidak lepas dari peran media yang melakukan ekspose besar-besaran terhadap figur beliau, dan media sendiri merupakan bagian dari mesin partai secara keseluruhan.

Demikian pula sikap Gubernur Ahok yang kemudian menyerang balik partai yang menjadi pengusungnya dalam Pilkada DKI lalu, adalah sebuah arogansi yang sama sekali bertentangan dengan sila kedua Pancasila. Padahal yang dibutuhkan di Indonesia ini bukan sekedar tokoh yang jujur dan adil saja, akan tetapi tokoh yang bisa fit dengan sistem yang sudah ada. Walaupun dia paling jujur dan paling adil sekalipun kalau eksistensinya hanya memberi mudarat bagi sistem, maka politik itu ibarat sistem imun tubuh kita, orang seperti itu akan disingkirkan. Gubernur Ahok membuat banyak langkah yang seperti ingin menabrak status quo yang dimiliki oleh partai politik. Belum hilang dari ingatan bagaimana Gubernur Ahok mengambil sikap berseberangan dengan Partai Gerindra, kini PDI-P lagi yang harus digurui tentang tata cara berpolitik.

Soal adil, saya juga kurang yakin apakah Gubernur Ahok merupakan figur yang adil. Sebab seadil-adilnya orang China tetap dia punya kecenderungan untuk membela orang China ketimbang etnis pribumi. Andaikan Indonesia perang dengan RRC saat ini, saya tidak tahu sikap apa yang bakal diambil oleh Gubernur Ahok, apakah membela RRC atau Indonesia. Atau jangan-jangan dia meniru Alberto Fujimori bakal lari kembali ke Belitung karena hanya mau cari aman. Orang China setau saya begitu gampang menjudge nasib orang lain, begitu dirinya ditimpa masalah yang sama, dia kemudian panik dan bingung sebelum kemudian menghalalkan segala cara untuk  keluar dari masalah.

Hal ini pula yang saya jumpai pada kasus Kalijodo kemarin: yang miskin digusur dan yang kaya dibiarkan. Di Jakarta ada banyak tempat prostitusi terselubung yang bisa dengan mudah dijumpai dan statusnya sebagai tempat prostitusi sudah menjadi rahasia umum. Pernahkah ada ikhtiar dari Gubernur Ahok untuk menggeledah tempat-tempat seperti itu? Saya yakin soal bukti bisa dihadirkan karena banyak pengunjung tempat-tempat seperti itu yang bisa ditanyai sebagai saksi. Yang jadi masalah adalah niat dari Gubernur Ahok sendiri, apakah Gubernur Ahok punya niat yang tulus untuk memberantas prostitusi tanpa pilih kasih, atau jangan-jangan dia enggan untuk melakukannya karena faktanya tempat-tempat seperti itu dimiliki oleh keturunan China. Jadi tindakannya untuk menggusur Kalijodo kemarin merupakan buah kegerahannya atas hadirnya tempat-tempat kumuh di DKI Jakarta.

Jika kemudian Gubernur Ahok berdalih bahwa tindakannya itu bukan ditujukan untuk memberangus aktivitas prostitusi, akan tetapi untuk membersihkan jalur hijau dari bangunan-bangunan ilegal, maka pertanyaan selanjutnya adalah apakah bisa Gubernur Ahok yang adil dan jujur ini berani menggusur Mall Taman Anggrek (dan beberapa mall lainnya) yang notabene bediri di kawasan jalur hijau (baca poin 2), atau dia enggan juga karena yang punya itu keturunan China---saya masih tunggu ketegasan Gubernur Ahok yang seperti katanya di biografinya bahwa dia tidak takut dengan siapapun selama dia berpegang di jalan Tuhan.

2. Gubernur Ahok tidak punya kepekaan dengan penduduk pribumi. Saya setuju dengan visi dari Gubernur Ahok yang ingin menjadikan Jakarta sebagai kota yang bersih dan modern. Namun hal yang paling penting sebenarnya bukan soal bersih saja akan tetapi soal kesejahteraan penduduk. Bagaimana bisa tinggal di kawasan yang bersih jika buat cari makan saja susah. Saya rasa itu terlalu naif jika Gubernur Ahok mengatakan bahwa angka kemiskinan di DKI Jakarta cukup rendah dengan hanya berpatokan pada angka kuantitatif soal defenisi garis kemiskinan misalnya dengan punya pendapatan minimal  1 juta sebulan. Sebab coba Gubernur Ahok menggunakan data real di lapangan. Berapa persen penduduk Jakarta yang punya pendapatan per bulan di atas 1 juta. Kemudian kurangi nilai satu juta ini dengan biaya sehari-hari untuk hidup di Jakarta, mulai dari kontrakan (paling murah 500 ribu),  transportasi perhari (kurang lebih 10 ribu) dan uang makan (kurang lebih 20 ribu perhari) maka nilai satu juta sebulan itu boleh dibilang adalah hal yang nihil. Maksudnya adalah jika gaji kita hanya 1 juta bulan, maka adalah hal bodoh jika 500 ribu nya digunakan untuk bayar kosan. Bukankah lebih baik jika ditabung atau digunakan untuk keperluan-keperluan lainnya? Maka jangan heran jika banyak penduduk Jakarta memilih tinggal di bangunan-bangunan instan (baca:gubuk) yang banyak dijumpai di sepanjang rel komuter (saya kurang tau apakah Gubernur Ahok pernah naik komuter) karena mereka ingin menyisihkan pendapatannya yang tidak seberapa itu untuk keperluan lain alih-alih bayar kosan. Dan kalaupun mereka memilih tinggal di bawah jembatan, maka itu adalah hal yang masuk akal, karena buat apa tinggal jauh-jauh dari tempat kerjaan hingga bayar ongkos transportasi ke sana-kemari sementara kebutuhan dasar saja masih susah. Masa gaji hanya habis buat sewa angkot?

Saya mengendus adanya konspirasi di sini, di mana penduduk asli Jakarta yakni suku betawi coba disingkirkan, entah dengan penggusuran atau dengan memutus mata pencaharian mereka dengan memindahkan mereka ke rumah susun. Sebab jika kita sudah tinggal di kawasan rumah susun maka yang terjadi adalah kita akan kesulitan mendapatkan penghasilan tambahan yang bisa kita dapatkan saat rumah kita berada di pinggir jalan raya yang ramai dilalui oleh orang-orang. Dan ini otomatis dengan sendirinya membuat kita kemudian mencari lahan basah yang lain yang bisa saja jauh dari habitat asli. Implikasinya suku betawi yang tadinya merupakan suku asli Jakarta sudah tercerai-berai, eksodus kemana-mana karena kampung halaman mereka sudah berganti menjadi bangunan apartemen. Sementara mereka tidak bisa menyesuaikan pendapatannya agar bisa menempati apartemen tersebut. Ondel-ondel diganti dengan Gangnam Style.

Indonesia tidak sepenuhnya negara kapitalis di mana pemilik modal yang berhak menentukan peraturan. Indonesia adalah negara Pancasila di mana “the founding father” negara ini yang sebagian besar bukan orang China merupakan orang yang punya kecenderungan besar jadi komunis, namun kemudian memilih sosialis lantaran terbentur latar belakang agama. Jadi jika kemudian kebijakan-kebijakan yang ada lebih condong pada pemilik modal, maka bukankah itu sudah mencederai apa yang dicita-citakan para pendiri bangsa ini? Kosep the founding father ini sudah sepaket dengan konstitusi bahkan di negara-negara yang paling liberal sekalipun. Karena itu lah yang menjaga negara agar tetap berada pada defenisi nya. Tanpa konstitusi negara akan tercerai berai, sementara tanpa adanya penjunjungan pada pendiri bangsa maka negara akan kehilangan militansi. Negara tanpa militansi lebih baik dibubarkan!

Saya mengusulkan kepada pembaca kompasiana di sini, jika ada yang punya waktu, bisa melakukan penyelidikan independent tentang nasib para penduduk yang terusir ke rumah susun tersebut. Bagaimana nasib mereka, bisa dilakukan survei yang hasilnya disusun ke dalam laporan dalam format pdf atau dibuatkan sebuah film dokumenter (bisa diunggah di youtube atau academia). Bagaimana nasib penduduk tanah abang setelah menempati Rusun Marunda, apakah masih tetap di rumah susun itu, atau kemudian pulang kampung. Jika yang digusur adalah suku jawa dan kemudian ketika dipindahkan ke rumah susun mereka tidak betah sehingga kemudian memilih pulang kampung, mungkin masuk akal, namun bagaimana jika yang digusur ini suku betawi? Suku betawi mau lari ke mana? Suku betawi susah cari makanan, jadi transmigran juga dilema karena jauh dari kampung halaman dan sanak keluarga. Pada akhirnya suku betawi ini beserta budayanya akan punah karena tersingkirkan oleh hadirnya pendatang-pendatang yang berkantong tebal. Di Indonesia ini hewan saja dilindungi, apalagi manusia?

Model pemukiman ala rumah susun menurut saya kurang tepat jika diterapkan pada penduduk negara yang masih berkembang seperti Indonesia. Kalo meniru situasi di Eropa, bangunan yang diperuntukkan bagi tempat tinggal biasanya maksimal hanya terdiri dari lima lantai, namun saya kurang tahu apakah ini bisa cocok diterapkan di Indonesia. Bangunan rumah susun khas pencakar langit kurang cocok karena banguan jenis ini memangkas kemungkinan penduduknya untuk menggunakan lahan tempat tinggal sekaligus sebagai lahan investasi. Bangunan tersebut hanya cocok untuk negara-negara industrialis seperti RRC.

Penetapan jalur hijau dalam program Jakarta Smart City juga seolah membenarkan dugaan saya bahwa jalur hijau diadakan untuk membersihkan kawasan kumuh di DKI, sekaligus memberi lahan seluas-luasnya bagi para pendatang berkantong tebal untuk menempati lahan tersebut. Mengingat banyak rumah yang berada di daerah jalur hijau ternyata mempunyai sertifikat resmi yang dikeluarkan oleh pemerintah. Yang jadi pertanyaan selanjutnya adalah siapa yang menentukan bahwa Mall Taman Anggrek masuk jalur biru dan aman dari penggusuran, sementara Kalijodo masuk jalur hijau dan harus digusur, kalau bukan sekedar preferensi Gubernur Ahok semata. Pertanyaan yang saya tujukan ke benak pembaca, apa parameter objektif yang bisa kita gunakan untuk membedakan antar daerah yang harus masuk jalur hijau dengan daerah yang harus masuk zona biru? Apakah program zonasi ala Jakarta Smart City ini sudah melalui persetujuan DPRD mengingat ini menyangkut masalah pertanahan yang berhubungan langsung dengan hajat hidup rakyat atau hanya kesewenang-wenangan pemerintah yang dimotori Gubernur Ahok?

3. Gubernur Ahok suka menabrak aturan. Tindakan Gubernur Ahok yang mengucapkan kata-kata kasar, misalnya “tahi” merupakan hal yang melanggar undang-undang di Indonesia ini.

4. Gubernur Ahok suka menggunakan aturan sebagai alat untuk membunuh lawan-lawannya. Jika di Jaman Soeharto kita sering mendengar orang yang dijerat pasal Subversif, maka hal yang sama terjadi di masa Gubernur Ahok. Kediktatoran yang bersumber pada ego pribadi kemudian dilampiaskan dengan menggunakan tameng peraturan. Dalam sepakbola kita sudah tahu kendatipun ada handsball di kotak penalti dan pertandingan lagi seru sama-sama kuat dan kedudukan lagi imbang, biasanya sang wasit memilih untuk mengambil langkah manusiawi untuk tidak menunjuk titik putih, karena itu akan mematikan pertandingan. Nah seharusnya contoh ini bisa diambil oleh Gubernur Ahok untuk tidak menjadi Soeharto jilid dua. Kepala sekolah di PHK, bawahan dipidanakan, lurah dimutasi dan lain-lain kesewenang-wenangan yang dilakukan demi memenuhi ego pribadi yang katanya harus memaksakan bawahannya agar tunduk pada aturan padahal bisa saja motifnya masalah pribadi (bukan “nothing personal”). Apa susahnya diberi surat peringatan: peringatan satu, peringatan dua, peringatan 3. Masa PNS yang sudah golongan IV dipecat hanya karena sering lambat masuk?

Memang harus diakui bahwa peraturan di Indonesia ini punya banyak kelemahan dan celah yang bisa dimanfaatkan oleh orang-orang yang jeli sehingga orang-orang seperti Pak Yusril Ihza Mahendra yang juga dari belitung seperti menertawai kesilapan Gubernur Ahok yang harus-harus ngotot-ngototan untuk melakukan pengumpulan KTP ulang, karena katanya harus sesuai dengan konstitusi. Namun itu bukanlah jadi dalil kita untuk kita untuk “meng-kadali” negara atau sebaliknya bertindak sebagai negara.

6. Gubernur Ahok kurang bisa menepati janji. Masih segar di ingatan saya janji Gubernur Ahok untuk menertibkan kawasan jalur hijau lainnya, yakni mall Taman Anggrek. Saya tunggu apakah benar janji ini bisa direalisasi, atau hanya sebatas janji tinggalah janji. Jika benar ini bisa direalisasikan, maka saya bersumpah untuk tawaf keliling monas 10 kali sambil bugil tanpa sehelai benang pun yang menutupi (lihat kembali poin 2).

Karena sejujurnya saya tidak mempermasalahkan soal identitas Ahok yang Kristen sekaligus China, yang saya permasalahkan adalah sikap tidak bisa berlaku adil dan main tebang pilih ini, sekaligus kurang peka dengan situasi orang lain, hanya bisa menjudge.

Tuesday, March 1, 2016

Program Java: Menentukan determinan matriks dengan menggunakan Uraian Laplace

Tutorial ini sebenarnya ini merupakan penulisan kembali tutorial yang saya buat sekitar tahun 2010 tentang penggunaan rekursif dalam pemrograman. Waktu itu saya membuat sebuah program yang entah kenapa begitu istimewa--setidaknya untuk ukuran saya. Kenapa begitu istimewa, adalah karena program yang saya buat tidak pernah ditemukan dalam buku ajar manapun di seluruh dunia. Yang artinya program yang saya buat adalah orisinil temuan saya.

Ternyata setelah saya selidiki metode ini sudah dibuat oleh beberapa orang--berdasarkan tanggal posting artikel. Contohnya satu di link ini---beberapa post yang dibuat lebih awal dari post saya ini dibuat sesudah 2010 ketika saya sudah menemukan metode ini, ini contohnya. Namun pada Tahun 2010 itu saya sudah browsing di google dan saya buka beberapa halaman tidak ada tutorial yang mirip. Jadi waktu itu saya simpulkan, sayalah orang pertama yang membuat/menulis Uraian Laplace di java (komputer). Anggap saja (biar tidak dianggap takabur) apa yang saya lakukan pada waktu itu merupakan proses menemukan kembali (reinventing).

Sebenarnya kalo dipikir-pikir kesulitan dalam implementasi algoritma ini tidak ada yang terlalu sulit. Asalkan kita cukup memahami rekursif, maka kita tentu dengan mudah mengimplementasikannya ke dalam program. Yang membuat program ini heboh adalah dari segi popularitas Uraian Laplace sendiri yang merupakan metode yang digunakan untuk menghitung determinan matriks.

Bayangkan sejak ditemukannya komputer, hingga tahun 2010 belum ada manusia di dunia ini yang sempat memikirkan bagaimana mengimplementasikan Uraian Laplace dalam menghitung determinan matriks, hehe.

Tanpa perlu berbasa basi saya berikan saja source code nya dan pembaca selanjutnya bisa melakukan verifikasi yakni dengan membandingkan hasil perhitungan program saya ini dengan hasil perhitungan MATLAB dalam menghitung determinan matriks.

Jadi program saya itu adalah sebagai berikut:
public class LaplaceExpansion {
 
 public static void main(String[] args){
  
  double[][] mm = { {2,5,6,7, 12} , 
        {3,4,56,6, 6} , 
        {1,2,3,1 ,23} , 
        {4,5,6,12,11},
        {4,2,1,3,5}
  } ; 
  
  Matrix mat = new Matrix(); 
  double det = mat.determinant(mm); 
  System.out.println(det); 
 }
 
 public static void printMatriks(double[][] matriks){
  for(int i=0; i < matriks.length; i++){
   for( int j=0 ; j < matriks[0].length; j++){
    System.out.print( matriks[i][j] + "\t|\t" ); 
   }
   System.out.println(); 
  }
 }
 
}

class Matrix{
 double[][] matrix; 
 public Matrix(double[][] matriks){
  this.matrix = matriks; 
 }
 
 public Matrix(){
  
 }
 public double determinant(double matriks[][]){
  if( matriks.length == 1 && matriks[0].length == 1){
   return matriks[0][0]; 
  }
  double result = 0.0 ; 
  for(int i=0; i < matriks.length; i++){
   int baris = i +1; 
   int kolom = 1; 
   int  sign = (int) Math.pow(-1 , baris + kolom ); 
   result = result +   (sign * matriks[i][0] * 
     determinant(removeRowColumn(matriks, i, 0))) ; 
  }
  return result; 
 }
 
 public double[][] removeRowColumn( double[][] matriks , int row , int column ){
  double[][] result = new double[matriks.length - 1]
       [matriks[0].length - 1];
  int m = 0; 
  for(int i = 0 ; i < matriks.length; i++ ){
   if(i!= row){
    int n = 0; 
    for(int j= 0; j < matriks[0].length; j++ ){
     if( j != column){
      result[m][n] = matriks[i][j]; 
      n++;
     }
    }
    m++;
   }
  }
  return result; 
 }
}
Saya belum pernah melakukan benchmarking tentang efisiensi implementasi saya ini. Yang jelas secara singkat bisa kita lihat bahwa implementasi ini akan menghasilkan kompleksitas O(N log N) yang jika dibandingkan dengan metode Gauss-Jordan (yang juga digunakan dalam menghitung determinant matriks) dengan kompleksitas O(N^3) tentu lebih efisien.