Seorang Ketua dan Pekerja yang Rajin

Assalammualaikum,

 

Apa yang saya ingin ceritakan dibawah adalah cerita rekaan semata-mata tiada kena-mengena dengan sebarang manusia di Malaysia. MOHON BACA SEHINGGA HABIS JIKA BERMINAT.

 

Cerita Bermula:-

 

ABC Enterprise merupakan sebuah organisasi yang terbilang lagi gemilang di sebuah negara. Seperti biasa, sebuah syarikat yang bertaraf antarabangsa mestilah mempunyai beberapa peraturan yang digubal juga oleh manusia untuk kepentingan syarikat tersebut. Ianya juga mengamalkan prinsip pencen seperti di Malaysia.

 

Sebuah organisasi itu juga ada peraturan-peraturannya, antaranya adalah:-

1) Pekerja harus punch card pukul 9 pagi dan punch out jam 6 petang.

2) Pekerja harus memaklumkan kepada Ketua Bahagian untuk sebarang aktiviti luar yang dijalan

3) Sekiranya terjadi sebarang kemalangan di luar pejabat dan tidak memaklumkan kepada Ketua Bahagian maka pencen tersebut tidak boleh diterima oleh keluarga pekerja terbabit.

4) dan pelbagai lagi

 

Samad merupakan seorang Ketua Bahagian. Beliau bertanggungjawab menguruskan beberapa pekerja di bawahnya dan ada banyak pekerjanya yang rajin bekerja.

 

Salah seorang pekerja tersebut adalah Abdullah. Abdullah merupakan pekerja cemerlang yang membuat kerja dengan sangat teliti, cepat dan awal jangkaan. Seperti yang sedia maklum, Abdullah dan rakan-rakannya juga bagus dalam pembuatan kerja dan Bahagian Samad mendapat pujian dari Board Of Directors syarikat ABC Enterprise

 

Abdullah seperti manusia biasa juga, kadang-kadang kerjanya siap awal dan keluar awal. Kadang-kadang datang lewat juga kerana kerja tiada apa yang hendak dibuat. Kadang-kadang ada meeting ad hoc beliau datang juga tapi lewat sedikit kerana tidak diberitahu awal. Biasalah manusia, Ketua pun manusia juga, pekerja pun manusia juga. Tiada istilah aku ketua yang perfect dan istilah aku pekerja yang perfect dalam dunia ini.

 

Sepanjang 10 tahun bekerja, Abdullah sememangnya sangat bagus bekerja cuma dia akan datang lewat dan pulang awal jika tiada apa-apa kerja yang boleh dibuatnya. Maklumlah segala kerja dibuatnya dengan cepat, tepat, dan awal. Kerja seminggu disiapnya selama 2 hari sahaja. lagi baki 3 hari sudah tidak tahu membuat apa dan hanya polish sahaja jika ada sebarang peningkatan. Bahkan jadual setiap hari tersusun. Oleh sebab itu, beliau tidak mengemari perkara yang terlalu ad-hoc. Memanglah, mana ada manusia ini robot. BOleh interrupt bila-bila masa. Ada pekerja yang boleh diinterrupt bila-bila masa dan ada yang susah sedikit.

 

Satu hari, Abdullah meninggal dunia akibat kemalangan jalan raya pada waktu 11 pagi sewaktu dalam perjalanan membeli perkakasan rumahnya. Beliau keluar sebentar kerana sudah tidak ada kerja hendak dibuat tambahan pula minggu tersebut Ketua Bahagiannya pun cuti dan beliau juga terlupa nak memaklumkannya.

 

Maka Samad bergegas ke hospital untuk melihat jenazah Abdullah.

 

Sedih pun ada dan pelbagai perkara pun ada muncul.

 

pastinya Pengarah atasan akan bertanyakan kepadanya samada Abdullah buat apa keluar pada jam 11 pagi. sedangkan Samad tidak mengetahuinya.

 

Maka Samad berfikir sebentar

 

