ada banyak rasa saat coding. ada keringat dan air mata dalam mencoding. keringat saat kau berusaha menyelami makna dalam setiap ilmu coding. dan air mata disaat tiada orang yang dapat membantumu, ketika program dalam keaadaan bugging. apapun rasa dalam mencoding. cobalah untuk mengerjakan sendiri. sampai kau bisa. dan benar-benar bisa.

Saturday 28 September 2013

String Matching - Using Brute Force and Horspool Algorithm

Implementasi Brute Force Algorithm

Algoritma :
Algoritma Bruto Force untuk String Matching saya ambil dari Buku Levitin Bab 3.2. berikut adalah algoritmanya
ALGORITHM BruteForceStringMatch(T[0..n1],P[0..m1])
//Implements brute-force string matching
//Input: An arrayT[0..n−1] of n characters representing a text and
// an array P[0..m−1] of m characters representing a pattern
//Output: The index of the first character in the text that starts a
// matching substring or−1 if the search is unsuccessful
fori 0 to nm do
j0
while j<m and P[j]=T[i+j] do
jj+1
if j=m return i
return1

Implementasi Program (source code):
#include<iostream>
#include<cstdlib>
#include<string>

using namespace std;

int main()
{
 //input
 string pattern;
 string text;

 //output
 int i, ketemu;

 int j;

 cout << "Masukkan Text : " << endl;
 getline(cin, text); 
 cout << endl;

 cout << "Masukkan Patern" << endl;
 getline(cin, pattern);
 cout << endl;

 int m = pattern.size();
 int n = text.size();

 for(i=0; i<n-m+1; i++)
 {
  j=0;
  //cout << "hai"<< endl;
  while( j<m && pattern[j]==text[i+j])
  {
   j++ ; //cout << "hei"<< endl; 
  }
  if(j==m) break;
 }
 //cout << j << endl;
 if(j==m) cout << "String cocok pada indeks Text ke " << i << endl;
 else cout << "STring tidak ditemukan" << endl;
  

 system("pause");
 return 0;
}

Penjelasan Program :

Input adalah sebuah string Text yaitu string yang berisi kalimat dan sebuah string pattern, yaitukata yang akan dicari dari Text tersebut.
Output adalah sebuah indeks pada Text yang cocok dengan huruf pada string pattern tersebut

cout << "Masukkan Text : " << endl;
       getline(cin, text);
       cout << endl;

       cout << "Masukkan Patern" << endl;
       getline(cin, pattern);
       cout << endl;

kemudian kita lakukan bruto force, yaitu dengan mengecek setiap indeks I pada Text apakah terdapat huruf yang sama dengan huruf –huruf pada pattern. Pengecekan dilakukan setiap huruf pada pattern, bila huruf pertama sama maka akan dilanjutkan mengecek ke huruf pattern selanjutnya. Bila mismatch, maka akan terjadi shift satu ke kanan.
int m = pattern.size();
       int n = text.size();

       for(i=0; i<n-m+1; i++)
       {
              j=0;
              //cout << "hai"<< endl;
              while( j<m && pattern[j]==text[i+j])
              {
                     j++ ; //cout << "hei"<< endl;    
              }
              if(j==m) break;
       }

Jika jumlah huruf yang sama dengan pattern adalah sebesar jumlah huruf pada pattern, maka akan keluar output indeks letak huruf paling kiri pada text yang sama dengan pattern. Jika tidak, maka akan keluar -1 atau disini saya tampilkan “string tidak ditemukan”
       if(j==m) cout << "String cocok pada indeks Text ke " << i << endl;

       else cout << "STring tidak ditemukan" << endl;



Implementasi Horspool Algorithm

Algoritma :
Algoritma Horspool untuk String Matching saya ambil dari Buku Levitin Bab 7.2.2. berikut adalah algoritmanya


ALGORITHM ShiftTable(P[0..m1])
//Fills the shift table used by Horspool’s and Boyer-Moore algorithms
//Input: PatternP[0..m−1] and an alphabet of possible characters
//Output:Table[0..size−1] indexed by the alphabet’s characters and
// filled with shift sizes computed by formula (7.1)
fori 0tosize1doTable[i]m
forj0tom2doTable[P[j]]m1j
returnTable

