Misteri Windows (Diangkat dari Kisah Nyata Sang Penulis)

pada saat saya menulis ini saya tidak mengunakan sistem operasi WINDOS lagi tapi saya sudah menjadi bahagian dari open source community tepat nya ubuntu community, saya memilih ber imigrasi karena saya sudah sadar dan bertobat mengunakan software ilegal bukan karena saya membenci sistem operasi Windows, tulisan ini adalah cerita nyata tanpa ada rekayasa sedikitpun dan ini adalah pengalaman saya sendiri selama saya  mempraktekan serta memanfaatkan sistem operasi Windows. Baik lah kita mulai kisah ini.

Bermula pada saat saya masih di bangku kuliah semester 2 dimana saya mendapatkan file 3gp (maklumlah kawan insting laki-laki) yang lumayan banyak dari teman seperjuangan saya dalam dunia perlendiran kalau tidak salah saya mendapatkan 2 buah keping DVD yang berisi file-file tersebut, dan coba kita bayangkan sebanyak 8 giga yang harus saya sembunyikan dalam komputer saya (sebagai catatan komputer saya dipakai rame-rame oleh para penghuni rumah) untung nya saya mendapatkan ilmu baru dari teman seperjuangan saya hiden foder (bukan ini misteri nya, kayak nya ini ilmu yang usang tapi pada jaman nya ilmu ini, ilmu yang paling ampuh) oke, singkat cerita saya mencoba membuat sebuah folder untuk menyimpan barbut (barang bukti) dalam folder tersebut, oke semua telah selesai tersimpan pada folder yang bernama “new folder” pikir punya pikir nama nya sangat mengoda orang yang melihat nya nah ini lah misteri pertama yang mau saya cerita kan pada anda-anda semua, baik lah dalam hati saya mau mengubah nama folder tersebut, saya memiliki beberapa opsi, nama-nama nya adalah sebagai berikut “kumpulan tugas”,”Jangan di Buka”,”HATI-HATI ADA VIRUS”,”BAHAYA”,”Isi nya Biasa aja”, adoh… persaan kok nama-nama nya sangat mengoda ya, nah dalam keputusasaan munculah ide bagai mana kalau nama nya agak berbau-bau nama bawaan di windows, nah munculah sebuah nama CONFIG pikir punya pikir CONFIG kayak nya kepanjangan okeh lah kalau begitu pakai 3 huruf nya saja CON,singkat cerita folder itu tak berinama CON nah pada saat ini lah munculah sebuah misteri dimana folder yang telah saya ubah nama nya menjadi CON berubah lagi menjadi nama “new Folder” nah loh kok bisa??? dalam persaan tak menentu saya coba kembali mengubah nama folder tersebut menjadi “CON” kejadin serupa tadi kembali terulang nama nya menjadi nama sebelum nya “New Folder” , pikir punya pikir itu mungkin masalah di drive C makanya saya mencoba membuat nya di drive D, alamak jank hasil nya sama juga ngak bisa mengubah nama folder tersebut menjadi “CON”, dengan semangat 45 besok nya saya mencoba membuat di komputer teman saya toh hasil nya sama juga ngak bisa membuat folder bernama “CON”. Ini lah MISTERI WINDOWS yang pertama.

Bagai mana apakah kawan-kawan sekalian telah mencoba misteri windows yang pertama!. Baiklah Saya akan menceritakan misteri yang kedua, pada suatu hari saya menonton berita di sebuah satsion swasta yang kusus menyiarkan berita saat itu seluruh dunia lagi sibuk dengan agresi meliter amerika di iraq, loh kok bicara invasi iraq? ya misteri ini berhubungan dengan itu semua! singkat cerita ada keinginan saya untuk menulis sebuah resume berita jadi saya ambil laptop dan kemudian membuka notepad nah saya mencoba menulis dengan bahasa ingris yap gini lumayan loh nilai bahasa ingris saya! hehehe… oke saya mulai mendengar dengan khidmat berita yang disampaikan oleh pembawa berita nah kemudian saya mencoba menulis kembali kata-kata yang disampaikan nya, nah disini lah misteri kedua itu muncul saya mencoba mengingat-ingat apa yang telah saya dengar, oke saya dapat “presiden bush menyimpan rahasia penyerangan amerika ke iraq” okeh saya coba ubah menjadi tulisan bahasa ingris “Bush hid the facts” nah loh kok singkat amir… maklum lah kawan walapun kata nya pinter bahasa ingris tetap juga butuh kamus jadi nya saya mencoba save kata tersebut sembari mengambil kamus, emang nasib lagi sial kamus ngak ada di kamar ya.. terpaksa harus ke tetanga untuk meminjam pas udah dikasih pinjam eh malah diajakin ngobrol ngawur ngidul lupa kalau laptop ngak di cas jadi pas udah balik ke rumah eh laptop udah padam, oke kalau begitu saya cas dan hidupkan kembali laptop tersebut kemudian membuka file notepad yang untung nya udah si save dari tadi pyuh.. sukur ngak sial-sial banget nah pemikiran saya meleset setelah saya buka file tersebut muncullah kata-kata yang aneh di file tersebut diamana seingat saya kata nya seharus nya “Bush hid the facts” menjadi tulisan yang aneh-aneh, apa mungkin ada yang mengubah kata yang saya tuliskan? tapi ngak ada orang lain selain saya pada saat itu dirumah bulu kuduk saya merinding apa ada setan yang ngubah kata yang tadi? tapi buat apa setan ngubah-ngubah alamak… kok bisa ya, oke saya mencoba berfikiran positif saja dan mencoba membuat file baru dengan isi nya yang sama kemudian saya save dan buka kembali ASTAGA rupanya kata-kata “Bush hid the facts” betul-betul berubah menjadi karakter yang aneh! ini lah MISTERI WINDOWS yang kedua, sebenarnya masih banyak lagi misteri yang belum saya ceritakan ada misteri ketiga , keempat, dan misteri yang kelima tapi dalam kesempatan ini saya hanya menyampaikan yang pertamax dan yang keduax nya saja! lain kesempatan saya akan menulis lanjutan nya dan pemecahan misteri-misteri

