Tips Jalan-jalan (Murah) ke Luar Negeri

Beberapa waktu lalu kami sekeluarga, me, wife, son, and daughter, jalan-jalan berlibur ke luar negeri. Sebagai karyawan swasta rendahan yang duitnya gak banyak, istri juga pns yang pergi pagi pulang petang pendapatan pas-pasan, kami sadar tidak punya banyak pilihan untuk berlibur ke luar negeri. Kebetulan aku sendiri sudah pernah ke Amerika untuk sebuah project selama 4 bulan 12 tahun yang lalu. Singapore 3 kali, dan Malaysia 1 kali. Dari ketiganya yang paling aku suka adalah Singapur. Negerinya memang kecil, tetapi sangat teratur, bersih, dan aman. Nyamuk, lalat, dan kriminal susah sekali mencarinya.

Nah kebahagiaanku berpetualang di luar negeri ingin aku tularkan kepada istri dan anak-anakku. Tujuannya agar mereka mendapat eksposur dan wawasan negeri tetangga, termasuk budaya, teknologi, dan kehidupan sosialnya. Alhamdulillah dari bonus pekerjaan tahun ini aku mencadangkan sebagian untuk hal ini. Kebetulan dari kantor ada kewajiban mengambil cuti blok, yaitu 6 hari kerja berturut-turut. Kewajiban ini aku sinkronkan dengan rencana jalan-jalan tadi. Mulailah diskusi dengan istri tujuan wisata yang sesuai dengan kantong.