ALGORITHM HorspoolMatching(P[0..m1],T[0..n1])
//Implements Horspool’s algorithm for string matching
//Input: PatternP[0..m−1] and textT[0..n−1]
//Output: The index of the left end of the first matching substring
// or−1 if there are no matches
ShiftTable(P[0..m1]) //generateTableof shifts
i m1 //position of the pattern’s right end
whilein1do
k0 //number of matched characters
whilekm1andP[m1k]=T[ik]do
kk+1
ifk=m
returnim+1
elsei i+Table[T[i]]
return1

Implementasi Program(source code) :


#include<iostream>
#include<string>
#include<cstdlib>

using namespace std;

//inisialisasi global sebuah tabel sebesar banyaknya huruf alfabet
int tabel[26];

//fungsi tabel yang menyimpan banyaknya shift
int* shiftTable(string pattern)
{
 int m = pattern.size(); //menghitung jumlah panjang pattern
 for(int i=0; i< 256; i++ ) //setiap indeks pada tabel diisi dengan besar panjang pattern
 {
  tabel[i]=m;
 }
 for(int j=0; j< m-1; j++) //untuk mengisi besar shift setiap huruf pada pattern
 {
  tabel[pattern[j]]=m-1-j;
 }
 return tabel;

}

//fungsi horspool
int horspool(string pattern, string text)
{
 shiftTable(pattern); //memanggil fungsi shift table

 int m = pattern.size(); //menghitung panjang string pattern
 int n = text.size(); //menghitung panjang string text

 int i,k;

 i = m-1;

 while(i <= n-1)
 {
  k=0;
  while( k<= m-1 && pattern[m-1-k]==text[i-k] ) //jika huruf pada indeks pattern sama dengan 
  {           //indeks huruf pada Text
   k++ ;

  }
  if(k==m) //apabila jumlah k sama dengan jumlah pattern
  {
   return i-m+1; //menampilkan indeks pada string Text
  }
  else
  {
   i = i + tabel[text[i]];
  }
 
 }
 return -1;
}
int main()
{
 string pattern;
 string text;

 cout << "masukkan Text : " << endl;
 getline(cin, text);
 //cout << text << endl;
 cout << endl;
 cout << "masukkan Pattern : " << endl;
 getline(cin, pattern);
 //cout << pattern << endl;

 int cek = horspool(pattern, text);
 cout << endl;
 //cout << cek;
 if (cek == -1 )
 {
  cout << "String tidak ada " << endl;
 }
 else
 {
  cout << "String cocok dengan Text pada indeks ke : " << cek << endl;
 }

 system("pause");
 return 0;
}

Penjelasan Program :

Pertama membuat shift table terlebih dahulu, yaitu sebuah array integer yang menyimpan informasi berapa jumlah shift bila terjadi mismatch. Untuk shift selain huruf yang ada di pattern, maka akan di default besar shift sejumlah size pattern tersebut

Untuk pengisian shift huruf pada patern yaitu dimulai  dengan aturan m-1-j; m adalah lebar pattern, dan j adalah posisi huruf tersebut pada pattern
int* shiftTable(string pattern)
{
       int m = pattern.size(); //menghitung jumlah panjang pattern
       for(int i=0; i< 256; i++ ) //setiap indeks pada tabel diisi dengan besar panjang pattern
       {
              tabel[i]=m;
       }
       for(int j=0; j< m-1; j++) //untuk mengisi besar shift setiap huruf pada pattern
       {
              tabel[pattern[j]]=m-1-j;
       }
       return tabel;

}

Sama dengan algortima bruteforce sebelumnya, namun disini kaidah shift nya tidak mencoba satu-satu setiap huruf yang ada pada Text, melainkan berdasarkan table shifTable yang telah dicari sebelumnya. Sehingga setiap huruf mempunyai shift tersendiri berdasarkan perhitungan.