“Aku pun manusia yang buat salah, dan dia pun ada buat salah”

 

“Adakah ini ujian Allah kepadaku dan orang sekelilingnya?”

 

“Aku pun tidak mempunyai wang yang cukup untuk membela keluarganya, dan pencen mampu mengurangkan beban keluarganya”

 

Maksudnya cuba kita lihat kembali, apabila seseorang itu meninggal dunia, Allah juga akan menguji orang sekelilingnya. Allah akan uji Ketuanya, Allah akan uji keluarganya, Allah akan uji jiran-jirannya, dan masyarakat sekelilingnya.

 

Adakah apabila seseorang itu meninggal dunia maka kita dengan selamba mengutuk sekutuk-kutuknya? walaupun kita bence seseorang itu?

 

Adakah disebabkan kesalahan yang satu nampaknya seperti membuat kesalahan selama-lamanya?

 

Adakah Kebaikan yang dibuat sepanjang 10 tahun dinilai oleh perkara buruk selama beberapa minit sahaja?

 

 

Maka Samad membuat satu keputusan…

 

Beberapa hari selepas itu, Pengarah mengarahkan Samad membuat report berkaitan untuk tujuan ini.

 

Samad dalam laporan menyebut bahawa Abdullah telah memberitahu secara lisan kepadanya untuk keluar sebentar pada pagi itu.

 

 

Tamat Cerita.

 

Dalam fikiran Samad, demi kemaslahan keluarga Abdullah, mungkin beliau berdosa kerana menipu sedemikian tetapi Samad berbuat demikian untuk mengelakkan kejadian yang lebih teruk. Pada pendapat Samad, ini hanyalah ujian kepadanya dan beliau berserah kepada Allah dan memohon ampun atas perilakunya itu. Tapi disebabkan ingin memastikan keluarga Abdullah terbela dan seterusnya menangkis tohmahan orang ramai kepadanya.

 

Samad ingin mengelakkan fitnah dan ianya tinggal urusan antara Samad dan Allah sahaja. Mungkin Allah akan menghukumnya tetapi beliau berbuat demikian atas dasar satu keterpaksaan yang beliau akan tanggung.Yalah, Samad juga manusia dan tidak sempurna.

 

Bayangkan jika keluar berita Abdullah itu dan begini, dan berita tersebar luas. Tetapi disebabkan Samad mengeluarkan kenyataan bahawa Abdullah ada memberitahunya dalam laporan yang ditulisnya, maka orang ramai tidak berkata apa-apa lagi. Tetapi ada sahaja mulut mengatakan Samad covered up. Maka akhirnya Samad mengambil keputusan untuk berhenti dan cuba menceburi bidang perniagaan dan dakwah. Beliau akui sukar membuang peraturan sebegitu. Kerana mungkin ada manusia yang mempermain-mainkan peraturan tersebut tetapi Samad tahu kisah sebenar dan apa yang berlaku. Orang yang tidak tahu akan terus berkata pelbagai perkara tetapi itulah hakikatnya iaitu manusia tidak lari dari dosa. Kita perlu meneruskan kebaikan dan cuba sedaya upaya mengurangkan keburukan.

 

Tujuan saya menceritakan sedemikian adalah untuk kita bahaskan dan bincangkan. Kita adalah manusia dan apabila manusia membuat peraturan pasti ada cacat celanya. Kita tidak boleh mengatakan sesuatu itu sangat salah tanpa mengambil kira faktor-faktor lain. Manusia mana ada perfect, bila manusia tak perfect, manusia buat peraturan maka PASTILAH peraturan itu tidak perfect dan BOLEH BERUBAH-UBAH.

 

Salam rabu dari saya sempena hari pertabalan Sultan negeri saya (KEDAH) sebagai Yang Dipertuan Agong

 

Daulat  Al-Sultan Almu’tasimu Billahi Muhibbuddin Tuanku Alhaj Abdul Halim Mu’adzam Shah Ibni Al-Marhum Sultan Badlishah.

 

