RSS
email

Sabtu, 18 Juni 2011

Trik Memikat Kaum Wanita


Kebanyakan pria tak cukup pandai dalam hal bercumbu-rayu. Sebenarnya hal ini bukan melulu tergantung pada 'bakat alami', menggoda lawan jenis memiliki beberapa dasar yang dapat dipelajari oleh setiap orang. Berikut beberapa tip tentang merayu wanita yang akan mengarahkan Anda jadi pria yang dipuja.

Isyarat Fisik Dan Verbal

1. Postur dan posisi - Postur Anda mengkomunikasikan segalanya. Anda perlu melengkungkan punggung dan sedikit menonjolkan dada Anda. Ambil jarak, saat Anda berbicara dengan seorang wanita, posisikan diri Anda tak jauh dari dua kaki. Anda tak perlu terlalu dekat dengannya, tapi sedikit lebih dekat dari jarak yang biasa dilakukan dalam percakapan normal.

Atur posisi terbuka sepanjang waktu. Saat Anda sedang berusaha merayu seorang wanita, jangan sekali-kali bersedekap atau memasukan tangan ke dalam saku. Jika Anda ingin mencoba membuatnya melihat Anda, mundurlah sedikit, jika dia mengikuti gerakan Anda, maka itu sebuah pertanda bagus.

2. Mata bertemu mata, merupakan alat efektif dalam seni merayu. Gunakan mata Anda untuk memberi tatapan penuh kekaguman. Hal itu cukup mungkin untuk membuat hati seorang wanita kalang-kabut. Jika Anda kebetulan melewati seorang wanita yang ingin Anda goda, beri tatapan dua kali pada matanya, lalu berpindahlah perlahan. Dan berikan senyuman saat Anda hendak memalingkan wajah. Kalau dia tanggap, maka dia akan menangkap isyarat ketertarikan Anda.

3. Sentuhan juga boleh dilakukan. Sebagai awalnya, sentuh pundak atau tangannya sewaktu Anda berbicara dengannya. Namun untuk sentuhan ini, Anda mesti hati-hati, jangan sampai sentuhan tersebut diartikan sesuatu yang kurang ajar atau melecehkan. Yang perlu Anda ingat, jangan keluar jalur, atau si wanita malah jadi sebal pada Anda.

4. Bersikaplah agresif. Kaum wanita menyukai pria-pria yang tak takut melakukan apapun demi mendapat yang diinginkannya. Saat Anda menujukkan 'pengejaran' dengan penuh rasa percaya diri dan tak kenal takut, maka ia akan mulai melihat Anda sebagai sosok yang berbeda. Jangan pelit memberi pujian pada wanita...ungkapkan apa yang Anda pikirkan, asal itu dalam batas wajar.

5. Berikan ungkapan jujur. Jika Anda telah menyampaikan bahasa tubuh yang tepat, apa yang Anda katakan tak sepenuhnya penting. Hanya saja, usahakan untuk membuat percakapan tetap hidup. Lemparkan topik yang bukan hal serius, bukan pula percakapan yang terlalu mendalam. Jangan melulu bicara tentang diri Anda, tapi gali pula hal-hal yang membuat lawan bicara Anda terlibat. Bersikaplah terus terang, meski demikian, tetap fokuskan pada hal-hal yang membuatnya tertarik. Beri pujian pada penampilannya, tapi jangan berlebihan. Anda juga bisa merayunya dengan mengatakan betapa dia pandai dalam sesuatu, misalnya memilih warna baju yang sesuai, atau dalam melakukan permainan atau apapun yang Anda tahu dia bisa melakukannya. Dan pastikan untuk menunjukan ketertarikan Anda dalam isyarat tubuh saat melakukan percakapan ini.

Isyarat Jiwa

Jangan perlihatkan perasaan gugup sewaktu Anda mendekati seorang wanita, pancarkan rasa percaya diri dan yakin kalau Anda mampu mengontrol situasi ini. Tunjukan Anda merasa nyaman dan aman...para wanita menyukai pria yang memiliki rasa aman. Ingat, seorang yang percaya diri dan merasa aman sangatlah memikat. Itulah kenapa kebanyakan wanita enggan dengan pria yang sombong dan grogi. Rasa percaya diri dapat ditunjukan dengan tidak bicara gugup, tidak duduk/berdiri dengan gelisah, menatap langsung ke mata dan suara tidak terdengar gemetar.

2. Untuk membuat seseorang menyukai Anda, khususnya wanita, Anda mesti selalu terlihat gembira, antusias dan menebarkan rasa senang. Saat hendak merayu seorang wanita, tampilah dengan penuh energi dan pikiran yang positif.


Anda mungkin telah memiliki trik-trik tersendiri untuk memikat lawan jenis yang Anda taksir, dan semoga tips yang kami berikan ini dapat menambah trik yang telah Anda miliki. (articlebiz/erl)

Pembuatan proses:

Penyebab terjadinya pembuatan suatu proses baru yaitu;
  1. Pada lingkungan batch, sebagai tanggapan atas pemberian suatu kerja (job)
  2. Pada lingkungan interaktif, ketika pemakai baru berusaha logon
  3. Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, SO dapat menciptakan proses yang akan mengelola pencetakan itu
  4. Proses menciptakan proses lain (child).
  5. Proses yang menciptakan child process disebut proses induk (parent process)
  6. Child process dapat menciptakan proses baru.
  7. Proses-proses dapat membentuk pohon hirarki proses
Suatu proses dapat membuat beberapa proses baru, melalui sistem pemanggilan pembuatan proses, selama jalur eksekusi. Pembuatan proses dinamakan induk proses, sebagaimana proses baru di sebut anak dari proses tersbut. Tiap proses baru tersebut dapat membuat proses lainnya, membentuk suatu pohon proses
Secara umum, suatu proses akan memerlukan sumber tertentu (waktu CPU, memori, berkas, perangkat I/O) untuk menyelesaikan tugasnya. Ketika suatu proses membuat sebuah subproses, sehingga subproses dapat mampu untuk memperoleh sumbernya secara langsung dari sistem operasi. Induk mungkin harus membatasi sumber diantara anaknya, atau induk dapat berbagi sebagian sumber (seperti memori berkas) diantara beberapa dari anaknya. Membatasi suatu anak proses menjadi subset sumber daya induknya mencegah proses apa pun dari pengisian sistem yang telalu banyak dengan menciptakan terlalu banyak subproses.
Sebagai tambahan pada berbagai sumber fisik dan logis bahwa suatu proses diperoleh ketika telah dibuat, data pemula (masukan) dapat turut lewat oleh induk proses sampai anak proses. Sebagai contoh, anggap suatu proses yang fungsinya untuk menunjukkan status sebuah berkas, katakan F1, pada layar terminal. Ketika dibuat, akan menjadi sebagai sebuah masukan dari proses induknya, nama dari berkas F1, dan akan mengeksekusi menggunakan kumpulan data tersebut untuk memperoleh informasi yang diinginkan. Proses tersebut juga mendapat nama dari perangkat luar. Sebagian sistem operasi melewati sumber-sumber ke anak proses. Pada sistem tersebut, proses baru bisa mendapat dua berkas terbuka yang baru, F1 dan perangkat terminal dan hanya perlu untuk mentransfer data antara kedua berkas tersebut.
Ketika suatu proses membuat proses baru, dua kemungkinan ada dalam term eksekusi:
  1. Induk terus menerus untuk mengeksekusi secara bersama-sama dengan anaknya.
  2. Induk menunggu sampai sebagian dari anaknya telah diakhiri/terminasi.
Juga ada dua kemungkinan dalam term dari address space pada proses baru:
  1. Anak proses adalah duplikat dari induk proses.
  2. Anak proses memiliki program yang terisikan didalamnya.
Langkah-langkah dalam pembuatan proses, antara lain :
  • Memberi identitas (nama) pada proses yang dibuat.
  • Menyisipkan proses pada list proses atau tabel proses.
  • Menentukan prioritas awal proses.
  • Membuat PCB.
  • Mengalokasikan resource awal bagi proses tersebut.
Penghentian Proses
Suatu proses akan berhenti jika telah menyelesaikan pernyataan terakhir dan meminta pada sistem operasi untuk menghapusnya dengan menggunakan system call exit. Proses mengembalikan semua data (output) ke parent proses melalui system call wait. Kemudian proses akan dihapus dari list atau tabel system dilanjutkan dengan menghapus PCB.
Penghapusan proses ini akan menjadi sangat kompleks jika ternyata proses yang akan dihentikan tersebut membuat proses-proses yang lain. Pada beberapa system proses-proses anak akan dihentikan secara otomatis jika proses induknya berhenti. Namun ada beberapa sistem yang menganggap bahwa proses anak ini terpisah dengan induknya, sehingga proses anak tidak ikut dihentikan secara otomatis pada saat proses induk dihentikan.
Alasan lain Penyebab terjadinya penghentian suatu proses:
  1. Apabila Proses selesai mengerjakan tugasnya(selesai normal)
  2. Apabila Proses berjalan melebihi batas waktu
  3. Jika memory tidak tersedia
  4. Pelanggaran terhdap batas memori
  5. Terjadi kesalahan karena pelanggaran proteksi
  6. Terjadi kesalahan perhitungan
  7. Jika terjadi proses menunggu terlalu lama
  8. Terjadi kegagalan I/O
  9. Jika proses mengeksekusi instruksi yang tidak ada
  10. Proses menggunakan instruksi yang disimpan untuk SO
  11. Terjadi kesalahan penggunaan data
  12. Terjadi intervensi dari operator atau SO (contoh : deadlock)
  13. Jika proses induk berahir
  14. Yang terakhir atas permintaan proses induk
Indikasi dapat berupa :
  1. Instruksi HALT membangkitkan sustu interupsi alert untuk SO
  2. Aksi pengguna (seperti log off dan keluar dari suatu aplikasi)
  3. Terjadi suatu kesalahan atau error
  4. Dihentikan oleh proses induk

Cowok sedang jatuh cinta


Cara: taunya tuh Cowok lagi jatuh cinta sama saya bagaimana yah?

