Monday, July 7, 2008

Penyebab Kegagalan pada orang pintar

Penyebab Kegagalan Orang Pintar

Seperti halnya kesuksesan, setiap orang pun bisa mengalami kegagalan! Tak terkecuali orang-orang jenius yang kecerdasannya mendekati sempurna. Karena, memang tak ada jaminan bahwa orang pintar akan selalu sukses.

Makanya, jangan heran, jika Anda menemui rekan sekolah Anda yang dulu dikenal pandai dan cerdas namun akhirnya hanya merutuki nasib karena masa depannya yang suram! Apa penyebabnya? Di luar nasib dan faktor 'lucky', banyak hal yang bisa memicu kegagalan orang-orang pintar. Namun berdasarkan wawancara dan survei yang dilakukan pada 200 orang pintar di Amerika, ada enam hal penting penyebab kegagalan bagi mereka. Coba simak:

* Kurang ketrampilan sosial

Seberapa pun hebatnya intelegensi akademis Anda, Anda tetap perlu memiliki intelegensi sosial, seperti kemampuan mendengarkan, peka terhadap perasaan orang lain, memberi dan menerima kritik dengan baik. Orang yang memiliki intelegensi sosial tinggi mampu mengakui kesalahan mereka dan tahu bagaimana membina dukungan tim. Intelegensi sosial bisa diperoleh dengan banyak berlatih.

* Tidak cocok

Sebuah kesuksesan memerlukan kecocokan antara kemampuan, bakat, kepentingan, keinginan, kepribadian, dan nilai-nilai dalam pekerjaan Anda. Bila Anda merasa tidak cocok, maka jangan ragu untuk meninjau perilaku pekerjaan dan menyesuaikan atau mengubah pekerjaan Anda selama ini. Bagi beberapa orang, pokok persoalannya adalah seberapa besar resiko yang berani diambil.

* Tidak ada komitmen

Sesuatu yang dilakukan setengah-setengah akan memperbesar kemungkinan gagal. Suatu tujuan perlu dibarengi tekad, semangat, dan komitmen yang kuat untuk mencapainya. Kurangnya penghargaan pada diri sendiri merupakan penyebab dasar kegagalan. Untuk bisa ambil bagian dalam sukses, Anda harus yakin bahwa Anda bisa melakukannya.

* Kurang fokus

Beberapa orang melakukan terlalu banyak kegiatan sehingga akhirnya tidak melakukan satu pun dengan baik. Fokuskan kembali diri Anda pada apa yang paling baik dilakukan. Sadarilah keterbatasan Anda, tetapkan prioritas, dan susun organisasi usaha Anda.

* Kurang menyadari rintangan

Kadang, banyak rintangan tersembunyi yang sulit diperangi. Umur, diskriminasi jenis kelamin dan ras merupakan jenis rintangan yang sering tidak disadari. So, Anda harus meninjau kembali, berdasarkan analisa yang benar mengenai situasi, untuk merebut kembali kontrol atas kehidupan dan masa depan Anda.

* Kemalangan

Siapapun tidak bisa menolak adanya takdir, entah itu takdir baik atau buruk. Dan siapa pula yang bisa menolak ketika kemalangan itu harus Anda alami? Seandainya ini terjadi, yang harus Anda lakukan, jangan menyalahkan diri sendiri! Ingat, meski tak bisa menolak kemalangan itu, namun selalu ada jalan untuk memperbaikinya.

Pada akhirnya, kegagalan bukanlah 'jalan buntu' untuk mencapai sukses. Kesempatan datang silih berganti. Jika hari ini Anda gagal, mungkin besok Anda akan sukses. Jika Anda mampu berpikir jernih mengenai kegagalan dan menyadari bahwa dalam hidup ini selalu ada pilihan, Anda akan bisa menyikapi sebuah kegagalan sebagai pelajaran yang berharga. Ingat, tak ada orang yang lebih bodoh selain tidak bisa memetik pelajaran dari sebuah kegagalan.

Selingan: Ssstttttt...................... ada yang protes tuh

ADA YANG PROTES

Bersama dengan ini, Saya sebagai penis ingin meminta
kenaikan gaji dikarenakan alasan-alasan berikut:
* Saya melakukan pekerjaan yang berhubungan dengan fisik
* Saya bekerja di suatu kedalaman tertentu
* Saya bekerja dengan menggunakan kepala terlebih dahulu
* Saya bekerja di tempat yang lembab
* Saya bekerja lembur dengan tanpa biaya tambahan
* Saya bekerja di ruang yang gelap yang tidakmempunyai aliran udara segar
* Saya bekerja di temperatur yang tinggi
* Pekerjaan saya beresiko tertular oleh penyakit