Semoga Allah sentiasa merahmatinya

Teknik OOP (Object Oriented Programming) dalam Pengaturcaraan

Assalammualaikum

Baiklah, kali ini kita masuk pula ke teknik pengaturcaraan OOP

Ianya tidaklah susah seperti yang dibelajar dalam kelas. Yang penting cara penyampaian bagi menarik minat pelajar dahulu dan kemudian baru mereka akan beransur-ansur akan minat dengan pengaturcaraan atau dalam bahasa inggerisnya programming

Sebelum saya mulakan apa-apa, baik kita tenangkan diri dan buangkan dalam minda bahawa programming ini susah dan menyusahkan. Buang dahulu dan anggap anda akan belajar subjek baru yang anda nak tengok apa isi kandungannya.

Ini subjek yang membolehkan anda menonton filem 3D, bermain permainan konsol atau komputer, bermain permainan di iPAD dan iPhone atau Samsung Galaxy Tab dan sewaktu dengannya

Apakah itu OOP?

OOP ini sebenarnya satu istilah sahaja untuk mengambarkan tahap keteraturan programming anda berbanding teknik struktur dan modular dahulu

Anggap sahaja kita ingin melakukan tugas arithmetic iaitu tambah dan tolak

Kita akan recall kembali pembelajaran kita dan mulakan dengan teknik-teknik programming terdahulu

Saya mulakan dengan menulis main.cpp terlebih dahulu (Untuk kali ini saya menggunakan Visual C++ 2010 Edition)

//disini saya panggil iostream untuk tujuan penggunaan "cout" dan "endl"
#include <iostream>
//disini saya panggil stdlib.h untuk arahan system ("pause").
//Ini membolehkan Visual C++ tidak terus menutup tetingkap konsol sebaik sahaja tamat program
#include <stdlib.h>
//untuk arahan "cout" dan "endl". Ianya memudahkan kita dalam menulis cout ini kerana jika tidak
//kita perlu meletakkan std::cout<<"etc"<<endl; untuk setiap kali menggunakan cout
using namespace std;

int main()
{
cout<<"test"<<endl; //papar perkataan test
system("pause");    //jangan tamatkan program
}

Berdasarkan pengaturcaraaan di atas. Saya selalu menulis dengan menguji menggunakan cout terlebih dahulu.

Maka kali ini kita cuba masukkan pula fungsi tambah, tolak, darab dan bahagi. Sila baca definisi pada sesetengah fungsi

#include <iostream>
#include <stdlib.h></pre>
int a,b,c,d;

using namespace std;

int tambah() //fungsi baru tambah
{
cout<<"Masukkan Nilai A    :"; // untuk memasukkan nilai A
cin>>a;                                           // mengambil nilai A menggunakan arahan cin
cout<<"Masukkan Nilai B    :"; // untuk memasukkan nilai B
cin>>b;                                          // mengambil nilai B menggunakan arahan cin
return (a+b);                                // Kita menghantar nilai A+B kepada fungsi yang memanggil fungsi "tambah()" ini
}

int tolak()
{
cout<<"Masukkan Nilai C    :";
cin>>c;
cout<<"Masukkan Nilai D    :";
cin>>d;
return (c-d);                                       // Kita menghantar nilai C-D kepada fungsi yang memanggil fungsi "tolak()" ini
}

int main () {
cout << "jawapan bagi penambahan a+b ialah : "<<tambah()<<endl;
cout << "jawapan bagi penolakan c-d ialah : "<<tolak()<<endl;
system ("pause");
}
<pre>

Maka sekarang kita sudah beralih ke Procedural Programming.

Sekarang, kita akan convertkan kepada Object Oriented Programming. Maka saya memerlukan satu fail tambahan yang digelar sebagai tambahtolak.h (rujuk post saya terdahulu)

Tetapi apa yang perlu ada dalam tambahtolak.h ini? Sebuah fail header?