int horspool(string pattern, string text)
{
       shiftTable(pattern); //memanggil fungsi shift table

       int m = pattern.size(); //menghitung panjang string pattern
       int n = text.size(); //menghitung panjang string text

       int i,k;

       i = m-1;

       while(i <= n-1)
       {
              k=0;
              while( k<= m-1 && pattern[m-1-k]==text[i-k] ) //jika huruf pada indeks pattern sama dengan
              {                                                                          //indeks huruf pada Text
                     k++ ;

              }
              if(k==m) //apabila jumlah k sama dengan jumlah pattern
              {
                     return i-m+1; //menampilkan indeks pada string Text
              }
              else
              {
                     i = i + tabel[text[i]];
              }
      
       }
       return -1;

}

Friday 27 September 2013

"Citty Ville" - My Best Game Ever (review)

Alasan menjadi My Favorit game :)
Hai, saya akan memperkenalkan sebuah game favorit saya, yaitu "Citty Ville". "Citty Ville" kini menjadi bagian favorit game saya karena permainanya mudah, menyenangkan, tidak membosankan dan penuh imajinatif. Selain itu, game ini memiliki desain gambar yang lucu, variasi tantangan dan level, serta adanya sistem "high Level" yang membuat para pemainnya untuk berlomba-lomba menaikkan level mereka.

Menjadi Walikota adalah cita-cita saya, oleh karena itu dalam game Citty Ville ini sangat menarik hati saya, dimana setiap player akan bertindak sebagai Walikota sebuah kota impiannya. sehingga mereka dapat membangun dan mengelola kota impiannya tersebut.

Game ini mewakili asa dan angan-anganku :) 
Citty Ville Menjadi Daftar Favorit dalam akun facebook :)


Tentang Citty Ville

Citty Ville merupakan sebuah permainan online yang mengusung tema simulasi membangun kota, konstruksi dan manajemen kota. Citty Ville adalah game yang diproduksi oleh Perusahaan Zynga.
Didalam permainan ini, memungkinkan kita untuk menjadi walikota di sebuah kota virtual, dimana kita diberi tugas untuk membangun dan mengawasi perkembangan kota agar kota yang semula kecil menjadi sebuah kota metropolitan yang besar. Pemain dapat menciptakan pembangunan-pembangunan seperti perkantoran, pertokoan, perumahan, apartemen, dan juga pabrik. Selain membangun gedung dan bangunan lainnya, pemain dapat menanam tanaman di kebun sebagai bahan pembangunan. Pemain juga dapat mengunjungi kota tetangga yang tidak lain adalah teman facebook mereka.

Klasifikasi
spesifikasi game "Citty Ville" :
GENRE : Social game sekaligus Construction and Management Simulation game. Citty Ville merupakan game yang dimainkan secara online pada sebuah media sosial dan merupakan sebuah simulasi konstruksi dan manajemen dalam membangun sebuah kota
THEME : Simulasi
PLATFORM : Web game --> Facebook canvas
ERSB RATING : - 
STATS RATING : 100 Million Active Users Every Month
Monthly Active Users (Count By SocialBakers | Aplication Statistic and Facebook Developer)

Daily Active Users (Count By SocialBakers | Aplication Statistic and Facebook Developer)
Monthly Active Users in SEPTEMBER 

AGE LIMITATION : Everyone (10+)

Aturan Main

CityVille menggunakan sistem pembatasan energi, pemain diajak untuk dapat mengatur strategi agar dapat menggunakan energi tersebut semaksimal mungkin.
Dengan menggunakan sistem material, beberapa bangunan yang hendak dibangun oleh pemain membutuhkan bantuan dari pemain lainnya.
Sistem mata uang yang digunakan ada dua, yaitu koin dan kas. Koin adalah mata uang untuk menjual dan membeli barang-barang umum dan koin juga merupakan mata uang ketika pemain mendapatkan hasil dari bangunan. Kas merupakan mata uang digunakan untuk membeli barang-barang esklusif dan untuk membayar material ketika pemain enggan untuk meminta tolong pada pemain lainnya.
Sistem lain yang digunakan didalam permainan ini adalah sistem waktu. Ketika pemain menanam tanaman, memesan pasokan, dan berlayar, ada syarat waktu yang ditentukan oleh CityVille sampai pemain bisa mendapatkan pasokan mereka