OK, untuk jalan-jalan ada tips jalan-jalan terjangkau di bawah ini: (bagiyang duitnya gak ada nomor serinya, boleh dilewati):

  1. Tentukan daerah tujuan wisata yang sesuai anggaran (googling atau nanya teman yang pernah ke sana, jenis wisata yang tersedia, tarif makanan, hotel, tiket pesawat, dsb. Kalau anggaran kurang jangan memaksakan diri. Alternatifnya menabung sampai cukup atau cari alternatif tujuan wisatanya)
  2. Tentukan tujuan jalan-jalan (mau wisata, jalan-jalan, belanja atau apa? Ini menentukan mau nginep di mana. Kalau mau belanja ya cari penginepan yang dekat dengan tempat belanja, atau pusat transportasi, agar tidak sulit untuk pergi bolak-balik. Secara umum, kalau ingin menekan biaya taksi, cari penginapan yang dekat dengan sarana transportasi umum. Di Singapore banyak hotel yang di bawah tanahnya ada MRT dan di lantai atasnya ada mal dan food court. Kalau hujan gak pusing kehujanan. Tentu saja harga hotelnya mungkin agak mahal.)
  3. Tentukan mau laundry atau ganti baju setiap hari (ini sangat menentukan jumlah baju yang dibawa, berat bagasi di pesawat nantinya). Penerbangan murah macam Air Asia untuk bagasi bayar lho.. berat 20 kg dan 25 kg beda. Kalau bisa apa yang mau dibawa ditimbang dulu agar bisa beli bagasi secara online, yang jatuhnya lebih murah.
  4. Untuk menekan anggaran makan, bisa beli makanan kering seperti dendeng kering, paru kering (Resto Padang tertentu menjualnya – misal di BSD dekat pintu tol JORR), popmi, belut goreng, tempe kripik, dsb. Ini akan membantu kalau nggak cocok dengan makanan setempat. Kalau mau menginap di rumah saudara atau teman, jangan lupa bawa oleh-oleh khas Indo untuk sedikit memuaskan rasa kerinduan makanan tanah air.
  5. Tentukan anggaran hotelnya. Kalau bawa anak, pastikan tahu benar ukuran kasurnya. Kalau mau pesan biaya murah dari situs hotel murah macam Agoda.com, double check dengan email ke hotelnya untuk menanyakan ukuran kasur. Foto di Agoda kasur-kasurnya tampak lebih lebar dari kenyataannya. Tips: aku sendiri membawa cadangan kasur angin dengan pompa elektrik dilengkapi 2 bantal anginnya. Jadi berempat gak bakalan kekurangan tempat tidur. Daripada keluar uang lagi untuk extra bed, solusi kasur angin bisa jadi alternatif untuk perjalanan murah. Kalau pergi backpaking, cuma ranselan doang, bisa cari hotel khusus backpacker yang murah banget. Tidurnya rame-rame dalam bangsal dengan kasur tingkat. Yah ada harga ada barang. Kalau mau nyaman kasur super luas ya budgetnya mesti gede. Kalau sedeng ya cari kasur standard plus kasur angin. Kalau backpackingan bisa modal sleeping bag atau hotel khusus backpacker. Apartemen murah meriah bisa dicari di belakang Lucky Plaza dengan MRT dengan Sommerset. Biasanya yang punya orang Indo juga. Intinya, you and your money decide it.
  6. Oleh-oleh. Jalan-jalan biasanya menuntut kita untuk beli oleh-oleh. Maklum di Asia emang gitu. Karena kita super sosial, maka temen kantor, keluarga, dan tetangga gak afdhol kalau gak kebagian oleh-oleh. Nah tentukan itu oleh-oleh mau dibawa tangan atau masuk koper. Kalau koper udah penuh mungkin perlu extra koper. Kebetulan karena istri beberapa waktu lalu ke Batam, aku minta dia beli oleh-oleh khas Singapore di Batam. Kaos Singapore dijual di Batam dengan harga bisa 1/2 sampai 1/3 lebih murah. Gantungan kunci, kacang campur, dsb bisa beli di Batam, bahkan bisa dipaketkan! Nah ini bisa jadi solusi alternatif. Barangnya sama persis dengan yang ada di Mustafa Singapore dengan harga jauh lebih murah! (Jangan bilang-bilang teman kantorku ya! Xixixi)
  7. Buat itinerary detil dari tiba di bandara sampai balik lagi ke Jakarta. Aku sendiri tulis jam berapa sampai di Singapur, naik apa dari bandara ke hotel. Butuh berapa dollar. Makan malam di mana, anggaran berempat berapa. Semua dihitung. Termasuk beli minuman botol mineral macam Aqua di Giant / Carrefour di sana, beli buah biar pencernaan dan daya tahan tubuh prima, dan cemilan buat di hotel. Makanan / minuman di minibar hotel jauuuuh lebih mahal. Jadi gak ada salahnya belanja minuman di luar lalu dinikmati di kamar. Untuk tujuan wisata, misal ke Singapur bisa ke www.yoursingapore.com, semua tempat wisata sampai transportasinya lengkap sekali. Kalau ke Malaysia bisa ke http://www.tourism.gov.my/. Tiket masuk ke tempat wisata juga ada dan harus tahu agar bisa dianggarkan kalau gak mau ada surprise effect. Lebih baik lagi kalau punya PLAN B. Misal mau ke Sentosa yang rata-rata outdoor. Kalau hujan, alternatif terdekatnya mau ke mana. Gunakan Google Maps di Blackberry atau gadget untuk tahu lokasi. Gunakan juga situs macam http://gothere.sg/maps untuk tahu persis dari hotel kita ke tempat tujuan tertentu naik bis, MRT, atau taksi dengan perkiraan biaya transportasinya. Untuk di Singapore, kita bisa beli tiket EZLINK yang bisa digunakan untuk membayar kereta, bus, dan monorail ke Sentosa. Ada yang tiket untuk turis yang bisa direfund per hari atau tiket yang lebih permanen yang bisa dipakai sampai 5 tahun. Tiketnya 5 Sing Dollar bisa diisi ulang 10 Sing Dollar. Nah ini tergantung berapa lama di Singapor, dan ada rencana balik lagi apa nggak.  Kalau agak lama dan pengen balik lagi ya sebaiknya ambil yang permanen. Kalau sangat singkat ambil paket turis.
  8. Untuk antarnegara, misal dari Singapur mau ke Malaysia juga. Tentukan mau tinggal di mana. Apakah di Malaysia atau di Singapur lalu baru travel. Kalau memang mau lebih lama di Singapur ya tinggal di Singapur, lalu ke Malaysia. Tetapi kalau tidak, lakukan sebaliknya. Biaya hidup dan hotel di Malaysia lebih murah dibandingkan di Singapur. Bisa 2 atau 3 kali lebih mahal di Singapur. Jadi kalau mau menekan biaya, travel ke Malaysia, stay di sana lebih lama, baru terbang atau naik bus ke Singapur. Ini bisa jadi pertimbangan. Sebagai perbandingan, aku menginap di Hotel Sentral Kualalumpur yang semalamnya 500 rebu lewat Agoda, sementara di Singapur 1,3 juta per malam lewat Agoda dengan fasilitas yang hampir sama.
  9. Kartu kredit akan sangat membantu. Pembelian tiket pesawat di Air Asia dan hotel di Agoda membutuhkan kartu kredit. Setibanya di tempat tujuan, penggunaan kartu kredit secara tepat justru bisa menghemat. Misal ada bank yang memberikan diskon belanja di tempat tertentu atau kursnya menggunakan kurs tengah yang mungkin bisa lebih kompetitif. Pastikan gunakan dengan bijak. Misalnya walau aku menggunakan kartu kredit, namun uang cash disisihkan senilai itu dari anggaran untuk membayarnya sepulang dari wisata. Jangan sampai pulang-pulang anggaran melebihi rencana awalnya. Kartu kredit juga bisa dimanfaatkan untuk ngadem di lounge bandara. Aku mendapat Starbucks senilai 1 rupiah hanya dengan menunjukkan boarding pass atau tiket pesawat waktu di Soekarno Hatta. Telepon call center mereka apakah ada penawaran khusus kartu kredit yang kita punyai di negara tujuan. Akan menghemat sekali kalau kita bijak dan cerdas menggunakan kartu kredit. Jangan sampai kebobolan tapi manfaatkan privillegesnya!
  10. Bawa stroller kalau bawa balita. Berguna buat kalau dia tidur dan membawa berbagai perabotan lenong, dari minum, makanan, dsb.
  11. Bawa kompas karena beberapa hotel tidak memberikan petunjuk kiblat untuk sholat. Kompas juga berguna kalau kita melihat peta dan butuh tahu mana arah mata angin.
  12. Jangan bawa cairan atau gel lebih dari 100 gr ke kabin pesawat karena beresiko disita. Semua benda tajam seperti pisau cukur, swiss army dan sebagainya kalau mau dibawa masukkan ke bagasi. Jangan dibawa di tas ransel. Kecuali mau beramal ke petugas bandara 🙂
  13. Kalau hobi fotografer, jangan lupa bawa tripod. Nyesel minta ampun kalau ada objek di malam hari yang bagus jadi goyang karena butuh shutter panjang.
  14. Hati-hati dengan taksi di Malaysia yang tidak berargo. Tanya saja dulu, dia pake argo atau tidak. Kalau perlu cari yang benar-benar ada petunjuk taksi ini berargo. Jika tidak maka selamat digebuk dengan ringgit yang gila. Taksi di Singapur relatif jauh lebih baik. Panggil saja uncle ke supir taksi Singapur agar lebih akrab, sesuai tips di bandara Changi. Untuk Singapur supir taksi dikontrol pemerintah dalam arti pendatang dilarang jadi supir. Harus pribumi. Mungkin untuk menjaga image dan mencegah supir taksi memberikan kesan negatif. Untuk naik taksi, kalau bisa hindari jam-jam sibuk, misal jam berangkat kerja atau jam pulang kerja atau jam di atas jam 12 malam. Tarifnya premium. Di atas jam 9:30 dan sebelum 5 an relatif OK. Setelah jam kantor sampai tengah malam juga OK. Sisanya mahal deh.
  15. Kalau dari Kualalumpur menuju LCCT (Low Cost Carrier Terminal) di Sepang sebaiknya kalau buru-buru naik kereta ekspress ke Salak Tinggi, baru sambung shuttle ke Sepang. Naik sky bus dari KL Sentral memang lebih murah, tapi jauh lebih lama.
  16. Tidak ada nasi di KFC/MacD baik di Singapore maupun di Malaysia. Pilih nasi lemak kalau bingung cari makanan. Food court Banquet di berbagai mal Singapur semuanya halal. Kalau susah cari makanan, selalu pilih ikan ketimbang lainnya.
  17. Karena susah cari mesjid, jamak dzuhur dengan ashar, dan maghrib dengan isya. Sebagai musafir kita dapat ruhsoh untuk melakukannya. Yang penting selama belum dapat predikat mukim.
  18. Bawa selalu payung kecil. Kalau hujan gak terlalu heboh. Singapore itu diam-diam sering hujan 🙂
  19. Kalau takut kena roaming dan kartumu pasca bayar yang takut jeblok, beli saja kartu perdana lokal. Misal di Singapore dengan 15 SGD dapat paket 3 hari dengan layanan blackberry 50 Mb data dari SingTel. Di Malaysia cuma 30 ringgit, layanan blackberry gak sampai 1 ringgit per hari. Cukup restart per hari, otomatis dipotong pulsanya. Aku pakai Tune Talk. Dengan cara ini bisa tetap update status, cek email kantor, YM ke Mbak di rumah nanyain kabar dan kondisi rumah, dsb. Pengalaman billing ngaco dari Telkomsel selama 2 kali ke Singapur, akhirnya aku matikan kartuku selama travelling dan membeli perdana lokal. Lebih murah dan aman.
  20. Untuk beli oleh-oleh di Singapur yang paling lengkap di Mustafa (dekat Farrer Park) yang 24 jam, sedangkan di Kualalumpur Malaysia bisa di Central Market Pasar Seni, Mesjid Jamek, dan sekitarnya.
  21. iPod touch, iPad, dan berbagai gadget kesukaan Anda akan membantu membunuh waktu dengan mendengarkan musik, main game, browsing internet di mana saja Anda membutuhkannya.
  22. Ke luar negeri harus punya paspor. Kalau mau bikin, baca tips-tipsnya di sini. Kalau sudah punya cek kapan expired. Jangan sampai mau berangkat ternyata paspornya udah kadaluarsa. Bisa berabe.
  23. Awas, colokan listrik di Malaysia dan Singapur lubangnya 3. Pastikan bawa power extension dan power adapter 3 ke 2. Ini penting untuk charging laptop, iPad, dan blackberry!
  24. Tips terakhir adalah yang terpenting. Niat dan kemauan. Tidak ada yang tidak mungkin kalau kita benar-benar menginginkannya (man jadda wajada). Perintah untuk saling mengenal ada dalam Al Quran. “Wahai sekalian manusia, sesungguhnya Kami menciptakanmu dari seorang laki-laki dan seorang perempuan, dan menjadikanmu berbangsa-bangsa dan bersuku-suku supaya kamu saling mengenal. Sesungguhnya orang yang paling mulia di antara kamu di sisi Allah ialah yang paling bertaqwa. Sesungguhnya Allah Maha Mengetahui lagi Maha Mengenal.” (Qs. al-Hujrat [49]:13). Nah bagaimana mau kenal kalau tidak saling mengunjungi? Supaya kita tidak bagai katak dalam tempurung, bangun pagi, ngantor / sekolah, pulang, tidur, dan begitu seterusnya. Kita juga butuh refreshing dan punya kesempatan bersilaturahmi dengan bangsa lain agar saling mengenal. Share perjalananmu di sini ya!