oke tetap bersama saya di MISTERI WINDOWS

Surat Cinta

Kutulis surat ini
kala hujan gerimis
bagai bunyi tambur yang gaib,
Dan angin mendesah
mengeluh dan mendesah,
Wahai, dik,
aku cinta kepadamu !

Kutulis surat ini
kala langit menangis
dan dua ekor belibis
bercintaan dalam kolam
bagai dua anak nakal
jenaka dan manis
mengibaskan ekor
serta menggetarkan bulu-bulunya,
Wahai, dik ,
kupinang kau menjadi istriku !

Kaki-kaki hujan yang runcing
menyentuhkan ujungnya di bumi,
Kaki-kaki cinta yang tegas
bagai logam berat gemerlapan
menempuh ke muka
dan tak kan kunjung diundurkan

Selusin malaikat
telah turun
di kala hujan gerimis
Di muka kaca jendela
mereka berkaca dan mencuci rambutnya
untuk ke pesta
Wahai, dik
dengan pakaian pengantin yang anggun
bunga-bunga serta keris keramat
aku ingin membimbingmu ke altar
untuk dikawinkan
Aku melamarmu,
Kau tahu dari dulu:
tiada lebih buruk
dan tiada lebih baik
dari yang lain…
penyair dari kehidupan sehari-hari,
orang yang bermula dari kata
kata yang bermula dari
kehidupan, pikir dan rasa

Semangat kehidupan yang kuat
bagai berjuta-juta jarum alit
menusuki kulit langit:
kantong rejeki dan restu wingit
Lalu tumpahlah gerimis
Angin dan cinta
mendesah dalam gerimis.
Semangat cintaku yang kuta
batgai seribu tangan gaib
menyebarkan seribu jaring
menyergap hatimu
yang selalu tersenyum padaku

Engkau adalah putri duyung
tawananku
Putri duyung dengan
suara merdu lembut
bagai angin laut,
mendesahlah bagiku !
Angin mendesah
selalu mendesah
dengan ratapnya yang merdu.
Engkau adalah putri duyung
tergolek lemas
mengejap-ngejapkan matanya yang indah
dalam jaringku
Wahai, putri duyung,
aku menjaringmu
aku melamarmu

Kutulis surat ini
kala hujan gerimis
kerna langit
gadis manja dan manis
menangis minta mainan.
Dua anak lelaki nakal
bersenda gurau dalam selokan
dan langit iri melihatnya
Wahai, Dik
kuingin dikau
menjadi ibu anak-anakku !

Perempuan Yang Tergusur (Tribute For Sang Merak)

Hujan lebat turun di hulu subuh
disertai angin gemuruh
yang menerbangkan mimpi
yang lalu tersangkut di ranting pohon

Aku terjaga dan termangu
menatap rak buku-buku
mendengar hujan menghajar dinding
rumah kayuku.
Tiba-tiba pikiran mengganti mimpi
dan lalu terbayanglah wajahmu,
wahai perempupan yang tergusur!

Tanpa pilihan
ibumu mati ketika kamu bayi
dan kamu tak pernah tahu siapa ayahmu.
Kamu diasuh nenekmu yang miskin di desa.
Umur enam belas kamu dibawa ke kota
oleh sopir taxi yang mengawinimu.
Karena suka berjudi
ia menambah penghasilan sebagai germo.

Ia paksa kamu jadi primadona pelacurnya.
Bila kamu ragu dan murung,
lalu kurang setoran kamu berikan,
ia memukul kamu babak belur.
Tapi kemudian ia mati ditembak tentara
ketika ikut demontrasi politik
sebagai demonstran bayaran.

Sebagai janda yang pelacur
kamu tinggal di gubuk tepi kali
dibatas kota
Gubernur dan para anggota DPRD
menggolongkanmu sebagai tikus got
yang mengganggu peradaban.
Di dalam hukum positif tempatmu tidak ada.
Jadi kamu digusur.

Didalam hujuan lebat pagi ini
apakah kamu lagi berjalan tanpa tujuan
sambhil memeluk kantong plastik
yang berisi sisa hartamu?
Ataukah berteduh di bawah jembatan?

Impian dan usaha
bagai tata rias yang luntur oleh hujan
mengotori wajahmu.
kamu tidak merdeka.
Kamu adalah korban tenung keadaan.
Keadilan terletak diseberang highway yang bebahaya
yang tak mungkin kamu seberangi.

Aku tak tahu cara seketika untuk membelamu.
Tetapi aku memihak kepadamu.
Dengan sajak ini bolehkan aku menyusut keringat dingin
di jidatmu?

O,cendawan peradaban!
O, teka-teki keadilan!

Waktu berjalan satu arah saja.
Tetapi ia bukan garis lurus.
Ia penuh kelokan yang mengejutkan,
gunung dan jurang yang mengecilkan hati,
Setiap kali kamu lewati kelokan yang berbahaya
puncak penderitaan yang menyakitkan hati,
atau tiba di dasar jurang yang berlimbah lelah,
selalu kamu dapati kedudukan yang tak berubah,
ialah kedudukan kaum terhina.

Tapi aku kagum pada daya tahanmu,
pada caramu menikmati setiap kesempatan,
pada kemampuanmu berdamai dengan dunia,
pada kemampuanmu berdamai dengan diri sendiri,
dan caramu merawat selimut dengan hati-hati.

Ternyata di gurun pasir kehidupan yang penuh bencana
semak yang berduri bisa juga berbunga.
Menyaksikan kamu tertawa
karena melihat ada kelucuan di dalam ironi,
diam-diam aku memuja kamu di hati ini.

Cipayung Jaya
3 Desember 2003
Rendra

Renungan Indah

Seringkali aku berkata,
Ketika semua orang memuji milikku
Bahwa sesungguhnya ini
hanyalah titipan

