By Reference vs By Pointer Dependency Injection C++

By Reference DI is safer because reference cannot be Null, but it has some issues: initialization, copying, and assignment problem. Something that I’m currently experience now.

By Pointer DI has no issues above, but by using pointer reference you will need to watch some issues like object ownership (where Smart Pointer is better), and null-value (always remember to assert dependencies != nullptr)

My Git Command Tricks

Temporarily switch to a certain commit

Make sure git status is clean. Jump to a specific git commit:
git checkout commit_hash

Example:
git checkout 286202caa31b61c2182209f37f8069a0b60fb942

Back to the original commit:
git checkout branch_name

Example:
git checkout master

Arduino Nano Every Pinout Diagram

The newly introduced Arduino Nano Every, Arduino Nano 33 IoT, Arduino Nano 33 BLE, and Arduino Nano 33 BLE Sense are currently not available to purchase. Estimated shipment is as early as mid-June 2019.

I will update this diagram accordingly. We don’t yet know the complete details of Arduino IDE supports for these boards.

Arduino Nano Every Pinout Diagram v0.1
What Programming Language You Mostly Use Then & Now? Why?

What Programming Language You Mostly Use Then & Now? Why?

This probably is the most frequent asked question: programming language choice. Well, there are literally hundreds even thousands of programming languages out there. Several have gained sweet popularity, some have been discontinued, buried along with obsolete technologies. Some languages have lasted to date, some others just get illusively overhyped.

That, of course, makes total beginners get confused. What should I learn? Where can I find help if I get stuck? This short article would probably help you clear your path to choose a programming language.

Continue reading “What Programming Language You Mostly Use Then & Now? Why?”

Perlukah Membuat Digital Module pada FPGA?

Pada paper design-of-an-fpga-based-vlc-system telah disebutkan bahwa digital module diimplementasikan agar sinyal MII dapat diubah menjadi encoded signal yang siap ditransmisikan yang sesuai dengan standar IEEE 802.3 Ethernet. Pada gambar 1, diperlihatkan bahwa digital module merupakan bagian dari PHY layer sistem.

blokdiagram

Kabel ethernet pada sambungan internet sebetulnya merupakan physical layer juga. Pada titik ini, MAC layer sudah ada di bagian MAC chip di router/switch ethernet. PHY layer juga sudah diimplementasikan pada router/switch. Sehingga sinyal kabel ethernet pada dasarnya adalah sinyal luaran dari blok biru digital module di atas.

Kecuali capstone design akan menggunakan USB-to-MII sebagai sumber koneksi, kita sudah tidak perlu lagi untuk membuat digital module dan MAC layer. Sayangnya, pada posisi tersebut kita tidak lagi membutuhkan FPGA. FPGA sama sekali tidak digunakan.

Terdapat paper lain (ethernet-signal-transmission-via-vlc-lighting)  yang membahas transmisi sinyal ethernet melalui VLC. Di dalamnya hanya terdapat analog circuit yang menerima input berupa sinyal ethernet, dan output dihubungkan ke AFE. Perlu diketahui pula bahwa sistem pada paper tersebut adalah full-duplex, yaitu komunikasi dua arah.

twoway

Media Independent Interface (MII)

Media Independent Interface (MII)

Pada paper design-of-an-fpga-based-vlc-system diuraikan cara interfacing antara PC dengan Analog Front End (AFE) menggunakan chip USB-to-Ethernet. Chip yang digunakan menyediakan pin untuk sinyal MII. Di bawah ini adalah blok diagram sistem dari paper di atas:
blokdiagram

Sementara Board DE2-115 menyediakan chip PHY untuk interfacing ethernet ke FPGA:

blokdiagram2Chip tersebut menyediakan pin MII pula. Sehingga untuk proyek capstone design ini akan digunakan diagram blok sebagai berikut:

untitled-diagram-2

Dikutip dari laman wikipedia, MII memiliki sinyal transmitter dan receiver sebagai berikut:

Transmitter signals

  • TX_CLK Transmit clock (PHY to MAC)
  • TXD0 Transmit data bit 0 (MAC to PHY) (transmitted first)
  • TXD1 Transmit data bit 1 (MAC to PHY)
  • TXD2 Transmit data bit 2 (MAC to PHY)
  • TXD3 Transmit data bit 3 (MAC to PHY)
  • TX_EN Transmit enable (MAC to PHY)
  • TX_ER Transmit error (MAC to PHY, optional)

Receiver signals

  • RX_CLK Receive clock (PHY to MAC)
  • RXD0 Receive data bit 0 (PHY to MAC) (received first)
  • RXD1 Receive data bit 1 (PHY to MAC)
  • RXD2 Receive data bit 2 (PHY to MAC)
  • RXD3 Receive data bit 3 (PHY to MAC)
  • RX_DV Receive data valid (PHY to MAC)
  • RX_ER Receive error (PHY to MAC)
  • CRS Carrier sense (PHY to MAC)
  • COL Collision detect (PHY to MAC)
Menimbang Keberagaman Gerakan Dakwah Islam

Menimbang Keberagaman Gerakan Dakwah Islam

“Dan hendaklah di antara kamu ada segolongan orang yang menyeru kepada kebajikan, menyuruh (berbuat) yang ma’ruf, dan mencegah dari yang munkar. Dan mereka itulah orang-orang yang beruntung.”[1]

Gerakan Islam adalah usaha untuk menegakkan agama Islam di muka bumi; amar ma’ruf nahi munkar. Ada banyak kelompok gerakan Islam di dunia berikut dengan metode dakwahnya masing-masing.

Di level dunia kita mendengar nama Hizbut Tahrir, Ikhwanul Muslimin, Al Qaeda. Sedangkan di Indonesia kita mengenal Nahdlatul Ulama, Muhammadiyah, Partai Keadilan Sejahtera, dan seterusnya. Cara berdakwah yang dipakai masing-masing kelompok beragam: masuk parlemen; aksi massa; membentuk opini Islam dengan media massa, dan sebagainya.

Dalam tulisan ini saya tidak hendak membanding-bandingkan kelompok mana yang lebih unggul dari kelompok lain. Tulisan ini hanya akan mengangkat ide tentang bagaimana upaya kelompok gerakan dakwah Islam tersebut dalam menegakkan Islam.

Kita sepakat bahwa selama suatu kelompok merujuk kepada Al-Qur’an dan Sunnah, maka kita dapat mempertimbangkan untuk ikut berjuang bersama kelompok tersebut. Namun yang sulit adalah ketika suatu kelompok dituding macam-macam—ini tentu harus kita sendiri yang mengembalikan persoalan kepada Al-Qur’an dan Sunnah, dan sudah semestinya kita memakai standar yang jelas apakah gerakan dakwah tersebut benar atau tidak. Setidaknya kita sudah memiliki standar itu—10 ciri aliran sesat menurut MUI[2].

Berikut ini akan saya paparkan sedikit mengenai beberapa organisasi gerakan Islam, saya tidak dapat merinci setiap informasi karena yang demikian memerlukan penelusuran dan penelitian yang baik, agar tidak terjadi salah interpretasi.

Nahdlatul Ulama

Membangkitkan masyakarat dari keterpurukan akibat penjajahan menjadi motivasi utama Nahdlatul Ulama dibentuk. Dalam perjalanannya, NU dibentuk untuk menaungi organisasi-organisasi kecil yang bervisi sama seperti Nahdlatul Tujjar, Nahdlatul Fikri, dan Nadhlatul Wathan.

Paham keagamaan yang dianut NU adalah Ahlusunnah Waljama’ah, ini benar. NU juga mengintegrasikan tasawuf dengan syariat, inilah yang perlu dikritisi, apakah tasawuf berasal dari Islam? Perlu dikaji lebih lanjut dan pembahasannya diluar skop tulisan ini.

Ikhwanul Muslimin