Slideshow ini membutuhkan JavaScript.

TTreeView and TClientDataSet Sample

Mas Rahman, menanyakan tentang penggunaan TreeView dengan database. Aku sendiri menganjurkan TreeView dari DevExpress karena sangat mudah dan intuitif. Jedi VCL juga memiliki JDbTreeView tetapi penggunaannya sangat tidak intuitif dan manualnya sulit didapatkan. Searching di google, di milis JEDI saja ada komentar berikut:

I had successfully implemented DevExpress’s DBTreeview when I worked for
my last employer, so I thought I could apply what I had learned in my
home project using JvDBTreeview, but failed after many hours.
Apparently, they are similar, but not similar enough. I also searched
the help files and the internet extensively for any info about this
component and finally gave up looking and bought DevExpress’s DBTreeview
Suite. With the aid of their very well written help files and online
support files, I was able to create exactly what I wanted in about two
hours.

Warning: Woll2Woll’s very nice DB treeview is easier to implement than
DevExpress’s, but shields the programmer from learning how the treeview
really works and actually creates work for the programmer when they try
to override its default behavior.
I recommend DevExpress’s treeview over W2W’s. If yo

u buy it, I’ll help
you get it running.

Good luck.
Regards,
Sam Hunt

Jadi menurut saya kalau memang tidak beli TreeView dari DevExpress ya mau tidak mau menggunakan TTreeView bawaa Delphi. Nah butuh rekursif prosedur untuk bisa membaca seluruhnya.