Bahwa mobilku hanyalah titipan-Nya
Bahwa rumahku hanyalah titipan-Nya
Bahwa hartaku hanyalah titipan-Nya
Bahwa putraku hanyalah titipan-Nya
Tetapi, mengapa aku tak pernah bertanya : mengapa Dia menitipkan padaku ???
Untuk apa Dia menitipkan ini padaku ???
Dan kalau bukan milikku, apa yang harus kulakukan untuk milik-Nya itu ???
Adakah aku memiliki hak atas sesuatu yang bukan milikku ?
Mengapa hatiku justru terasa berat, ketika titipan itu diminta kembali oleh-Nya ?

Ketika diminta kembali, kusebut itu sebagai musibah
Kusebut itu sebagai ujian, kusebut itu sebagai petaka
Kusebut itu sebagai panggilan apa saja untuk melukiskan kalau itu adalah derita
Ketika aku berdoa, kuminta titipan yang cocok dengan hawa nafsuku
Aku ingin lebih banyak harta, ingin lebih banyak mobil,
lebih banyak popularitas, dan
kutolak sakit, kutolak kemiskinan, seolah semua
“derita” adalah hukum bagiku
Seolah keadilan dan kasih-Nya harus berjalan seperti matematika :
aku rajin beribadah, maka selayaknyalah derita menjauh
dariku, dan nikmat dunia kerap menghampiriku.
Kuperlakukan Dia seolah mitra dagang, dan bukan kekasih
Kuminta Dia membalas “perlakuan baikku”, dan menolak keputusan-Nya yang tak sesuai keinginanku
Gusti, padahal tiap hari kuucapkan, hidup dan matiku hanya untuk beribadah.
“Ketika langit dan bumi bersatu, bencana dan keberuntungan sama saja”…..

WS Rendra

(Sang Burung Merak)

Pemananfaatan TI untuk Pilkada yang Lebih Baik (Untuk Mengenang Masa Lalu)

“Untuk Mengenang Masa Lalu”

Mungkin Kita masih ingat kejadian pemilu presiden pada tahun 2004 dimana ada seseorang yang dengan sengaja masuk kedalam data base KPU Indonesia dan merubah hasil pemilihan sementara , dan masih segar di ingatan kita pada pemilihan presiden tahun 2002 di Amerika dimana mereka mengunakan teknologi “one man one vote” dengan keamanan jari sidik dimana seseorang hanya bisa memilih satu kali dan hasil pilihan akan disimpan dalam sebuah memori card yang telah di enskrip dengan algoritma DEMONS salut dan bangga kepada Einstain-Einstain muda , tapi masih ada juga celah seseorang untuk merubah nya dimana pada saat seseorang memilih, suara nya akan di pindahkan ke lawan nya dan membuat pemegang suara yang benar akan menjadi minus.

Banyak metode untuk mengamankan sebuah data,dan banyak algoritma yang dapat kita gunakan untuk mengenkrip data,seperti hal nya algoritma RC4 yang di implementasikan di teknologi wireless,dimana IV akan membuat chipertext dengan angka unik sampai tujuh belas juta bentuk itu merupakan angka yang banyak kalau di lihat secara sepintas tapi angka sebanyak itu akan di pecahkan dalam waktu kurang dari sepuluh menit jika jaringan yang kita gunakan padat trafik.Kalau membahas cryptograp (tapi saya tidak membahas lebih jauh karena terbatasan ilmu dan waktu saya)  saya teringat saat saya duduk di bangku SMP dimana kawan-kawan saya berbicara dengan bahasa planet yang aneh dan membingungkan kalau tidak salah mereka menyebut nya dengan bahasa gaul (ember) tapi pelan-pelan saya mulai mengerti apa yang mereka bicarakan (seru juga),dan tidak lupa pada Julius caesar sebagai pencetus cryptograp dimana beliau mengunakan algoritma geser satu, sebagai contoh untuk menuliskan kata TAHAN SERANGAN akan berubah menjadi UBIBO TFSBOHBO,kata yang telah diacak disebut dengan chipertext (kata sampah)  dan jika saja kurir pembawa pesan ini akan membelot atau tertangkap lawan maka informasi tetap aman karena lawan tidak akan mengerti apa tujuan informasi tersebut,serta kita bisa membuat algoritma-algoritma sederhana yang lain seperti geser 2,geser 3 dan lainnya

Tahun 2008 Sumatera Utara akan melaksanakan pemilihan kepala daerah (Gubernur), bagaimana kesiapan KPU untuk mengamankan data hasil pilkada tersebut.Bukan sebuah mitos lagi kalau Sumatera utara merupakan daerah yang subur dengan orang-orang yang iseng, konsisten, keratif, dan kurang kerjaan dimana satu waktu mereka bisa saja merubah yang fakta menjadi fiktif serta kebalikan nya fiktif menjadi fakta (maaf kepada kawan-kawan jika ada yang tersingung)  kalau ini terjadi, sudah pasti banyak pihak yang dirugikan.Kadang kala cara yang konvesional seperti surat suara yang di hitung secara fisik oleh TPS disimpan dalam kotak suara dan di hitung kembali di KPU daerah ini cukup mujarab untuk menangkal orang-orang yang iseng walaupun masih ada celah untuk orang lain untuk berbuat curang tapi apakah kita masih berada di zaman purba untuk berkomunikasi dan mengetahui hasil pemilihan harus menunggu satu atau dua bulan.