Tanggapan dari HRD:
Setelah mempertimbangkan permintaan dan argumen yang
diberikan, kami menolaknya dengan alasan-alasan berikut:
* Anda tidak bekerja 8 jam penuh
* Anda tertidur setelah melakukan tugas yang waktunya sebentar
* Anda tidak selalu menurut perintah dari manajemen
* Anda tidak selalu berada di posisi yang telah ditentukan, bahkan sering pergi ke tempat lain
* Anda terlalu banyak mengambil istirahat yang tidak resmi
* Anda tidak mempunyai inisiatif, selalu harus ditekan dan dirangsang untuk dapat memulai bekerja
* Anda meninggalkan tempat kerja anda dengan berantakan
* Terkadang anda mengabaikan peringatan kesehatan dengan tidak menggunakan pakaian pelindung yang semestinya
* Anda tidak pernah menunggu usia pensiun sebelum berhenti bekerja
* Anda tidak suka bekerja dalam 2 shift
* Anda terkadang meninggalkan tempat kerja anda sebelum kerjaan selesai
* Dan yang terpenting adalah anda selalu memasuki dan meninggalkan tempat kerja dengan membawa 2 buah bungkusan yang bentuknya mencurigakan

Sunday, July 6, 2008

Membangun aplikasi dengan VFP dgn database My Sql

Bagian I

-------------------------------------------------------------------------------------------------------------

# mulai copy disini

CREATE TABLE anggota (

kdangg int(11) NOT NULL auto_increment,

nama varchar(50) default NULL,

alamat mediumtext,

notelp varchar(50) default NULL,

PRIMARY KEY (kdangg)

) TYPE=MyISAM;


# Isi data tabel 'anggota'

INSERT INTO anggota (kdangg, nama, alamat, notelp) VALUES("1", "nobody", "diantara runput ilalang", "54654654654");

INSERT INTO anggota (kdangg, nama, alamat, notelp) VALUES("2", "somebody", "somewhere", "84555245");


CREATE TABLE fitur (

kdfitur int(11) NOT NULL auto_increment,

nama varchar(50) default NULL,

ket mediumtext,

kdangg int(11) default NULL,

PRIMARY KEY (kdfitur)

) TYPE=MyISAM;

#selesai script




--------------------------------------------------------------------------------------------------------------

Bagian II

--------------------------------------------------------------------------------------------------------------



Sebelumnya kita sudah membahas tentang bagaimana membuat database mySQL dengan menggunakan mySQL-Front dan tentang ODBC Diver. Kali ini akan saya bahas tentang pembuatan aplikasinya dengan Visual FoxPro (untuk referensinya saya menggunakan VFP 8.0 Pro, tetapi anda juga dapat mengaplikasikannya untuk versi 6 dan 7 !).


Visual FoxPro adalah salah satu software paling (kalau boleh saya bilang terbaik!) baik untuk pemrosesan data. Untuk keterangan selengkapnya, anda dapat membaca artikel dari Handi berjudul "10 Alasan menggunakan Visual FoxPro".


Komunikasi antara Visual FoxPro dengan mySQL Server

Komunikasi antara Visual FoxPro dengan mySQL dapat dibentuk dengan beberapa cara, seperti menggunakan ODBC (SQLSTRINGCONNECT( ), SQLCONNECT( )), menggunakan ActiveX objek, atau dengan menggunakan Library bawaan mySQL sendiri yaitu "Libmysql.dll". Kali ini akan saya bahas koneksi dengan menggunakan ODBC Driver saja.


- SQLCONNECT( )

Syntax : SQLCONNECT( 'nama_koneksi' , 'namadatakoneksiODBC' , 'usenameODBC' , 'passwordODBC' )

Keterangan :

- 'nama_koneksi' = Nama koneksi yang akan anda gunakan setiap anda akan memproses data. Sebaiknya variabel ini disimpan sebagai variabel PUBLIC

- 'namadatakoneksiODBC' = Nama koneksi ODBC, BUKAN nama database anda...!

- 'usenameODBC' = Nama user database

- 'passwordODBC' = Password database user tersebut

Kelebihan :

- Lebih cepat dalam pemrosesan data dari pada menggunakan SQLSTRINGCONNECT( )

- Lebih stabil karena koneksi sudah dibentuk sesaat setelah login ke sistem Windows anda

