Witir, Habis Shalat Isya' Saja! (rev. 1)

Judul di atas menandakan kebolehan atas diadakannya shalat witir sesudah pendirian shalat Isya', berdasarkan hadist-hadist yang kuat. Jika amat dikhawatirkan pada pertengahan malam tak bisa bangun, maka shalat witir di awal waktu (sesudah Isya') adalah boleh. Hal ini perlu diperhatikan, karena shalat witir termasuk salah satu dari tiga amalan yang utama, selain puasa ayyamul baidh (tiga hari pertengahan bulan) dan shalat Dhuha. (Lihat Shahih Fiqhus Sunnah).


Demikian, untuk selanjutnya mengenai tuntunan shalat witir yang lebih mendalam dan ilmiah (berdasarkan dalil yang jelas), silakan kunjungi referensi berikut.
> Shalat Sunnah Witir
> Awal dan Akhir Waktu Shalat Malam dan Witir

Selebihnya, tips agar dapat bangun pada tengah malam untuk bershalat malam sekaligus witir, di antaranya adalah menciptakan prioritas pada diri untuk bersungguh-sungguh dan berniat untuk mendekatkan diri kepada Allah. Cobalah dan jangan ragu untuk tidur di awal waktu jika memang membutuhkannya, agar dapat bangun pada pertengahan malam. Jika pada diri Anda merasa bahwa porsi tidur minimal Anda dari tidur memejamkan mata hingga dapat bangung dengan sendirinya adalah 3 jam, misalnya, maka maksimal Anda harus tidur pada jam 12 malam agar dapat bangun pada jam 3 pagi. Pola tidur dan bangun Anda secara mandiri ini harus dapat Anda amati sendiri. Atau jika tidak sediakan alarm untuk membangungkan diri Anda.

Ingat, tetaplah menyediakan waktu istirahat yang cukup. Tidak bisa kiranya untuk menyetel alarm jam 2 pagi untuk diniatkan shalat malam, padahal kita baru tidur jam 1 pagi dalam kondisi yang amat lelah. Pertimbangkan kondisi tubuh dan ciptakan prioritas dengan menyediakan waktu istirahat yang teratur agar kita dapat bangun pada pertengahan malam.

Mudahnya untuk dapat bangun di pertengahan malam, selain pada porsi tidur yang cukup, yakni juga bergantung pada adab perilaku keseharian kita. Hindarkanlah untuk mendengarkan musik, sebagaimana lagu-lagu yang didendangkan artis-artis sekarang, karena hal tersebut adalah mengeraskan hati. Usahakanlah untuk memprioritaskan shalat fardhu di awal waktu (tepat waktu), karena usaha kita untuk senantiasa memperhatikan shalat, insya-Allah membawa dampak pada diri kita untuk senantiasa terjaga dalam ketepatan shalat selanjutnya, seperti mudahnya bangun pada saat Subuh. Giatkan pula yang ketaatan sunnah lainnya, seperti shalat sunnah rawatib, shalat Dhuha, puasa Senin Kamis (dan puasa Ayyamul Baidh) atau puasa Daud, dan lain-lain, termasuk mengamalkan doa-doa sehari-hari sesuai tuntunan Rasulullah.

أحَبَّ الصَّلاَةِ أَِلَى الله صَلاَةً دَاوُدَ عَلَيْهِ السَّلاَمَ، وَأَحَبَّ الصِّيَامِ أِلَى الله صِيَمُ دَاوُدَ، وَ كاَنَ يَنَامُ نِسْفَ اللَّيْلِ، وَ يَقُومُ ثُلَثُهُ، وَيَنَامُ سُدُوسَهُ، وَيَصُومُ يَومً وَيُفطِرُ يَومً. وَ فِي رٍوَايَةٍ: وَهُوَ أَعْدَلُ الصِّيَمِ

"Shalat yang paling dicintai Allah adalah shalatnya Daud AS, dan puasa yang paling dicintai Allah adalah puasanya Daud AS, beliau tidur setengah malam, bangun pada sepertiganya, kemudian tidur lagi seperenamnya, berpuasa sehari dan berbuka sehari." [1] Dalam riwayat disebutkan, "Itulah puasa yang paling adil." [2] (
Shahih Fikih Sunnah, jilid 2, hal 238)

Insya-Allah, tulisan ini akan dilengkapi di kesempatan berikutnya.


