Friday, August 26, 2011

Object Oriented - Class, Deklarasi Class dan Access Modifier(Part 2)

Hmm, dilanjut saja untuk implementasinya. Di postingan sebelumnya, disebutkan bahwa 1 kelas nantinya akan dibuat menjadi 2 file, header dan implementasinya. Tujuannya dipisah seperti itu agar semua fungsi yang ada bisa menggunakan fungsi lain. Karena proses kompilasi program kan top-down, jadi kalo tidak dipisah nanti fungsi di atas tidak bisa menggunakan fungsi yang dibawahnya. Baiklah, mari kita bahas satu persatu.
File header, Bus.h

#pragma once
#include <iostream>
#include <iomanip>
#include <string>
using std::cout;
using std::endl;
using std::setw;
using std::setprecision;
using std::string;

class Bus
{
private:
    int Id;
    string Name;
    long Distance;
    int PassengersCount;
    int Capacity;
    int Position;
    double Fuel;
public:
    Bus(void);
    Bus(int Id, string Name, int Capacity);
    void Initialize(int PassengerCount);
    void Move();
    void Stop();
    int Unload(int PassengersCount);
    int Load(int PassengersCount);
    void Refill();
    int GetId();
    int PassCount();
    int Position();
    long GetDistance();
    string GetName();
    double GetFuel();
    void DisplayData();
    ~Bus(void);
};
 
Nah, disitu dapat dilihat ada deklarasi variabel-variabel dan beberapa fungsi ditambah keterangan public dan private yang akan dijelaskan di postingan berikutnya. Seperti yang sebelumnya dibahas, bahwa yang tipenya variabel merupakan atribut dan yang bertipe fungsi adalah perilaku. Untuk bagian atribut, mungkin tidak perlu dijelaskan lebih lanjut karena sama seperti pendeklarasian variabel biasa, sama seperti pemrograman lain, yg tidak berorientasi objek. Untuk fungsi-fungsi/periaku objek, ada sedikit perbedaan. Disitu dapat kita lihat ada beberapa fungsi yang tidak ada tipenya dan namanya sama seperti nama kelas. Itulah yang disebut fungsi constructor dan destructor. Apa lagi itu constructor dan destructor?
Jadi, suatu kelas itu pasti punya yang namanya constructor dan destructor, minimal ada 1 constructor dan 1 destructor.
Di baris kode tersebut dapat kita lihat ada 2 fungsi dengan nama Bus dengan parameter berbeda. Itulah yang disebut constructor. Fungsinya untuk membuat objek baru ketika dideklrasikan di fungsi main() dan mengalokasikan suatu blok memory untuk objek tersebut. Sedangkan ada fungsi dengan nama Bus tetapi diawal tanda '~'. Itulah yang disebut destructor. Fungsinya untuk membebaskan alokasi memory ketika program akan keluar. Secara default, fungsi destructor dipanggil compiler secara otomatis sebelum return 0 pada fungsi main(). Jadi dalam fungsi itu isinya cuma membebaskan memory yang digunakan.
Selain, constructor dan destructor ada fungsi khusus lain yaitu fungsi accessor dan modifier. Karena kedua fungsi ini berhubungan dengan yang namanya access modifier yang private dan public tadi itu, maka penjelasan kedua fungsi ini akan dijelaskan bersamaan bagian access modifier. Nah, di baris kode di file header, jika ada yang namanya diawali Set umumnya merupakan fungsi modifier sedangkan yang awalannya Get umumnya fungsi accessor. Namun, tidak selalu seperti itu karena masalah penamaan tergantung programmer juga. Tapi standart OOP umumnya seperti itu. Set bla bla bla berarti modifier, kalo Get bla bla bla berarti fungsi accessor.
Nah, lalu di Bus.h diatas ada beberapa fungsi yang diawali Get, itula fungsi accessor di kelas Bus, namun tidak ada fungsi modifier karena memang tidak membutuhkan fungsi modifier yang terpisah. Fungsionalitas fungsi modifier sudah diambil alih oleh perilaku objek.
Berarti fungsi sisanya, yang tidak termasuk constructor, destructor, accessor maupun modifier merupakan fungsi perilaku, fungsi-fungsi yang menggambarkan perilaku objek di dunia nyata.
Fiuh, baru bahas file header saja sudah panjang, dan saya sudah mulai mengantuk, sudah berkali-kali salah ketik, hehe. Mungkin dilanjut di postingan berikutnya saja untuk penjelasan implementasinya.
Semoga menambah pemahaman. Stay in touch ya.. hehe :P

Object Oriented - Class, Deklarasi Class dan Access Modifier(Part 3)

