Thursday, September 18, 2014

Salah Paham Paradoks Kembar di Relativitas Khusus

Ada banyak kesalahpahaman yang dilakukan oleh guru-guru di Indonesia dalam menjelaskan fisika kepada siswa-siswinya. Salah satunya yang berkenaan dengan materi relativitas khusus.

Sebenarnya dulu saya juga gak begitu paham dengan teori relativitas khusus. Saya hanya terpukau dengan cerita bahwa Einstein yang menemukan bom atom. Padahal faktanya Einstein sama sekali tidak terlibat dalam proyek Manhattan: proyek yang merancang bom atom pertama. Proyek Manhattan sendiri lebih berat ke sisi eksperimen (mengenai radioaktif) ketimbang ke aspek teori.

Untuk itu dalam tulisan ini saya akan memberikan sedikit pencerahan mengenai apa sih yang menarik dari teori relativitas khusus. Kemudian kontroversi di balik relativitas khusus, yang sebenarnya secara filosofi belum sepenuhnya terselesaikan, salah satunya mengenai paradoks kembar.

Ketika kita diberikan sebuah paradoks, maka tugas kita untuk mencari resolusi dari paradoks itu. Begitu pula dengan paradoks kembar ini. Ilmuan-ilmuan sudah mencoba mencari solusi dalam mengatasi paradoks ini. Tetapi bisa dikatakan penjelasan mereka  belum memuaskan (setidaknya menurut saya). Namun kita tetap menggunakan teori relativitas khusus lantaran teori ini punya banyak kegunaan, dan diverifikasi oleh banyak eksperimen. Jadi untuk saat ini kita kesampingkan dulu aspek filosofinya, dan kita ambil aspek manfaat dari teori relativitas khusus ini.

Relativitas khusus disusun oleh Einstein untuk menjelaskan inkonsistensi dalam penjelasan mekanika klasik (mekanika Newton) berkaitan dengan gejala elektromagnetik. Kalo Anda ingin memahami teori relativitas khusus, maka ada baiknya Anda baca dulu sampe paham gagasan-gagasan penting dalam teori listrik magnet (elektromagnetik).

Penggunaan transformasi klasik (Galilean) terhadap kasus (eksperimen pikiran) magnet dan konduktor mengakibatkan gaya yang dialami partikel bermuatan pada konduktor ditinjau dari kerangka pengamatan magnet merupakan gaya  magnet. Sementara jika ditinjau dari kerangka pengamatan konduktor sendiri gaya itu semata-mata adalah gaya elektrik. Nilai kedua gaya adalah sama, namun bentuk rumusannya berbeda. Dengan demikian dapat dikatakan persamaan Maxwell tidak invarian (tidak sama bentuknya) jika ditransformasikan menggunakan transformasi Galilean. Sementara konsep ether sendiri juga tidak terbukti jika ditinjau dengan eksperimen pikiran yang sama. Dengan demikian perlu dirumuskan konsep-konsep baru yang memodifikasi konsep-konsep Newtonian dalam meninjau fenomena elektromagnetik. Di sinilah peran Einstein, yakni mengatasi masalah inkonsistensi tersebut. Kata paman saya, sebuah dogma haruslah konsisten agar bisa disebut sebagai kebenaran. Atau sebuah rumus haruslah tetap rumusan yang sama, tak peduli apakah kita masih di alam dunia atau sudah di alam barzakh.

Kembali ke kasus paradoks kembar.

Tidak lama berselang setelah Einstein merumuskan teori relativitas khususnya, terdapat seorang ilmuan yang mengajukan sebuah paradoks. Dalam teori relativitas khusus ditemukan adanya fenomena semisal dilasi waktu, di mana waktu (baca: tenggang antara dua kejadian)  mengalami dilasi jika diamati oleh dua pengamat yang berbeda. Misalnya dua orang kembar, si A yang diam dan si B yang bergerak relatif terhadapnya. Berdasarkan relativitas khusus, waktu di B akan melambat menurut pengamatan si A. Artinya hal-hal yang mengenai metabolisme sel, pembelahan sel, denyut jantung, kedipan mata, hembusan nafas, pada B  semuanya akan melambat jika dilihat dari A. Jadi jika Tuhan memberikan umur yang sama kepada si A dan si B, si B akan menjalaninya lebih lama ketimbang si A, walaupun kenyataannya dalam penghayatan si B itu biasa saja (sama juga dengan si A). Misalnya si B naik roket dengan kecepatan tinggi (mendekati kecepatan cahaya) ke planet X yang jaraknya sangat jauh yang memakan waktu sekian tahun cahaya, dan kemudian balik kembali ke bumi menemui si A, akan didapatinya si A tadi sudah menua.

Paradoks terjadi ketika kita membalik kasus pengamatannya. Dalam dunia fisis (yang dipahami oleh Einstein dan begitu juga hingga saat ini) tidak ada kerangka acuan yang mutlak. Jadi ketika si B bergerak relatif menurut si A, maka si A juga bergerak relatif terhadapnya menurut si B. Dengan demikian rumus dilasi waktu oleh  Einstein ini mestinya bisa dibalik yang mengakibatkan waktu di A akan melambat menurut si B (berkebalikan dengan yang disebutkan pada paragraf sebelumnya). Jadi yang menua adalah B bukan A. Terjadi inkonsistensi sehingga kita bingung mana yang dipake?

Ada beberapa penjelasan yang coba diberikan oleh ilmuan untuk membela teori relativitas khusus ini. Salah satunya adanya pengaruh akselerasi yang dilakukan oleh B sepanjang perjalanannya.  B tadinya diam kemudian mengalami percepatan menuju kecepatan cahaya. Kemudian berbalik arah. Dan selanjutnya diam kembali. Karena adannya percepatan dalam gerak si B, maka gerak si B tidak bisa dikatakan gerak yang uniform. Dengan demikian kita tidak sepenuhnya bisa menerapkan rumus dilasi waktu terhadapnya. Ada koreksi percepatan di situ, karena relativitas khusus sendiri merupakan teori untuk kasus gerak yang tidak mengalami percepatan.

Pendapat ini bisa dibantah dengan mudah. Rumusan relativitas khusus (termasuk dilasi waktu) tidak memasukkan satupun suku percepatan di dalamnya. Jadi yang kita tinjau murni adalah kasus si A dan si B sudah saling bergerak relatif dengan kecepatan konstan, bukan kasus ketika si B sedang berbalik arah atau ketika memulai perjalanan. Tidak  ada  satupun persyaratan kondisi awal atau kondisi akhir dalam rumus dilasi waktu tersebut. Kemudian juga, kita bisa asumsikan planet X yang jadi tujuan si B sangat jauh, dan perjalanannya sangat lama, sehingga pengaruh dari waktu berakselerasi tadi bisa diabaikan.

Namun ada pendapat yang lebih elegan untuk menjelaskannya. Yakni dengan meninjau beberapa kasus.

Kasus pertama adalah dengan menganggap si A dan si B tidak akan bertemu selama-lamanya. si B akan menjalankan roketnya dalam satu arah (dia tidak akan kembali ke bumi). Pada kasus ini maka yang terjadi adalah si A akan melihat waktu di B lebih lambat, demikian pula sebaliknya, si B akan melihat waktu di A lebih lambat. Dan tidak ada simultanitas pengamatan antara keduanya. Kejadian X yang terjadi pada detik ke 5  dalam kerangka acuan B akan diamati belakangan oleh kerangka acuan A (misal detik ke 6), demikian pula sebaliknya, kejadian Y yang terjadi pada detik ke 5 dalam kerangka acuan A akan diamati pada detik  ke-6 dalam kerangka acuan B (padahal sama-sama terjadi pada detik ke 5 menurut masing-masing dihitung setelah keberangkatan si B). Akan tetapi, untuk penentuan siapa yang lebih muda setelah sekian tahun perjalanan, sama sekali tidak bisa ditentukan (masih paradoks rupanya, tapi begitulah sudah rumusnya Smile ).