Ikhwanul Muslimin adalah jamaah gerakan Islam yang dibentuk di Mesir, yang kemudian menyebar ke seluruh dunia. Berangkat dari pemikiran bahwa agama Islam bukan agama ritual yang hanya mengatur urusan ibadah saja, namun mencakup seluruh aspek kehidupan, Ikhwanul Muslimin mengajak dan menuntut ditegakkannya syariat Allah.

Partai Keadilan Sejahtera

PKS adalah partai politik berbasis Islam di Indonesia. Asal mula PKS dapat ditelusuri pada tahun 80-an, PKS berawal dari gerakan dakwah kampus yang berkembang hingga didirikannya Partai Keadilan (PK) dan berganti nama menjadi PKS.

Penegakkan Islam di Indonesia

Islam di Indonesia adalah yang terbesar, namun penegakkan syariat Islam sangat lemah. Indonesia—walaupun menyatakan diri sebagai negara demokrasi—nyatanya adalah sebuah negara yang menerapkan pemikiran sekuler. Dilihat dari peraturan, keputusan, dan gerakan yang ditempuh Indonesia cukup membuktikan ke-sekuler-an negara ini.

Gerakan/jamaah yang demikian banyak di Indonesia bergerak sendiri-sendiri: dengan uslub dakwah, ideologi, dan tujuan dakwah yang tidak sama persis. Penyatuan jamaah ini—untuk saat ini—secara umum tidak akan berhasil, sebab akan terjadi bentrok kepentingan. Hal ini jika berlangsung terus akan memperlama kebenaran hadits Nabi SAW yang menyatakan dunia akan dinaungi kekhilafahan Islam.

Masalah kita saat ini adalah fanatik kekelompokan, juga arogansi diri. Kita seringkali tidak mentolerir perbuatan orang lain—yang menurut kita salah, yang sebetulnya disebabkan karena ketidaktahuan kita mengenai Islam sendiri.

Selain itu marak pula saling tuding antar kelompok—yang justru membahayakan Islam, sebab kaum sekularis dan liberalis memanfaatkan celah ini untuk memecah Islam dari dalam.

Keberagaman diantara gerakan dakwah tidak seharusnya membuat kita semakin terkotak-kotak, dan justru meningkatkan pergesekan antar umat Islam. Dari sinilah kita perlu toleransi, dan belajar bertoleransi.

[1]      TQS. ‘Ali Imran: 104

[2]      http://al-islam-indonesia.blogspot.com/2013/08/10-ciri-aliran-sesat-dan-penjelasannya.html

Ahadun Ahad: Mempertanyakan Kembali Syahadat Kita

Ahadun Ahad: Mempertanyakan Kembali Syahadat Kita

Katakanlah (Muhammad), “Dialah Allah, Yang Maha Esa. Allah tempat meminta segala sesuatu. (Allah) tidak beranak dan tidak pula diperanakkan. Dan tidak ada sesuatu yang setara dengan Dia. (QS. Al-Ikhlas 1-4)

Kalimat Ahadun Ahad, membuat saya terkenang dengan sosok Bilal bin Rabah, seorang budak milik kafir Quraisy Ummayah bin Khalaf, yang akhirnya dibeli oleh Abu Bakar As-Shiddiq dan dibebaskan. Bilal, berdasarkan sejarah Islam, disiksa oleh tuannya agar kembali pada agama nenek moyangnya, agar kembali menyembah berhala. Siksaan yang diterima Bilal tidak main-main: dicambuk, dipukul, bahkan ditindih oleh batu besar! Laa haula walaa quwwata illa billaah, bila Anda menggantikan tempat Bilal, akan sangat mungkin Anda langsung mati.

Tidak herankah Anda apa yang membuat Bilal begitu kuat menghadapinya? Bilal diberi makan dan minum oleh tuannya hanya agar memastikan dia tidak mati sebelum kafir kembali. Mental, ya, kekuatan mental Bilal sangat kuat, jauh lebih kuat dari mental tuannya sendiri, Umayyah, yang bahkan malu ketika ditertawakan orang-orang karena tidak bisa membuat budaknya sendiri kembali kafir. Ada sesuatu yang benar-benar membuat orang-orang Arab saat itu heran, apa sih yang membuat Bilal begitu tabah?