Nilai Edukasi

a. Melatih daya kreasi dan estetika merancang sebuah kota
b. Sambil belajar tentang tata letak kota
c. Melatih jiwa enterprenur atau wirausaha dalam mengembangkan gedung-gedung usaha dan toko yang ada di kota

Game dinilai dari Realitas Random

a. Adanya pencuri dan bandit yang berkeliaran disekitar kota
b. Adanya musim dan cuaca yang berubah-ubah tergantung bulan. Bila musm hujan tiba, maka kota kita akan hujan dan penduduk disekitar kota akan memakai payung
c. Adanya kunjungan para turis yang berasal dari luar kota. Turis-turis tersebut mengelilingi kota menggunakan minibus

Game dinilai dari realitas Sebab Akibat
a. Untuk memiliki pendapatan kota, maka kita harus pandai mengolah usaha, seperti : mengambil pajak dan sewa rumah penduduk, membangun gedung usaha atau toko, dan menanam tanaman di kebun
b. Jika kota tidak dilengkapi kantor polisi, maka akan banyak bandit dan pencuri saat kita sedang offline

Game dinilai dari Realitas Fakta
a.   Bangunan yang dibangun mendekati fakta
b. Para penduduk membayar pajak rumah atau biaya sewa rumah
c. Gedung usaha dan toko akan menghasilkan pendapatan untuk kota
d. Gedung usaha dan toko-toko membutuhkan bahan baku yang diambil dari gudang
e.  Gudang milik kota merupakan simpanan hasil-hasil panen kebun
f.  Kota virtual pada Citty Ville dirancang mendekati kota pada faktanya, yaitu seperti membutuhkan dibangunnya alat-alat kota yaitu gedung pemerintahan, kantor pos, kantor polisi, kantor paspor dan lain-lain
g. Kota memiliki tempat wisata dan tempat bermain yang menghasilkan banyak pengunjung
h. Semakin mewah fasilitas rumah, gedung, atau tempat wisata maka semakin mahal juga biaya pembelian dan pembangunannya
i. Untuk pembelian tanah membutuhkan sejumlah uang dan beberapa dokumen

Game dinilai dari realitas Fisika dan Biologi

a. Jika musim hujan tiba, maka akan turun rintik hujan di kota
b. Jika tanaman di kebun tidak segera dipanen, maka tanaman akan busuk dan layu

Screenshoot Kota Kecil Ayu di "Citty Vile"
Kota kecil Ayu
Membangun gedung


Pemberitahuan munculnya Bandit dalam kota
















Pertolongan teman dari kota tetangga
Panen hasil perkebunan
Mendapatkan penghasilan dari gedung-gedung usaha dan toko-toko
Area alat-alat kota seperti gedung pemerintahan, kantor paspor, gedung cuaca, kantor polisi, dan sebagainya
Area Pertokoan, Restoran, dan gedung-gesung usaha
Wahana permainan dan tempat wisata kota yang dekat di daerah pegunungan 
Area Pemukiman, Perumahan, dan Villa mewah
Kota Metropolitan (Pusat Kota) yang masih dalam tahap pembagunan
Sistem tantangan yang terdapat di Citty Ville

Play Demo Game



direview oleh :

Ika Ayu Rahmania Islam
nrp. 5111100201
Pembuatan Game B

Ayu Fow | Buat Lencana Anda

Saturday 7 September 2013

Izinkan Aku untuk Memilih, Tuhan

Usiaku kini tak muda lagi. Kawan-kawan dan sanak saudara sepupuku sudah melalaui masa-masa paling indah dalam hidupnya, bertemu di janur kuning dengan jodohnya. Aku, masih sendiri.
Aku turut bahagia, melihat mereka kini sudah menemukan cinta sejatinya. Diantara mereka juga ada yang sudah memiliki putra-putri kecil nan lucu. Dan dalam ramainya malam keakraban bersama kawan, aku sosok wanita yang berdiri sendiri diantara pesta.