[1] Shahih. HR. Al Bukhari [1131] dan Muslim [1159]
[2] Shahih. HR. Al Bukhari [1976] dan Muslim [1159]

[+/-] Selengkapnya...

Tutorial URL Forwarding Tak Berbayar (Gratis)

Tutorial ini dibuat bersamaan dengan suksesnya mengarahkan domain kahfi.web.id ke blog ini.

Kasus yang ingin diselesaikan dalam tutorial ini adalah: Mengarahkan suatu domain yang sudah dibeli, misal kahfi.web.id, ke alamat yang kita kehendaki atau yang menjadi blog/situs kita sebelumnya, misal kahficom.blogspot.com.


Penyelesaian kasus adalah dengan metode "URL forwarding", yakni 'menyalurkan' atau mengarahkan domain yang sudah ada ke alamat (URL) situs yang kita miliki sebelumnya. Hanya saja yang jadi permasalahan dalam proses pembelokan ini adalah di manakah kita bisa mendapatkan layanan "URL forwarding" ini, terlebih yang dimaksudkan adalah secara gratis.

Syarat untuk dipraktekkannya tutorial ini adalah:
1. Sudah memiliki blog atau situs dengan alamat yang masih 'numpang' di hoster lain. Misal: kahficom.blogspot.com.
2. Sudah pernah membeli domain, misal kahfi.web.id, dan ingin mengarahkannya ke blog/situs yang sudah dibangun sebelumnya.

Langkah demi langkah melakukan URL forwarding:
1. Situs yang memberi layanan manajemen domain, termasuk URL forwarding adalah freedns.afraid.org.
2. Kunjungi situsnya, dan lakukan pendaftaran (sign-up), jika Anda belum memiliki akun (account) di situs tersebut. Cari tombol/link sign-up di bagian paling bawah dari halaman awal situs.



3. Setelah berhasil melakukan proses pendaftaran, akan ada konfirmasi di email Anda. Konfirmasi tersebut, termasuk di dalamnya link untuk aktifasi. Akses email Anda, buka surat dengan nama pengirim FreeDNS, lalu klik link yang disertakan untuk melakukan aktifasi.



4. Setelah akun di freedns.afraid.org teraktifasi, maka Anda bisa melakukan login seperti biasa.

//URL forwarding:
5. Untuk melakukan URL forwarding, klik menu Domains pada bagian kiri situs. Jika Anda belum login, maka Anda dikonfirmasi untuk login terlebih dahulu.



6. Setelah berhasil login, klik Add a domain.
7. Pada bagian kotak dialog Domain isikan nama domain (tanpa dituliskan www), misal: kahfi.web.id.
8. Untuk Shared State, pilih Private.
9. Selesai, klik Submit, di sebelah kiri Shared State.



10. Lakukan konfigurasi terhadap domain Anda, supaya mengisikan nameservernya sesuai dengan yang diminta oleh freedns.afraid.org, yaitu mengisikan nameserver Anda dengan:
NS1.AFRAID.ORG (67.19.72.206)
NS2.AFRAID.ORG (66.252.1.255)
NS3.AFRAID.ORG (72.20.25.134)
NS4.AFRAID.ORG (67.18.179.15)
Hal ini dapat dilakukan dengan cara menghubungi atau login ke situs tempat Anda membeli domain untuk melakukan konfigurasi nameserver seperti dijelaskan di atas.

Penjelasan lebih lanjut lihat bagian Penjelasan lebih lanjut lihat bagian Konfigurasi Nameserver untuk .ID pada tutorial ini.
11. Setelah berhasil melakukan submit, klik lagi pada left-menu yakni Domains.
12. Akan terlihat preview tabel berikut, klik Manage pada bagian di samping nama domain Anda yang sudah terdaftar.



13. Setelah mengklik Manage, klik alamat yang hendak dilakukan URL forwarding, misal kahfi.web.id.
14. Setelah keluar tampilan baru, klik URL forwarding.
15. Pada bagian Redirect to:, pastikan alamat di kotak sampingnya adalah alamat blog/situs Anda yang sudah ada, misal http://kahficom.blogspot.com. Pada Page Title:, Anda dapat mengisikan judul situs Anda, pada contoh ini adalah dikosongi. Setelah dirasa selesai, klik Save.



Jika penambahan berhasil, maka akan tampil berikut.



16. Ulangi langkah 13 hingga 15, untuk subdomain www, misal: www.kahfi.web.id, sehingga daftar subdomain yang URL forwarding menjadi berikut.