Nah berikut ini adalah coding sample penggunaan untuk loading tree structure dari database. Intinya, setiap row butuh 1 parent ID dan ID dia sendiri, termasuk field untuk menampilkan data di treenya. Jadi minimal butuh 3 field. Parent ID, Child ID, dan Caption yang akan dimunculkan.

Untuk membuatnya, drop komponen berikut ke form:

  1. TTreeView
  2. Button dengan caption Refresh Tree
  3. TClientDataSet (atau gunakan komponen TTable atau TQuery atau turunan TDataSet)
  4. TDataSource
  5. TDBGrid
  6. TDBNavigator
 
unit unitMain;

interface

uses
  Windows, Messages, SysUtils, Variants,
  Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls, ExtCtrls,
  DBCtrls, Grids, DBGrids,  ComCtrls, DB,
  DBClient;

type
  TformMain = class(TForm)
    treeView: TTreeView;
    tbmSample: TClientDataSet;
    tbmSampleParentID: TStringField;
    tbmSampleChildID: TStringField;
    tbmSampleCaption: TStringField;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    dtsSample: TDataSource;
    btnRefresh: TButton;
    procedure btnRefreshClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure CreateTree(parentID: String; ParentNode: TTreeNode);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  formMain: TformMain;

implementation

{$R *.dfm}