Kini aku tinggal dengan Ibuku yang sudah lanjut usia. Beliau telah melewati lebih dari setengah abadnya, menyusuri liku-liku kehidupan. Ibu banyak mengajarkan aku tentang hakikat kehidupan, cara bertahan di alam semesta, dan tentang cinta. Tapi tak sedikit Ibu selalu berperan dalam menentukan pilihan dalam hidupku.

Aku teringat akan masa kecilku, saat aku masih berada di bangku sekolah dasar. Saat itu adalah masa-masa kecil bagi seorang manusia untuk dapat menikmati cinta kasih sayang dari kedua orang tua. Pergi ke sekolah diantar dengan Ayah atau Bunda. Dan sepulang dari sekolah, anak-anak dapat bercerita tentang bagaimana suka duka harinya disekolah.Tetapi aku tidak dapat merasakan seperti apa yang anak-anak dapat rasakan saat itu. Aku pergi dan pulang dari sekolah dengan mengayuh sepeda kaki. Lalu sesampainya dirumah, aku hanya dapat menyimpan segala pertanyaan yang terlintas saat aku belajar disekolah. Tidak ada tempat untuk bertanya, atau bahkan bercerita. Ibu sedang sibuk bekerja dan ayah yang hidup terpisah dengan kami, entah beliau sedang berada dimana.

Di usia itupun, aku telah menjuarai beberapa kejuaraan melukis. Medali terakhirku di kancah Nasional yang kupajang di almariku, adalah lukisanku yang terinspirasi dari rasa rinduku yang mendalam kepada Ayah. Aku selalu menyimpan medali-medaliku dalam almari itu. Berharap, kapanpun Ayahku kembali, beliau akan sangat bangga dengan prestasi yang telah diraih putrinya. Sayangnya, sampai rambutku telah berwarna dua hitam dan putih menuju abu-abu, Ayah tak kunjung juga kembali. Mungkin, medali-medali itu cukup menjadi bukti cintaku kepada Ayah ataukah hanya menjadi kenangan kikisan rindu yang tak pernah tersampaikan.

Aku pun menuliskan cita-citaku dalam sanubari untuk menjadi seorang pelukis. Setiap hari aku melukis potret wajah seseorang. Memajangnya dalam dinding-dinding yang dingin dan lembab, hingga menghiasi seluruh ruangan. Namun, seindah apapun lukisan itu, Ibu tetap tidak menyukainya. Ibuku tidak menyetujui jika putri kecilnya itu ingin menjadi seorang pelukis. Ibu menginginkan anaknya untuk menjadi seorang dokter. Aku pun menuruti Ibu.

Beberapa tahun menginjak kedewasaan, aku merubah cita-citaku menjadi seorang dokter. Meski berat namun cita-cita inilah yang mengajakku untuk belajar lebih giat. Setiap hari aku berlatih terlebih dahulu tentang materi yang akan diajarkan oleh bapak ibu guruku. Membaca-baca pengetahuan yang seharusnya belum dimiliki oleh siswa pada umumnya. Memupuk semangat dan mimpi-mimpi indah, hingga cita-cita mulia menjadi dokter itu kini sudah mendarah daging. Mewarnai setiap hariku dan larut dalam setiap doaku, agar kelak aku dapat menjadi dokter yang dermawan di area medan perang dan korban bencana alam. Itu mimpiku. Aku pun menghiasi keindahan dalam masa remajaku dengan beberapa kejuaran olimpiade biologi, hingga mengharumkan almamaterku. Namun, sehebat apapun prestasiku dibidang biologi, Ibu tetap tidak menyukainya. Ibuku pada akhirnya tidak ingin bila putrinya menjadi seorang dokter. Ibu menginginkan anaknya untuk menjadi seorang insinyur. Aku menuruti Ibu.