17. Sehingga pada langkah akhir tutorial ini, menghasilkan daftar pada bagian Domains adalah sebagai berikut.



18. Coba lakukan tes dengan mengetikkan alamat domain Anda pada Address Bar pada browser Anda, misal ketikkan: www.kahfi.web.id atau kahfi.web.id saja. Jika Anda melakukan langkah di atas dengan benar, maka yang ditampilkan pada browser Anda adalah blog/situs yang sudah Anda tentukan sebelumnya, misal dalam contoh kasus ini adalah http://kahficom.blogspot.com.


Konfigurasi Nameserver untuk .ID
1. Kunjungi situs PANDI (Pengelola Nama Domain Internet Indonesia), di https://register.net.id/
2. Lakukan login.



3. Setelah berhasil login, klik Domain Management, lalu klik Domain List, pada left menu.



4. Akan tampil seperti berikut. Untuk melakukan konfigurasi terhadap nama domain, klik edit, yakni ikon paling kanan pada bagian Action.



5. Akan keluar tampilan Update Domain, scroll ke bawah halaman tersebut, maka Anda akan mendapati bagian form bersubjudul Name Server Data. Isikan hostname dan net address sesuai dengan yang diminta oleh freeDNS, yakni seperti gambar berikut.



6. Sesudah itu, klik Submit untuk menyelesaikan proses update.
7. Jika sukses, maka akan keluar tampilan halaman bertuliskan "Sukses Mengupdate Domain". Jka terjadi kegagalan, cek kembali isian Anda pada bagian name server di atas.


Semoga bermanfaat.

[+/-] Selengkapnya...

Referensi: Puasa Asyura (Bulan Muharram) di Kitab Shahih Fikih Sunnah

Puasa di bulan Muharram, dan lebih ditekankan pada hari kesembilan dan kesepuluh (Asyura)

Disalin dari buku/kitab,
Judul: Shahih Fikih Sunnah (صحيح فقه السنة)
Judul asli: Shahih Fiqih As-Sunnah Wa Adillatuhu wa Taudhih Madzahib Al A’immah
Penulis asli (Fiqhus Sunnah/ Fikih Sunnah): Sayyid Sabiq
Pengomentar: Nashiruddin Al-Albani, Abdul Aziz bin Baz, Muhammad bin Shalih Al-Utsaimin
Penerjemah Indonesia: Abu Malik Kamal bin As-Sayid Salim
Cetakan, tahun terbit: Pertama, Juli 2006
Penerbit: Pustaka Azzam, Jakarta
Halaman yang dibahas: 222-224


Dianjurkan memperbanyak puasa di bulan Muharram, sesuai hadits Abu Hurairah ra bahwa Nabi saw pernah bersabda,

أَفْضَلُ الصِّيَامُ بَعْدَ رَمَضَانَ شَهْرُ اللهِ الْمُحَرَّمُ، وَأَفْضَلُ الصَّلأَةِ بَعْدَ الْفَرِ يْضَةِ صَلأَةُ اللَّيْلِ
Artinya:
“Sebaik-baik puasa setelah puasa Ramadhan adalah (puasa) di bulan Muharram (bulan Allah), dan sebaik-baik shalat setelah shalat fardhu adalah shalat malam."[1]

Anjuran puasa di bulan ini lebih ditekankan lagi pada hari kesembilan dan kesepuluh (Asyura), sesuai riwayat dari Qatadah bahwa Nabi saw bersabda,

وَصِيَامُ يَوْمِ عَاشُوْرَاءَ أَحْتََسِبُ عَلَى اللهِ أَنْ يُكفِّرَ السَّنَةَ الَّتِي قَبْلَهُ
Artinya:
“Puasa di hari Asyura, aku mengharapkan balasan dari Allah untuk mengampuni (dosa) selama setahun sebelumnya.”[2]

Ibnu Abbas pernah ditanya mengenai puasa Asyura’ (hari kesepuluh di bulan Muharram)? Dia menjawab, “Aku tidak pernah mengetahui Rasulullah saw berpuasa satu hari dan memohon keutamaannya melebihi keutamaan hari-hari lainnya selain hari ini (Asyura), dan (puasa) satu bulan ini. Yang dimaksud adalah Ramadhan.”[3]