Dalam hal mengamankan data hasil pemilihan di perlukan beberapa trik yang sederhana  yaitu dengan memisahkan server data dengan server autentifikasi user, dengan di pisahkan nya server tersebut akan menyulitkan user-user yang bukan hak nya untuk mengakses server data walaupun ini tidak menjamin seratus persen berhasil, dan untuk menunjang kerahasiaan nya jaringan yang di bangun harus lah jaringan yang berdiri sendiri atau private line network (lised line) dimana jaringan ini tidak berhubungan dengan jaringan internet atau yang di kenal dengan WAN (Wade Area Network) sehinga akan mempersulit seseorang masuk kejaringan KPU secara remote (jarak jauh) dan dengan metode ini seluruh aktifitas jaringan akan mudah di pantau serta jumlah client (komputer user) dapat di tentukan, sebagai contoh kasus nya adalah jika setiap TPS diberikan satu komputer yang terhubung dengan jaringan private KPU maka sebagai autentifikasi pertama adalah alamat ip nya, jika ip yang terhubung tidak terdaftar maka tidak akan di berikan kuasa untuk mengakses ke server data KPU dalam hal ini tidak boleh ada ip yang sama di berikan pada komputer-komputer TPS jika ada maka komputer tersebut tidak akan berfungsi di jaringan KPU, dan trik yang kedua adalah dengan membuat server bayangan atau Honey Pot sehinga orang yang bisa masuk kedalam jaringan KPU tidak semena-mena mendapatkan server yang asli mereka akan berkutat dalam server bayangan sampai mereka bisa di trace keberadaan nya di daerah mana mereka melakukan penyerangan dan hal ini akan mempermudah pihak berwajib untuk melaksanakan tugas nya sebelum terjadi kekacawuan data hasil pemilihan, serta trik berikut nya adalah enkrip data seperti hal nya yang telah saya tuliskan di atas di perlukan nya sebuah algoritma pengenskripan data sehingga tidak mudah diketahui ataupun diubah oleh orang lain.Memang cara ini sangat sederhana dan minimalis tapi dari semua itu diperlukan nya kerja keras para praktisi IT sumatera utara untuk menciptakan dan mengamankan data hasil pemilihan kepala daerah nanti nya.

Trik dan cara pengamanan hasil pemilihan tersebut semua tak akan berhasil jika masih ada manusia yang berniat untuk curang ataupun berniat untuk menang dalam pemilihan tanpa memenangkan hati rakyat Sumatera utara, seorang pemimpin yang menang karena berhasil menaklukan hati rakyat tak akan pernah melukai hati rakyat pemilih nya,  akhir kata tak ada gading yang tak retak, tak ada tuyul yang tak botak, dan tak ada program yang tak bisa di crack karena kesempurnan hanya milik sang pencipta manusia.

Menjadi Saudara Dalam 3 Bulan

3 bulan,tak terasa sudah hampir 2 bulan kita berjumpa, ya 2 bulan penuh kebahagian! tak terasa bulan ketiga akan mendekat bulan penuh ketidakpastian bulan tempat menyabung harap antara tangis dan tawa, bulan pertama dihiasi dengan keterbukaan saling berbagi keluh kesah bulan yang menjadikan kita larut dalam tali persudaraan yang lebih erat dari saudara sedarah! Asik sekali, Alah makjang,hidungku berdarah,bangetz, lambat macam siput,tertawa melebur dalam satu tali persaudaraan.Bulan kedua yang bahagia masih ingatkah kawan kita berjalan dipantai melihat indah nya jogja dimalam hari, merasakan nikmat nya pertujukan filem dari Mesir! Indah cuma itu yang bisa aku katakan, tak terasa kita telah melebur menjadi keluarga tanpa batasan kita berbicara tanpa ada yang tersakiti berbicara masadepan saling berbagi impian sebuah pertemanan yang kuharapan! Ah..indah betul hari-hari itu menjadi teman dalam 3 bulan, menjadi saudara dalam 3 bulan, menjadi keluarga dalam 3 bulan ASIK SEKALI!

aku dedikasikan untuk saudaraku kelas c

Wawan (ayah maliqa,KK tertua),Standy(mbah),Wingki(KK Muda),Rahmat(Uztad),Tri(Adik Kecil)

Indahnya malam pertama Kita

Indahnya malam pertama Kita

Suatu hal sebagai bahan renungan kita

Untuk merenungkan indahnya malam pertama

Tapi bukan malam penuh kenikmatan duniawi semata

Justru malam pertama kita dengan sang maut

Sebuah malam yang meninggalkan isak tangis sanak saudara

Hari itu mempelai sangat dimanjakan

mandipun harus dimandikan

Seluruh badan mempelai terbuka

Tak ada sehelai benang pun menutupinya

Tak ada sedikitpun rasa malu

Seluruh badan digosok dan dibersihkan

Kotoran dari lubang hidung dan anus dikeluarkan

Bahkan lubang-lubang itu pun di tutup kaps putih

Itulah sosok kita sang mempelai

Itulah jasad kita pada saat nya

Setelah dimandikan

Kita pun akan dipakaikan gaun cantik berwarna putih

kain itu jarang orang memakainya

karena kaib itu bermerek sangat terkenal bernama kafan

Wewangian ditaburkan kebaju kita

Bahagian kepala, badan,dan kaki diikatkan

Tataplah Tataplah itulah wajah kita

Keranda pelaminan langsung disapkan

Pengantin bersanding sendirian

Mempelai di arak keliling kampung bertandukan tetanga

Menuju istana keabadaian sebagai simbol asal usul

Kita diiringi langkah gontai seluruh keluarga

Serta rasa haru para handai taulan

Alunan syahdu bersyairkan adzan dan kalimah dzikir

Akad nikah bacakan taklin

berwalikan liang lahat

Saksi-saksinya nisan-nisan yang telah tiba duluan

Siraman air mawar pengantar akhir kerinduan

dan akhirnya Tiba masa pengantin

Menungu dan ditinggal sendirian

Tuk mempertangungjawabkan seluruh langkah kehidupan

Malam pertama bersama KEKASIH

ditemani rayap-rayap dan cacing tanah

Di kamar bertilamkan tanah

dan ketika 7 langkah telah berlalu

Kitapun akan ditanyai oleh sang malaikat

Kita tak tahu apakah akan memperoleh nikmat kubur

Ataukah kita akan memperoleh siksa kubur

Kita tak tahu dan tak seorangpun yang tau

Tapi anehnya kita tak pernah galau ketakutan

Padahal nikmat atau siksa yang akn kita terima

kita sungkan sekali meneteskan air mata

Seolah barang berharga yang sangat mahal

Dan dia kekasih itu Menetapkanmu ke syurga

Atau melemparkan dirimu ke neraka

Tentu nya kita berharap menjadi ahli syurga

Tapi Tapi sudah pantaskah sikap kita selama ini