Untuk melakukan operasi tambah tolak kita memerlukan
– operasi tambah : untuk menjalankan operasi tambah
– operasi tolak : untuk menjalankan operasi tolak
– operasi pengambilan data : untuk mengambil data agar dapat digunakan oleh tambah dan tolak.

Bermaksud, operasi tambah dan tolak memerlukan data dari operasi pengambilan data yang lain.

Tetapi jika kita boleh “bundlekan” operasi-operasi ini atau gabungkan untuk menjadi satu fungsi sahaja.

Dan apa yang tinggal kita hanya perlu dapatkan data sahaja.

#ifndef tambahtolak_h
#define tambahtolak_h

class nombor
{
public:
int aa,bb,cc,dd;
void operasi(nombor dapatkandata);
};

#endif

Satu class nombor diperkenalkan. Sistem class ini bertujuan seperti pakej. Ianya tidak sama seperti fungsi. class ini dapat digunakan oleh fungsi lain juga.

Saya juga isytiharkannya sebagai public kerana saya tidak menggunakan data yang private atau protected. Definisi ini tidak akan diterangkan untuk artikel ini.

Cuba perhatikan, saya perkenalkan int aa,bb,cc, dan dd untuk menyimpan data yang akan dimasukkan oleh pengguna

Kemudian ada satu fungsi operasi (void) untuk mendapatkan data. “nombor dapatkandata” itu adalah bertujuan memberitahu class nombor yang kita mahu simpan

atau parsing data yang dihantar melalui dapatkandata. bermaksud “dapatkandata” ini seperti seorang orang tengah dalam mendapatkan data

.

Seterusnya kita pergi ke satu lagi fail yang akan diperkenalkan iaitu tambahtolak.cpp

#include <iostream>
#include "tambahtolak.h"

using namespace std;

void nombor::operasi(nombor dapatkandata)
{
cout<<"Penambahan a+b    :    "<<dapatkandata.aa + dapatkandata.bb<<endl;
cout<<"Penolakan c-d    :    "<<dapatkandata.cc - dapatkandata.dd<<endl;
}

Seperti biasa, kita akan memanggil header file tambahtolak.h ini kerana kita akan melakukan sesi function declaration di dalam ini.

Cuba lihat dalam void nombor::operasi (nombor dapatkandata)

Inilah cara untuk kita menulis bagi mendapatkan atau memanggil function yang diisytiharkan di dalam class nombor tadi.

Kemudian di dalamnya terdapat sesi penambahan dan penolakan. kita menggunakan [dot] atau “.” untuk mendapatkan data yang telah dikutip oleh

dapatkandata bagi setiap variable aa,bb,cc, dan dd.

Seterusnya kita lihat pula main.cpp

</pre>
#include <iostream>
#include <stdlib.h>
#include "tambahtolak.h"

using namespace std;

nombor datas;
nombor *getdatas;

int main () {
cout<<"Nilai A    :    ";cin>>datas.aa;
cout<<"Nilai B    :    ";cin>>datas.bb;
cout<<"Nilai C    :    ";cin>>datas.cc;
cout<<"Nilai D    :    ";cin>>datas.dd;
getdatas->operasi(datas);
system ("pause");
}
<pre>

Kita mendapati bahawa kita perlu sekali lagi memanggil tambahtolak.h

Dan disini saya perkenalkan dua data untuk dapatkan data. satu berbentuk  *getdatas dan satu lagi berbentuk datas sahaja.

Apakah bezanya?

Satu untuk menyimpan data dan satu lagi untuk memanggil data.

*getdatas adalah untuk memangil operasi

datas pula adalah untuk memasukkan nilai di dalamnya.

Oleh sebab itu Nilai A sehingga D dipanggil menggunakan cin>>datas.aa dan sebagainya

Manakala getdatas->operasi(datas) pula adalah bertujuan untuk memanggil operasi dan “menghantar” datas itu semua kepada fungsi operasi.