Kasus kedua, kita memperhitungkan ketika si B balik kembali ke bumi. Pada kasus ini, si B boleh dikatakan tidak lagi dalam kerangka acuan yang inersial. Misalnya jika kita asumsikan kerangka acuan inersial adalah kerangka acuan ketika si B berangkat. Maka pada saat si B berangkat, dia diam (stasioner) terhadap kerangka acuan tersebut. Dan A bergerak  relatif (menjauh) terhadap kerangka acuan itu. Namun ketika balik ke bumi, si  B sudah tidak stasioner lagi pada kerangka acuan tersebut. Dia bergerak menjauh. Yang mengakibatkan secara total hasil pengamatannya terhadap umur dari A akan konsisten dengan hasil pengamatan A sendiri.

Sekali lagi ini fisika, bukan filsafat. Tapi saya juga kurang paham kenapa materi relativitas khusus sudah diajarkan di SMA. Padahal itu kan akan mengakibatkan siswa-siswi kehilangan pegangan.

Saturday, September 13, 2014

Hack formasi PNS kemendikbud

Sebenarnya dalam menulis post ini saya masih penasaran bagaimana caranya nge-hack situs kemenpan biar nomor KTP saya dihapus dari databasenya (soalnya saya udah terlanjur melamar pada instansi yang salah). Atau biar lebih briliant, bagaimana caranya biar saya langsung diloloskan pada formasi PNS yang saya inginkan, misalkan jadi dosen di kampung saya. Tapi apa boleh buat, ilmu saya belum sampe ke situ.

Dalam tulisan ini saya hanya mencoba membagi pengetahuan dasar dalam bahasa pemrograman java (sekaligus menghibur diri saya bahwa saya ini juga seorang hacker), yakni mengenai teknik parsing HTML. Anda juga bisa mencari hal serupa ini di internet, tapi kebetulan ini musimnya PNS, dan kebetulan saya juga agak tertarik menjadi PNS, maka saya mengemas hal-hal dari internet tersebut ke dalam posting eksklusif ini. Ya… semoga saja tidak ada unsur ancaman di dalamnya, walaupun dalam paragraf pertama di atas terkesan ada unsur ancaman, yakni mengancam meng-hack situs pemerintah.

Saya ingin tahu berapa sih jumlah formasi dosen yang ada untuk  jurusan fisika yang tertera di ijazah saya. Nah untuk itu saya bagikan aja potongan scriptnya. Sebenarnya ini sangat mudah untuk dipahami. Dan saya yakin kalo Anda seorang programmer java, pasti akan sangat mudah memahami potongan script ini.
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class FormasiPNS {

 static String htmlResource = "https://panselnas.menpan.go.id/index.php/14-formasi/pusat/557-kementerian-pendidikan-dan-kebudayaan" ; 
 
 static String fileLogger  = "D:/output1.txt"; 
 
 static final String FISIKA = "Fisika"; 
 static final String TEKNIK_INFORMATIKA = "Teknik Informatika"; 
 static final String MANAJEMEN = "Manajemen"; 
 static final String MATEMATIKA = "Matematika"; 
 static final String AKUNTANSI =  "Akuntansi"; 
 static final String HUKUM = "Hukum"; 
 static final String EKONOMI  = "Ekonomi"; 
 static final String DOSEN = "Dosen"; 
 
 //spesifikasi yang dicari:
 static String jurusan = EKONOMI; 
 static String jabatan = DOSEN; 
 
 
 public static void main(String[] args) throws IOException{

  File outputLogger = new File(fileLogger); 
  
  BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(outputLogger)); 
  
  Document doc = Jsoup.connect(htmlResource).get();
  
  Elements tables = doc.select("table[id=tab_82ycpLW8N0]"); 
  
  int total = 0; 
  
  total = checkJumlahFormasiPerJurusan(bufferedWriter, tables, jabatan, jurusan);
  
  String result = "\ntotal "+ jabatan + " yang dibutuhkan untuk jurusan "+ jurusan + " adalah "+ total;
  
  bufferedWriter.write(result+"\n"); 
  
  bufferedWriter.close(); 
  
  System.out.println("FINISH"); 
  
 }
 
 
 static int checkJumlahFormasiPerJurusan (BufferedWriter writer,  Elements tables, String jabatanYangDicari, String jurusanYangDicari) throws IOException{
  int totalFormasi = 0;
  Elements hasil = tables.get(0).select("tr.tabrow");
  for(Element row : hasil){
   Elements cols = row.select("td.tabcol"); 
   String kualifikasiPendidikan = cols.get(3).text(); 
   String jabatanYangDibutuhkan = cols.get(1).text(); 
   
   // terdapat kemungkinan jurusan yang dimaksud digabungkan dalam jurusan lain sebagai kebutuhan
   boolean state = false; 
   if(kualifikasiPendidikan.contains(jurusanYangDicari) && kualifikasiPendidikan.contains("/")){
    String[] split =  kualifikasiPendidikan.split("\\/"); 
    if(split.length > 0){
     for(String s : split){
      if(s.trim().equals(jurusanYangDicari)){
       state = true; 
      }
     }
    }
   }
  
   if(jabatanYangDibutuhkan.equals(jabatanYangDicari) && 
     (kualifikasiPendidikan.equals(jurusanYangDicari) || state)){
    Integer formasi = Integer.parseInt(cols.get(5).text()); 
    totalFormasi+= formasi; 
    String penempatan = cols.get(6).text(); 
    writer.write("penempatan:\t"+penempatan + " jummlah:\t"+formasi+"\n"); 
   }
  }
  return totalFormasi; 
 }
 
}
Hasilnya ketika saya cobakan untuk menghitung berapa formasi jabatan dosen antara teknik informatika vs fisika adalah sebagai berikut:
penempatan: Fakultas ILKOM & TI, Universitas Sumatera Utara jummlah: 2
penempatan: Fakultas Tekn. Informasi, Universitas Andalas jummlah: 1
penempatan: Fak.Sains dan Teknologi, Universitas Jambi jummlah: 2
penempatan: Program Studi Teknik Informatika Fasilkom UNSRI, Universitas Sriwijaya jummlah: 3
penempatan: Fak. Teknik, Universitas Bengkulu jummlah: 2
penempatan: FT Unila, Universitas Lampung jummlah: 2
penempatan: Fakultas Sains dan Teknik, Universitas Jenderal Soedirman jummlah: 3
penempatan: Jurusan Sistem Komputer Fakultas Teknik, Universitas Diponegoro jummlah: 1
penempatan: Jurusan Informatika pada Fak. Matematika dan IPA, Universitas Sebelas Maret jummlah: 1
penempatan: Prodi S1 Sistem Informasi, Universitas Jember jummlah: 4
penempatan: FMIPA Program Studi Sistem Informasi, Universitas Tanjungpura jummlah: 3
penempatan: Prodi Teknik Informatika Fak. Teknik, Universitas Lambung Mangkurat jummlah: 2
penempatan: up. Fakultas TIKOM, Universitas Mulawarman jummlah: 2
penempatan: Fakutas Teknik, Universitas Tadulako jummlah: 3
penempatan: Fakultas Teknik, Universitas Hasanuddin jummlah: 2
penempatan: Fakultas Teknik, Universitas Haluoleo jummlah: 3
penempatan: Fakutltas Teknik, Universitas Udayana jummlah: 1
penempatan: F. Teknik, Universitas Mataram jummlah: 4
penempatan: Fakultas Teknik, Universitas Pattimura jummlah: 1
penempatan: Fakultas Teknik, Universitas Trunojoyo Madura jummlah: 1
penempatan: FKIP, Universitas Trunojoyo Madura jummlah: 2
penempatan: Fakultas Teknik, Universitas Khairun Ternate jummlah: 2
penempatan: Teknik Informatika, Universitas Negeri Papua jummlah: 1
penempatan: Fakultas Teknik, Universitas Negeri Medan jummlah: 2
penempatan: Jurusan. T. Elektronika FT, Universitas Negeri Padang jummlah: 1
penempatan: FT, Universitas Negeri Jakarta jummlah: 2
penempatan: Prodi Pendidikan Teknik Elektronika Fakultas Teknik, Universitas Negeri Yogyakarta jummlah: 2
penempatan: Prodi Pendidikan Teknik Informatika Fakultas Teknik, Universitas Negeri Yogyakarta jummlah: 1
penempatan: Fakultas Teknik, Universitas Negeri Surabaya jummlah: 4
penempatan: Fakultas Teknik, Universitas Negeri Malang jummlah: 1
penempatan: FATEK, Universitas Negeri Manado jummlah: 5
penempatan: Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung jummlah: 1
penempatan: Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung jummlah: 2
penempatan: Fakultas Teknologi Kelautan, Institut Teknologi Sepuluh November jummlah: 1
penempatan: Fakultas Teknologi Informasi, Institut Teknologi Sepuluh November jummlah: 4
penempatan: Fakultas Teknik, Universitas Negeri Gorontalo jummlah: 2
penempatan: Prodi Televisi & Film Fakultas Seni Rupa dan Desain, Institut Seni Indonesia Surakarta jummlah: 1
penempatan: Fakultas Teknik UNMUS, Universitas Musamus Merauke jummlah: 1
penempatan: Fakultas Teknik, Universitas Maritim Raja Ali Haji jummlah: 2
penempatan: Fak. Teknik, Universitas Sulawesi Barat jummlah: 3
penempatan: Teknik Informatika, Universitas Siliwangi jummlah: 4