Hmm, mari lanjut lagi belajar OOP-nya :D
Jadi, setelah kita pelajari tentang deklarasi kelas, diagram kelas, implementasi sederhana di bahas C++ sangat perlu diketahui juga tentang Access Modifier.
Secara definisi, access modifier adalah batasan dan cara mengakses suatu properti dan/atau fungsi dari sebuah kelas. Dengan access modifier inilah salah satu tujuan belajar OOP dapat dicapai yaitu enkapsulasi data. Enkapsulasi data merupakan cara melindungi atribut/fungsi tertentu dari sebuah kelas agar tidak sembarangan diakses dan dimodifikasi di suatu bagian program sehingga validitas data bisa terjaga.
Waktu saya belajar OOP dulu, katanya access modifier ada 4 macam, tapi di referensi lain disebutkan 3, karena yang 1 lagi jarang sekali dipakai dan cukup rumit. Jadi, mungkin akan kita bahas yang 3 saja, yang umum dan sering digunakan.
  1. Public
    Public, seperti namanya, atribut atau fungsi yang diberi access modifier ini bebas diakses dari manapun dari program. Umumnya, sebuah fungsi constructor dan destructor pasti public. Kemudian fungsi-fungsi accessor dan modifier juga diberi akses public. Namun, tidak semua juga harus dijadikan public, karena tidak semua fungsi juga boleh diakses dari luar kelas, tergantung kebutuhan.
  2. Private
    Atribut atau fungsi yang diberi akses private hanya bisa diakses didalam kelas itu sendiri. Umumnya atribut yang menggambarkan sifat objek diberi akses private. Hal ini dilakukan untuk melindungi validitas data dan keperluan error handling. Karena itulah, ditambahkan fungsi accessor dan/atau modifier untuk setiap atribut private. Fungsi accessor atau yang sering disebut fungsi getter dibuat untuk mengambil properti kelas tanpa bisa mengubahnya. Jadi fungsi accessor ini tipe datanya sama seperti atribut yang akan diambil nilainya, dan isinya hanya return value dari atribut yang bersangkutan saja. Sedangkan fungsi modifier atau yang disebut setter dibuat untuk mengubah nilai atribut kelas. Tentunya, dengan disertai error handling dan batasan lain didalamnya. sehingga atribut kelas tetap bisa diubah namun terkontrol dan tepat. Sama halnya dengan fungsi yang tidak selalu diberi akses public, atribut juga tidak harus dan tidak selalu diberi akses private, public, atau protected.
  3. Protected
    Protected merupakan access modifier yang hanya akan muncul jika ada lebih dari 1 kelas dalam suatu soalus permasalahan dan ada kelas yang mendapat pewarisan sifat(inheritance) dari kelas lain. Jadi, dengan memberi akses protected, suatu atribut dan/atau fungsi bisa diakses penuh dari kelas turunan(child). Mungkin untuk pembahasan inheritance dan akses protected akan saya bahas lebih lanjut di postingan yang akan datang insyaAllah. Karena akan lebih baik jika belajarnya satu persatu, dari yang paling sederhana hingga yang agak sedikit rumit dan butuh pemahaman lebih.
Baiklah, saya kira cukup jelas untuk access modifier. Agar lebih paham memang sangat perlu dicoba sendiri :P
Semoga bisa menambah pemahaman.

Object Oriented - Class, Deklarasi Class dan Access Modifier(Part 1)

Sebelum belajar lebih jauh tentang OOP, alangkah lebih baik jika sedikit mebahas tentang Class, Deklarasi Class dan Access Modifier. Mungkin untuk memperjelas pembahasan diambil contoh seperti di postingan sebelumnya, tentang permasalahan monitoring bus, yaa bukan yang sebenarnya sih sekedar simulasi. Yaa paling tidak kasus itu bisa sedikit membantu menjelaskan tentang class, apa itu atribut, apa itu metode, apa itu access modifier, dan yang semacam itu.
Di permasalahan itu tentunya dibutuhkan sebuah kelas untuk mengenkapsulasi dan membuat tipe data kompleks yang mewakili objek bus. Mungkin saya sedikit beri contohnya, dalam bahasa C++, karena cukup familiar menurut saya.
Deklarasi kelas dengan nama Bus dengan properti dan metode tertentu. Mungkin sebelum diimplementasikan dalam bahasa C++ alangkah lebih baik jika dibahas sedikit mengenai notasi kelas dalam bentuk diagram kelas. Mengapa perlu dibuat diagram kelas? Hmm, kurang lebih nantinya diagram kelas itu akan menggambarkan hubungan suatu kelas dengan kelas lain jika ada lebih dari 1 kelas dalam suatu solusi permasalahan. Namun, mungkin kali ini akan dibahas dulu tentang notasi 1 kelas dulu, untuk yang lebih dari 1 kelas mungkin akan dilanjut di postingan berikutnya, insyaAllah.
Jadi, kurang lebih desain sederhana kelas yang bisa menggambarkan fungsionalitas suatu objek bus yang akan dimonitor.
Desain Kelas(Click untuk memperbesar)
Nah, seperti itulah secara umum bentuk dari suatu diagram kelas, karena cuma ada 1 kelas, jadi tidak ada relasi antar kelas. Setiap notasi kelas selalu terdiri dari 3 bagian/baris. Baris pertama merupakan nama kelas, baris kedua merupakan properti/karakteristik/atribut/field(beberpa referensi beda menyebutnya), baris terakhir merupakan metode/operasi/fungsi/perilaku kelas.
Untuk baris pertama, merupakan nama kelas, sudah jelas, nama kelas harus menggambarkan objek yang akan diwakilinya. 
Untuk baris kedua, yang berisi atribut/properti nantinya diisi karakteristik/sifat melekat pada objek tersebut, misalnya Bus punya kapasitas, maka kapasitas itu termasuk bagian atribut/properti.
Untuk baris ketiga, yang berisi operasi/fungsi/perilaku nantinya diisi apa saja yang bisa dilakukan suatu objek, misalnya Bus bisa menaikkan dan menurunkan penumpang, maka itu dimasukkan ke bagian perilaku.
Sepertinya cukup untuk penjelasan diagram kelas. Lalu bagaimana diagram kelas itu diimplementasikan dalam bahasa C++?.
Jadi, jika diimplentasikan ke dalam program alangkah lebih baik jika suatu kelas dibuat 2 file, yang pertama file header dan 1 lagi file implementasi. Umumnya file header dan file implementasi kelas itu namanya dibuat sama dengan nama kelas hanya saja, file header berekstensi .h sedangkan file implementasi kelas berekstensi .cpp. Karena kita akan membuat kelas Bus, maka nanti akan ada 2 file, Bus.h dan Bus.cpp

Hmm, sepertinya postingan ini sudah terlalu panjang. Mungkin untuk contoh isi file header dan implementasinya bisa dibaca di postingan berikutnya.
Stay in touch ya.. :P