Untuk disebut sebagai ahli syurga

Baca jika anda ada masa /waktu untuk ALLAH.

Bacalah hingga habis. Saya hampir membuang email ini namun saya telah

diberi anugerah untuk membaca terus hingga ke akhir.

ALLAH, bila saya membaca e-mail ini, saya pikir saya tidak ada waktu

untuk ini….

Lebih lebih lagi diwaktu kerja. Kemudian saya tersadar bahwa pemikiran

semacam inilah yang …. Sebenarnya, menimbulkan pelbagai masalah di

dunia ini..

Kita coba menyimpan ALLAH didalam MASJID pada hari Jum’at……

Mungkin malam JUM’AT?

Dan sewaktu solat MAGRIB SAJA?

Kita suka ALLAH pada masa kita sakit….

Dan sudah pasti waktu ada kematian…

Walau bagaimanapun kita tidak ada waktu atau ruang untuk ALLAH waktu

bekerja atau bermain? Karena… Kita merasakan diwaktu itu kita mampu

dan sewajarnya mengurus sendiri tanpa bergantung padaNYA.

Semoga ALLAH mengampuni aku karena menyangka… . ….

Bahwa nun di sana masih ada tempat dan waktu dimana ALLAH bukan lah

yang paling utama dalam hidup ku (nauzubillah)

Kita sepatutnya senantiasa mengenang akan segala yang telah DIA

berikan kepada kita.

DIA telah memberikan segala-galanya kepada kita sebelum kita meminta.

ALLAH

Dia adalah sumber kewujudanku dan Penyelamatku

IA lah yang mengerakkan ku setiap detik dan hari.

TanpaNYA aku adalah AMPAS yang tak berguna..

Susah vs Senang

Kenapa susah sekali menyampaikan kebenaran?

Kenapa mengantuk dalam MASJID tetapi ketika selesai ceramah kita

segar kembali?

Kenapa mudah sekali membuang e-mail agama tetapi kita bangga mem

“forward” kan email yang tak senonoh?

Hadiah yang paling istimewa yang pernah kita terima.

Solat adalah yang terbaik…. Tidak perlu bayaran , tetapi ganjaran

lumayan.

Notes: Tidak kah lucu betapa mudahnya bagi manusia TIDAK Beriman PADA

ALLAH

setelah itu heran kenapakah dunia ini menjadi neraka bagi mereka.

Tidakkah lucu bila seseorang berkata “AKU BERIMAN PADA ALLAH” TETAPI

SENTIASA MENGIKUT SYAITAN. (who, by the way, also “believes” in ALLAH

).

Tidakkah lucu bagaimana anda mampu mengirim ribuan email lawak yang

akhirnya tersebar bagai api yang tidak terkendali., tetapi bila anda

mengirim email mengenai ISLAM, sering orang berpikir 10 kali untuk

berkongsi?

Doa Manusia Yang Hina

manusia ya manusia banyak yang menerjemahkan manusia adalah hamba tuhan tapi mengapa banyak manusia yang ingkar terhadap yang menciptakan nya
merasa besar,merasa dia adalah center of univers, mungkin aku adalah termasuk bahagian manusia itu
manusia yang lupa akan pencitap nya
manusia yang lupa diri
manusi yang mengagap dia adalah segala galanya melebihi tuhan seklipun
ya allah ampuni hamba yang hina ini
maaf kanlah segala keangkuhan dalam diri hamaba
maaf kan ya allah yang maha pengasih, maaf kan lah hambamu yang hina ini
hamba yang tak pantas berjumpa denganmu ya allah azawajala
maafkanlah hamba mu ini ya allah
terasa ada yang berkecamuk dalam dadaku ini
ada yang tersa mau meledak dan menghancurkan diriku
ya allah maafkan hamba mu ini, maafkan ya allah
hamba yang telah berlumur dosa ini ya allah
allah yang maha besar, ya allah zat yang suci, ya allah yang maha pencita
ya allah maha segala galanya
ampuni hamab mu yang kerdil ini

ampuni ya allah

Soal Final Bahasa Pemrograman C++

1.
Buat sebuah program yang akan menghitung penjumlahan dari sebuah deret bilangan.
Proses penginputan akan berhenti saat user menginputkan angka 0. (poin = 20)
Contoh :
INPUT :
1
4
5
6
2
0

OUTPUT :
18

2.
Buat sebuah program yang akan mengecek sebuah kata, apakah kata tersebut palindrome atau tidak.
Yang dimaksud dengan kata yang palindrome adalah suatu kata yang apabila dibalik akan membentuk dia sendiri.
(menggunakan fungsi, poin = 35)
Contoh :
INPUT :
ABCD

OUTPUT :
TIDAK PALINDROME

INPUT :
LONGNOL

OUTPUT :
PALINDROME

3.
Buat sebuah program yang menghasilkan deret bilangan fibonacci dan outputkan 50 deret pertama. Deret tersebut terlebih dahulu ditampung kedalam
array. Tidak ada input dalam program ini, hanya output saja.
(poin = 45)
Contoh :
OUTPUT :
1
1
2
3
5
8
13
21
34
55
89
.
.
.
2971215073
4807526976
7778742049
12586269025

Operator Pointer dan Array

POINTER

pointer adalah built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C. Pointer sebenarnya sangat terkait dengan “Abstract C Machine”, yaitu model mesin abstrak dimana program C bekerja. Abstract C Machine adalah mesin abstrak dimana mesin tersebut memiliki prosesor untuk menginterpretasikan stream of instruction, dan addressable memory yang terbagi kedalam 3 bagian : automatic memory, static memory dan free memory. Addressable memory adalah memory yang konten-nya dapat diambil jika diketahui alamatnya. Lebih jauh lagi, terdapat asumsi bahwa konten memori dapat di ambil dengan waktu konstan, tidak peduli berapa nilai alamat.Hal ini disebut dengan Random Access Memory.

Penggunaan Awal Pointer