Juga dianjurkan untuk berpuasa pada hari sebelum hari Asyura tersebut, yakni hari kesembilan di bulan Muharram, sesuai hadits Ibnu Abbas, dia berkata, “Tatkala Rasulullah saw berpuasa Asyura, dan beliau sangat menganjurkannya, para sahabat berkata, “Wahai Rasulullah, itu adalah hari yang dibesar-besarkan oleh orang-orang Yahudi dan Nashrani.” Maka Rasulullah saw bersabda,

فَأِنْ كَانَ الْعَامُ الْمُقْبِلُ – أِن ْشَاءَ اللهُ – صُمْنَا الْيَوْمَ التَّا سِعَ
Artinya:
“Kalau saja tahun depan (aku masih berada di tengah-tengah kalian) –insya Allah- maka kita akan berpuasa pada hari kesembilan.”

Ibnu Abbas berkata, “(Namun) sebelum datang tahun berikutnya, Rasulullah saw telah wafat terlebih dahulu.””[4]

Sebagian ulama menganjurkan untuk berpuasa pada hari kesembilan dan kesepuluh di bulan Muharram (menggabung), sehingga tidak menyerupai orang-orang Yahudi yang hanya melakukannya pada hari kesepuluh.[5] Ini adalah pendapat Malik, Syafi’i, dan Ahmad.

Catatan:
Sebagian ulama juga menganjurkan puasa pada hari kesebelas, sebagai kelanjutan dari hari kesembilan dan kesepuluh berlandaskan riwayat dari Ibnu Abbas bahwa Nabi saw pernah bersabda,

صُو مُوا يَوْمَ عَاشُورَاءَ وَخَالِفُوا الْيَهُودَ، صُو مُوا قَبْلَهُ يَوْمًا وَ بَعْدَهُ يَومًا
Artinya:
“Berpuasalah kalian pada hari Asyura dan bedakanlah diri kalian dari orang-orang yahudi, berpuasalah satu hari sebelumnya dan satu hari setelahnya.”[6]

Akan tetapi hadits ini sangat lemah dan tidak ada sama sekali dalil yang menyatakan sunah berpuasa pada hari kesebelas. Maka hendaknya semua memperhatikannya. Wallahu a’lam.

Referensi:
[1] Shahih. HR. Muslim (1163), An-Nasa’i di dalam Al-Kubra (2905), dan Ibnu Majah (1742).
[2] Shahih. HR. Muslim (1162).
[3] Shahih. HR. Al-Bukhari (2006), Muslim (1132).
[4] Shahih. HR. Muslim (1134).
[5] Syarh Az-Zarqawi (2/237) dan Al-Majmu’ (6/383).
[6] Dha’if jiddan (sangat lemah). HR. Ahmad (2418), Al-Humaidi (485), Ibnu Khuzaimah (2095), dan yang lainnya.

[+/-] Selengkapnya...

Diari: Mahalnya Tarif Faximile via Wartel

Artikel yang dalam kategori Diari adalah artikel bebas dan merupakan dokumentasi dari kejadian sehari-hari. Tidak ada sesuatu yang sangat ilmiah dalam posting ini, semuanya adalah nyata dan merupakan sebuah pengalaman. Supaya sebuah pengalaman menjadi berharga bukan saja untuk penulisnya. Semoga bermanfaat.

INTINYA:
Silakan Anda baca bagian inti ini saja, jika terburu-buru, sembari terbata-bata, dan akibatnya malah tertimpuk batu (?). Selebihnya ulasan dapat Anda lompati.

Cerita bermula dari keinginan untuk melakukan fax ke suatu alamat perkantoran di Jakarta. Dokumen yang hendak di-fax adalah 3 lembar. Dengan posisi yang berada di (dari) Sidoarjo (kode telepon: 031, ikut kode telepon regional Surabaya) dan tujuan telepon seperti yang telah disebutkan adalah (tujuan) Jakarta Pusat (kode telepon: 021), dengan tarif yang ditentukan oleh sang operator wartel adalah Rp. 6.000/lbr (enam ribu rupiah/lembar fax-nya) , walhasil kocek yang harus dikeluarkan adalah Rp. 18.000 untuk tiga lembarnya. Hmmm... tarif yang sangat mahal.

Niat semula adalah untuk pergi ke masjid untuk menunaikan sholat Ashar, dengan terlintas berpikir untuk nge-fax sepulang dari masjid, persiapan membawa uang pun cuma sekedarnya. Alhamdulillah, dari uang yang cuma sekedarnya itulah, semuanya dapat tercukupi, tanpa perlu balik ke rumah atau tinggal KTP (sepertinya hal ini tidak mungkin, karena pada saat itu saya tidak membawa KTP ;-)).