- Tidak adanya ketergantungan terhadap versi ODBC

Kekurangan :

- Anda harus membuat koneksinya disetiap mesin yang akan memproses data.

- Tidak Secure karena detail tentang koneksi ini (termasuk username dan passwordnya...!) dapat dilihat lewat Registry di "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC"


- SQLSTRINGCONNECT( )

Syntax : SQLCONNECT( m.stringkoneksi )

String koneksi : "DRIVER={MySQL ODBC 3.51 Driver};DESC=;DATABASE=";

+_lcDBname+";SERVER="+_lcserver+";UID="+_lcUsername+;

";PASSWORD="+_lcpswDB+";PORT=;OPTION=;STMT=;"

Keterangan :

- 'stringkoneksi = Alias (string) koneksi yang akan dieksekusi oleh SQLCONNECT( )

- _lcDBname = variable nama database mySQL, contoh : "databaseku"

- _lcserver = variable nama server atau IP server, contoh : "localhost" atau "90.0.0.1"

- _lcUsername = variable username database, contoh : "root"

- _lcpswDB = variable password database, contoh : "inikunci"

Atau anda dapat menuliskannya secara langsung :

"DRIVER={MySQL ODBC 3.51 Driver};DESC=;DATABASE=databaseku;SERVER=localhost;UID=root;PASSWORD=inikunci;PORT=;OPTION=;STMT=;"

Ingat...! mySQL pada dasarnya dikembangkan untuk lingkungan UNIX yang case sensitive dalam pembacaan karakter! Walaupun hal ini tidak berlaku untuk versi windowsnya, akan tetapi sebaiknya anda perhatikan besar kecilnya huruf tersebut!

Kelebihan :

- Tidak perlu membuat koneksi ODBC via Control Panel di tiap-tiap mesin yang akan memproses data

- Sangat Secure karena detail koneksi seperti nama database, username database dan passwordnya berada didalam source code aplikasi anda

- Menggunakan Resource yang lebih sedikit dibandingkan dengan SQLCONNECT( )

Kekurangan :

- Adanya ketergantungan versi ODBC Driver, yang berarti jika anda mengganti versi ODBC driver di mesin yang akan digunakan memproses data, maka anda harus mengubah source code-nya (walaupun dengan sedikit trik anda tidak perlu mengubah source code tersebut...;-p )


Anda dapat menggunakan salah satu dari fungsi koneksi diatas sesuai dengan kebutuhan anda. Sebagai catatan, perbedaan kecepatan proses data untuk jaringan LAN tidak signifikan. Bahkan anda tidak akan merasakan delaynya. Hal ini disebabkan bukan VFP yang memproses datanya, melainkan SQL Server yang memproses datanya. VFP hanya menampilkan data hasil proses server ke CURSOR


Bagian III

---------------------------------------------------------------------------------------------------------------



Sudah mencoba tutorial sebelumnya? Berikut adalah tutorial dalam pengkodean VFP. Tutorial ini bagian terahkir dari 4 bagian. Selamat mencoba...!

DASAR PROSES DATA
Pada dasarnya, query pada SQL Server (seperti mySQL, MSSQL, ORACLE dll) tidak selalu sama. Query yang diproses oleh fungsi SQLEXEC(namakoneksi,"query yang dilakukan","namacursor") ( lihat artikel SQL Pass-Trough (SPT) mempermudah hidup anda...!) tidak diproses oleh VFP. Jadi untuk query-query yang lebih lengkap dapat anda dapatkan di Help masing-masing SQL server. Untuk mySQL Server dapat anda dapatkan di http://www.mysql.com/documentation
Berikut sebagian kecil query yang dapat digunakan secara umum (berlaku untuk masing-masing SQL Server diatas):

1. SELECT namafield FROM namatabel
Syntax ini berfungsi untuk mengambil data dari server dan disimpan kedalam CURSOR FoxPro. Contoh dalam VFP:

SQLEXEC(namakoneksi,"SELECT field1, field2, field3 FROM tabel1","namacursor")

Kalo kamu bermaksud menampilkan data dari tabel (pada kasus diatas bernama "tabel1") kedalam grid atau listbox misalnya, maka sumber data dari grid atau listbox tersebut adalah "namacursor". Lihat listing contoh dibawah:

* menampilkan data dari tabel tabel1 kedalam grid
* Procedure cmdTampil.CLICK()
xnama=ALLTRIM(THISFORM.txtnama.VALUE)
THISFORM.grid1.RECORDSOURCE=""
SQLEXEC(kon,"SELECT field1, field2, field3 FROM tabel1 WHERE field1=?xnama","cursor1")
THISFORM.grid1.RECORDSOURCE="cursor1"