Bilal hanya berkata ‘Ahad! Ahad! Ahad!’ saat disiksa tuannya, inilah dia jawabannya, Bilal hanya sudi mengakui Allah sajalah sebagai illah yang berhak disembah. Dengan mengikrarkan syahadat, asyhadu allaa ilaaha illallaah wa asyhadu anna muhammadurrasulullaah, Bilal tahu konsekuensi dari syahadatnya, yaitu mengesakan Allah, dan mengikuti panduan Nabi Muhammad SAW.

Nah, dari sini kita bisa merenungkan, apakah kita sudah bersyahadat? Apakah kita sudah memahami dengan benar makna syahadat? Siapkah dan sudahkah kita melakukan konsekuensinya? Oleh karena itu, mari, kita ulas bersama-sama kalimat syahadat yang selama ini kita lafazkan dalam sholat.

Laailaaha illallaah, secara tidak tepat sering diterjemahkan sebagai ‘tiada Tuhan selain Allah’, makna ini bisa jadi berbahaya. Menjadi berbahaya sebab dapat merubah makna dalam lafadz bahasa Arab yang asli. Terjemahan kalimat tersebut perlu dibuat lebih spesifik lagi agar tidak menimbulkan penafsiran ganda. Untuk melihat pemaknaan akibat terjemahan yang kurang tepat, mari ambil contoh kalimat berikut ini, “tidak ada kucing melainkan pasti berkumis”, makna kalimat tersebut adalah semua kucing pasti berkumis. Nah, jika makna ‘tiada Tuhan selain Allah’ ditafsirkan dengan cara seperti ini, maka makna yang muncul adalah tidak ada Tuhan melainkan itu pasti Allah. Pemaknaan ini justru sangat jauh dengan maksud mengesakan Allah, justru, pada pemaknaan seperti ini tersirat bahwa Allah SWT adalah segala sesuatu yang dianggap Tuhan, jika batu, bulan, atau berhala saya anggap Tuhan, maka itulah Allah. Saya tekankan sekali lagi bahwa pemaknaan dengan cara seperti ini adalah salah.

Makna yang lebih tepat adalah ‘Tiada illah yang berhak disembah kecuali Allah’, dari sini muncul kata illah yang perlu dipertajam makna agar tidak menimbulkan penafsiran berbeda. Kata illah secara bahasa memang berarti ‘Tuhan’, namun apa yang dimaksud dengan Tuhan? Apakah syaratnya sesuatu itu dikatakan Tuhan?

Agar sesuatu dapat dikatakan tuhan, maka setidaknya ada beberapa keadaan yang mesti terpenuhi yaitu 1) dianggap mampu memperkenankan do’a ketika diseru; 2) menjadi tempat bergantung dan berlindung; 3) dicintai dan diikuti. Al-Qur’an sendiri juga memberikan contoh illah-illah selain Allah, a) Hawa Nafsu. Sudahkah engkau (Muhammad) melihat orang yang menjadikan hawa nafsunya sebagai illah-nya (QS. Al-Furqon: 43); b) Orang shaleh di masa lampau. Mereka menjadikan orang-orang alim (Yahudi) dan rahib-rahibnya (Nasrani) sebagai illah selain Allah (QS. At-Taubah: 31).

Makna illah selain Allah itu tidak sempit, tidak terbatas pada berhala saja, sebagaimana yang kebanyakan masyarakat kita saat ini pahami. Ketika sesuatu sudah Anda cintai atau diikuti perkataanya, Anda berani melakukan apapun untuk sesuatu tersebut, maka berhati-hatilah, bisa jadi Anda tidak sempurna dalam mengesakan Allah. Sesuatu itu bisa jadi uang, jabatan, atau pasangan.

Jika selama kita masih mengakui illah selain Allah, maka kita tidak paham makna syahadat. Dengan begitu, keislaman kita masih dipertanyakan.

Makna Syahadat Dalam Tinjauan Ilmiah