ULASAN:
Tapi bisa saja jika dibandingkan dengan sarana lainnya, ongkos tersebut bisa relatif murah, misal dibandingkan dengan pengiriman jasa titip kilat dokumen, semacam Tiki yang harus menunggu kiriman sampai tempat di esok harinya meski dengan harga yang lebih terjangkau daripada fax yang berlembar-lembar. Ini kalau dari sudut pandang cost-effective. Bagaimana dengan via email?

Tentunya menjadi sangat efektif jika via email. Ongkosnya sangat murah, dan bahkan bisa paling murah, karena teknisnya untuk akses Internet sendiri bisa memilih untuk minimalisasi biayanya lewat warnet. Dengan dokumen-dokumen yang telah di-scan, dan tinggal buka email account kita, lalu klik attach (atau 'lampirkan', pada penyedia email dengan antarmuka bahasa Indonesia). Tapi ingat, imel (email) juga ada kelemahannya, yaitu sisi ketidaknyamanan sang penerima kiriman, di mana dia harus mengecek imel terlebih dahulu, lalu men-download attachment-nya. Hal ini cukup menjadi masalah, karena akses Internet yang tidak semuanya broadband. Meng-upload attachment (bagi sang pengirim) jadi masalah, download-nya pun dari sisi pengirim juga jadi masalah (bagi sebagian pihak yang koneksi Internetnya ber-bandwidth rendah tentunya). Dengan demikian efisiensi dan efektivitas imel menjadi ditangguhkan untuk sementara, setidaknya hingga koneksi Internet Indonesia menjadi baik dan terjangkau (tidak perlu yang sangat cepat dan murah). Metode imel terkesan lebih ribet daripada sekedar menerima fax dan menyobek kertas feed-nya.

Harus tetap diakui plus-minus dari masing-masing media pengiriman. Silakan Anda pilih.

Pengalaman ini akan jadi bagian dari pengalaman Anda.

[+/-] Selengkapnya...

Low-step Study to VB.NET (1)

Oleh: Fadlil Hakim As-saikariny

Subjudul: Mengulas tentang "Program VB.net Anda yang pertama" oleh Indoprog
Spesifikasi pembaca: Newbie
Catatan: Bukan yang sangat newbie, yang belum tahu sama sekali tentang pemrograman, silakan tunggu jilid ke-0 (belum ditulis), yang rencananya membahas tentang konsepnya dan .NET family introduction.

Dalam artikel ini sama sekali tidak membahas tentang bagaimana cara pembelajaran yang eksklusif dan intensif tentang Visual Basic 2005, atau yang dikeluarkan dengan nama pasaran Visual Basic .NET. Setidaknya anggap saja belajar bersama, bukan semata-mata kami bisa mendidik Anda menjadi profesional muda yang aktif&kreatif... Lebih baik kirim saja uang Anda ke kami... ;-)

Ini adalah jilid pertama, semoga dapat kontinu hingga jilid ke-sekian ratus SEN. Terima kasih.

Low-step study, menurut hemat kami berarti belajar dengan santai. Terserah gue...



Maaf, kami belum bisa menyajikan bagaimana cara untuk memahami pemrograman VB.NET itu sendiri. Hal ini karena keterbatasan waktu. Semoga saja bisa dikeluarkan jilid berjudul "Low-step Study to VB.NET (0)" (the zero chapter), dengan subjudul tentang pembahasan konsep pemrograman dan introduksi kepada .NET. Semoga saja, Amiin.

Kita masuk ke intinya.

Pembelajaran ini didasarkan pada beberapa literatur yang ada di dunia fana ini. Kali ini, dasarnya akan mengulas dari yang ada di situs Indoprog. Dari ke sekian tutorial Indoprog, tentunya yang akan dibahasa adalah tutorial yang berbau .NET (ya.. iyalah!!!) [1].

Berdasarkan referensi di atas, sederhananya Anda harus melakukan langkah berikut.
1. Jalankan Visual Studio 2005, ingat saya berkata tentang yang serba 2005, bukan Visual Studio 6 atau Visual Basic 6. Maaf saja...

2. Jika Visual Studio 2005 sudah terbuka, pilih menu New Projects pada toolbar, atau melalui menu File -> New Project...