total Dosen yang dibutuhkan untuk jurusan Teknik Informatika adalah 87
penempatan: Fakultas MIPA, Universitas Sumatera Utara jummlah: 2
penempatan: Fakultas MIPA, Universitas Andalas jummlah: 1
penempatan: Fak.Sains dan Teknologi, Universitas Jambi jummlah: 1
penempatan: FMIPA Unila, Universitas Lampung jummlah: 2
penempatan: Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Indonesia jummlah: 1
penempatan: Fakultas MIPA, Universitas Gadjah Mada jummlah: 1
penempatan: Program Studi Pendidikan Fisika FKIP, Universitas Palangkaraya jummlah: 1
penempatan: Fakultas MIPA, Universitas Hasanuddin jummlah: 1
penempatan: Fakultas Matematika dan IPA, Universitas Haluoleo jummlah: 1
penempatan: Fakultas Keguruan dan Ilmu Pendidikan, Universitas Haluoleo jummlah: 1
penempatan: F. MIPA, Universitas Mataram jummlah: 2
penempatan: Fakultas MIPA, Universitas Pattimura jummlah: 2
penempatan: Jurusan Pendidikan Fisika FKIP, Universitas Sultan Ageng Tirtayasa jummlah: 1
penempatan: FKIP, Universitas Trunojoyo Madura jummlah: 3
penempatan: FMIPA, Universitas Negeri Jakarta jummlah: 1
penempatan: Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Negeri Semarang jummlah: 1
penempatan: Fakultas MIPA, Universitas Negeri Surabaya jummlah: 1
penempatan: Fak Matematika dan IPA, Universitas Negeri Malang jummlah: 2
penempatan: FMIPA, Universitas Negeri Manado jummlah: 3
penempatan: FMIPA, Universitas Negeri Makassar jummlah: 1
penempatan: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung jummlah: 5
penempatan: Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Negeri Gorontalo jummlah: 2
penempatan: Fakultas Keguruan dan Ilmu Pendidikan UNMUS, Universitas Musamus Merauke jummlah: 2

total Dosen yang dibutuhkan untuk jurusan Fisika adalah 38
Ya, nampaknya tahun ini jurusan teknik informatika menyediakan lapangan pekerjaan lebih  banyak ketimbang jurusan fisika. Walaupun memang kita tidak boleh menilai dari situnya. Karena output dari sekolah teknik informatika yang lagi mencari pekerjaan juga banyak. Artinya, kalo Anda pintar menghitung, yang dihitung adalah rasio jumlah lulusan terhadap jumlah lapangan pekerjaan yang tersedia.

Untuk beberapa jurusan lainnya hasilnya dapat dilihat sebagai berikut:
penempatan: Fakultas MIPA, Universitas Sumatera Utara jummlah: 2
penempatan: Fakultas MIPA, Universitas Andalas jummlah: 1
penempatan: FMIPA, Universitas Riau jummlah: 1
penempatan: Fak. MIPA, Universitas Bengkulu jummlah: 1
penempatan: Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Indonesia jummlah: 1
penempatan: Jurusan Matematika FMIPA, Universitas Diponegoro jummlah: 1
penempatan: Jurusan Matematika pada Fak. Matematika dan IPA, Universitas Sebelas Maret jummlah: 1
penempatan: Fakultas MIPA, Universitas Gadjah Mada jummlah: 3
penempatan: FST, Univesitas Airlangga jummlah: 1
penempatan: Prodi S1 Matematika, Universitas Jember jummlah: 1
penempatan: FMIPA, Universitas Tanjungpura jummlah: 2
penempatan: Fakultas MIPA, Universitas Mulawarman jummlah: 1
penempatan: Fakultas MIPA, Universitas Tadulako jummlah: 2
penempatan: Fakultas Matematika dan IPA, Universitas Haluoleo jummlah: 1
penempatan: Fakultas Keguruan dan Ilmu Pendidikan, Universitas Haluoleo jummlah: 1
penempatan: F. MIPA, Universitas Mataram jummlah: 2
penempatan: Fakultas MIPA, Universitas Pattimura jummlah: 3
penempatan: FMIPA, Universitas Cenderawasih jummlah: 1
penempatan: Fakultas Teknik, Universitas Malikussaleh jummlah: 1
penempatan: FKIP, Universitas Trunojoyo Madura jummlah: 6
penempatan: Fakultas MIPA, Universitas Negeri Surabaya jummlah: 2
penempatan: Fak Matematika dan IPA, Universitas Negeri Malang jummlah: 1
penempatan: FMIPA, Universitas Negeri Manado jummlah: 2
penempatan: FMIPA, Universitas Negeri Makassar jummlah: 2
penempatan: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung jummlah: 5
penempatan: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Sepuluh November jummlah: 2
penempatan: Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Negeri Gorontalo jummlah: 1
penempatan: Fakultas Keguruan dan Ilmu Pendidikan UNMUS, Universitas Musamus Merauke jummlah: 1
penempatan: Fak. Matematika &Ilmu Pengetahuan Alam , Universitas Sulawesi Barat jummlah: 2
penempatan: Fak. FKIP, Universitas Sulawesi Barat jummlah: 2