Yang namanya manusia, pastilah ada cinta di mana-mana. Mau di keluarga, mau di kalangan teman-teman, ataupun cinta di pasangan masing-masing. Bagaimana sih caranya untuk tahu apa itu Cowok sedang jatuh cinta sama kamu atau tidak?
Berikut ini adalah 10 ciri-ciri Cowok yang sedang jatuh cinta dengan seorang Cewek:

1. Memberikan perhatian lebih
Si Cowok akan memberikan perhatian lebih terhadap kamu dibanding terhadap orang-orang lain. Biasanya, teman-teman kamu akan lebih bisa merasakan ini daripada kamu sendiri. Misalnya, di saat kamu sedang menggigil kedinginan karena cuaca sedang buruk, dia akan menjadi orang pertama yang menawarkan jaketnya untuk kamu. Di saat kamu sedang sakit, dia akan menjadi orang pertama yang menawarkan bantuan atau membelikan kamu makanan.

2. Meluangkan waktunya untuk kamu
Cowok yang mencintai kamu selalu ingin berada didekat kamu. Hal ini akan terlihat jelas, apalagi kalau dia bisa meluangkan waktunya untuk sesuatu yang dia sebenarnya tidak suka lakukan. Padahal kamu tau kalau dia sebenarnya tidak suka shopping, tapi dia mau meluangkan waktunya untuk menemani kamu belanja ke shopping mall.

3. Menerima kamu apa adanya
Orang yang mencintai kamu selalu menerima kamu apa adanya. Mau kamu itu segemuk apapun, sebau apapun, ataupun sejorok apapun, dia pasti tetap bisa menerima kamu dan tidak mengutarakan komen apapun untuk merubahnya. Bagi dia, itu adalah hal unik dari kamu.

4. Lebih romantis terhadap kamu
Orang yang sedang jatuh cinta sama kamu, dia pasti akan lebih ber-romantis-ria bersama kamu. Contohnya, dia mungkin akan mengirimkan sms seperti “Selamat pagi”, “Selamat malam”, “Selamat tidur”.

5. Mau tau segalanya tentang kamu setiap saat
Selalu aja nih Cowok mau tau kegiatan kamu sehari-hari. “Hari ini gimana di kantor?” atau mungkin “Nanti ada acara apa?”
Semuanya itu adalah hal-hal yang dia ingin tau tentang kamu, kegiatan kamu sepanjang hari, maupun untuk acara ke depan.

6. Selalu mengingat hal-hal kecil tentang kamu
Orang yang mencintai kamu selalu mengingat tiap kata2 yang kamu ucapkan bahkan mungkin kata2 yang kamu sendiri lupa pernah mengatakannya kepada dia. Tapi dia akan ingat akan hal-hal kecil yang kamu katakan maupun lakukan.

7. Selalu menganggap kamu adalah Cewek satu-satunya untuk dia
Si Cowok tidak akan mendekati Cewek lain jikalau dia sedang jatuh cinta sama kamu. Cowok yang melirik Cewek lain tidak mungkin sedang jatuh cinta, itu namanya Cowok yang lagi bingung. Setiap kali dia ingin keluar makan, dia selalu telpon kamu, ngajak kamu, dan menelpon kamu pertama daripada menelpon Cewek lain. SMS dari kamu selalu dia simpan malahkan menghapus SMS orang lain jika inbox dia sudah penuh.

8. Tidak akan gampang membuat janji kepada kamu
Cowok yang mencintai kamu tidak akan gampang untuk membuat janji. Dia akan lebih hati-hati untuk menyiapkan semuanya untuk kamu. Jika dia tidak yakin akan sesuatu, dia tidak akan gampang untuk menjanjikannya. Bukan karena dia adalah Cowok yang tidak bisa dipercayai, tapi justru dia ingin kamu mempercayainya. Dia sedang berhati-hati supaya tidak mengecewakan kamu.

9. Tidak akan mau menyusahkan kamu
Kamu sedang butuh sesuatu, dia akan selalu menawarkan bantuan untuk kamu tanpa kamu minta. Dan jika kamu sedang di dalam kesusahan, dia akan mencari jalan untuk meringankan beban kamu. Dia akan menyuruh kamu untuk tidak mengkuatirkan apapun karena dia telah memikirkan penyelesaiannya untuk kamu.

10. Tidak punya alasan untuk mencintaimu
“Kenapa kamu sayang aku?” Cowok yang mencintaimu tidak akan bisa menyebutkan mengapa dia mencintaimu. Cinta itu bagaikan sesuatu yang tidak bisa dijelaskan dengan kata-kata. Itu adalah hal yang hanya bisa dirasakan. Kalau dia mulai mengatakan “Karena kamu cantik!” Wah, itu namanya gombal! Jangan mau percaya kalau dia mengatakan hal-hal yang muluk-muluk.

Senin, 13 Juni 2011

Cara Mengubah Struktur Tabel dengan Query SQL