Tuesday, August 23, 2011

Object Oriented - Getting Started

Sore ini, ketika saya memainkan sebuah game, saya teringat kata-kata teman ketika dia melihat saya main game itu. Katanya "Gimana ya caranya bikin objek sebanyak itu?". Hmm, iya juga, baru sadar, game yang saya mainkan bisa menampung hingga ribuan bahkan puluhan ribu objek berbeda dalam 1 layar. Ya, setiap aplikasi maupun game memang menggunakan objek sebagai bagian dari sistem, tidak sekedar blok kode atau fungsi. Mungkin itulah yang menyebabkan yang namanya Object Oriented Design and Programming sangat perlu dipelajari. Mungkin di postingan ini saya akan sedikit membahas tentang konsep dasar OOP(Object Oriented Programming).
Object Oriented yang istilah Indonesianya Berorientasi Objek itu bisa diartikan sebagai suatu cara berpikir bahwa setiap program itu terdiri dari kumpulan objek yang saling berinteraksi satu dengan yang lain. Setiap objek berbeda dengan objek yang lain dan saling berinteraksi satu dengan yang lain. Jadi, konsep terstrukturnya suatu program bukan fokus utama dari OOP. Karena disini melihat semua komponen menjadi sebuah objek, maka setiap property/karakteristik dan method/operasi tertentu harus dienkapsulasi atau dikemas menjadi suatu objek. Fiuh, rumit juga emag kalo dijelaskan dengan kalimat panjang lebar seperti itu, hehehe. Langsung contoh saja lah. Misalnya kita ingin membuat program yang fungsinya memonitor keadaan suatu bus selama 24 jam setiap hari. Nah, permasalahan gitu kalo diselesaikan tanpa OOP cukup merepotkan juga. Iya, kalo bus yang dipantau cuma 1 atau 2 saja, kalo ratusan atau bahkan ribuan kan susah juga kan. Jadi, permasalahan itu sangat cocok dengan konsep OOP.
Dalam permasalahan itu, diasumsikan setiap jam program akan melaporkan  jarak tempuh bus, posisi sekarang, jumlah penumpang, dan sisa bahan bakar masing-masing bus. Jadi itulah yang menjadi karakteristik setiap bus. Setiap bus akan dibuat menjadi suatu objek dengan property/karakteristik seperti yang diminta. Jadi setiap objek bus punya nomor unik, nama, jarak tempuh, posisi, jumlah penumpang, dan sisa bahan bakar. Dan setiap objek bus pastinya memiliki metode yang sama, bisa melakukan sesuatu yang sama, misalnya bergerak, berhenti, menaikkan penumpang, menurunkan penumpang, isi bahan bakar dan metode lain yang mungkin ditambahkan. 
Karena setiap bus punya karateristik dan metode/perilaku yang sama, maka bisa dikelompokkan dalam 1 kelas.
Hmm, secara konsep dasar, OOP kurang lebih seperti itu, mungkin untuk lebih memahami harus coba diimplementasikan ke dalam programmingnya. Namun, untuk mengimplementasikan suatu OOP, harus paham betul terlebih dahulu tentang kelas. Hmm, mungkin untuk konsep kelas dan hubungannya dengan objek akan saya bahas di postingan berikutnya. Jadi stay in touch ya.. :P
Mungkin cukup sekian untuk postingan ini, semoga bisa menambah pemahaman dan insyaAllah saya lanjut di kesempatan lain. :D

Hello World - Part 2

Hmm, melanjutkan postingan sebelumnya. "Hello World" lagi, hahaha. Di postingan sebelumnya sudah sedikit dibahas mengenai fungsi. Mungkin di postingan ini akan saya bahas mengenai fungsi dan contoh program sederhana yang hanya menggunakan fungsi standart library C, tanpa fungsi tambahan programmer atau terlalu sederhana mungkin, hahaha.
Struktur fungsi kurang lebih seperti ini : <tipe fungsi> <nama fungsi>(<parameter fungsi>), misalnya fungsi printf, struktur sebenarnya adalah void printf(char *kalimat), jadi tipenya adalah void dengan nama fungsi printf dan parameter bertipe string. jadi dengan memanfaatkan struktur ini, programmer bisa menuliskan apapun dengan mengisikan string/kalimat yang ingin ditulis di bagian parameter. printf("hello world!"); artinya parameter diisi hello world!, jd kalimat itu yang akan muncul.
Untuk fungsi membaca, strukturnya void scanf(T nilai, T *result)harus diketahui tipe datanya terlebih dahulu, misalnya mau mengisi suatu nilai yang diinputkan ke dalam suatu variabel integer dengan nama angka caranya sebagai berikut scanf("%d", &angka); %d mengindikasikan bahwa angka bertipe integer, sedangkan tanda '&' sebelum nama variabel mengindikasikan nilai tersebut akan disimpan ke suatu tempat di memory yang ditempati variabel angka. 
Fiuhh, bingung ya? :P
Ya ini saya coba kasih contoh code sederhana masalah penjumlahan.
# include <stdio.h>
# include <conio.h>

int main()
{
    int a = 10;
    int b;
    float c = 2.5;
    float d;
    printf("Hello World!");
    printf("Masukkan b = ");
    scanf("%d", &b);
    printf("Nilai a = %d\n", a);
    printf("Nilai b = %d\n", b);
    printf("Jumlah bilangan bulat a dan b = %d\n", a + b);
    printf("Masukkan d = ");
    scanf("%f", &d);
    
    printf("Nilai c = %f\n", c);
    printf("Nilai d = %f\n", d);
    printf("Jumlahkan bilangan desimal c dan d = %f\n", c + d);
   
    getch();
    return 0;
}