Jika variabel merupakan isi memori, dan untuk mengakses isi memori tersebut diperlukan address, lalu bagaimana cara kita mengetahui alamat dari suatu variabel ? Jawabannya adalah : untuk kebanyakan kasus kita sama sekali tidak perlu tahu alamat dari sebuah variabel. Untuk mengakses sebuah variabel kita hanya perlu nama dari variabel tersebut. Tugas kompiler lah yang mentranslasikan nama ke alamat mesin yang diperlukan oleh komputer.

Akan tetapi terdapat beberapa kasus dimana kita tidak mungkin memberi nama pada sebuah entitas di program kita. Hal ini terjadi terutama saat kita menggunakan data struktur dinamis seperti linked list, resizeable array, tree dan lain sebagainya. Hal ini karena kita tidak mungkin memberi nama terhadap entitas yang mungkin ada atau tidak ada. Struktur seperti linked list hampir mustahil dibuat tanpa pointer tanpa harus mendefinisikan LISP-like list.

Inilah awal mula penggunaan pointer sebagai moniker. Istilah moniker di sini berarti sesuatu yang menunjuk atau mengacu kepada entitas lain. Istilah moniker ini bukanlah istilah standard dan lazim , tetapi sesuatu yang saya pilih impromptu untuk membedakan dengan pointer atau reference yang sudah memiliki arti tersendiri.

Penggunaan lain pointer sebagai moniker adalah untuk mengatasi kelemahan bahasa C awal : Dahulu fungsi – fungsi di C hanya mengerti pass by value. Pointer digunakan untuk mengemulasi pass by reference karena pointer berisi alamat ke objek lain, sehingga fungsi tersebut dapat mengubah objek tersebut dengan memanipulasi pointer.

Pertanyaanya : siapa yang bertugas menentukan alamat objek yang di tunjuk oleh pointer dalam kasus ini ? jelas bukan kompiler karena objek tersebut tidak bernama. Apakah kita sebagai programmer menentukannya sendiri ? ternyata tidak. Hal tersebut ditentukan oleh fungsi malloc dan sejenisnya (dan juga new di C++), atau untuk kasus passing pointer ke dalam fungsi, operator &. Jadi dalam hal ini kita tidak juga menentukan alamat sebuah objek.

Array di C dan C++

Sebelum membahas array di C dan di C++, ada baiknya kita membahas tentang array. Array adalah asosiasi antara sebuah index dengan nilai. Jika diketahui sebuah index, kita akan mengetahui nilainya. Dari definisi ini :
1. Tidak disebutkan bahwa index harus integer, atau tipe tertentu.
2. Tidak disebutkan range dari indexnya dimulai dari nilai tertentu, Bahkan tidak disebutkan bahwa indeks nya memiliki batas bawah maupun batas atas.
3. Tidak disebutkan bahwa nilai harus disimpan secara contigous, bahkan tidak disebutkan bahwa nilainya harus di simpan sama sekali.

akan tetapi :
1. Banyak bahasa pemrograman yang di desain tahun 60-an hingga tahun 70-an menentukan bahwa index array adalah integer atau sesuatu yang bisa dikonversi menjadi integer atau sesuatu yang memiliki nilai berurutan seperti integer.

2. Beberapa bahasa menentukan bahwa array dimulai dengan nilai tertentu. contohnya di C, array dimulai dari 0 sementara di Pascal Array dimulai dari 1. Dalam Algo-68 programmer dapat menentukan sendiri batas- batas array. Akan tetapi dalam semua bahasa pemrograman mengakses nilai dengan indeks yang di luar batas dianggap sebagai programming error.

3. Semua bahasa pemrogramman yang saya tahu menyimpan elemen – elemen array di memory. beberapa bahasa, misalnya C, menjamin bahwa elemen – elemen tersebut disimpan dalam memory yang contigous.

Sekarang tipe yang lebih mendekati definisi awal array tersedia dengan nama associative array. Tipe ini didukung oleh beberapa bahasa seperti PHP dan JavaScript, dan juga tersedia dalam beberapa bahasa lain sebagai library ( seperti std::map di C++).

Kembali ke C dan C++ array, kita dapat tentukan beberapa property array : zero based, contigous dan convertible to pointer. Banyak alasan dengan dipilihnya property seperti ini, tapi yang paling penting adalah efisiensi, yang akan kita bicarakan sebentar lagi. setiap array dapat dikonversi menjadi pointer yang menunjuk ke elemen pertama. Hal ini sangat konvenien mengingat dynamic array diciptakan dengan alokasi memori dari free memory (dengan fungsi calloc, yang berarti contigous alloc. yang aneh adalah fungsi ini berperilaku mirip dengan malloc kecuali dia menginisialisasi memori dengan nol. ). Kemudian kita tahu bahwa elemen dalam array di simpan secara berurutan, dengan demikian alamat semua elemen array adalah ptr + n * sizeof(elemen). Dengan mendefinisikan pointer arithmatic, didapat kesamaan ar[idx] == *(ar + idx). hal ini menimbulkan sesuatu yang menarik , ar[idx] == *(ar + idx) == *(idx + ar) == idx[ar] (yes, it is valid C !!).

Operasi pointer arithmatic lain juga didefinisikan untuk pointer. yang menarik adalah increment dan decrement. programmer dapat memeriksa semua elemen dalam array dengan cara menginkremen pointer dari pointer penunjuk elemen pertama. Tentu saja hal yang sama dapat dilakukan dengan indexing biasa, ar[idx], akan tetapi dengan operasi pointer bisa lebih efisien. Alasannya terletak pada bagaimana cara komputer membaca data di ar[idx]. Untuk mesin yang memiliki indexed addressing hal ini cukup sederhana dan efisien (ar jadi base, idx jadi index, fetching cukup 1 instruksi mov). Tetapi untuk mesin yang tidak memiliki indexed addressing, akan ada operasi ADD antara ar dan idx, lalu simpan hasilnya ke suatu tempat (register), lalu baru mov. Kadang – kadang register tersebut digunakan untuk operasi ADD sehingga terdapat beberapa mov untuk menyimpan state. Akan tetapi jika menggunakan pointer arithmatic, cukup meng-increase nilai yang sudah ada di register, lalu mov. Tentu saja instruksi di dalam loop juga mempengaruhi efisiensi ini, tetapi untuk mesin yang mendukung operasi increment langsung, iterasi lewat pointer biasanya lebih efisien.