Akhirnya aku menempuh pendidikan di perguruan tinggi yang telah mencetak insinyur-insinyur cerdas di tanah airku. Disana aku mulai menghadapi beberapa rintangan. Aku terlihat paling bodoh diantara teman-temanku. Aku terlihat paling bejalan lambat dalam belajar. Mereka, teman-temanku, adalah mahasiswa yang memiliki kemampuan lebih didalam bidang analitik perhitungan dan logika. Ada juga diantara mereka yang sudah bertahun-tahun sejak disekolah telah menjuarai kejuaraan olimpiade komputer dan matematika. Tetapi tidak pada diriku, aku sangat berbeda dengan mereka. Aku sangat pandai menghafal dan rajin menulis. Aku selalu mendapatkan A dalam bidang pengetahuan alam dan biologi. Aku sangat mencintai dunia kesehatan dan sistem kerja fisiologi dan anatomi tubuh. Aku tidak pernah mendapatkan passion selama perkuliahanku. Karena inilah bukan pilihanku. Aku terpaksa mati, dan tenggelam dalam kerasnya persaingan kehidupan kampus.

Pada masa-masa perjuangan itu, aku bertemu dengan seseorang yang menjadi cinta pertamaku. Seorang pria yang sudah lama menjadi temanku, namun Ia baru mengungkapkannya setahun sebelum aku wisuda dari bangku perkuliahanku. Ia memang pria yang telah lama kucintai, jauh sebelum aku mengenalnya. Aku telah banyak menghabiskan waktu bersamanya, hingga lengkap senyum dan air mataku karnanya.

Suatu saat, aku memperkenalkan pria itu kepada Ibuku. Pria cinta pertamaku yang kuharapkan juga menjadi cinta terakhirku. Kukenalkan ia pada Ibu di hari itu. Ibu menyambutnya dengan ramah dan sepertinya terlihat bahwa Ibu telah menerimanya. Aku merasa bahagia mengetahui hal itu, walaupun dalam satu sisi dihatiku masih ada keraguan bahwa Ibu akan benar-benar menerima pria yang kucintai itu. Dan setelah lima tahun lamanya aku menjalani kisah bersamanya, akhirnya pria itu datang untuk melamarku.

Aku tidak dapat memberikan keputusan secara langsung kepadanya saat itu, karna aku harus menunggu keputusan Ibuku. Aku mendekati Ibuku dan menanyakan akan keputusan Ibu. Ibu terdiam. Begitu lama terdiam. Hingga aku memanggil Ibu berulang kali.
"Bu, apakah boleh aku menerimanya? aku sudah sangat menyayanginya, Bu?"
Ibu masih terdiam.
Setelah beberapa waktu aku menanyakannya kembali kepada Ibu, "Ibu,.. apakah Ibu tidak suka terhadap pria yang telah kucintai itu?"
Ibu masih terdiam.
Dengan mengehembuskan nafas panjang, Ibu mulai menjawab. 
"Nak, aku akan memperbolehkanmu dengan siapa saja, asalkan kau telah menuntaskan studimu di jenjang Magister di Jerman". itu jawabanmu.
Aku terdiam. termenung seketika disaat itu. Sungguh pilihan yang sangat berat. Aku tahu dibalik itu Ibu masih belum menyetujui atau bahkan belum bisa menerima pria yang datang melamarku itu. Meski dengan kata 'tidak', tapi inilah penolakan pertama Ibu yang paling membuatku amat bimbang. Ibu memang menolaknya dengan halus, hingga berkata 'tidak' saja, Ibu memberikan persyaratan kepadaku agar terlebih dahulu mengenyam bangku magister di negeri orang, Jerman.

Sungguh sulit bagiku untuk mengatakan kepadanya. Sungguh aku tak mampu untuk mengungkapkannya. Dia, pria pertama yang mampu membuat aku belajar cinta yang tulus, dimana aku mencintainya tanpa sebuah alasan. begitu murni.
"Dinda, Aku akan menunggumu sampai engkau selesai menempuh studi S2 mu di Jerman. Aku mencintaimu", Ia mengatakannya padaku. Rupanya Ia bersedia menungguku, saat itu. Pria itu lalu memelukku dengan sangat erat sambil mengucapkan perpisahan dan janji untuk slalu menungguku.