total Dosen yang dibutuhkan untuk jurusan Matematika adalah 53
penempatan: Fakultas Ekonomi , Universitas Syiah Kuala jummlah: 3
penempatan: FE, Universitas Riau jummlah: 1
penempatan: Fak. Ekonomi dan Bisnis, Universitas Bengkulu jummlah: 2
penempatan: FE Unila, Universitas Lampung jummlah: 2
penempatan: Fakultas Ekonomi dan Bisnis, Universitas Padjadjaran jummlah: 3
penempatan: Fakultas Ekonomi dan Bisnis, Universitas Jenderal Soedirman jummlah: 3
penempatan: Jurusan Manajemen Fakultas Ekonomi, Universitas Diponegoro jummlah: 1
penempatan: Fakultas Ekonomika dan Bisnis, Universitas Gadjah Mada jummlah: 1
penempatan: FEB - Manajemen, Univesitas Airlangga jummlah: 2
penempatan: Prodi S1 Manajemen, Universitas Jember jummlah: 3
penempatan: Prodi S-0 Administrasi Keuangan, Universitas Jember jummlah: 1
penempatan: Prodi S-0 Manajemen Perusahaan, Universitas Jember jummlah: 1
penempatan: Prodi S2Magister Manajemen, Universitas Jember jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Tadulako jummlah: 3
penempatan: Fakultas Ekonomi, Universitas Hasanuddin jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Haluoleo jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Udayana jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Pattimura jummlah: 1
penempatan: Jurusan Manajemen Fakultas Ekonomi, Universitas Malikussaleh jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Trunojoyo Madura jummlah: 3
penempatan: Manajemen, Universitas Negeri Papua jummlah: 1
penempatan: Jurusan KK FT, Universitas Negeri Padang jummlah: 2
penempatan: Manajemen FE, Universitas Negeri Padang jummlah: 3
penempatan: FE, Universitas Negeri Jakarta jummlah: 2
penempatan: FE, Universitas Negeri Jakarta jummlah: 1
penempatan: Fakultas Pendidikan Ilmu Pengetahuan Sosial (1), Fakultas Pendidikan Ekonomi dan Bisnis (1), Universitas Pendidikan Indonesia jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Negeri Semarang jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Negeri Semarang jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Negeri Surabaya jummlah: 7
penempatan: Fakultas Ekonomi, Universitas Negeri Malang jummlah: 1
penempatan: FE, Universitas Negeri Makassar jummlah: 1
penempatan: Sekolah Bisnis dan Manajemen, Institut Teknologi Bandung jummlah: 4
penempatan: Sekolah Bisnis dan Manajemen, Institut Teknologi Bandung jummlah: 2
penempatan: Pasca Sarjana, Institut Teknologi Sepuluh November jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Borneo Tarakan jummlah: 4
penempatan: Fakultas Ekonomi UNMUS, Universitas Musamus Merauke jummlah: 4
penempatan: Jurusan Manajemen FE, Universitas Bangka Belitung jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Maritim Raja Ali Haji jummlah: 1
penempatan: Fak. Ekonomi, Universitas Sulawesi Barat jummlah: 1
penempatan: Fakultas Ekonomi UTU, Universitas Teuku Umar jummlah: 1
penempatan: Fakultas Pertanian UTU, Universitas Teuku Umar jummlah: 2

total Dosen yang dibutuhkan untuk jurusan Manajemen adalah 83
penempatan: Fakultas Ekonomi , Universitas Syiah Kuala jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Sumatera Utara jummlah: 1
penempatan: FE, Universitas Riau jummlah: 1
penempatan: FE, Universitas Riau jummlah: 1
penempatan: Program Studi Akuntansi FE UNSRI, Universitas Sriwijaya jummlah: 4
penempatan: Fak. Ekonomi dan Bisnis, Universitas Bengkulu jummlah: 2
penempatan: FE Unila, Universitas Lampung jummlah: 2
penempatan: Fakultas Ekonomi dan Bisnis, Universitas Padjadjaran jummlah: 3
penempatan: Fakultas Ekonomi dan Bisnis, Universitas Jenderal Soedirman jummlah: 2
penempatan: Jurusan Akuntansi Fakultas Ekonomi, Universitas Diponegoro jummlah: 2
penempatan: FEB - Akuntansi, Univesitas Airlangga jummlah: 2
penempatan: FEB - Akuntansi Banyuwangi, Univesitas Airlangga jummlah: 5
penempatan: Fakultas Ekonomi dan Bisnis, Universitas Brawijaya jummlah: 1
penempatan: Fakultas Ilmu Administrasi, Universitas Brawijaya jummlah: 3
penempatan: Prodi Diploma III Perpajakan, Universitas Jember jummlah: 2
penempatan: Prodi S-0 Akuntansi, Universitas Jember jummlah: 2
penempatan: Prodi S1 Akuntansi, Universitas Jember jummlah: 5
penempatan: Prodi S2Magister Akuntasi, Universitas Jember jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Tanjungpura jummlah: 3
penempatan: Jurusan Akuntansi Fakultas Ekonomi, Universitas Palangkaraya jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Mulawarman jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Tadulako jummlah: 3
penempatan: Fakultas Ekonomi, Universitas Hasanuddin jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Haluoleo jummlah: 3
penempatan: Fakultas Ekonomi, Universitas Udayana jummlah: 2
penempatan: F. Ekonomi, Universitas Mataram jummlah: 2
penempatan: Fakultas Ekonomi & Bisnis, Universitas Nusa Cendana jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Pattimura jummlah: 1
penempatan: Prodi Akuntansi Fakultas Ekonomi, Universitas Malikussaleh jummlah: 3
penempatan: Jurusan Akuntansi Fakultas Ekonomi, Universitas Sultan Ageng Tirtayasa jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Khairun Ternate jummlah: 2
penempatan: Akuntansi, Universitas Negeri Papua jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Negeri Medan jummlah: 3
penempatan: Akuntansi FE, Universitas Negeri Padang jummlah: 1
penempatan: FE, Universitas Negeri Jakarta jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Negeri Semarang jummlah: 3
penempatan: Fakultas Ekonomi, Universitas Negeri Semarang jummlah: 1
penempatan: Fakultas Ekonomi, Universitas Negeri Malang jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Negeri Malang jummlah: 1
penempatan: FEKON, Universitas Negeri Manado jummlah: 4
penempatan: FE, Universitas Negeri Makassar jummlah: 2
penempatan: Fak. Ekonomi dan Manajemen - Dept.Manajemen, Institut Pertanian Bogor jummlah: 1
penempatan: Fakultas Teknologi Industri, Institut Teknologi Sepuluh November jummlah: 1
penempatan: Fakultas Ekonomi dan Bisnis, Universitas Negeri Gorontalo jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Borneo Tarakan jummlah: 4
penempatan: Fakultas Ekonomi UNMUS, Universitas Musamus Merauke jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Maritim Raja Ali Haji jummlah: 3
penempatan: Fak. Ekonomi, Universitas Sulawesi Barat jummlah: 2
penempatan: Fakultas Ekonomi, Universitas Tidar Magelang jummlah: 2

total Dosen yang dibutuhkan untuk jurusan Akuntansi adalah 104
penempatan: Fakultas Ekonomi dan Bisnis, Universitas Padjadjaran jummlah: 3
penempatan: Fakultas Ekonomi, Universitas Tanjungpura jummlah: 3

total Dosen yang dibutuhkan untuk jurusan Ekonomi adalah 6
penempatan: MKDU, Universitas, Universitas Tidar Magelang jummlah: 2
penempatan: MKDU, Universitas, Universitas Tidar Magelang jummlah: 2