Ini adalah penggunaan pointer sebagai iterator. Nama iterator diambil dari STL, dan iterator di STL adalah abstraksi dari pointer. Yang menakjubkan adalah konsep iterator, yang digeneralisasi dari pointer, adalah konsep yang cukup powerful untuk merepresentasikan semua algoritma yang bekerja untuk linear container ( linear container adalah semua container yang memiliki iterator yang menunjuk pada elemen pertama, memiliki iterator yang menunjuk pada elemen one-past-end, dan semua elemen dapat dicapai dengan melakukan operasi incremen dari iterator penunjuk elemen pertama sebanyak yang diperlukan. Contoh linear container adalah array, vector, linked – list, dan deque. contoh yang bukan linear container adalah graph dan forest.).

Fixed memory Location

Dalam pemrograman, kita dihadapkan pada beberapa situasi seperti :
– setelah startup, prosesor 80386 akan memulai eksekusi pada alamat ( … lupa).
– Interrupt vector beberapa prosesor ditaruh pada alamat yang ditentukan oleh pembuat prosesor tersebut.
– Video Memory di DOS dimulai pada alamat (… lupa hehehehe).

Situasi – situasi tersebut hanya mungkin terjadi jika kita memrogram “close to metal” e.g membuat operating system, atau kita memrogram dalam OS yang super primitif seperti DOS. Dalam kasus – kasus ini kita memerlukan pointer dengan alamat di set ke nilai tertentu. Ini adalah penggunaan pointer sebagai abstraksi alamat di hardware. Penggunaan ini adalah penggunaan pointer paling jarang.

So, What’s a big deal about it ?

Ketiga fungsi pointer di atas memerlukan operasi yang berbeda- beda. Contohnya jika pointer berfungsi sebagai moniker, operasi yang sangat diperlukan adalah fungsi malloc, calloc, free, new, delete, operator ->, operator * dan operator &. sebagai moniker pointer tidak memerlukan konvertability ke integer dan operasi pointer arihmatic (walaupun ada trik mengakses field struct dari pointer dengan meng-cast pointer to struct menjadi char*, tambahkan offsetnya, lalu baca dengan operator * dan di cast ke tipe field tersebut. trik ini sangat berbahaya dan sebaiknya tidak dipakai ).
Jika pointer berfungsi sebagai iterator, operasi pointer arithmatic adalah esensial. Tetapi operasi new dan delete sama sekali tidak di perlukan (kecuali untuk array of pointer). bottom line is: you do not do memory management via iterator.
Sifat konvertibilitas antara integer dan pointer hanya diperlukan jika pointer tersebut dipakai sebagai abstraksi fixed address. Dua fungsi lain tidak memerlukan sifat ini.

Pointer in OOP

C++ mendukung OOP, akan tetapi pada saat yang sama juga kompatibel dengan C. Hal ini menimbulkan masalah. Akan tetapi sebelum melihat apa masalahnya, ada baiknya kita bahas sedikit tentang Polymorphism.

Polymorphism adalah jawaban untuk pertanyaan: bagaimana cara menulis fungsi atau prosedur yang tidak dibatasi oleh tipe. contohnya adalah fungsi average, fungsi ini menjumlahkan sejumlah elemen dan membaginya dengan banyaknya elemen. hal ini benar untuk banyak tipe termasuk integer, koordinat kartesian, bilangan kompleks, kuartenion, matrix ,dsb walau aturan penjumlahan tipe – tipe tersebut berbeda. Untuk bahasa yang tidak mendukung polymorphism, anda harus menulis fungsi seperti averageInt, averageMatrix, averageComplex, etc.

Dari sifatnya, polymorphism terbagi dua: ad-hoc polymorphism dimana polymorphism hanya bekerja pada tipe yang sudah ada. contoh mekanisme ad-hoc polymorphism adalah function dan operator overloading. Sedangkan true polymorphism atau parametric polymorphism dapat digunakan bahkan untuk tipe yang belum dispesifikasi. Perbedaan lainnya adalah untuk ad-hoc polymorphism biasanya anda harus menulis fungsi untuk semua tipe yang berpartisipasi dalam mekanisme polymorphism, sperti menulis average untuk integer, lalu untuk quartenion, lalu satu lagi untuk complex, dll. Sedangkan untuk parametric polymorphism anda hanya perlu menulis satu fungsi.

Dari binding-time nya, polymorphism dapat dibagi 2: static dan dynamic polymorphism. Static polymorphism menentukan fungsi mana yang akan di panggil (atau mungkin di generate ) pada saat kompilasi. Sedangkan dynamic polymorphism menentukan fungsi yang di panggil pada saat run-time. contoh static polymorphism adalah template, sedangkan contoh dynamic polymorphism adalah virtual function.

static polymorphism dapat dibagi menjadi predicative atau impredicative, tetapi hal ini tidak ada hubungannya dengan diskusi kita.(jadi jangan khawatir hehehehehe)

Untuk dynamic polymorphism, dapat dibagi lagi berdasarkan berapa banyak parameter yang berpengaruh dari penentuan fungsi. Jika hanya parameter pertama yang berpengaruh, hal ini disebut dengan single dispatch. Jika lebih dari satu, hal ini disebut dengan multimethod. multimethod yang dipengaruhi oleh dua parameter mempunyai nama khusus yaitu double dispatch. Harap perhatikan bahwa p->somefunc(a,b) itu secara prinsip sama dengan somefunc(p,a,b) dimana p adalah this parameter (walaupun semua kompiler akan mereject kalau anda mengganti fungsi seperti itu).