Kita tidak perlu spesifikkan aa,bb,cc, dan dd (seperti getdatas->operasi(datas.aa)) dan seterusnya kerana melecehkan. Baik sahaja kita hantar satu bundle

Maksudnya

getdatas->operasi(datas.aa)
getdatas->operasi(datas.bb)
getdatas->operasi(datas.cc)
getdatas->operasi(datas.dd)

sama sahaja seperti

getdatas->operasi(datas)

Lihat, 4 lines versus 1 line. mana satu anda pilih?

Outputnya:-

main.cpp

Maaf, agar kabur. Tetapi anda boleh cuba copy and paste setiap kod tadi dalam Visual C++ 2010 dan jalankan.

WordPress tidak membenarkan saya upload .zip file dan .cpp file. Maka saya cadangkan agar copy and paste sahaja code di atas.

Sehingga berjumpa lagi

Selamat Programming dengan bestnya!!

Belajar Matematik di Peringkat Universiti

Assalammualaikum,

Kali ini saya hendak “share” kepada pelajar-pelajar sekalian bagaimana mahu mendapat score yang baik semasa mempelajari matematik di peringkat universiti. Mungkin kepada undergraduate kerana peringkat postgraduate mereka sudah pun mempelajari subjek matematik. Mana mungkin anda terus ke peringkat Master/PhD tanpa melalui undergraduate

Baiklah, saya mengajar hampir 2 tahun setengah juga (baru aje lagi) matematik di peringkat Diploma Level dan juga Bachelor Level (sebenarnya disebut sebagai undergraduate).

Oleh itu, saya tahulah setakat 2 tahun setengah ini apa yang sebenar seorang pelajar itu perlu buat untuk mendapatkan markah yang baik dalam matematik.

Kita sedia maklum bahawa setiap semester terdapat hampir 16 ke 18 jam kredit terpaksa dihabiskan dalam masa 5 ke 6 bulan dan banyak pula tugasan perlu dilakukan.

Tetapi mujurlah matematik dipelajari pada semester mula-mula anda masuk universiti. Mungkin pada tahun 1 atau tahun 2 pengajian dan ada yang pada tahun ketiga (ikutlah apa yang universiti anda susun untuk kursus anda).

Baiklah

Diperingkat undergraduate, terdapat Matematik Kejuruteraan dan Persamaan Pembezaan. Di mana anda boleh anggap sahaja

Matematik Kejuruteraan = Kamiran Tinggi

Persamaan Pembezaan = Pembezaan Tinggi

berbanding apa yang anda belajar di sekolah (SPM atau STPM) atau mungkin matrikulasi? tapi saya kira peringkat matrikulasi mungkin sudah ada subjek ini (Saya tak pasti kerana saya bukan asal dari matrikulasi).

Jadi, pertama sekali, buangkan perasaan takut terhadap “Matematik Tambahan” yang anda pelajari semasa disekolah menengah dahulu.

Jika anda fobia kemungkinan anda mungkin terus “setkan” minda anda bahawa matematik ini susah.

[PERTAMA] Maka timbulkan dalam diri anda rasa ingin belajar dengan semangat yang baru dan yakin anda boleh buat.

Ini yang pertama.

Mengapa?

Kerana apa jua subjek bahkan kehidupan anda, jika anda setkan terus ianya susah maka pasti mendatangkan kesulitan di kemudian hari. Anda harus mencuba ke peringkat yang anda boleh capai. Yakin dengan diri anda dan kapabiliti anda sebagai seorang manusia yang berusaha

[KEDUA] Kemudian, SARANAN SAYA JANGAN SALIN SEMASA PENSYARAH MENGAJAR DIHADAPAN. Ianya memerlukan tag team yang bagus. 

Jika anda bijak bermain strategi, susun strategi seperti ini.