procedure TformMain.CreateTree(parentID: String; ParentNode: TTreeNode);
var
  list: TStringList;
  i: integer;
  newNode: TTreeNode;
begin
  list := TStringList.Create;

  tbmSample.Filtered := False;
  tbmSample.Filter := 'ParentID = ' + QuotedStr(parentID);
  tbmSample.Filtered := True;

  while Not tbmSample.EOF do
  begin
    if tbmSample.FieldByName('ParentID').AsString = parentID then
      list.Add(tbmSample.FieldByName('ChildID').AsString + '=' +
        tbmSample.FieldByName('Caption').AsString);
    tbmSample.Next;
  end;

  i := 0;
  while i < list.Count do
  begin
    begin
      newNode := treeView.Items.AddChild(ParentNode,
        list.Values[list.Names[i]]);

      CreateTree(list.Names[i], newNode);

      Inc(i);

      if i Mod 10 = 0 then
        Application.ProcessMessages;
    end;
  end;

  list.Free;
end;

procedure TformMain.FormCreate(Sender: TObject);
begin
  tbmSample.Open;
  tbmSample.Insert;
  tbmSampleParentID.AsString := '0';
  tbmSampleChildID.AsString := '1';
  tbmSampleCaption.AsString := 'Wisnu';
  tbmSample.Post;

  tbmSample.Insert;
  tbmSampleParentID.AsString := '1';
  tbmSampleChildID.AsString := '2';
  tbmSampleCaption.AsString := 'Rayyan';
  tbmSample.Post;

  tbmSample.Insert;
  tbmSampleParentID.AsString := '1';
  tbmSampleChildID.AsString := '3';
  tbmSampleCaption.AsString := 'Aila';
  tbmSample.Post;

  tbmSample.Insert;
  tbmSampleParentID.AsString := '0';
  tbmSampleChildID.AsString := '4';
  tbmSampleCaption.AsString := 'Rachman';
  tbmSample.Post;

  tbmSample.Insert;
  tbmSampleParentID.AsString := '4';
  tbmSampleChildID.AsString := '5';
  tbmSampleCaption.AsString := 'Fina';
  tbmSample.Post;

  tbmSample.Insert;
  tbmSampleParentID.AsString := '4';
  tbmSampleChildID.AsString := '6';
  tbmSampleCaption.AsString := 'Fani';
  tbmSample.Post;