Dynamic Polymorphism juga dapat dibagi berdasarkan constraint nya menjadi dua: Subtyping Polymorphism dimana polymorphic type harus merupakan turunan dari satu base class yang merupakan sebuah interface yang menentukan sifat mana yang polymorphic. Yang lainnya adalah DuckTyping yang tidak memerlukan base class yang berfungsi sebagai interface. Dalam DuckTyping sebuah object dapat menerima message apa saja, walau jika object tersebut tak dapat merespond message tersebut objeck yang bersangkutan akan mengeluarkan error seperti DoesNotUnderstand message di SmallTalk. Untuk subtype polymorphism, hal ini tidak mungkin karena sebuah object hanya akan menghandle message yang didefinisikan di base class, dan kompiler akan mereject message lain.

Kembali ke bahasan kita, C++ mendukung Subtyping single dispatch dynamic Polymorphism. Jadi untuk dynamic polymorphism, semua tipe yang ingin digunakan secara polymorphic harus diturunkan dari satu base class. C++ juga mengharuskan semua fungsi yang bisa dipanggil secara polymorphic harus dideklarasikan virtual. Dan pemilihan fungsi yang diperlukan hanya ditentukan oleh satu parameter (this parameter) melalui mekanisme vtable.

So, what’s the big deal ?

Masalahnya adalah untuk semua bahasa yang menggunakan subtype polymorphism, semua object harus bisa di akses melalui base class nya. Jadi kode berikut harus valid:

code:

Parent p = create_child(); // asumsi nya create child menghasilkan
// object child;

Hal ini menimbulkan pertanyaan : Bagaimana caranya membuat kode di atas valid ?
Dalam bahasa pemrograman tradisional, ketika anda mendeklarasikan sebuah variabel, anda menciptakan instance dari sebuah tipe, kecuali jika dideklarasikan khusus. Di C

Code:

Sometype somevar;

artinya anda menciptakan sebuah objek somevar bertipe Sometype.

code:

Sometype somevar2 = somevar;

artinya anda mengkopi nilai somevar ke somevar2

code:

somevar2 == somevar; // OK, ini tidak didefinisikan di C untuk User Defined Type,
// but you got the idea

artinya anda membandingkan nilai somevar dengan nilai somevar2. Mari kita sebut ini value semantic, dimana sebuah variabel mengandung isi instance dari tipe tertentu.
Lalu perhatikan kode berikut :

Code:

Child child;
Parent parent = child;

See the problem ? Masalahnya adalah anda mencoba mengkopi nilai child ke variabel parent, tapi apa artinya operasi kopi tersebut ? jika berarti mengopi nilai byte by byte, implikasinya adalah ukuran parent dan child harus sama. Akan tetapi hal ini sulit atau tidak mungkin dipenuhi. Bila parent adalah pure interface, parent hampir tidak memiliki data member, tapi child akan memiliki data member untuk mendukung operasi – operasi method-nya.

Bagaimana cara mengatasinya ? salah satu cara yang populer adalah dengan tidak menggunakan value semantic. Di bahasa seperti Java, setiap variable adalah reference ke sebuah instance. Artinya:
1. Ketika anda mendeklarasikan sebuah variabel, anda tidak menginstansiasi sebuah object. object harus di instansiasi secara terpisah, biasanya lewat operator new.
2. Ketika anda mengkopi dua buah variabel, anda tidak mengkopi instance byte by byte, tapi hanya membuat dua reference mengacu pada object yang sama. Jika ingin menghasilkan kopi dari instance, biasanya anda menggunakan method seperti clone.
3. Ketika anda membandingkan dua buah variabel, anda hanya mengetahui apakah dua variabel tersebut merujuk pada objek yang sama atau tidak. jika anda ingin membandingkan nilainya, anda harus menggunakan method seperti equal.
let’s call this reference semantic.

Masalahnya C++ karena berbagai alasan (salah satunya kompatibilitas dengan C) tidak mungkin mengadopsi reference semantic dan harus tetap menggunakan value semantic. Akan tetapi reference semantic sepertinya diperlukan untuk subtype polymorphism. so, what to do ? Ternyata Pointer adalah object yang dapat dipakai untuk mengemulasi reference semantic tanpa harus mengubah bahasa menggunakan reference semantic.
Dengan demikian dynamic polymorphism di C++ harus menggunakan pointer (atau reference, yang sebenarnya adalah pointer dengan sedikit perubahan sifat).

Bahaya Pointer

1. Bahaya yang mungkin ada dengan pointer sebagai moniker: memory leak, double delete, invalid memory access. Semuanya dapat dihindari dengan ownership analysis yang bagus (pada setiap saat, harus diketahui pihak mana yang bertanggung jawab mendelete sebuah object). Jika hal ini sulit dilakukan, misalnya karena shared ownership, anda dapat menggunakan smart pointer atau garbage collector.
2. Bahaya yang mungkin ada dengan pointer sebagai iterator: array out of bound. Salah satu cara yang efektif menghindari hal ini adalah dengan menggunakan standard algorithm.
3. Bahaya yang mungkin ada dengan pointer sebagai abstraksi fixed memory : Tidak tahu, tetapi ini bukan mainan sembarang programmer.

Bahasa Pemrograman tanpa pointer ?

1. Semua Bahasa pemrograman Fungsional, terutama yang murni , tidak mengenal pointer atau memerlukan pointer. Akan tetapi bahasa ini menggunakan model komputasi yang jauh berbeda, bukan abstract C machine.

2. Beberapa bahasa pemrograman dengan reference semantik dapat mengklaim mereka tidak memiliki pointer, akan tetapi setiap variabel sebenarnya adalah pointer. Secara fisik mungkin reference tidak memiliki struktur seperti pointer (biasanya merupakan data struktur yang lebih kompleks sehingga lebih friendly terhadap garbage collector) tapi reference tersebut memiliki fungsi yang mirip dengan pointer di C atau C++. Ada yang bilang bahwa reference dalam bahasa – bahasa ini menyebabkan optimasi lebih mudah karena tidak menyebabkan aliasing, tetapi optimasi tersebut juga mungkin dilakukan di C dan C++ ( dengan restrict pointer, sayangnya belum merupakan bagian dari standard C++).

Sumber: dari berbagai sumber

Oke semoga bermanfaat bagi kita semua

« Older entries