Dalam contoh diatas, data dari tabel1 diambil dan disimpan kedalam tabel sementara atau CURSOR bernama cursor1. Pengambilan data tersebut di "FILTER" oleh field1 dimana isi field1 tersebut sesuai dengan textbox yang bernama txtnama.

... FROM tabel1 WHERE field1=?xnama","cursor1")

Jika ingin menampilkan semua datanya, syntax WHERE dihilangkan saja.

2. INSERT INTO namatabel(field1, field2, field3...) VALUES(xnama1, xnama2, xnama3...)
Syntax ini berfungsi untuk menyimpan (menyisipkan) data ke server. Contoh dalam VFP:

SQLEXEC(namakoneksi,"INSERT INTO namatabel(field1,field2) VALUES(?xnama1,?xnama2)")

Kamu dapat menghilangkan syntax ...(field1,field2)... HANYA jika ...(?xnama1,?xnama2)... sesuai dengan urutan struktur dalam tabel tersebut! Sebagai contoh:

SQLEXEC(namakoneksi,"INSERT INTO namatabel VALUES(?xnama1,?xnama2)")

Contoh dalam pemakaian di VFP dapat kamu lihat di listing kode berikut:

*menyimpan data ke tabel server
* Procedure cmdSimpan.CLICK()
xnamabaru=ALLTRIM(THISFORM.txtnama.VALUE)
xalamat=ALLTRIM(THISFORM.txtalamat.VALUE)
IF MESSAGEBOX('SIMPAN DATA INI?',36,'COBA SIMPAN DATA')=6 &&konfirmasi penyimpanan data
SQLEXEC(kon,"INSERT INTO tabel1(field1,field3) VALUES(?xnamabaru,?xalamat)")
ENDIF

Perhatikan bahwa data yang disimpan kedalam tabel1 HANYA dari field1 dan field3 saja! Untuk itu setelah perintah INSERT INTO tabel1, nama field1 dan field3 ikut dituliskan.

3. UPDATE namatabel SET field1 = xnama1, field2 = xnama2, field3 = xnama3
Seperti namanya, syntax ini berfungsi untuk melakukan perubahan terhadap data yang sudah ada didalam tabel (update data). Contoh penggunakan dalam VFP:

*mengubah data dalam tabel
* Procedure cmdsave.CLICK()
xkdcust=ALLTRIM(THISFORM.txtkdcust.VALUE)
xnama=ALLTRIM(THISFORM.txtnama.VALUE)
IF MESSAGEBOX("Simpan perubahan data pada KODE CUSTOMER "+xkdcust+" ini?",36,"COBA UPDATE DATA")=6
SQLEXEC(kon,"UPDATE customer SET nama=?xnama WHERE kdcust=?xkdcust")
ENDIF

Perhatikan pada statement ...WHERE kdcust =... tersebut! Syntax diatas berarti : "UBAH NILAI DARI TABEL customer DIMANA FIELD nama MENJADI VARIABEL xnama DIMANA kdcust ADALAH VARIABEL xkdcust". Jika tidak menambahkan klausa ...WHERE..., maka SEMUA data dari tabel customer akan berubah nilai field nama menjadi nilai yang tersimpan dalam variabel xnama!

4. DELETE FROM namatabel
Syntax ini berfungsi untuk menghapus data dari tabel dala m sebuah database. Penggunaan dalam VFP:

*menghapus data dari tabel
*Procedure cmdHapus.CLICK()
xkdcust=ALLTRIM(THISFORM.txtkdcust.VALUE)
IF MESSAGEBOX("Hapus data dengan KODE CUSTOMER "+xkdcust+" ini?",36,"COBA HAPUS DATA")=6
SQLEXEC(kon,"DELETE FROM customer WHERE kdcust=?xkdcust") && hapus data tertentu saja
ENDIF

Perhatikan bahwa klausa ...WHERE kdcust=?xkdcust... ditambahkan setelah ...DELETE FROM customer... Hal ini berarti data yang akan dihapus dari tabel customer HANYA yang mempunyai data dari field kdcust yang bernilai dari variabel xkdcust saja! Jika kamu ingin menghapus SEMUA data dari tabel tertentu, kamu tidak perlu menambahkan klausa ...WHERE... kedalam kode kamu, contoh:

SQLEXEC(kon,"DELETE FROM customer") && hapus semua data