3. Setelah keluar window "New Project", tentunya karena kita belajar tentang VB.NET, maka kita memilih "Visual Basic" untuk "Project Types" (sebelah kiri window).

4. Tetap pada window "New Project", pilih "Console Application" untuk "Template" (sebelah kanan window). Lakukan klik dua kali pada "Console Application" atau klik sekali untuk memilih, lalu tekan OK. Anda dapat memberi nama Project pada bagian textbox "Name".

5. Setelah tombol OK pada window "New Project" ditekan, maka akan muncul tampilan berikut.



6. Dengan tetap mengutip secara murni dari referensi, adalah berikut kode program yang harus Anda salin. Tentunya Anda tidak perlu mengulangi tulisan "Module Module1", "Sub Main()", "End Sub", dan "End Module" yang sebetulnya sudah tersedia di depan layar komputer Anda sekarang ini.

Module Module1
Sub Main()
'Deklarasi variabel
Dim Panjang, Lebar As Integer
Dim Luas As Long
Console.WriteLine("Menghitung luas persegi panjang")
Console.Write("Panjang :")
Panjang = Console.ReadLine()
Console.Write("Lebar :")
Lebar = Console.ReadLine()
Luas = Panjang * Lebar
Console.WriteLine("Luas persegi panjang : " & Luas.ToString)
Console.ReadLine()
End Sub
End Module


7. Setelah itu, lakukan running program, apa yang terjadi? Running program dapat dengan cara menekan tombol 'play' berlabel "Start Debugging" pada toolbar, atau melalui menu Debug -> Start Debugging, atau cukup dengan menekan tombol fungsi keyboard F5.
Hore... saya berhasil! Apakah ada penjelasan dari Kahfi?
Untuk sementara tidak, baca saja penjelasan kami di bagian selanjutnya.

8. Berikut adalah program pencari akar persamaan kuadrat dari Indoprog, ketik ulang kode program berikut. Dan amati penjelasan singkatnya.

Module Module1
Sub Main()
'Deklarasi variabel
Dim Panjang, Lebar As Integer
Dim Luas As Long
Console.WriteLine("Menghitung luas persegi panjang")
Console.Write("Panjang :")
Panjang = Console.ReadLine()
Console.Write("Lebar :")
Lebar = Console.ReadLine()
Luas = Panjang * Lebar
Console.WriteLine("Luas persegi panjang : " & Luas.ToString)
Console.ReadLine()
End Sub
End Module


Saya tidak ingin jadi script-kiddie... Tolong jelaskan apa maksud kode program di atas?!
Oke, maaf juga harus saya katakan kembali bahwa artikel ini tidak bisa untuk yang sangat newbie, doakan untuk dapat dikeluarkan "the zero chapter" dari Low-step Study ini.

Mari kita kritisi!
Pada baris pertama, setelah itu terdapat garis. Mengapa?
Mohon Anda mengerti bahwa baris pertama 'hanyalah' deklarasi global semata. Lihat pada bagian Class Name yang terisi (General) dan Method Name yang terisi (Declarations), yang berarti deklarasi untuk program yang Anda jalankan sementara ini. Sementara itu baris kedua dan seterunsya adalah sudah masuk ke badan program, atau lebih tepatnya sudah masuk ke module. Hal ini tidak signifikan bagi Anda untuk harus mengerti.

Baris pertama tertulis, "Imports System.Math", apa maksudnya? Hal tersebut mengada-ada, dan tidak ada di contoh program Indoprog sebelumnya.
Anda kritis sekali, baiklah, coba Anda hilangkan baris tersebut dan kami janji semua akan baik-baik saja. Sudah Anda hilangkan? Coba jalankan, dengan menekan tombol 'play' berlabel "Start Debugging"...
Kahfi bohong?! Katanya akan baik-baik saja. Kenapa menjadi tidak bisa dijalankan, malah pada jendela "Error List" (bagian bawah window) terdapat 2 error tentang Sqrt? Kata VS 2005, kalau, "Name 'Sqrt' is not declared."
Ya... Anda benar. Sqrt tidak dikenali begitu saja seperti WriteLine dan ReadLine.
Lalu...?
Perintah Sqrt baru dikenali pada saat Anda menyertakan librari/header System.Math. Di dalam System.Math inilah Sqrt didefinisikan fungsinya. Perintah 'Imports' pada VB ini adalah seperti penggunaan 'include' pada bahasa C. (Bahasa C?? Apa itu? Oke lupakan saja, kita bahas dulu ttg VB, anakku!)
Saya menagih janji Kahfi tentang bagaimana program menjadi baik-baik saja tanpa tanpa Imports!
Tentu saja hal tersebut dapat dilakukan. Modifikasi saja setiap perintah 'Sqrt' yang kali ini sudah ditandai garis bawah cacing merah, yang dianggap error dan tidak dikenali tersebut dengan nama 'Math.Sqrt'. Lalu apa beda? Sama saja. Pada setiap pemanggilan perintah Sqrt, terlebih dahulu VS akan melongok pada librari Math yang jadi induknya.