total Dosen yang dibutuhkan untuk jurusan Hukum adalah 4

Thursday, September 11, 2014

S3 Akuntansi

Ada sebuah pepatah jaman kolonial yg yang sampe saat ini masih berlaku dan ternyata salah, bahwa tujuan pendidikan adalah untuk mencerdaskan kehidupan bangsa. Benar, tanpa pendidikan kita akan dengan mudah dibodohi. Kita akan sulit mengenali hal-hal abstrak yang berkaitan dengan konsep benar-salah. Kita bagaikan katak dalam tempurung yang pikirannya hanya seputar persoalan “basic instinc.” Tapi yang terjadi sebenarnya adalah pendidikan diadakan oleh “penguasa” (meminjam kata “pemindahan kekuasaan” dalam isi teks proklamasi, bukan “pemindahan kepemimpinan” atau “pergantian pemerintahan”) ditujukan untuk mensuplai tenaga-tenaga terampil yang banyak dibutuhkan di lapangan-lapangan pekerjaan.


Anehnya, akhir-akhir ini entah kenapa penguasa yang dimaksud pada teks proklamasi itu telah begitu ketagihannya memperbanyak bangku-bangku “pendidikan” (baca: bangku sekolah, ingat pendidikan wajib itu hanya 9 tahun) tanpa memikirkan apa nanti yang terjadi ketika manusia-manusia yang disekolahkan itu pasca selesai dari persekolahannya. Terlalu banyak sekolah dan terlalu sedikit lapangan pekerjaan. Orang-orang masuk sekolah dengan tujuan setelah selesai dari sekolahnya mereka akan menjadi orang kantoran. Mereka meninggalkan pekerjaan-pekerjaan yang seharusnya mereka kerjakan: bertani, bercocok tanam, mengukir, menyulam, memukat, memancing ikan, dan hal hal lainnya yang menjadi penyumbang pendapatan negara di luar sektor migas, lantaran pemerintah secara tidak sadar merusak mindset mereka dengan doktrin tidak langsung bahwa dengan sekolah manusia bisa cerdas. Karena sudah cerdas maka mereka sudah tidak pantas lagi mengerjakan pekerjaan orang-orang rendahan. Seperti kata seorang mantan presiden kita, B. J. Habibie yang katanya ingin menkonversi NKRI yang berbasis agraris ini menjadi negara industri. Saya mulai paham kenapa beliau berkata seperti itu. Orang-orang yang berlatar belakang fisika cenderung menilai segala sesuatunya berdasarkan konsep fisika. Orang-orang yang berlatar belakang insinyur ingin semua kurikulum diganti dengan hal-hal yang menunjang profesi keinsinyuran (agama dihapus, pendidikan Pancasila dihapus, dll dan hanya ada tutorial autoCAD). Orang-orang yang tadinya jualan meubel, ingin semua penduduk jadi pengrajin meubel, dan untuk itu harus dibuat subsidi bagi pengrajin meubel, padahal dia lupa dalam teori ekonomi, tingginya penawaran akan mengakibatkan harga barang menurun. Banyaknya handphone di pasaran, mengakibatkan harga handphone lebih rendah dari harga celana dalam, begitu juga dengan meubel tadi. Jadi perkataan pak Habibie itu tentu saja bisa kita sanggah. Sudah ada RRC yang jadi negara industrialis, sudah ada amerika yang jualan senjata. Kalo semua ikut-ikutan jualan senjata, maka yang beli senjata siapa. Singapura itu bisa kaya lantaran ada Indonesia yang jadi daerah pemasaran terdekatnya, di samping ukuran negara nya juga tidak begitu luas.

Semua orang-orang ingin jadi pengusaha lantaran terobsesi dengan biografi para pengusaha yang sukses, padahal nyatanya dalam piramida ekonomi, pengusaha itu berada pada puncak piramida. Mereka bisa punya banyak uang, tapi tidak boleh terlalu banyak orang-orang yang sejenis dengan mereka. Kalo Anda ingin jadi seorang pemilik bank swasta, maka Anda harus membuka jaringan bank di berbagai daerah. Nasabahnya tentu saja adalah para pengusaha yang lain. Mungkin penjual kain, penjual beras, penjual emas, atau penjual-penjual lainnya, tapi gak mungkin nasabahnya pemilik bank swasta juga. Penjual kain juga demikian. Walaupun Jusuf Kalla bisa kaya lantaran merintis karirnya dari berjualan kain, tidak lantas kita semua harus berjualan kain. Karena tidak mungkin kita berjualan kain pada penjual kain juga. Harus ada yang bertani, harus ada yang jadi nelayan. Dan nyatanya 80 persen penduduk Indonesia adalah petani dan nelayan. Indonesia bisa colaps kalo semua orang ingin membuka bank swasta. Saya ketika membaca biografi orang-orang seperti itu, pelajaran yang saya dapatkan adalah bukan lantaran bagaimana bisa kaya dengan berjualan kain atau membuka bank swasta, tetapi bahwa dalam hidup ini, agar bisa tetap hidup, kita harus bekerja, mencari uang, apapun pekerjaan kita.

Kembali ke persoalan sekolah tadi. Saya tidak sepakat bahwa pendidikan sampe perguruan tinggi adalah hak semua anak bangsa. Alasannya adalah pendidikan sampe perguruan tinggi itu sudah cukup elit di samping cukup mahal. Mahal dari segi biaya dan juga waktu. Bayangkan, kita kuliah sampe 5 tahun. Andaikan waktu 5 tahun kita gunakan untuk menjadi pengusaha dengan giat, sudah berapa keuntungan yang kita peroleh. Atau kalo kita jadi petani tentu sudah sangat banyak pohon-pohon berbuah yang kita tanam. Jika pemerintah berdalil bahwa semua orang berhak untuk jadi cerdas, lantas pertanyaan saya yang harus dijawab pemerintah adalah, kenapa tidak ada S3 akuntansi, kenapa tidak ada S3 kebidanan, kenapa tidak ada S3 penerbangan, kenapa tidak ada S3 pelayaran, dll bidang yang sama sekali tidak ada S3 nya. Ya, tanpa menunggu pemerintah menjawab, kita tentu sudah tahu jawabannya. Ngapain ngeluarin bayi lewat vagina mesti di S3-kan, ngapain nerbangin pesawat pake di S3-kan, ngapain ngitung debit-kredit mesti di S3-kan. Jadi pendidikan-pendidikan tinggi itu sama sekali tidak kita butuhkan. Untuk bisa cerdas, dan mengenal konsep benar salah, pendidikan SMA saya kira sudah cukup. Kita tidak perlu meniru Singapura yang memberi syarat semua warga negara adalah S1. Karena di Singapura semua lapangan pekerjaan memang mensyaratkan keterampilan S1, beda dengan Indonesia. Jadi ini sama sekali bukan mengenai persoalan siapa menaruh standar pendidikan paling tinggi, tetapi soal kebutuhan ekonomi. Kalo Anda ingin tahu seberapa kuat motif ekonomi dalam sejarah NKRI ini, saya sodorkan sebuah fakta sejarah. Anda tahu kenapa Amerika membisiki Soekarno agar menolak konsep R.I.S yang dicanangkan Belanda, itu lantaran dalam pembagian wilayah dalam konsep R.I.S itu, semua blok-blok minyak di Sumatra dikuasai oleh Belanda. Belanda udah tahu bagaimana mengolah minyak. Indonesia belum tahu. Jadi Amerika menyingkirkan Belanda dalam pengolahan minyak di Indonesia. Bahasa keren nya, Indonesia beralih dari penjajahan kasar (Hard Imperialism) menjadi penjajahan secara halus (Soft Imperialism).