end;

procedure TformMain.btnRefreshClick(Sender: TObject);
var
  topNode: TTreeNode;
begin
  topNode := treeView.Items.Add(Nil, 'Root Node');
  CreateTree('0', topNode);
  tbmSample.Filtered := False;
end;

end.
 

Untuk project lengkapnya, download saja di sini.

Tampilan Aplikasi
Tampilan Aplikasi

Hati-hati dengan Kartu Kredit Shopping Card Permata

Beberapa minggu lalu aku ditawari kartu kredit Shopping Card dari Permata Bank. Tawarannya adalah belanja di sembarang supermarket dan makan di sembarang restoran (termasuk Warteg – kalau menerima credit card) akan diberikan cash back 10%. Belanja minimal 12,5 juta per tahun bebas iuran tahunan. Menurut saya tawaran ini sangat menarik. Mengapa? Belanja bulanan dan makan di restoran bisa lebih dari sejuta dan optimis bisa memenuhi target tersebut. Dari penawaran telemarketing tersebut aku langsung mengiyakan untuk dibuatkan kartu kreditnya. Begitu datang kartunya, aku baca aturan main di buku petunjuknya, dan terkejut ketika ada aturan penting yang tidak disampaikan pada waktu ditawari kartu kredit ini. 10% cash back baru akan diberikan apabila total belanja restoran dan supermarket maksimal 10% dari total belanja bulanan. Jadi misal belanja di supermarket dan restoran total 1 juta. Total tagihan bulan itu untuk semua macam transaksi adalah 10 juta. Karena persentase belanja supermarket dan restoran tepat 10%, maka cash back 10% senilai 100 ribu akan diberikan. Bagaimana bila belanja total bulan itu 4 juta rupiah? Itu berarti total persentase resto dan belanja melebihi 10%, yaitu 25%. Maka cash backnya adalah 1% dari total belanja, yaitu 1% * 4jt = 40 ribu rupiah. Nah buat saya jadi tidak menarik lagi. Apalagi info penting ini tidak disampaikan pada saat ditawari via telemarketing. Langsung saja saya telepon ke Call Centernya untuk membatalkan kartu saya dan aku gunting menjadi beberapa bagian. Informasi perhitungan bisa dilihat di situs Permata Bank di sini.

Hati-hati kalau ditawari produk ini, atau dari kartu kredit lainnya. Selalu baca dengan teliti aturan main agar sama-sama enak antara produsen dan konsumennya.