Detilnya, potongan modifikasi source di atas akan sebelum modifikasi:

x1 = (-b + Sqrt(D)) / 2 * a
x2 = (-b - Sqrt(D)) / 2 * a


Sesudah modifikasi menjadi:

x1 = (-b + Math.Sqrt(D)) / 2 * a
x2 = (-b - Math.Sqrt(D)) / 2 * a


Sekarang jalankan seperti biasa. Maka semuanya akan baik-baik saja.
Lalu, apa guna Kahfi menjelaskan hal tidak penting ini?
Ya... itu terserah apa komentar Anda. EGP... emang gue pikirin...

Hasil dari sedikit modifikasi program yang sama sekali tidak bisa dibanggakan ini adalah berikut.

Berikutnya apa itu Dim?
Baiklah, dijawab saja sekarang (maunya kapan?). Dim adalah instruksi dalam Visual Basic untuk mendeklarasikan variabel-variabel yang digunakan pada suatu program. Sederhananya seperti itu. Jika ada pertanyaan tentang apa maksud integer, long, dan double? Kami tidak bisa menjawab hal tersebuh sekarang, itu konsep.

Lalu apa lagi berikutnya?
Anda menjumpai perintah Console.WriteLine, yang berarti menulis ke konsol dengan metode satu baris penulisan; penulisan baru (Write atau WriteLine) sesudahnya akan ditulis di bawah baris perintah WriteLine ini. Console.Write, seperti penjelasan di atas, tetapi tidak penulisan karakter di antara kutip ("") tidak dilakukan dengan memblokir satu baris, melainkan jika terdapat penulisan baru (Write dan WriteLine) sesudahnya, makakan ditulis tepat di samping teks yang ada. Console.ReadLine berarti membaca input dan 'menyimpannya' jika dikehendaki. Maka jika instruksi seperti berikut a = Console.ReadLine(), maka akan membaca input untuk konsol lalu menyimpannya ke variabel 'a', di mana 'a' adalah variabel terdeklarasikan melalui Dim. Bagaimana jika redaksi penggunaannya adalah Console.ReadLine() saja, maka perintah ini digunakan untuk menunggu satu karakter input untuk konsol, setelah menerima input, karena tidak ada instruksi penyimpanan, maka akan berlanjut ke perintah berikutnya. Semoga hal ini dapat dijabarkan pada "the zero chapter".

Berikutnya pasti algoritma program untuk mencari diskriminan dan kemudian akar-akarnya?!!
Iya, Anda benar. Untuk itu, saya tidak perlu menjelaskannya lagi. Ini berkaitan dengan algoritma (alur logika) seseorang memecahkan masalah. Algoritma terimplementasi dapat melalui diagram alir (flowchart) maupun kode programnya (source code) sekaligus. Jika masih ada yang bingung dengan cara memprogram, maka Anda tidak akan menemukan jawabannya di sini.

Oke, saya sudah mengerti dan anggap saya mengerti. Masalahnya pada running program melalui "Start Debugging", masalahnya setelah program usai mencari dan menampilkan akar-akarnya, kenapa program konsol yang di-running langsung menutup?
Sebenarnya jika dijalankan secara normal melalui DOS prompt, maka tampilan tentang programmulai dari awal hingga bagian menampilkan hasil pencarian akar x1 dan x2 tidak akan hilang begitu saja, seperti kita mengetikkan perintah 'cls' (clear screen). Hanya saja karena sekarang program dilarikan di atas Windows (bukan console murni, seperti DOS prompt atau di Windows XP disebut Command line [cmd]), maka setelah console melarikan (running) program, begitu program usai dijalankan, maka console pun langsung otomatis ditutup. Dan hal ini tidak menjadi masalah sama sekali pada saat program di-running di atas console seperti DOS/Command line.