Dalam artikel ini, saya akan coba bahas dalam blog ini mengenai bagaimana cara mengubah struktur tabel menggunakan query SQL. Meskipun untuk mengubah struktur tabel, khususnya pada MySQL ini, dapat kita lakukan dengan mudah menggunakan tool atau interface seperti PhpMyAdmin atau Navicat atau yang lain, namun… sejenak kita lupakan tool-tool tersebut. Mengapa demikian? yap…. kita mungkin tidak akan menduga, ketika di suatu saat kita dipaksa tidak boleh menggunakan tool seperti di atas dan mau tidak mau harus menggunakan SQL command untuk mengatur administrasi database. Boleh saja kita menggunakan tool, namun basic commandsnya jangan sampai diabaikan. Bukan begitu mbak Elis? (salah satu member saya) :-) Kebetulan beliau ini sedang bingung karena ada tugas dari dosennya. Mudah-mudahan dari postingan artikel ini menjadi tidak bingung lagi :-)
OK… lanjut…
Ada beberapa proses yang termasuk dalam pengubahan struktur dalam tabel, yaitu :
  • menambah field baru dalam suatu tabel,
  • mengubah nama field,
  • mengubah tipe data field,
  • membuat primary key
  • mengubah properti field,
  • menghapus primary key,
Nah.. akan kita bahas satu persatu proses di atas. Mmm… tapi enaknya kita buat dalam studi kasus saja ya.
Andaikan kita sebelumnya telah memiliki tabel dengan struktur sebagai berikut:
1.CREATE TABLE mhs
2.(
3.  nim varchar(8),
4.  nama varchar(30),
5.  tgllahir varchar(10)
6.)
Trus… nantinya kita akan ubah struktur tabel yang telah kita miliki di atas.
Menambah Field Baru
Sebagai contoh misalkan kita akan menambahkan field baru dengan nama ‘asalSekolah’ bertipe Varchar(20) sebagai field terakhir dari tabel, perintah SQL nya adalah
1.ALTER TABLE mhs ADD asalSekolah VARCHAR(20);
Anda juga dapat menyisipkan field ‘asalSekolah’ tersebut sebagai field pertama dalam tabel ‘mhs’ dengan perintah SQL sbb:
1.ALTER TABLE mhs ADD asalSekolah VARCHAR(20) FIRST;
Bagaimana bila kita ingin field ‘asalSekolah’ ini diletakkan setelah field ‘nama’? Gampang sekali caranya, cukup berikan perintah berikut ini
1.ALTER TABLE mhs ADD asalSekolah VARCHAR(20) AFTER nama;
Mengubah Nama Field
Sebagai contoh misalkan kita akan mengubah nama field ‘nama’ menjadi ‘namaMhs’. Perhatikan perintah SQL berikut ini
1.ALTER TABLE mhs CHANGE nama namaMhs VARCHAR(8);
Mengubah Tipe Data Field
Sebagai contoh misalkan kita akan mengubah tipe data dari field ‘tgllahir’ menjadi DATE, maka perintah SQL nya:
1.ALTER TABLE mhs CHANGE tgllahir tgllahir DATE;
Catatan:
Perhatikan perintah di atas bahwa field ‘tgllahir’ ditulis 2 kali. Hal ini dilakukan apabila tidak ada perubahan nama field.
Membuat Primary Key
Misalkan kita akan membuat field ‘nim’ sebagai kunci atau primary key nya. Maka perintahnya adalah:
1.ALTER TABLE mhs ADD PRIMARY KEY (nim);
Bagaimana bila kita ingin lebih dari satu field sebagai kuncinya sekaligus? Ya… mudah saja tinggal berikan perintah SQL seperti ini
1.ALTER TABLE namatabel ADD PRIMARY KEY (field1, field2, ...);
Mengubah Properti Field
Yang dimaksud mengubah properti field, misalnya kita menambahkan auto increment pada suatu field atau kita mengatur suatu field tidak boleh NULL (berisi data kosong). Sebagai contoh misalnya kita akan memberikan auto increment pada field ‘nim’ (meskipun NIM menggunakan auto increment itu tidak boleh). Ingat ya… untuk auto increment ini hanya dapat diberikan pada field yang bertipe INTEGER saja. Oleh karena itu ketika akan memberikan auto increment, maka sekaligus kita ubah tipe data ‘nim’ menjadi INTEGER. Satu lagi yang penting bahwa field yang akan diberikan auto increment haruslah berupa kunci (key). Oleh karena itu kita sebelumnya harus sudah memilih ‘nim’ sebagai kunci nya. Berikut ini adalah perintah SQL untuk memberikan auto increment pada ‘nim’ dengan asumsi field ini sudah menjadi kunci.
1.ALTER TABLE mhs CHANGE nim nim INT AUTO_INCREMENT;
Sedangkan berikut ini perintah SQL untuk menghapus auto increment dari yang sudah kita set di atas
1.ALTER TABLE mhs CHANGE nim nim INT;
Kemudian, bagaimana bila kita ingin supaya suatu field tidak boleh kosong (NULL) datanya atau dengan kata lain, data untuk field tersebut harus terisi? Mudah saja, kita hanya tambahkan properti NOT NULL pada field yang kita inginkan. Misalkan kita set supaya field ‘tgllahir’ tidak boleh kosong, perintah SQL nya adalah:
1.ALTER TABLE mhs CHANGE tgllahir tgllahir DATE NOT NULL;
Kebalikannya, bagaimana bila kita ingin mengembalikan ‘tgllahir’ ini memperbolehkan data kosong? Ya.. cukup ubah dari NOT NULL menjadi NULL.
1.ALTER TABLE mhs CHANGE tgllahir tgllahir DATE NULL;
Menghapus Primary Key
Mmm.. untuk menghapus primary key, kita hanya bisa menghapus semuanya (tidak satu persatu) apabila terdapat lebih dari satu primary key. Adapun perintah untuk menghapus primary key yang ada dalam tabel ‘mhs’ adalah:
1.ALTER TABLE mhs DROP PRIMARY KEY;
OK… mudah-mudahan artikel ini berguna bagi Anda.
 