Kisah ceritaku bersamanya yang telah kubina selama lima tahun, akhirnya harus terhenti ketika aku harus menempuh studiku magister di Jerman. Aku menuruti Ibu.

3 Tahun Kemudian
aku kembali ke Indonesia. Aku bertemu Ibuku. Aku memeluk erat Ibuku. Aku sangat bahagia melihat beliau menyambutku dengan begitu bahagia di bandara, melihat putrinya telah berhasil menempuh pendidikan di luar negeri. Aku juga tak hanya berkuliah disana, tetapi juga mencoba bekerja di salah satu perusahaan teknologi disana. Bukan hanya bangga karena aku telah berhasil menuntaskan studiku disana, tetapi aku juga sangat bahagia karna inilah saatnya aku bisa bertemu kembali dengan sosok pria yang kucintai itu.

Sesampainya di rumah, aku memasuki kamar tidurku. Di atas mejaku, aku menemukan banyak undangan pernikahan dari kerabat-kerabat dan teman-teman lamaku di masa perkuliahan. Ibu menaruhnya dalam satu kotak. begitu banyak undangan-undangan itu, hingga aku tak bisa membacanya satu persatu.

hingga suatu hari, seorang tukang pos mengirimkan surat undangan pernikahan dari salah satu teman perguruan tinggiku. Bella, namanya. Bella adalah sahabat karibku di saat perkuliahan. dengan merasa amat bahagia, aku berniat untuk menghadiri pesta perkawinan sahabat lamaku itu. Aku mempersiapkan gaun pesta terindah dan cidera mata yang unik dan spesial untuk Bella.

Pukul tujuh malam waktu berjalan, aku memasuki resepsi pernikahan Bella. Bella dan Mas Yanto, mempelai di pernikahan itu. Aku memberinya ucapan selamat dan mendoakannya agar menjadi keluarga yang sakinah dan berbahagia. Para tamu undangan Bella pun merupakan teman-teman satu almamater kampus. Kami merasa seperti reuni. Banyak diantara mereka yang datang dengan menggandeng pasangannya. Ada juga diantara mereka yang mengajak buah hatinya, yang begitu putih seperti kertas tanpa noda.

Kami berbincang-bincang satu sama lain. Memperkenalkan diri masing-masing yang dalam keadaan yang lebih baik. Ada yang menjadi direktur, ada yang menjadi pegawai pemerintah, bahkan ada yang menjadi alim ulama di suatu pesantren. Dan ketika kutemui sosok seorang, yang tak asing dihati dan jiwaku. Dia. Pria itu. 

Dia, Pria itu.

Sosok pria yang telah kucintai lebih dari aku mengenalnya. Seorang pria yang telah menjalani lima tahun bersamanya. Dan sosok seorang pria yang telah datang melamarku delapan tahun lalu sebelum aku berangkat ke Jerman, kini Ia duduk didampingi oleh seorang wanita yang menggedong seorang balita. Dia, sudah ada yang memilikinya. Pria yang telah berjanji untuk menungguku selama aku menempuh studi di Jerman, sekarang telah menikah tanpa aku tahu kapan Ia memberitahuku detik waktunya.

Ia begitu bahagia, tertawa sambil duduk menemani keluarga kecilnya di pesta itu. Sementara aku disini, diam duduk membisu. Tak terasa, air mata ini pun jatuh mengalir, membahasi pipiku. Tak mau berhenti. Ia mengalir sesuka hatinya. Sampai pria itu menyadari keberadaanku.

Ia tertegun, terkejut melihat kehadiranku, yang sudah datang ke Indonesia. Ia pun berdiri mengajak istinya untuk menghampiriku. Dengan senyumannya yang penuh wibawa, ia menjabat tanganku
"Dinda, perkenalkan ini istriku Seli, dan ini anakku Rudi"
aku menjabat tangannya. Dan langsung teringat betapa hangatnya Ia memelukku saat itu, saat sebelum aku meninggalkan indonesia. Aku sungguh tak tahu, jika pelukan itu adalah pelukan terakhir yang kumiliki sebelum aku melanjutkan pendidikan di Jerman