Sudah, tinggal Compile and Run, selesai deh, hehe. :D
Nah, itulah contoh sederhananya, mungkin untuk permasalahan lain bisa dilanjutkan lain kesempatan. Semoga bermanfaat.

Hello World - Part 1

"Hello World". Dua kata yang menjadi headline blog ini. Dua kata itu mengingatkan saya pada saat pertama kali belajar pemrograman. Di referensi apapun selalu saja "hello world" yang dijadikan contoh. Entahlah, saya juga tidak tau pasti sebabnya. Yaa sudahlah ngapain pusing mikir itu, biarkan saja "hello world" itu tetap menjadi awal dalam belajar pemrograman, hehe.
Pemrograman itu buat apa sih? dulu saya sempat berpikir seperti itu, soalnya dulu sama sekali tidak tau yang semacam itu. Setelah baca-baca sih katanya pemrograman itu bikin yang manual jadi otomatis dan lebih cepat. Sederhanannya sih di masalah ngitung, penjumlahan deh yang paling sederhana. Misalnya kita punya 1 + 1 kan sudah jelas hasilnya 2, dan disini pemrograman seperti ndak guna gitu. Iya memang, pemrograman akan banyak manfaatnya untuk permasalahan yang lebih besar atau rumit. Karena kita masih bahas penjumlahan, yasudah penjumlahan dulu saja. Kalo kita ditanya  1 + 1 bisa menyelesaikan dengan cepat bagaimana dengan 11363689653 + 8463824832684? Tentu saja butuh waktu menghitung angka-angka itu. Nah, itu dia gunannya program. Dalam program, 1 + 1 dan 11363689653 + 8463824832684 lama penyelesainnya sama. Jadi akan sangat berguna dalam perhitungan besar. Ya paling tidak itu salah satu alasan paling sederhana mengapa kita perlu belajar pemrograman.  
Bicara pemrograman, banyak sekali yang dibahas, tapi yang umum ya memang bahasa pemrograman. Bahasa pemrograman itu secara kasarannya adalah cara komunikasi antara programmer dengan mesin, khususnya processor. Dengan bahasa pemrograman itu sang programmer bisa memberi perintah kepada mesin tertentu untuk melakukan sesuatu. Bahasa pemrograman pun banyak sekali macamnya, capek juga kalo dibahas semua, hehe. Yaa bahas yang umum saja lah, C-Family. Setau saya sih itu yang sering sekali dipelajari. Apa lagi C-Family itu? - -"
C-Family, kelompok bahasa pemrograman yang umum digunakan yaitu C, C++, dan C#. Ketiga bahasa ini hampir sama, hanya ada sedikit perbedaaan di library dan struktur.

Kali ini mungkin dibahas saja dulu sedikit tentang bahasa pemrograman C dan istilah umum yang digunakan disitu. "Bahasa C adalah bahasa pemrograman tingkat menengah yang relatif tua" begitu kata buku yang saya baca dulu. Ah, kalo ngomong sejarahnya panjang pasti, ya intinya bahasa C cukup tua dan cukup lama bertahan. Buktinya masih digunakan sampe sekarang. Dalam bahasa C ada beberapa istilah umum yang digunakan. Coba deh kita bahas satu persatu.

  1. Library
    Library adalah file yang harus ditambahkan agar program yang akan dibuat bisa jalan secara tepat. Nah, library itu banyak sekali dan penggunaannya sesuai kebutuhan. Untuk list library lengkap untuk C bisa minta bantuan wikipedia, hehe. Kalo saya dulu yang sering sekali digunakan ya <stdio.h>, <stdlib.h> dan <conio.h>
  2. Tipe Data
    Tipe data bisa diartikan sebagai pengenal variabel, variable akan dibahas di poin berikutnya. Analogi seperti ini, jika kita punya kemasan dari suatu benda, pastinya kemasan itu harus sesuai dalam bentuk dan ukuran benda yang akan dikemas. Nah, kemasan itu variabel, sedangkan bendanya adalah tipe data. Contoh sederhananya, kalo kita mau melakukan penjumlahan kan yang dijumlahkan harus dua-duanya suatu angka, entah desimal, bulat atau tipe lain, yang pasti harus angka. Nah, itulah gunanya tipe data, harus sesuai yang dibutuhkan. Untuk penjelasan lebih lengkap bisa dibaca di wikipedia, hehehe :P
  3. Variabel
    Variabel merupakan suatu cara untuk mengkases suatu tipe data. Variabel ini akaun muncul bersamaan dengan tipe data karena suatu variabel harus bertipe data tertentu. Gunanya variabel ini agar bisa mengkases suatu nilai tertentu. Yaa kurang lebih seperti penjelasan variabel dalam matematika. Variabel menyimpan suatu nilai tertentu.
  4. Konstanta
    Konstanta hampir sama penjelasannya dengan variabel, bedannya konstanta nilainya tetap, sedangkan variabel bisa diubah nilainya.
  5. Fungsi
    Kalo bicara fungsi sebenarnya haru memahami bagian-bagian sebelumnya dulu, karena kalo bicara fungsi pastinya lebih rumit dari sebelumnya. Mungkin akan dibahas di postingan lain(insyaAllah).
    Fungsi umum yang umum digunakan dalam program sederhana ya fungsi menulis, membaca, dan fungsi utama.
    Dalam C, jika kita ingin menulis sesuatu caranya yaitu dengan memanfaatkan fungsi printf yang kita tidak perlu tau isinya, hehe. Misalnya mau menulis "Hello World", caranya printf("Hello World"), kayak headline blog ini, hehehe :P
    Kalo mau baca input ya harus tau tipe data dulu, oleh karena itu harus paham bagian sebelumnya dulu, hehe. Mungkin dibahas di postingan berikutnya saja(insyaAllah).
 Mungkin sekian dulu deh. Semoga tidak malah bingung selelah baca ini, hehe :D