Download Disini

Cara Membuat Foreign Key, Relasi Tabel dan Referential Integrity di phpMyAdmin

Menyambung artikel sebelumnya tentang perintah SQL untuk membuat foreign key, relasi tabel dan referential integrity di MySQL, pada artikel kali ini saya akan mencoba memaparkan bagaimana cara membuat ketiga hal tersebut langsung di phpMyAdmin tanpa menggunakan perintah SQL.
Sebagai contoh misalkan kita akan membuat database ‘perpustakaan’ yang di dalamnya terdapat 2 buah tabel yaitu ‘buku’ dan ‘kategori’.
Di dalam tabel ‘buku’ terdapat field: ‘id’ untuk menunjukkan nomor identitas buku, ‘title’ yang menunjukkan judul buku, ‘author’ sebagai pengarang, dan ‘idcategory’ yang menunjukkan nomor id kategori dari buku. ID Category buku ini nanti akan direlasikan dengan ID kategori yang terdapat dalam tabel ‘kategori’.
Adapun field yang ada dalam tabel ‘kategori’ adalah: ‘idcategory’ dan ‘namacategory’.
Dalam perancangan database, field ‘idcategory’ yang terdapat dalam tabel ‘buku’ dinamakan foreign key atau kunci tamu. Selain itu pada kedua tabel di atas juga terdapat relasi yaitu antara field ‘idcategory’ yang ada pada kedua tabel tersebut.
Nah… sekarang kita akan membuat foreign key, relasi tabel dan referential integrity untuk kedua tabel di atas langsung menggunakan phpMyAdmin.
Pertama, kita buat database ‘perpustakaan’ terlebih dahulu
mysql phpmyadmin
Kedua, setelah database sudah dibuat, selanjutnya kita bisa membuat tabelnya. Kita akan membuat tabel ‘kategori’ terlebih dahulu
mysql phpmyadmin
Berikutnya kita membuat field pada tabel ‘kategori’ Pada contoh ini, dimisalkan untuk field ‘idcategory’ kita buat sebagai auto increment.
mysql phpmyadmin
Satu hal yang terpenting, pastikan bahwa tabel yang Anda buat ini harus bertipe ‘INNODB’. Karena hanya dengan tipe INNODB lah, kita bisa membuat foreign key, relasi dan referential integrity. Untuk membuat tabel bertipe INNODB, silakan pilih pada bagian ‘Storage Engines’ yang terdapat di bagian bawah panel membuat tabel.
mysql phpmyadmin
Setelah diset field dan storage engine nya sebagai INNODB, barulah Anda bisa simpan tabel ‘kategori’ nya.
Tabel ‘kategori’ sudah sukses kita buat, selanjutnya kita bisa membuat tabel ‘buku’ nya. Adapun caranya hampir sama dengan sebelumnya.
mysql phpmyadmin
Field-field tabel kita buat juga seperti tabel sebelumnya. Di sini diasumsikan bahwa field ‘idbuku’ kita gunakan auto increment).
Karena field ‘idcategory’ dalam tabel ‘buku’ akan kita jadikan foreign key, maka kita harus buat field tersebut sebagai INDEX. Perhatikan tanda lingkaran merah pada gambar berikut ini
mysql phpmyadmin
Oya… jangan lupa jadikan tabel ‘buku’ sebagai INNODB dengan memilihnya pada bagian ‘Storage Engine’.
Langkah berikutnya adalah, kita mengeset relasi antara kedua tabel yang dihubungkan dengan field ‘idcategory’. Adapun caranya adalah, klik pada tabel ‘buku’ seperti gambar di bawah ini
mysql phpmyadmin
Lalu, klik pada bagian ‘Relation View’ seperti tampak pada gambar berikut ini
mysql phpmyadmin
Karena field ‘idcategory’ dalam tabel ‘buku’ ini akan direlasikan terhadap field ‘idcategory’ pada tabel ‘kategori’ (sebagai tabel master) maka selanjutnya kita set relasinya seperti gambar di bawah ini.
mysql phpmyadmin
OK deh… selesai sudah cara membuat foreign key, relasi tabel dan referential integrity MySQL dengan phpMyAdmin. Dengan demikian, Anda tidak perlu susah-susah menghapalkan perintah SQL untuk membuat ketiga hal tersebut.
Silakan dicoba sendiri ya. Mudah-mudahan bermanfaat. 

Download Disini

Cara Membuat Query SQL Untuk Relasi Tabel