Kalo dulu zaman kolonial, VOC melakukan tebang paksa ribuah pohon cengkeh di pulau Maluku, lantaran banyaknya stok cengkeh mengakibatkan harga cengkeh di pasaran dunia menurun yang mana merugikan, lantaran ongkos pengiriman cengkeh per-kilo melaui kapal-kapal tidak bisa tertutupi dengan harga penjualan. Bisakah penguasa saat ini menutup paksa sekolah-sekolah (baca: universitas) yang sama sekali tidak dibutuhkan tersebut. Mengingat banyaknya sekolah, mengakibatkan harga jual alumni sekolah menjadi turun. Dan terjadi inefisiensi yang mengakibatkan kerugian, lantaran “biaya produksi 1 alumni” itu sangat besar dan tidak bisa ditutupi oleh resultan gaji yang mereka dapatkan setelah menempuh dunia pekerjaan.

Pemerintah bisa menempuh cara lain, yakni dengan membatasi jumlah tampungan per tahun dari sekolah-sekolah tersebut, seperti yang sudah dilakukan selama ini. Mirip lah dengan formasi PNS yang hanya menyediakan sekian orang dalam formasinya. Apa salahnya pemerintah melakukan hal yang sama pada ranah pendidikan (sesuatu yang urgensinya lebih rendah ketimbang memperoleh pekerjaan). Tapi sudah terlalu banyak sekolah dan implementasi di lapangan bisa ribet (walaupun bisa kalo dipikirkan secara serius). Atau bisa juga pemerintah melakukan second fundamental doctrine (setelah Pancasila) yakni dengan memberi penekanan kewirausahaan pada peserta persekolahan. Bahwa kita sekolah bukan semata untuk mencari pekerjaan. Kita sekolah untuk menjadi pintar. Agar maju dalam IPTEK, agar bisa merubah tanah menjadi emas, gurun menjadi perkebunan (seperti di Israel), dll idealisasi. Walaupun kenyataannya ini sama sekali sulit dimengerti oleh orang-orang Indonesia (seperti hal nya tidak semua orang bisa memahami hakikat Pancasila). Orang-orang Indonesia (pada umumnya) sepertinya sudah termakan doktrin primordial bahwa kita disekolahkan agar menjadi orang kantoran, “terangkat”, menjadi orang besar, dll. Jadi satu-satunya cara yang paling realistis yang bisa ditempuh oleh pemerintah/penguasa adalah menutup sekolah-sekolah yang tidak dibutuhkan tersebut. Bukankah sekolah pilot saja sudah dibatas-batasi oleh pemerintah. Apa salahnya sekolah-sekolah lainnya juga.

Wednesday, August 27, 2014

Perbedaan quantifier dalam Regex

Terdapat tiga modus quantifier dalam regex, yang pertama adalah greedy, kedua adalah reluctant, dan yang ketiga adalah possessive. Berikut penjelasannya

13

Dalam modus greedy,  matcher pertama-tama  nge-match seluruh string. Jika tidak ditemukan yang match, dia akan melakukan backtracking dengan membuang satu huruf dari bagian yang match dari input string  (yang sudah menjadi bagian match-nya) untuk dipake/di-match oleh character berikutnya pada matcher. Misalnya jika  pattern-nya adalah .*foo ketika string input adalah  xfooasdasfsdfsdafoo maka yang terjadi adalah, bagian pertama dari matcher, yakni .* (yang artinya match semua jenis character dengan jumlah berapa saja, zero or more times), akan nge-match seluruh input string (greedy = rakus/sebanyak mungkin). Karena seluruh string sudah match dengan dia, otomatis bagian berikutnya dari matcher, yakni character f tidak akan mendapat jatah lagi, dan tidak match. Jadi quantifier tadi, yakni *,  akan membuang satu character dari bagian  match-nya sehingga character o  pada input string  menjadi unmatch (di luar dari bagian match-nya), dan ini yang selanjutnya akan di-match dengan character f dari matcher. Namun belum match, dia buang lagi  o berikutnya, dan belum match juga dengan  pada matcher, maka f tadi dibuang lagi dari bagian match dari matcher .* sehingga bisa dipake oleh character f dari matcher, dan ini baru match. Kemudian character berikutnya dari matcher yakni o dan o, dengan sendirinya akan match dengan dua character sebelumnya yang sudah dibuang oleh matcher .* yakni o dan o.

Dalam modus recultant, dia akan nge-match sesedikit mungkin (berkebalikan dengan modus greedy tadi).  Jadi dalam  input yang diberikan, yakni xfooasdasfsdfsdafoo, matcher .*? akan ngematch sesedikit mungkin, yakni  pertama match dengan string dengan zero-length, atau  “” (tanda kutip di sini menunjukkan ada string di situ yang tidak keliatan), sesuai dengan defenisinya (zero or more times). Selanjutnya bagian berikutnya dari matcher, yakni  f,  akan mencoba nge-match dengan mengambil satu-satu dari string yang tersisa, yakni  xfooasdasfsdfsdafoo (di luar string zero-length tadi), di mana pertama-tama dia mencoba nge-match dengan character x. Karena tidak match, maka quantifier *? akan melahap satu lagi dari string input (melakukan backtrack) yakni x, sehingga bagian pertama dari matcher, yakni .*? akan menyisakan fooasdasfsdfsdafoo untuk di match dengan bagian berikutnya dari matcher, yakni f. Karena sudah match,  maka  bagian  berikutnya dari input string yang  tersisa yakni character o dari ooasdasfsdfsdafoo yang akan dimatch dengan bagian berikutnya dari matcher yakni o, demikian pula untuk o berikutnya.

Modus possessive sama sekali tidak melakukan backtracking. Jadi quantifier .*+ akan melahap semua string input, dan sama sekali tidak menyisakan untuk bagian berikutnya dari matcher, yakni f, o, dan o. Sehingga hasil keseluruhannya adalah string input sama sekali tidak match dengan matcher.

Saturday, August 23, 2014

Cross di dalam Lingkaran

qewqewq
Dalam postingan kali ini sebenarnya saya ingin berbagi permasalahan sekaligus ilmu yang mungkin bermanfaat bagi pembaca sekalian. Gambar di atas dikutip dari bukunya Edwin J.Purcell pada bab aplikasi turunan/derivatif, spesifiknya bagaimana menggunakan turunan dalam memecahkan persoalan optimisasi. Saya kemarin sudah mencoba menjawab soal ini, namun saya merasa kurang confidence dengan jawaban saya. Entah di mana kesalahan penurunannya yang menggiring saya pada kesimpulan bahwa sudut yang dimaksud adalah nol.
Akhirnya saya buat sebuah aplikasi yang mengkonfirmasi dugaan saya itu. Dan ternyata dugaan saya salah. Nilai maksimumnya bukan terletak ketika sudutnya sama dengan nol seperti yang terlihat pada gambar di bawah ini. Animasinya saya buat dengan JavaFX, sebagaimana animasi lainnya di blog ini. Dan Anda bisa melihat source-nya di Github. Dan saya sampai sekarang belum menemukan kesalahan penurunannya, atau jawaban yang benar untuk membuktikan nilai sudut ketika luas cross di dalam lingkaran tersebut bernilai maksimum.
Mudah-mudahan ada pembaca yang tertarik menyelesaikan persoalan di atas untuk mendapatkan jawaban analitisnya.
1