Setelah menjabat tanganku itu, Ia pun pergi meninggalkanku, seperti sebelumnya tidak pernah mengenalku. Seperti diantara aku dan dia tidak pernah memiliki kisah apapun. Seperti aku dimatanya adalah bukan siapa-siapa. Bukan seseorang yang pernah mengisi hatinya. Aku bukanlah siapa-siapa.

Aku menangis. menangis kencang meninggalkan pesta itu. Aku pulang menuju rumah dan segera memeluk Ibuku.
"Ibu.... Ibu....." tangisku
"Kenapa, nak ? "
"Bu,... pria yang kucintai itu Bu. Pria yang datang melamarku dulu. Tadi datang ke dalam pesta perkawinan temanku. dan menjabat tanganku. lalu memperkenalkan istri dan anaknya kepadaku.
Aku siapa Bu, setelah lima tahun kujalani suka duka bersamanya.
Lalu hanya kutinggalkan tiga tahun untuk mendapatkan restumu, Ibu.
Ibu......"

Harapanku telah sirna sudah. aku berharap  dengan kepulanganku setelah menempuh studi itu aku dapat meraih restu Ibuku, ternyata tidak. Aku mendapatkannya lebih dari apa yang aku duga, setelah tiga tahun lamanya aku bersusah payah menimba ilmu di negeri orang, menuruti perintah Ibu. Pria itu telah pergi dan tak kan pernah kembali. Dan pria itu tak kan pernah dapat kumiliki

Puluhan Tahun Kemudian
Selama puluhan tahun lamanya, aku selalu menolak pria-pria pilihan Ibuku. Aku masih setia mencintainya. Kini rambutku sudah berwarna dua. Hitam dan putih menyatu menjadi abu-abu. Aku masih sering menerima undangan pesta pernikahan dari kerabat dan kawan-kawanku. Hingga kini, aku masih sendiri. Sendiri memendam dan mengubur rasa cinta itu dalam-dalam. Berharap Ia dapat pudar seiring berjalannya waktu. Berharap cinta yang tulus itu dapat terkikis oleh waktu.

Sungguh, waktu telah membuktikan besar cinta kita berdua. Akankah semakin bertambah rasa cinta itu, ataukah pudar seiring bertambahnya waktu.

Namun sayang, diusiaku yang sudah tak muda lagi ini, aku masih sangat mencintainya. Masih menunggunya. terbayang-bayang aku pulang dari bandara dan pria itu datang menyambutku dengan bahagia. Hanyalah angan-angan semata. Bukan karena aku kehilangan pelukan dari ragamu, tapi karna aku kehilangan cinta dan hatimu. "Entah sampai kapan, hingga senja aku masih menunggumu. Entah karna aku setia kepadamu, ataukah aku terlalu dungu. Aku akan slalu menunggumu"

Aku selalu menuruti Ibu. Hingga ujung masa senjaku. Aku masih hidup berdua bersama Ibuku. 

Entah aku harus berbuat apa, Tuhan, namun izinkan aku untuk sekali saja memilih dalam hidupku. Izinkanku agar aku dapat memiliki sebuah pilihan saja, sebuah pilihan yang berasalkan dari hati nuraniku. Bukan pilihan Ibu, atau bukan pilihan siapaun. Izinkan aku memilih, Tuhan. Aku ingin mencintainya seuumur hidupku



*Sebuah Puisi Dinda yang tersimpan puluhan tahun lamanya, untuk Pria yang dicintainya itu. dan tak ada seorang pun yang membaca.*
Kamu..
Melihatku seperti langit sore 
Begitu samar dengan bayangan
sedikit demi sedikit menghilang
Menjauhiku seperti tak pernah mengenalku
Membelakangi semua kisah indah
yang pernah dilalui bersama
Kemudian..
Kamu menyebutku.
Masa lalu