1. Antara anda dan rakan anda saya anggap anda paling bijak dalam memahamkan sesuatu subjek atau boleh bahagikan. Maksudnya subjek A, B, dan C anda yang ditugaskan untuk memahamkan pengajaran pensyarah. dan subjek D,E, dan F rakan anda pula yang ditugaskan memahamkan pengajaran.

2. Anda akan menumpu seluruh perhatian untuk setiap slide/pengajaran di papan whiteboard tanpa menyalin sebarang nota. Anda ingin memahamkan diri anda dan anda bertanya jika tidak tahu setiap step. (kecuali ada sempat untuk menyalin serba sedikit, diberi waktu dsb)

3. Pastikan rakan anda itu hanya ditugaskan mencatat dan menyalin sahaja (kecuali jika sempat memahamkan diri)

4. Seterusnya, setelah kelas tamat, yang ditugaskan mendengar akan cuba menerangkan kepada yang menyalin dan seterusnya yang menyalin memberikan nota yang disalin kepada anda. Setkan selama 30 – 60 minit untuk setiap subjek dalam seminggu.

5. Ini bermaksud, jika ada 6 subjek, maka anda perlu study 6 jam sahaja seminggu dan selebihnya anda boleh study sendiri atau pergi lepak bersama rakan dsb (aktiviti yang berfaedah)

[KETIGA] Sentiasa berdoa sebelum dan selepas solat agar anda dapat memahami isi pengajaran pensyarah dengan mudah. Jangan lupa doakan juga agar semua rakan-rakan anda juga dapat sama-sama skor yang terbaik. Tolong jangan sekadar mendoakan diri anda sendiri. 

Ini penting untuk memastikan keberkatan ilmu itu dan ilmu itu diturunkan oleh Allah melalui pensyarah anda. Ilmu Allah perlu dijaga dan dipelajari sebaik mungkin serta dijaga ilmu tersebut dan tidak boleh disalah gunakan. Sebarkan ilmu Allah dan ganjaran pahala yang besar insyaAllah akan diperoleh

[KEEMPAT] Sentiasa memperuntukan masa untuk membuat latihan matematik. AWAS, MATEMATIK MEMERLUKAN ANDA MEMBUAT LATIHAN DAN ELAKKAN “MEMBACA MATEMATIK”

Ini penting kerana tabiat membaca matematik perlu dihapuskan. Ianya perlu difahamkan dengan sebaik mungkin dan percayalah jika anda faham, anda tidak perlu membuang masa membuat pelbagai latihan matematik dan menumpu kepada matapelajaran yang lain.

Ada juga pensyarah yang tidak langsung memberi tutorial kepada pelajar-pelajarnya kerana tutorial ini seperti latihan sekolah. Anda bebas sebagai mahasiswa dan berhak menentukan diri anda sendiri mahu membuat latihan atau tidak.

Anda perlu belajar berdikari dan mencari sendiri latihan-latihan yang boleh dibuat dan bertanyakan jika tidak faham.

Ianya bukan seperti sekolah yang anda perlu semak jika dah buat latihan yang diberi.

Universiti tempat anda belajar mencari latihan, bertanyakan jika tidak tahu sesetengah soalan dan bukannya mendidik anda menjadi robot yang apabila diberi latihan, anda perlu buat dan hantar kecuali berbentuk assignment.

Saya kurang bersetuju dengan pendapat bahawa sesi tutorial itu perlu kerana sesi tutorial ini hanyalah sesi latihan yang ianya terpulang kepada pelajar untuk membuat latihan atau tidak di rumah/asrama.

Maka selalunya saya membuat kelas semasa sesi tutorial dan jika ada tutorial sekalipun, saya bagi berserta jawapannya untuk memudahkan mereka membuatnya

.

Akhir kata, selamat belajar kepada bakal-bakal pelajar Matematik Kejuruteraan saya pada sem hadapan iaitu Semester 1 2012/2013.

Semoga anda semua berjaya dalam subjek ini dan saya mendoakan anda semua berjaya dalam setiap bidang yang diceburi (yang baik).