Solusinya agar tidak langsung menutup pada saat kita mulai mengetes program melalui "Start Debugging", maka dapat dengan cara memberikan perintah/instruksi seperti yang telah saya jelaskan pada dua paragraf sebelumnya di atas, yakni dengan menggunakan Console.Readline() di bagian akhir program. Lihat lebih lanjutnya di bawah ini.

Module Module1
Sub Main()
Dim a, b, c As Integer
Dim D As Long
Dim x1, x2 As Double
Console.WriteLine("Kahfi Community")
Console.WriteLine("Low-step Study to VB.NET (1)")
Console.WriteLine("Program penghitung akar persamaan berdasarkan referensi
Indoprog")
Console.WriteLine("Menghitung persamaan kuadrat aX2 + bX + c")
Console.Write("Nilai a :")
a = Console.ReadLine()
Console.Write("Nilai b :")
b = Console.ReadLine()
Console.Write("Nilai c :")
c = Console.ReadLine()
'Menghitung diskriminan
D = b ^ 2 - 4 * a * c
If D > 0 Then
x1 = (-b + Math.Sqrt(D)) / 2 * a
x2 = (-b - Math.Sqrt(D)) / 2 * a
Console.WriteLine("x1 " & x1.ToString)
Console.WriteLine("x2 " & x2.ToString)
Else
Console.WriteLine("Akar imaginier !")
End If
Console.ReadLine()
End Sub
End Module


Perhatikan peletakan Console.Readline() pada bagian akhir program. Gantian saya bertanya...
Apakah pada saat disajikan beberapa baris kode di sini, lalu Anda mengambilnya begitu saja dengan cara mengkopinya lalu mem-paste di Visual Studio Anda?

Menurut kami, buat para newbie yang sangat newbie, sebaiknya Anda mulai mengetik ulangnya saja ke Visual Studio 2005 dengan tetap berpaduan pada artikel ini. Ini semata-mata untuk mengoptimasi kemampuan ketik Anda dan kebiasaan Anda terhadap kode-kode/ perintah-perintah yang ada di Visual Basic 2005. Hal kopas (copy-paste) tidak akan jadi masalah jika Anda seorang yang sudah sedikit saja berpengalaman, silakan kopas langsung untuk hemat waktu dan tenaga.

Berikut adalah hasil karya ketik ulang kami, karena kami sekarang ini lagi gak mood untuk kopas, lagi pula kita sama-sama belajar kan? Saya menganjurkan Anda untuk mengetik ulang agar familiar dengan instruksi-instruksi, maka kami juga mengetiknya ulang sebagaimana yang akan Anda lakukan (setidaknya untuk sementara ini kami ingin meberikan contoh yang baik kepada Anda ;-))

Imports System.Math
Module Module1
Sub Main()
Dim a, b, c As Integer
Dim D As Long
Dim x1, x2 As Double
Console.WriteLine("Kahfi Community")
Console.WriteLine("Low-step Study to VB.NET (1)")
Console.WriteLine("Program penghitung akar persamaan berdasarkan referensi

Indoprog")
Console.WriteLine("Menghitung persamaan kuadrat aX2 + bX + c")
Console.Write("Nilai a: ")
a = Console.ReadLine()
Console.Write("Nilai b: ")
b = Console.ReadLine()
Console.Write("Nilai c: ")
c = Console.ReadLine()

'Diskriminan=
D = b ^ 2 - 4 * a * c
If D > 0 Then
x1 = (-b + Math.Sqrt(D)) / 2 + a
x2 = (-b - Math.Sqrt(D)) / 2 + a
Console.WriteLine("x1 " & x1.ToString)
Console.WriteLine("x2 " & x2.ToString)
Else
Console.WriteLine("Akar adalah imajiner")
End If
Console.ReadLine()
End Sub
End Module

Memang tidak ada bedanya dengan program aslinya. Sekali lagi, tujuannya bukan untuk belajar memprogram ataupun mengoptimasi program, tapi 'hanya' untuk memfamiliarkan kita dengan instruksi pada VB, setidaknya familiar dengan keyboard dulu aja lah...

Akhir kata, semoga artikel ini dapat bermanfaat, Amiin. Tunggu jilid berikutnya!


Referensi:
[1] Indoprog. "Program VB.Net Anda yang pertama".
http://www.geocities.com/indoprog/tutorial/vb/net/Modul1/

[+/-] Selengkapnya...