Ngabuburit gini emang enak buat ngeblog, itung-itung sambil beramal dengan sharing ilmu :-)
OK.. kali ini saya akan mencoba membahas bagaimana cara membuat query SQL yang melibatkan tabel lebih dari satu (multi tabel) dimana saling berelasi satu sama yang lain. Dalam hal ini, pembahasan hanya akan berfokus pada query berbentuk SELECT saja.
Untuk lebih jelasnya, saya berikan sampel 3 buah tabel yang saling berelasi satu sama lain beserta sampel datanya. Tabel ini merupakan studi kasus dari data perkuliahan mahasiswa.
1.CREATE TABLE `ambilmk` (
2.  `nim` varchar(5),
3.  `kodemk` varchar(4),
4.  `nilai` float,
5.  `smt` varchar(10),
6.  `thajar` varchar(10),
7.  PRIMARY KEY (`nim`,`kodemk`)
8.);
1.CREATE TABLE `mhs` (
2.  `nim` varchar(5),
3.  `namamhs` varchar(20),
4.  `alamat` text,
5.  `tgllhr` date,
6.  PRIMARY KEY (`nim`)
7.);
1.CREATE TABLE `mk` (
2.  `kodemk` varchar(4),
3.  `namamk` varchar(20),
4.  `sks` int(11),
5.  `smt` varchar(10),
6.  PRIMARY KEY (`kodemk`)
7.);
dan… berikut ini adalah sampel datanya
1.INSERT INTO `ambilmk` VALUES ('M001', 'MK01', '3', 'GANJIL', '2001-2002');
2.INSERT INTO `ambilmk` VALUES ('M001', 'MK02', '2', 'GANJIL', '2001-2002');
3.INSERT INTO `ambilmk` VALUES ('M002', 'MK01', '4', 'GANJIL', '2001-2002');
4.INSERT INTO `ambilmk` VALUES ('M003', 'MK03', '4', 'GENAP', '2001-2002');
1.INSERT INTO `mhs` VALUES ('M001', 'XXX', 'SOLO', '1990-10-01');
2.INSERT INTO `mhs` VALUES ('M002', 'YYY', 'SEMARANG', '1992-08-11');
3.INSERT INTO `mhs` VALUES ('M003', 'ZZZ', 'SOLO', '1991-04-15');
1.INSERT INTO `mk` VALUES ('MK01', 'KALKULUS I', '3', 'GANJIL');
2.INSERT INTO `mk` VALUES ('MK02', 'GEOMETRI', '2', 'GANJIL');
3.INSERT INTO `mk` VALUES ('MK03', 'KALKULUS II', '3', 'GENAP');
Berdasarkan ketiga tabel tersebut, kita bisa melihat relasi antar ketiga tabel tersebut sebagaimana tergambar pada gambar berikut ini
Relasi Tabel
Nah… selanjutnya, misalkan kita ingin menampilkan data mahasiswa (nim, nama) dari mahasiswa yang pernah mengambil matakuliah ‘MK01′. Bagaimana cara membuat query SQL nya?
Sebelum kita mulai membuat query SQL nya, terlebih dahulu harus kita tentukan ‘Di tabel manakah kita akan bekerja‘ dari ketiga tabel tersebut. OK… untuk menampilkan nim dan nama, kita bisa menggunakan tabel ‘mhs’. Sedangkan untuk prasyarat dari query yaitu ‘mahasiswa yang pernah mengambil matakuliah MK01 kita menggunakan tabel ‘ambilmk’. Dengan demikian query yang akan kita buat hanya melibatkan kedua tabel tersebut, yaitu ‘mhs’ dan ‘ambilmk’.
Eh… masih ada lagi hal yang harus diperhatikan, yaitu relasi kedua tabel tersebut. Bila Anda lihat gambar relasi di atas atau hubungan antar ketiga tabel, tabel ‘ambilmk’ dan tabel ‘mhs’ direlasikan melalui field apa? Dari gambar, kita tahu bahwa kedua tabel terhubung melalui field ‘nim’ yang ada di tabel ‘mhs’ dan field ‘nim’ yang ada di tabel ‘ambilmk’. Oleh karena itu di dalam query SQL terutama pada bagian klausa WHERE perlu adanya perintah untuk menggambarkan hubungan tersebut.
Query SQL untuk menampilkan data mahasiswa (nim, nama) dari mahasiswa yang pernah mengambil matakuliah ‘MK01′ adalah sbb:
1.SELECT mhs.nim, mhs.namamhs
2.FROM mhs, ambilmk
3.WHERE mhs.nim = ambilmk.nim AND ambilmk.kodemk = 'MK01';
Perhatikan perintah “mhs.nim = ambilmk.nim” pada query di atas. Perintah tersebut digunakan untuk merelasikan tabel ‘mhs’ dengan ‘ambilmk’ dimana kedua tabel terhubung oleh field ‘nim’ yang ada di masing-masing tabel.
Sehingga hasil dari query SQL di atas adalah
Hasil query SQL
Selanjutnya misalkan kita ingin menampilkan data mahasiswa (nim, nama) beserta nilainya dari mahasiswa yang pernah mengambil matakuliah bernama ‘KALKULUS I’. Bagaimana query SQL nya?
OK… langkah pertama, kita tentukan dulu tabel mana saja yang kita pilih. Untuk menampilkan nim dan nama, kita butuh tabel ‘mhs’. Nilai, kita butuh tabel ‘ambilmk’. Sedangkan nama matakuliah ‘KALKULUS I’ yang digunakan sebagai syarat, kita dapatkan dari tabel ‘mk’. Jadi untuk query ini, kita butuh ketiga tabel semuanya.
Setelah itu, kembali lagi kita lihat gambar relasi ketiga tabel di atas. Tabel ‘mhs’ dan ‘ambilmk’ dihubungkan dengan field ‘nim’ yang ada pada keduanya. Sedangkan tabel ‘mk’ dan ‘ambilmk’ terhubung oleh field ‘kodemk’ yang juga ada pada keduanya. Nah… selanjutnya kita bisa membuat query SQL nya
1.SELECT mhs.nim, mhs.namamhs, ambilmk.nilai
2.FROM mhs, ambilmk, mk
3.WHERE mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk AND mk.namamk = 'KALKULUS I';
Perhatikan query SQL di atas, perintah “mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk” menunjukkan relasi ketiga tabel. Gunakan operator AND bila relasi tabelnya lebih dari 1 buah. Dan… kedua perintah relasi bisa dibolak-balik (“mk.kodemk = ambilmk.kodemk AND mhs.nim = ambilmk.nim”) karena sifat operasi AND adalah komutatif.
Hasil dari query tersebut adalah
Hasil query SQL
Trus… mungkin ada yang bertanya lagi… bagaimana jika query relasi tabelnya dijalankan di script PHP? Ya… caranya sama saja, Anda tinggal jalankan query SQL untuk relasi tabel di dalam script PHP nya. Dalam hal ini relasi tabel tetap ditentukan oleh query SQL nya.
Sebagai contoh, script PHP di bawah ini akan menampilkan hasil dari query terakhir di atas.
01.<?php
02. 
03.mysql_connect("dbhost", "dbuser", "dbpass");
04.mysql_select_db("dbname");
05. 
06.$query = "SELECT mhs.nim, mhs.namamhs, ambilmk.nilai
07.          FROM mhs, ambilmk, mk
08.          WHERE mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk
09.                AND mk.namamk = 'KALKULUS I'";
10.$hasil = mysql_query($query);
11. 
12.echo "<table border='1'>";
13.echo "<tr><td>NIM</td><td>Nama Mhs</td><td>Nilai</td></tr>";
14.while ($data = mysql_fetch_array($hasil))
15.{
16.   echo "<tr><td>".$data['nim']."</td><td>".$data['namamhs']."</td><td>".$data['nilai']."</td></tr>";
17.}
18.echo "</table>";
19. 
20.?>
dan hasilnya…
Hasil query SQL dengan PHP
Dengan demikian, saya ulangi lagi bahwa dalam hal ini relasi tabel dilakukan di dalam query SQL nya dan tidak di PHP nya. Script PHP hanya menjalankan query, memfetching data hasil query dan kemudian menampilkannya di browser.
OK… mudah-mudahan artikel ini bermanfaat bagi Anda yang sedang belajar merelasikan tabel dengan query SQL sekaligus menjalankannya di PHP.
Download Disini