Obrolan Sore Bersama Bapak Petugas Kereta - Coretanku Part 4

Terik sinar matahari Surabaya siang itu tidak sedikitpun mengurangi keinginan saya untuk tetap menerobos sepanjang Jalan Teknik Kimia Kampus ITS yang gersang dan berdebu. Meskipun hari itu saya sedang puasa, karena memang di dalam bulan suci Ramadhan tapi tidak masalah lah, hehe. Di masa-masa perkuliahan, sepanjang jalan itulah yang harus saya tempuh untuk mencapai kampus TC, Teknik Informatika ITS. Sedikit aneh memang cara menyingkatnya tapi ya sudahlah dari dulu gitu kok, hehe.
Tak seperti di hari lain, siang itu saya lebih memilih untuk mempercepat balik ke tempat kos daripada istirahat di lab menunggu sinar matahari lebih bersahabat karena rencananya hari itu mau pulang kampung. Ya, kalo di hari kuliah sih, memang lebih enak ngadem di lab sambil browsing kenceng ala mahasiswa TC, karena ya capek juga kalo harus bolak balik kampus-tempat kos, maklum pejalan kaki, hehehe.
Perjalanan 10 sampai 15 menit yang panas dan berdebu pun berakhir setelah sampai di belokan Poltek ITS, yaa, dari situ keadaan trotoar sudah teduh, jadi lumayan lah sambil ngadem. Tak berapa lama sampailah di tempat kos yang notabene letaknya didepan poltek. Sungguh surga dunia rasanya setelah berpanas panas di jalan lalu bisa masuk kamar kos, menyalakan kipas dan berbaring di kasur kamar kos, hehe. Tapi ya tidak bisa berlangsung lama, toh niatnya balik mau siap-siap buat pulkam kok. Dan tidak perlu waktu lama semuanya sudah siap.
Sampai di stasiun kok sepi, sungguh tidak biasa. Eh ternyata ketidakbiasaan itu karena sesuatu. Kereta yang mau membawa saya pulang ke kampung halam telat sampai setelah Maghrib. Ya, sudahlah mau gimana lagi namanya kereta ekonomi. Masa bayar 2000 rupian mau yang macem macem, hehehe. Bisa masuk kereta aja syukur alhamdulillah itu. Yaa, ada baiknya juga telat, jadi bisa shalat Maghrib di stasiun.
Alhamdulillah, keterlambatan yang diumumkan kepala stasiun tidak molor, tak lama setelah shalat maghrib kereta yang ditunggu pun datang. Sungguh di luar dugaan, tidak seperti hari biasa, penumpang yang bersiap naik tidak  seramai biasanya, tidak sampai seperempatnya mungkin. Ya lumayan lah, jadi tidak perlu berebut kursi hampir pasti dapat tempat duduk, hehehe. 

Benar saja, tempat yang harusnya ditempati 4 orang saya tempati sendiri, di gerbong yang saya tempati cuma ada tidak lebih dari 25 orang dari kapasitas 106 orang, beruntung sekali :D
Penumpang yang lain pun tampak sedikit heran dengan keadaan itu, orang yang sering naik pasti tau gimana ramenya kerata itu biasanya. Ya, kalo sepi sih enak buat ngapain aja, saya lihat ada yg makan, ada yang dengerin musik keras keras, ada yang sekedar ngobrol bahkan ada sekelompok bapak bapak yang main kartu domino di dalam kereta. Ya, mungkin itu lah cara bapak-bapak itu melepas kepenatan setelah seharian bekerja mencari nafkah. Saya bisa melihat kesenangan dan tawa lepas bapak-bapak itu. Sesekali saya ikut tersenyum melihatnya. Sedangkan saya lebih memilih mendengarkan musik saja, soalnya tidak ada bahan bacaan atau teman ngobrol.
Di sepanjang perjalanan, hanya kegelapan yang bisa saya lihat diluar jendela kereta. Mulai bosan, hanya diam, tidak ada yang dilakukan. Sampai akhirnya ada seorang petugas yang mendatangi, saya kira mau perika tiket, eh kok duduk di tempat duduk kosong dihadapan saya. Hmm, lumayan ada teman, tapi sama saja, selain agak ngrasa gimana gitu sama petugas kereta, saya juga kurang bisa memulai pembicaraan jadi ya diam saja lah, hehehe, maaf pak, saya kurang friendly. :P