Friday, August 15, 2014

Mencari data terduplikasi dengan menggunakan Java HashMap

Dalam tutorial kali ini, saya mencoba mendemonstrasikan kegunaan hashmap di java, yakni dalam mencari tahu apakah suatu data terduplikasi. Contohnya adalah biasa dalam sebuah database berbasis SQL ada perintah distinct yang mana secara kasar bisa dikatakan bahwa perintah ini menggunakan hashmap dalam implementasinya.

Saya berikan contoh, adalah bagaimana mencari dalam suatu file pada baris ke berapa saja kolom ke-x mengalami duplikasi. Sebenarnya ini perluasan dari pertanyaan fundamental yakni, apakah suatu data memiliki jumlah lebih dari satu dalam suatu kumpulan data. Kemudian saya melakukan perluasan dengan memberikan jawaban mengenai di baris mana saja data tersebut mengalami duplikasi. Potongan kodenya dapat dilihat pada script berikut:

Untuk mendemonstrasikan apakah script ini berjalan dengan baik, ada baiknya pembaca membuat sendiri test-case nya. Buat aja beberapa baris yang data pada kolom-kolomnya itu beda, kecuali pada beberapa kolom yang dibuat sama. Kemudian selanjutnya pembaca jalankan aja script ini untuk mengetesnya.

Tuesday, July 29, 2014

Bagaimana mendownload video dengan TOR browser

Dalam tulisan kali saya mencoba sedikit pengalaman saya yang mungkin berguna bagi majelis blogger sekalian. Yang saya maksud dengan pengalaman ini murni dengan niatan share of knowledge alias membagi pengetahuan (mudah-mudahan ejaan inggris saya benar). Jika nanti para majelis blogger sekalian melakukan tindakan yang melawan hukum akibat dari isi tulisan saya ini, maka saya katakan dengan tegas bahwa itu di luar tanggung jawab saya (put it in the context).  Karena teknologi itu ibarat pisau bermata dua: punya sisi baik dan punya sisi buruk.

Bahan-bahan yang perlu disiapkan sebagai bagian dari tutorial kali ini hanya dua macam, yakni TOR browser dan flash video downloader. Untuk saat ini saya tidak bisa menjelaskan secara rinci bagaimana mekanisme kerja dan detail implementasi dari kedua bahan tersebut, yang jelas secara garis besar saya bisa katakan kalo bahan yang pertama berfungsi untuk menghilangkan jejak kita dalam browsing di dunia maya sementara bahan yang kedua berguna untuk mengkonversi tayangan flash dari video di berbagai situs di internet menjadi alamat video tersebut pada komputer server (yang bisa di-download). Untuk bahan pertama, cara instalasinya sangat mudah, Anda download Tor browser bundle (di mana vidalia dan mozilla browser sudah terintegrasi---dalam hal ini yang ditampilkan pada bagian atas link yang saya berikan) dan install sebagaimana halnya Anda menginstall software yang lain. Kemudian untuk bahan yang kedua, Anda buka aja link tersebut dengan Tor browser (karena dia mozilla firefox hakikatnya) dan Anda tekan tombol download, yang dengan otomatis akan membuat Tor browser menginstall plugins seperti halnya bagaimana browser mozilla firefox menginstall plugins.  Jika majelis sekalian sudah memiliki kedua bahan tersebut maka yang saya lakukan kali ini adalah demo bagaimana memperlakukan keduanya untuk kepentingan majelis sekalian.

Pertama,  saudara buka halaman web yang mengandung video yang ingin saudara download, misalnya youtube dan langsung ke alamat video yang ingin didownload:


Kemudian Anda klik tombol panah warna biru, hingga muncul tampilan menu mengenai video yang akan di-download. Selanjutnya dalam menu tersebut letakkan mouse Anda pada satu link di bagian bawah dan biarkan beberapa saat hingga muncul menu  di sampingnya (seperti terlihat pada kotak kuning):


Kemudian pada menu yang ditampilkan tersebut klik "copy URL to keyboard". Kata orang barat the rest is hystory. Anda peste link tersebut pada "new tab" atau "new window" dari TOR browser. Dan  selanjutnya tinggal "save as" ke harddisk Anda.


Dan sebagai penutup, saya belum melakukan test apapun untuk mencari tahu pada kasus mana tutorial ini tidak bekerja.



Tuesday, July 15, 2014

Statistik Quick Count

"There are three kinds of falsehoods: lies, damned lies, and statistics." Benjamin Desraili
Kebenaran itu bukan ditentukan oleh siapa Anda, apa gelar Anda, seberapa cerdas Anda, tapi ditentukan oleh seberapa terbuka Anda untuk membuang kefanatikan di kepala Anda, lantaran terobsesi dengan seabrek pencapaian yang Anda miliki.
Sebuah kebenaran bisa dicapai melalui diskusi. Tapi yang aneh, tidak sedikit kita mendengar umpatan semisal, “gue itu doktor lulusan Harvard, lu siape?” yang hakikatnya pernyataan yang sangat takabur dalam menilai kemampuan orang lain dalam menggagaskan kebenaran. Bahkan seorang profesor hebat dalam matematika pun ketika dikatakan ada yang salah dengan tulisannya, biasanya dia langsung menanyakan salahnya di mana.
Jadi dalam tulisan ini, saya menyatakan saya bukan seorang ahli, saya hanya pencari kebenaran. Jika seorang men-self-declaration dirinya seorang ahli, berarti dia itu bukan ahli. Karena ada banyak celah yang bisa kita cari untuk menjungkirbalikkan pernyataannya tersebut.
Berbicara tentang quick count yang sekarang ini menjadi bahan olok-olokan di media, sebenarnya saya hanya mengajukan pertanyaan sederhana, yakni bagaimana bisa pernyataan yang didasarkan pada data dari sample sebuah populasi bisa mengganti data yang diperoleh dari keseluruhan populasi tersebut. Saya bahkan pernah baca sebuah handbook yang katanya mengatur tentang bagaimana membuat sebuah quick count walaupun kenyataannya di dalamnya tidak terdapat sebuah pun standar operasi (SOP) dalam statistik disebutkan. Sebuah kebenaran harus punya alur logika yang jelas. Dalam hal ini penarikan sampel ala quick count mestinya menyertakan argumen-argumen dasar tentang alasan kita untuk mempercayai kesimpulan yang dihasilkan melalui metode tersebut. Berbicara tentang statistik, sebenarnya saya juga bukan orang statistik, dan saya juga g pernah baca paper-paper tentang kelayakan penggunaan quick count dalam men-judge hasil pemilu sebuah negara. Tapi argumen fundamental saya berkenaan dengan pemilu Indonesia adalah senada dengan kalimat Desraili di atas, bagaimana kita bisa memastikan data dari 2 ribuan TPS bisa digunakan untuk menjudge data dari 500 ribuan TPS? Ingat 2/500 = 0.4 persen. Kecuali Anda orang dungu, Anda akan tahu seberapa kecil signifikansi nilai 0.4 persen terhadap kebenaran yang 100 persen. Saya g tau, apakah di Indonesia semuanya orang bodoh, tapi saya melihat bahwa quick count ini tidak lebih dari akal-akalan LSM-LSM global dalam mencari dana/duit.
Argumennya itu mana? Misalnya saja quick count diambil untuk 5 TPS dari 20 TPS di kampung saya. Dan pada akhirnya didapatkan dari 5 TPS tadi, pasangan X itu menang, maka apa dasar lembaga quick count untuk mengatakan kalo di 15 TPS yang lain si X tadi juga menang. Ingat lo, ini manusia yang punya pikiran yang complex, dalam satu keluarga aja orang beda plihan kok. Dalam satu Individu pun, hari ini bicaranya mau pilih X, nyatanya bisa jadi besok di TPS pilih Y (saya rasa Anda saksikan sendiri fenomena seperti ini), lantas bagaimana kita bisa menjudge-nya dengan begitu yakin? Bisa jadi yang terjadi adalah pembenaran lembaga quick count ini hanya didasarkan pada feeling saja: “ah, jangan-jangan si X memang menang di TPS yang lain.” Tapi kan feeling bukan fakta ilmiah. Untuk sampai pada tahap kebenaran yang mendekati 100 persen, makan argumen yang valid dan data yang melimpah harus tersedia dengan jelas.