Fakta Seputar Query INSERT di SQL

Kita tentu telah mengenal bentuk query yang satu ini. Ya… query INSERT dalam database yang mendukung SQL digunakan untuk menyisipkan record atau data ke dalam tabel. Saya kira mengenal saja tidak cukup, tapi lebih dari itu kita harus bisa menggunakannya dengan baik dan benar, seperti halnya berbahasa Indonesia :-) (gak nyambung ya…)
Mungkin ada di antara Anda yang protes pada saya, ngapain sih kok nulis artikel ini. Kan query INSERT itu mudah sekali. Iya sih.. mudah bagi Anda yang sudah expert tapi hal baru bagi para newbie. Toh… Anda dulu (yang expert) pernah jadi newbie juga :-)
Alasan ditulisnya artikel ini tak lain adalah sering saya jumpai keluhan baik itu rekan2 sesama programmer pemula, mahasiswa maupun pengunjung blog ini yang sering gagal dalam menjalankan query INSERT ini. Salah satunya adalah pengunjung blog saya ini. Mereka menganggap query SQL yang diberikan sudah benar, tapi mengapa data atau record tak jua tersimpan dalam tabel. Mudah-mudahan dengan artikel ini bisa sedikit menjawab semua kesulitan yg dihadapi tsb.
OK… untuk studi kasus, misalkan saya berikan sebuah tabel sebagai berikut
1.CREATE TABLE sampel (
2.  field1 int(11) auto_increment,
3.  field2 varchar(10),
4.  field3 date,
5.  field4 float,
6.  field5 text,
7.  PRIMARY KEY  (field1)
8.);
Dalam tabel tersebut saya sengaja memberikan beberapa variasi tipe data pada setiap fieldnya, dengan Primary Key nya adalah ‘field1′ dengan tipe data integer dan auto increment.
Nah.. secara umum, bila kita ingin menyisipkan sebuah record ke dalam tabel menggunakan query SQL maka menggunakan sintaks sbb:
1.INSERT INTO namaTabel (field1, field2, field3, ..., fieldn)
2.         VALUES ('value1', 'value2', 'value3', ..., 'valuen');
Sintaks tersebut memiliki makna kita akan menyisipkan data atau record dengan ‘value1′ merupakan nilai yang bersesuaian dengan ‘field1′, ‘value2′ bersesuaian dengan ‘field2′, dst.
Namun… yang menjadi pertanyaan adalah, Apakah susunan urutan penulisan field dalam query INSERT tersebut harus selalu sama dengan urutan field dalam tabel? Jawabnya adalah TIDAK. Anda bisa saja membolak-balik urutan field dalam penulisan query nya, asal… valuenya juga menyesuaikan. Contohnya:
1.INSERT INTO namaTabel (field2, field1, field3, ..., fieldn)
2.         VALUES ('value2', 'value1', 'value3', ..., 'valuen');
Trus.. ada pertanyaan lagi yang lain, Apakah dalam menuliskan query INSERT ini semua field dalam tabel harus dituliskan setelah nama tabel? Jawabnya adalah TIDAK. Anda dapat menyisipkan record hanya pada field-field tertentu saja. Contohnya kita akan menyisipkan record pada tabel studi kasus di atas hanya pada ‘field2′, dan ‘field3′ saja
1.INSERT INTO sampel (field2, field3)
2.         VALUES ('Hallo', '2009-10-12');
Catatan:
khusus untuk tipe data DATE, format value yang bisa disimpan adalah dalam bentuk ‘yyyy-mm-dd’.
Mungkin Anda bertanya lagi, Bagaimana bila tabel tersebut memuat field yang merupakan ‘AUTO INCREMENT’? value dalam query INSERT nya diisi dengan apa?
Ya… karena dia auto increment, nama field dan value tidak usah dituliskan, karena nanti akan diisi secara otomatis oleh sistem. Sebagai contoh adalah query berikut ini yang menyisipkan record pada tabel ‘sampel’ di atas pada semua field kecuali ‘field1′ yang merupakan auto increment.
1.INSERT INTO sampel (field2, field3, field4, field5)
2.         VALUES ('Hallo', '2009-10-12', '2.89', 'Ini Sebuah Text');
Perhatikan contoh query di atas, bahwa untuk semua value, tidak peduli tipe data fieldnya apa, diapit dengan tanda petik.
Oya.. harap hati-hati dengan penggunaan bentuk query ini, karena field-field yang merupakan PRIMARY KEY (namun bukan AUTO INCREMENT) harus diisikan valuenya.
Sebagai contoh, misalkan suatu tabel terdapat 3 field ‘field1′, ‘field2′, dan ‘field3′ dimana ‘field1′ nya merupakan PRIMARY KEY (bukan auto increment).
Jika kita berikan query INSERT sbb:
1.INSERT INTO namaTabel (field2, field3)
2.         VALUES ('value2', 'value3');
maka akan terjadi ERROR, karena ‘field1′ nantinya akan kosong (tidak ada valuenya).
Selain bentuk atau sintaks query yang disebutkan di atas, ada pula query INSERT dengan bentuk sbb:
1.INSERT INTO namaTabel
2.         VALUES ('value1', 'value2', ..., 'valuen');
Perbedaan yang kentara dari query ini dengan sebelumnya hanyalah tidak menyebutkan nama-nama field pada query.
Nah… apa perbedaan makna penulisan query tersebut dengan sebelumnya?
Ya.. perbedaannya adalah, bahwa dengan bentuk query tersebut, Anda harus urut dalam menuliskan valuenya (sesuai urutan field dalam tabel) dan juga jumlah value yang Anda tuliskan harus sama dengan jumlah field yang ada dalam tabel tersebut, atau dengan kata lain bentuk query INSERT tersebut akan mengisi record untuk semua field yang ada dalam tabel.
Sebagai contoh misalkan dalam suatu tabel terdapat field dengan urutan sbb:
field1, field2, field3
dan kemudian Anda memberikan query INSERT sbb:
1.INSERT INTO namaTabel
2.          VALUES ('value1', 'value2', 'value3');
maka ‘value1′ ini akan mengisi ‘field1′, ‘value2′ mengisi ‘field2′ dan ‘value3′ mengisi ‘field3′ (sesuai urutan field dalam tabel)
Sedangkan jika Anda menuliskan query INSERT sbb:
1.INSERT INTO namaTabel
2.          VALUES ('value1', 'value2');
maka akan terjadi error, karena jumlah field dalam tabel tidak sama dengan jumlah valuenya.
Trus… mungkin ada pertanyaan lagi, jadi… bisakah kita gunakan bentuk query INSERT terakhir ini untuk menyisipkan record ke dalam tabel yang di dalamnya terdapat auto increment? Jawabnya adalah.. sebaiknya JANGAN, karena field auto increment ini akan diisi otomatis oleh sistem, jadi.. sebaiknya gunakan bentuk sintaks INSERT pertama di atas.
OK… mudah-mudahan artikel ini bermanfaat bagi Anda, terutama yang masih sering salah dalam menyisipkan record ke dalam tabel.

Download Disini