Mungkin karena bapaknya bosan atau emang sekedar cari teman bicara saja, bapaknya(B) mulai ngajak ngomong saya(S), hehehe.
B : "Kerja dimana Mas?".
(Lagi, selalu saja sama pertanyaan pertama orang yang ngajak ngobrol di kereta, saya selalu dikira kerja, apa saya setua itu ya - -"? )
S : "Oo, ndak kerja kok Pak, masih kuliah". (maksa senyum)
B : "Masih kuliah to Mas, saya kira kerja. Kuliah dimana Mas?".
S : "Iya. Di ITS Pak".
B : "Oo, ambil jurusan apa Mas?".
S : "Teknik Informatika Pak, sudah mau semester 5".
B : "Sudah setengah perjalanan ya, asli mana Mas?".
S : "Iya Pak, ndak kerasa sudah 2 tahun, saya asli Jombang Pak".
B : "Tiap hari PP"?
S : "Ndak Pak, kalo lagi ndak ada acara saja saya pulangnya, seminggu dua minggu sekali gitu Pak".
B : "Oo gitu ya, iya kalo PP bisa capek dijalan Mas. Ya, ditekuni saja, sayang kalo sudah dapat kesempatan kuliah disia-siakan. Saya saja pengen kuliah kok"
S : "Iya Pak, sayang kalo ndak serius, masuknya sudah susah, hehe. Lho Bapak belum kuliah memangnya?"
B : "Belum Mas, saya cuma lulusan SMA, mau kuliah sekarang ya gimana, saya sudah 38 tahun, banyak yang dipikirkan, nanti malah tidak fokus kuliahnya".
(Baru tau saya kalo jadi pegawai KAI tidak harus sarjana, ya mungkin dulu aturannya seperti itu)
"Dulu saya sempat mau kuliah, tapi ya gitu Mas, belum ada kesempatan dulum jadi coba masuk KAI saja, alhamdulillah kok diterima dan bisa lanjut sampe sekarang ini Mas".
S : "Iya Pak, kalo sudah umur segitu malah repot nanti, kuliah sekarang ada saja yang diurusi."
B : "Iya Mas, itu juga pertimbangan saya. Mas, saya ngecek tiket penumpang dulu"
S : "Iya Pak, monggo"


Hmm, jadi seperti ya, ternyata dulu mau jadi pegawai KAI saja tidak perlu harus sarjana, lha sekarang mau nyari kerja kalo ndak sarjana ya susah. Semakin sulit saja mencari kerja kalo dipikir-pikir. Ya semakin sulit itu harus dibarengi usaha lebih keras memang. Jadi minder kalo lihat diri sendiri, selama ini belum maksimal usaha saya. Ya, dari sekarang harus lebih ditingkatkan usahanya. Terima kasih Bapak petugas kereta yang saya belum tau namanya atas nasehat dan pengalaman yang dibagi. Sangat banyak hikmah yang saya dapat dari obrolan santai sore itu yang tidak semua bisa saya tulis disini. Semoga diberi kelancaran dalam bertugas, Pak. Amin.

Friday, August 19, 2011

Sehat Itu Mahal Harganya - Coretanku Part 3

Semilir angin malam dari jendela kaca persegi kamar saya sudah berubah menjadi hembusan segar udara pagi yang bercampur embun. Langitpun sudah memerah di ufuk timur. Kokokan ayam yang bersahutan pagi itu tidak cukup untuk mebangunkan saya dari tidur pulas atau mungkin tidur yang terlalu pulas untuk orang seusia saya. Maklum lah malam hari itu aku tidur cukup larut, setelah sahur. Kesalahan, di malam yang esok hari harusnya berangkat pagi sekali ke perantauan malah terlalu asik dengan baris-baris code di layar laptop saya. Memang asik kalo sudah menemukan solusi untuk permasalahan pemrograman yang sedang dihadapi. Tidak sekali dua kali ibu saya sudah mengingatkan untuk tidur tapi ya namanya sedang asik sama sesuatu ya sekedar bilang 'iya' tapi tetap melanjutkan ngoding, hehehe, istilah itu baru saya kenal 2 tahun yang lalu tapi sekarang sudah hafal dan akrab sekali dengan istilah itu.
Baris demi baris terus terketik rapi dengan bantuan IDE canggih yang fitur autocomplete-nya yang mantap. Tak terasa, alarm sahur berbunyi baru sadar sudah selarut itu. Tidak berlama lama lagi dengan kesibukan itu saya segera menutup semua aplikasi di laptop saya termasuk lantunan ayat suci Al Qur'an dari Winamp yang menemani sepanjang malam, lalu saya matikan laptop, beres beres, siapkan perbekalan buat berangkat ke perantauan. Semua selesai, setelah sahur terpaksa tidur sebentar, lumayan lah daripada tidak sama sekali, mengingat beberapa jam setelahnya harus menempuh perjalanan sekitar 71 km dari rumah ke tempat perantauan. Ya kalo berencana tidur di perjalanan ya belum tentu bisa, karena tidak jarang dalam perjalanan yang lebih dari 70 km itu harus ditempuh dengan berdiri berdesakan dengan penumpang lain di kereta. Maklum lah, kereta ekonomi, hehe.
Ketika tersadar dari tidur, ternyata sudah hampir jam 5 pagi, segera saja saya bersih diri dan ambil air wudhu dan shalat Subuh. Sesaat kemudian berangkat ke stasiun. Benar saja, ketika sampai di stasiun suasana sudah ramai, dan sudah dipastikan sedang menunggu kereta yang sama karena di jam itu cuma ada 1 kereta, kereta yang sama yang akan mengantarkan saya ke perantauan kereta ekonomi jurusan Kertosono-Surabaya.
Tak lama waktu berselang kereta sampai di stasiun Jombang dan alhamdulillah kali ini saya tidak perlu berdiri dalam perjalanan karena masih ada tempat duduk tersisa untuk saya. Stasiun demi stasiun terlewati, kereta semkin penuh sesak, hingga sampai di suatu stasiun, Mojokerto kalo tidak salah ada seorang ibu paruh baya yang tidak lagi mendapatkan tempat duduk. Disini sisi kemanusaiaan diuji, yasudahlah saya saja yang mengalah, sepertinya saya lebih kuat berdiri dari ibu itu. Saya memepersilahkan ibu itu duduk dan saya menjalain sisa perjalanan dengan berdiri, toh biasanya juga berdiri, hehehe.
Dari situ, sang ibu(I) dan saya(S) mulai bercakap-cakap:
I : "Lho, sampean ngalah nak?, matur nuwun 'nak,(sambil tersenyum lebar)".
S : "Iya ibu, monggo, sudah biasa berdiri".
I : "Turun mana 'nak?"
S : "Stastiun Gubeng Bu, ibu turun mana?"
I : "Oo sama nak, ibu juga turun di Gubeng. Kerja 'nak?"
S : "Ndak Bu, kuliah".
I : "Oo kuliah, saya kira kerja, kuliah dimana 'nak? Di Unair? kok ndak naik sepeda motor saja?"
S(dalam hati) : "Apa saya sudah keliatan tua ya?"
S : "Ndak Bu, saya di ITS kok, ndak Bu, saya ndak ada kendaraan(senyum terpaksa, miris)"

I : "Ooo gitu ya 'nak, ambil jurusan apa disana? sudah semester berapa?"
S : "Iya Bu, ambil jurusan Teknik Informatika Bu, ini mau masuk semseter 5"
I : "Oo, ambil teknik ya, memang bagus tekniknya ITS, kalo anak saya dlu juga teknik, Elektro, di Unesa"

S : "Ooo gitu ya Bu, angkatan berapa Bu anak ibu yang di Unesa itu?"
I : "Sudah lulus kok 'nak sudah ngajar di SMP Khadijah"
S : "Ooo, alhamdulillah ya Bu"
I : "Iya 'nak, itu juga dia nyari nyari sendiri biayanya, entah dari beasiswa entah ngelesi, ya alhamdulillah sekarang sudah ngajar, kan banyak toh nak sarjana yang nganggur".

Mendengar jawaban itu saya hanya terdiam, bagaimana bisa keadaan itu mirip sekali dengan keadan saya. Itu membuat lidah ini kelu. Menyadarkan saya akan sesuatu. Sesaat kemudian saya menemukan kalimat yang tepat untuk menanggapi jawaban itu.
S : "Iya Bu, lulusan sama peluang kerjanya tidak sebanding, jadi harus pandai pandai mencari pengalaman dan peluang. Oiya, ibu ke Gubeng mau kemana?"
I : "Iya nak, maka dari itu alhamdulillah anak saya sudah dapat kerja. Itu, ibu mau jenguk adik sepupu di RS Karang Menjangan, mau dibawa ke Singapura dalam waktu dekat"
S : "Lho? sakit apa Bu? kok sampe harus ke luar negeri?"
I : "Itu nak, jantungnya bermasalah, kemarin setelah dioperasi jantungnya ndak bisa produksi sel darah, jadi seminggu dua kali harus ke RS ngisi darah baru"
S : "Sudah lama Bu?"
I : "Sudah 8 bulan nak, padahal setiap minggu harus 2 kali ke RS, padahal biayanya sekali masuk bisa jutaan. Ya itulah nak, kalo sudah sakit uang itu tidak ada gunanya"

Lagi, jawaban ibu ini membuat saya terdiam sejenak, menyadari betapa beruntungnya saya yang masih diberi organ yang normal.

S : "Iya Bu, sekarang medis mahal memang, kalo sudah 8 bulan bisa pastinya bukan orang sembarangan itu ya Bu? zaman sekarang kalo bukan rang kaya ya susah berobat seperti itu"
I : "Iya nak. sekarang mahal. Yaa dia dokter kok nak, jadi ya kaya memang 2 dari 3 anaknya juga dokter gigi, yang 1 masih sekolah SD kelas 6"
S : "Ooo gitu ya Bu, pantas saja bisa berobat seperti itu."
I : "Iya nak, makanya kita ini harusnya bersyukur maih sehat wal afiat seperti ini, bersyukur jadi orang tidak punya, kalo adik sepupu saya itu tidak banyak uang seperti itu belum tentu penyakitnya parah, paling batuk pilek saja"
S : "iya Bu, kalo orang biasa seperti saya ginin paling sakitnya ringan ringan. Semua memang ada hikmahnya ya Bu"
I : "Iya nak, meskipun kita orang biasa, bukan orang kaya harus tetap bersyukur nak. Sudah hampir sampai nak, ibu kedepan dulu ya"
S : "Iya Bu, monggo, hati hati Ibu"
I : "Iya nak, matur nuwun".



Tidak menyangka, pagi itu bisa merasakan obrolan bermakna dengan orang yang bahkan saya tidak tau namanya. Ya, banyak hal yang bisa diambil hikmahnya, betapa mahalnya sehat, betapa kurang bersyukurnya diri ini. Banyak orang yang lebih tidak beruntung daripada saya.
Syukur alhamdulillah, mendapat hikmah yang dangat bernilai di pertemuan singkat yang tidak disengaja itu. Semoga kita semua menjadi manusia yang lebih bersyukur.




Thursday, August 11, 2011

Membuat Partisi Dengan Disk Management

Menghabiskan liburan di bulan Ramdhan tanpa ada yang dikerjakan(belum ada niat mengerjakan) terkadang membuat bosan. Ya, itulah yang saya rasakan siang ini. Mau browsing lama-lama bosan juga, mau mulai garap e-Office juga masih malas, hehe. Bingung, ya sudahlah coba install game saja lah, laptip masih bersih dari game setelah install ulang. Kok kayaknya lumayan buat refreshing sebentar.
Instalasi selesai, eh mau dimainkan kok ternyata nggak compatible sama sistem operasi yang ada sekarang. Sial sekali, sudah nginstall lama, nyari cracknya juga, eh, nggak bisa dimainkan.
Akhirnya, ada niat ngistall 1 sistem operasi lagi yang bisa buat main game yang tadi, hehehe. Ya sudahlahlah dicoba saja nginstall sistem operasi ketiga di laptop kok kayaknya harddisknya masih mendukung kalo nambah 1 sistem operasi lagi.
Seperti instalasi sistem operasi lainnya, sistem operasi yang mau diinstall ini minta 1 partisi yang standalone di harddisk, ya mau tidak mau buat partisi baru saja daripada mebahayakan partisi lain yang sudah ada.
Karena sistem operasi saya ini(Windows 7 Ultimate) sudah ada fitur buat bikin partisi baru ya dimanfaatkan saja, sekalian sharing untuk yang belum tau dan pengen nyoba silahkan diikuti step step berukut ini
  1. Buka Disk Management yang disediakan untuk mengatur keadaan Harddisk Laptop atau PC
  2. Pilih Submenu Disk Management
    Sehingga muncul tampilan jumlah, ukuran, dan keadaaan partisi yang ada di harddisk
  3. Pilih Partisi mana yang akan dibagi(baca:dikurangi untuk dibuat partisi baru)
  4. Klik kanan pada partisi yang dipilih, pilih menu Shrink Volume
  5. Tunggu sampai muncul dialog untuk mengisi ukuran untuk partisi baru

  6. Setelah proses pembuatan partisi selesai, maka akan muncul freespace pada disk management yang nantinya akan digunakan untuk partisi baru.

  7. Format dan beri Disk Path
    Ikuti petunjuk di wizard yang muncul, klik next - next terus untuk setting default, dan finish untuk melakukan formatting.


     
  8. Format selesai, partisi baru sudah bisa digunakan.
    Sekian, kalo mau nyoba silhkan, tapi saya tidak menanggung segala macam kegagalan percobaan dengan cara ini, :P
    Semoga bermanfaat

Friday, August 5, 2011

Ramadhan Produktif - Coretanku Part 2

Siang hari, panas, dalam keadaan puasa pula, sungguh nikmat kalo bisa tidur siang, itung-itung biar malamnya bisa bangun awal sebelum sahur, jadi bisa tahajjud atau tilawah dulu selembar dua lembar gitu. Tapi kok tidak ngantuk, ya sudah, buka laptop lagi. Kalo dipikir pikir kasihan juga nih laptop, istirahatnya kalo yang punya lagi tidur, malah sering ditinggal tidur yang punya tapi tetap nyala. Jadi ada keinginan buat sistem otomatis biar bisa matiin laptop kalo yang punya tertidur.
Haduh, siang siang malah nglantur. Yaa daripada mikir yang tidak tidak mending browsing saja, sekalian online, hehe. Tapi sama saja sih, browsing juga mau nyari apaan, lha wong liburan. Ya online facebook deh akhirnya, scroll scroll, kok ada status bagus, katanya "Ramadhan itu bulan semangat!, semangat!", yaa mungkin benar sih, kebanyakan kan klo ramadhan dibanyakin tidurnya dengan dasar "tidur adalah ibadah" ya termasuk saya sih, hehe.
Dari situ kok jadi pengen nyari ayat atau hadits yang berhubungan sama itu, hmm, ndak nemu nemu, karena keywordnya ngasal, scroll scroll eh ada link Judulnya "Tafsir Ibnu Katsir" wah ndak dapat 1 malah dapat banyak ini. Berikut ini linknya kalo mau download http://shirotholmustaqim.wordpress.com/tafsir-ibnu-katsir-juz-1-9/. Coba deh saya buka di tab baru. Eh ternyata disitu berupa ebook, dibagi per juz ada jg yang per surat, ya sudah download aja juz 1 sampe 3 dulu. Sambil nunggu download coba nyari nyari yang lain, tapi useless, isinya hampir sama semua, link yang menuju link lain, capek deh - -"

Akhirnya download yang pertama selesai, coba baca deh, kata mentor saya Al Baqarah 1 - 20 bisa mewakili keseluruhan Al Qur'an jika diamalkan. Kan yang di juz 1 cuma Al Baqarah. Hmm, lumayan juga lah bisa nambah ilmu, toh selama ini tilawah juga baru sekedar baca, belum memahami, hehe.
Hmm, sambil baca baca kok ndak kerasa uda mau masuk waktu Ashar, ya sudah, dicukupkan saja dulu, alhamdulillahi rabbil 'alamiin ada hikmah yang didapat hari ini, dari browsing ngalor ngidul bisa dapat sesuatu yang bermanfaat sekali, Subhanallah. :D
Yaa, terima kasih buat teman saya, sehingga Ramadhan saya tidak hanya untuk tidur :D

InsyaAllah disambung dengan cerita lain yang tidak kalah aneh.
Wassalam.

Memulai Itu Susah - Coretanku Part 1

Hmm, saya tidak tau harus seperti apa memulai ini, memulai menulis. Dari dulu selalu saja ini yang jadi masalah, tidak tau cara memulai sesuatu, apalagi menulis. Aneh, kalo mulai selalu saja tidak tau harus menulis apa, tapi kalo sudah nulis tidak tau juga cara mengakhirinya. 
Yaa, sudahlah memang tidak ada bakat menjadi penulis, di blog sekalipun. Tapi kemarin setelah baca-baca blog teman, kok enak juga ya kalo bisa berbagi pengalaman hidup dengan orang lain(kalo ada yang baca) atau sekedar mencatat perjanan hidup agar tidak lupa dari mana diri ini berasal, syukur syukur kalo ada yang baca trus terinspirasi menulis dan tulisannya itu membawa hikmah bagi orang yang baca, mantep juga itu catatan amal baiknya, bisa berlipat-lipat, hehehe. :D
Dari situlah keinginan menuliskan kisah hidup ini pun muncul dalam benak saya, setelah sekian lama membuat blog, lalu terhapus, buat lagi terhapus lagi, buat lagi, lupa password karena jarangnya dibuka akhirnya sekarang agak rajin update konten, yaa meskipun hanya berisi sampah, hehe. It's okay, namanya juga pemula, hehehe.
All of this start right here and right now. (Halah sok English barang, hehe). Ya, Jum'at pertama di bulan Ramadhan, 5 Agustus 2011. Semoga saja bisa rutin update artikel atau sekedar nulis curhatan gak penting, hehe.
Hmm, sudah dulu, dicukupkan saja untuk curhatan kali ini. There's something to do, hehe.
Cerita bersambung di episode selanjutnya, hehe :P
 
Copyright (c) 2010 printf("hello world"); and Powered by Blogger.