Sunday, May 11, 2014

Gerak Pada Bidang Miring: Kesalahan Terbesar Microsoft Excel VBA

Dalam tulisan kali ini saya sedikit berbagi pengalaman dalam menggunakan Microsoft Excel. Kebetulan kemarin saya mencoba membuat sebuah animasi mengenai bidang miring dengan menggunakan VBA ala Microsoft Excel. Masalahnya adalah rumusan saya tentang posisi kotak pada bidang miring itu sudah benar 100 persen. Yang bikin heran kok hasil penggambaran di Microsoft Excel tidak sesuai yang saya harapkan?

Gambar 1. Geometri Bidang Miring


Pada gambar 1, dengan mengingat bahwa koordinat monitor menggunakan titik asal pada TOP-LEFT, maka dapat diberlakukan persamaan: \begin{eqnarray} x_1 = x_2 - w \cdot \sin(\alpha) \\ y_1 = y_2 + w \cdot \cos(\alpha) \end{eqnarray} yang mengakibatkan \begin{eqnarray} x_2 = x_1 + w \cdot \sin (\alpha) \\ y_2 = y_1 - w \cdot \cos(\alpha) \end{eqnarray} Nah, rumusan ini berhasil saya terapkan dengan sempurna di JavaFX. Tapi entah kenapa ketika saya ganti ke VBA dari Microsoft Excel, semuanya kacau dan tidak sesuai harapan. Yang saya heran di Microsoft Excel, kok menghitung fungsi matematika yang berkaitan dengan trigonometri, dia menggunakan sudut radian. Ketika dia menentukan rotasi suatu objek, dia menggunakan sudut derajat. Mungkin saja ini penyebabnya atau satu dan lain hal, saya juga g tau.

Berikut ini adalah cuplikan video hasil implementasi dari rumus di atas di JavaFX:



Sementara source code untuk implementasi tersebut dapat anda lihat di github.

Adapun video dari keanehan Microsoft Excel yang dimaksud adalah:



di mana contoh implementasinya adalah
Sub TestAnimasi()
    total_iterasi = 0
    
    Dim shape As shape
    namaBenda = "Kotak"
    
    Set shape = Sheet1.shapes(namaBenda)
    Dim segitiga As shape
    Set segitiga = Sheet1.shapes("Bidang Miring")
    
    lokasiSegitigaX = segitiga.Left
    lokasiSegitigaY = segitiga.Top
    
    panjang = segitiga.Width
    lebar = segitiga.Height
    
    ' Hitung kemiringan bidang
    Dim sudutDerajat As Double
    sudut = Math.Atn(lebar / panjang)
    sudutDerajat = sudut / WorksheetFunction.Pi * 180
    shape.Rotation = sudutDerajat
    
    'Hitung default posisi
    defaultX = segitiga.Left + shape.Height * Sin(sudut)
    defaultY = segitiga.Top - shape.Height * Cos(sudut)
    
    'Letakkan kotak pada bagian awal dari bidang miring
    shape.Left = defaultX
    shape.Top = defaultY
    
    n = Sheet1.Cells(12, 13)
  
    Sheet1.Cells(22, 16) = sudutDerajat
    
    panjangLintasan = Math.Sqr(lebar * lebar + panjang * panjang)
    spasiLintasan = panjangLintasan / n
    lintasanAwal = 0
     Do
        DoEvents
        shape.Left = shape.Left + spasiLintasan * Cos(sudut)
        shape.Top = shape.Top + spasiLintasan * Sin(sudut)
        total_iterasi = total_iterasi + 1
        lintasanAwal = lintasanAwal + spasiLintasan
        timeout (0.2)
    Loop Until total_iterasi = n - 1
End Sub

Sub timeout(waktu As Double)
    StartTime = Timer
    Do
    DoEvents
    Loop Until (Timer - StartTime) >= waktu
End Sub

Monday, April 21, 2014

Penggunaan FXML dalam membentuk GUI dengan javaFX

Dalam kesempatan kali ini saya memberikan sedikit contoh penggunaan FXML dalam membentuk GUI di javaFX. FXML sendiri merupakan penarapan konsep MVC di java yakni dengan menggunakan bantuan java reflection. Terdapat beberapa tag yang cukup penting dalam javaFX. Yakni fx:include dan fx:root. Tutorial ini mencoba memberikan proof of concept mengenai tag yang kedua. Tag fx:root digunakan untuk melompati pendefenisian controller pada  file fxml. Jadi dengan tag ini maka class controller yang digunakan di-inisialisasi selama runtime.  Untuk maksud ini, maka terdapat  menu option pada javaFX scenebuilder yang bisa digunakan  yang bisa dilihat pada gambar berikut

:

Sehingga file fxml yang  sebelumnya berbentuk: <!--xml version="1.0" encoding="UTF-8"?--> <!--import java.lang.*?--> <!--import java.util.*?--> <!--import javafx.scene.*?--> <!--import javafx.scene.control.*?--> <!--import javafx.scene.layout.*?--> <AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="fjr.example.mediaplayer.playlist.PlayerController"> <children> <StackPane layoutX="49.0" layoutY="14.0" prefHeight="150.0" prefWidth="200.0" /> </children> </AnchorPane> akan berubah menjadi <!--xml version="1.0" encoding="UTF-8"?--> <!--import java.lang.*?--> <!--import java.util.*?--> <!--import javafx.scene.*?--> <!--import javafx.scene.control.*?--> <!--import javafx.scene.layout.*?--> <fx:root type="javafx.scene.layout.AnchorPane" id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2"> <children> <StackPane layoutX="49.0" layoutY="14.0" prefHeight="150.0" prefWidth="200.0" /> </children> </fx:root> Nah agar properti dari file fxml tersebut bisa diakses, maka dalam kelas controller kita harus defenisikan root-nya yang contohnya bisa dilihat pada potongan berikut:
    public PlayerController(Group root) throws IOException {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("Player.fxml"));
        loader.setController(this);
        loader.setRoot(this);
        loader.load();
        root.getChildren().add(this);
        this.root = root;
        this.mainStage = (Stage) root.getScene().getWindow();
    }
Untuk melengkapi tutorial kali ini, saya memberikan sebuah proyek kecil yakni membuat sebuah media player dengan playlist dengan menggunakan javaFX. Playlist yang dimaksud dapat digunakan layaknya playlist di media player yang biasa kita kenal (semacam winamp, jet audio atau lain-lain) yakni dapat di-repeat kembali ke daftar pertama ketika lagu terakhir selesai. Bagi pembaca yang tertarik mencoba, dapat meng-clone source code-nya di github: https://github.com/gunungloli666/example-media-player-with-playlist/tree/master/src/fjr/example/mediaplayer/playlist