Makna Syahadat Dalam Tinjauan Ilmiah

Abul A’la Al-Maududi seorang ulama Pakistan pernah mesinyalir mengenai keruntuhan umat Islam di dunia. Beliau mengatakan bahwa faktor yang paling dominan yang menjadi sebab mundur dan runtuhnya peradaban Islam adalah ketidakmampuan umat Islam dalam memahami bahasa arab.[1]

Bila ditilik secara logis, hal tersebut nampaknya tidak mungkin. Bagaimana bisa orang timur tengah yang memiliki bahasa arab, tidak bisa memahami istilah yang menggunakan bahasa arab? Hal ini bisa terjadi dan sangat mungkin terjadi, kita pun dapat melihat kenyataan pada masyarakat di Indonesia.

Meskipun mereka orang Indonesia dan menggunakan bahasa Indonesia, tetapi tidak semua orang Indonesia memahami seluruh perbendaharaan kata Indonesia dan tahu cara penggunaannya dengan benar. Ambil contoh kata ABSEN, ACUH, BERGEMING, SERONOK, SENONOH.[2]

Dengan kata lain, pemahaman kata ILAH, yang menjadi isi ikrar bagi seseorang untuk menjadi seorang muslim, memiliki andil dalam membangun peradaban Islam. Kekeliruan dalam memahami makna syahadat dapat mengakibatkan kemunduran dan kehancurkan umat Islam.

Pengertian Makna Syahadat Secara Umum

Sebagaimana telah diketahui bahwa kalimat syahadat ialah:

syahadat

Kalimat pertama di atas dapat dimaknai sebagai dua pemaknaan:

  1. Tidak ada Tuhan selain Allah. Dengan notasi matematika dituliskan sebagai Allah ∈ Tuhan.
  2. Tidak ada Tuhan selain Allah. Dengan notasi matematika dituliskan sebagai Allah = Tuhan.

Yang menarik, bila kita mengambil pemaknaan (1), ternyata kita temukan bahwa masyarakat jahiliyah Quraisy ternyata sudah bersyahadat. Dalil-dalilnya salah satunya terdapat pada QS. Az-Zumar: 38, QS. Yunus: 31. Lantas apakah pemaknaan seperti itu dipandang benar? Tentu tidak.

Dari dalil di atas ada beberapa hal yang perlu diperhatikan, antara lain:

  1. dapat diketahui bahwa orang-orang yang tidak beriman semuanya mengakui bahwa “tidak ada yang menciptakan langit dan bumi, yang menjadikan manusia dan rezekinya melainkan Allah.”
  2. Dari pernyataan tersebut dapat dimengerti bahwa orang-orang yang mengucapkan persaksian syahadat dengan pengertian Tidak ada Tuhan selain Allah, namun tidak mengakui Allah satu-satunya Tuhan yang berhak disembah, pada hakikatnya mereka belum bisa dikatakan sebagai muslim, akan tetapi mereka dapat dikatakan sebagai orang musyrik atau orang kafir. (lihat referensi [1] hal 126)
  3. Persaksian dengan pemaknaan seperti di atas merupakan “syahadat”-nya orang-orang jahiliyah, mereka meyakini eksistensi, ketunggalan, dan kekuasaan Allah, namun aturan-Nya ditolak secara demonstratif.

Ayat-ayat tersebut dapat dijadikan sebagai introspeksi atau pengertian syahadat kita masing-masing. Apabila pengertiannya sampai sebatas pengakuan dan persaksian tentang keberadaan Allah saja, maka sesungguhnya syahadat kita tak ubahnya dengan syahadat orang jahiliyah. Setelah mengetahui pemaknaan syahadat yang salah, kita seharusnya berusaha mencari dan memahami pengertian kalimat syahadat.

 

[1]          Iskandar Al-Warisy, dkk. Pemikiran Islam Ilmiah: Menjawab Tantangan Zaman. Surabaya. 2009.

[2]          https://albadrln.wordpress.com/2012/09/20/kata-yang-sering-dipakai-berkebalikan-180-derajat-dengan-artinya/