Kamis, November 27, 2008

NAMA-NAMA VIRUS

Armora 13 [manual]
Nama ini saya ambil dari properties dari virus ini, krn tiap antivirus berbeda-beda dlm menamakannya. Virus ini tidak terlalu berbahaya tetapi cukup cepat penyebarannya. Norman menamakan virri ini W32/Amor.A@mm, dari namanya sudah tau khan kenapa cepat menyebar he...2x. Tapi virus ini tidak kreatif krn hanya meniru rontokbro yg lebih dulu terkenal (kayak romdil aja luu...!)
Besar file : 50 KB. 

Flu Burung.B [manual]
Virri yg satu ini cukup cerdas melakukan rekayasa sosial, sebagian besar pengguna komputer banyak yg tidak tau kalo PC-nya telah terinfeksi. Saya dapatkan dari Labkom 1FMIPA hii...33x, dan sampai sekarang masih setia menginfeksi kompie disana. Hati-hati bila membuka file word ... 
Besar file : 51 KB.

Code X [manual]
Virus ini akan menampilkan animasi kartun pd kompie yg terinfeksi, lucu khan? mau coba???. "CodeX" => "XCode" apakah ada hubungannya dengan yogyafree yaa...up's!~. Virus ini adalah CodeX versi D. 

 
Decoil [manual]
Virus ini sudah menggeser rontokbro dari no.1 daftar virus terbanyak korbannya (menurut vaksincom), sampai bulan ini. Icon dari virus yg satu ini selalu berubah sehingga pengguna yg hati-hati pun bisa terkecoh (me too :-] ). Di dalamnya terdapat virus decoil dengan beberapa icon, selamat mencoba. 
Besar file : 464 KB. 

Romantic Devils [manual]
Semester yg lalu virus ini merajalela di mana-mana, dan cukup merepotkan. Salut buat dr.Pluto... gimana nich kok virus yg baru (FluIkan) tak sehebat romdil yaa...
Besar file : 47 KB.

Shur.A [manual]
Virus ini tidak berbahaya tapi tetap saja namanya virus..., virus ini akan mengopykan dirinya di setiap folder dan subfolder. Memang virus ini tidak memblok fungsi windows sich... so terserah Anda.. coba saja! 

 
Suspicius_M.gen [manual]
Dalam daftar virus populer versi vaksincom virus ini termasuk dalam 5 besar urutan korban terbanyak, nama ini mungkin berbeda untuk tiap-tiap antivirus, seperti PCMAV yang memasukkan virus ini sebagai keluarga brontok dengan nama "brontok-14.E". 
Besar file : 33 KB. 

Suspicius & Pinfi [manual]
Loh kok ada dua virus yaa.. saya sendiri juga bingung. Mungkinkah ada virus yang terinfeksi virus???. Ato mungkin memang dibuat dua virus dalam satu file!. Entahlah... yang jelas Antivirus saya (Norman gratisan) mendeteksi 2 virus ini dan virus ini saya dapatkan dari warnet yang baru saja buka di belakang kampus.
Besar file : 203 KB.

Aksika.D [manual]
Properties virus tersebut DoDoL, tapi pcmav mendeteksi virus ini sebagai virus aksika.d. Maksudnya apa yaa..pembuat virus ini kok namanya aneh-aneh.... 

 
Harpot [manual]
Nama virus harpot saya peroleh dari PCMAV dengan icon folder, mau coba!. Thank's Pc Media.. 
Besar file : 286 KB. 

Riyani Jangkaru [manual]
Virus kawakan ini saya dapatkan dari komputer temen saya, kok masih ada virus ini yaa... kirain sudah punah.
Besar file : 73 KB.

Redlof.N [manual]
Redlof adalah virus yang cukup lama bertahan, bahkan saya sering sekali mendapatkan virus ini dari warnet, temen, ataupun di lab kampus. Walaupun banyak antivirus yang sudah mampu mendeteksi tapi tetap saja virus ini masih bertahan sampai detik ini. 

 

MMI [manual]
Hati hati. Virus ini akan menghancurkan file office Anda dan file *.jpg (Foto Anda dengan pacar temen Anda bisa hilang...loh kokk???). Sebaiknya nggak usah coba-coba dengan virus ini, kecuali Anda ingin laporan TA Anda yang Anda ketik selama berhari-hari hilang (Biar jadi alasan ganti tema hii..31x). File induk pada c:/windows dengan icon aplikasi dos sehingga sama dengan aplikasi lain pada windows. PCMAV mengenali virus ini sebagai virus nahital. 
Besar file : 176 KB.

MTH [manual]
Gue dapet virus ini dari temenkoe. Pembuatnya mungkin tidak profesional karena icon yg digunakan adalah default dari visual basic :P~. Sudah pake vb (ingat sama file dll-nya vb?), amatiran lagi..Sorry virus Anda cuman coba-coba yaa.... 
Besar file : 7 KB.
Moonlight-B.C [manual]
Virus ini seperti virus-virus lokal lainnya yang menggunakan icon folder dan tentu dengan *.exe akan tetapi juga *.scr, contoh yang *.scr bisa di download di sana. Semua folder akan di "superhidden" tidak dihapus. Banyak yang mengira filenya telah "hilang", padahal virus ini lumayan 'baik' karena tidak menghapus file. Semoga bermanfaat!kwkwkwk.... 

 
copyA [manual]
Virus copyA yang baru saja saya dapatkan dari labkom4 di kampus he he 33x. Entah dampaknya apa, ku tak tahu.
Besar file : 25 KB. 

myztx [manual]
"MyzTx Design And Creation Lab". Itu mungkin nama pembuatnya. Virri yg satu ini cukup berbahaya karena akan membuat drive C menjadi full sehingga windows Anda akan merasa seperti naik gunung dg sepeda, wow~. 
Besar file : 51 KB.

aksika.B [manual]
Jika pada halaman 3 ada aksika.D maka disini ada varian lainnya yaitu aksika.B. 

 
ANF [manual]
Virus yang satu ini memakai icon Microsoft Office Word Xp, vaksincom menamakan virus ini sebagai virus Fawn. Tampaknya sang pembuat virus ini sedang fallin' in love (ciee...), karena dalam propertiesnya terdapat tulisan yang menyatakan virus ini ditujukan untuk yayanknya. Romantis juga yaa....
Besar file : 11 KB. 

B4T0Nk [manual]
Virus yang digunakan untuk numpang nampang nama pembuat virus yaitu B$T0Nk. Nggak laku mungkin yaa..., sang pembuat virus ini?. 
Besar file : 39 KB.

New Aksika [manual]
Jika virus aksika pada halaman 3 dan 6 telah diketahui namanya, maka virus aksika yang ini saya tidak tahu nama versi terbarunya apa!. Ada beberapa virus aksika di situ. 

 
Fucking Love [manual]
Dari nama ini mungkin sang pembuat virus baru saja dikecewakan oleh pacarnya (sekarang mantan) hi..hii.. Mbok kalo ngasih nama itu yang sopan to, masak "fuck"???u???.
Besar file : 31 KB. 

BlackMall [manual]
Virri yg aneh, "Black Mall" itu nama mall ya.. keren pastinya. Black Mall memakai icon shorcut ms ms dos, dengan extensi *.pif. 
Besar file : 1 KB.

Brontok-9 [manual]
Virus brontok varian ke 9 (mungkin). sekarang dah ada berapa variannya?..capek dehh...!!!. 

 
Brontok-10.B [manual]
Karena banyaknya varian brontok (rontokbro/ mybro) sehingga antivirus juga membingungkan dalam pemberian nama varian virus tersebur. Ciri utama virus brontok untuk semua varian adalah menggunakan icon folder default windows xp. Norman menamakan virus ini Rontokbro.K.
Besar file : 32 KB. 

Mybro.V@mm [manual]
Virus yang satu ini juga termasuk virus brontok, menurut pcmav virus ini bernama Brontok-22.Mybro.A. 
Besar file : 62 KB.

EGO [manual]
Ego ini menggunakan icon notepad dan tentu saja dengan extensi *.exe. Sekilas file itu terlihat "seolah-olah" berkapasitas 1 KB padahal besar file tersebut adalah 328 KB, mungkin itu bertujuan agar dikira benar-benar file text yang biasanya berkapasitas kecil. 

 
Hallo Roro [manual]
Inilah virus yang paling berkesan bagi saya karena virus ini adalah virus yang pertama saya kenal (baca: menginfeksi PC saya), dan virus ini juga yang menyebabkan saya ingin mempelajari atau paling tidak mencegah pc saya agar tidak terinfeksi lagi. Antiroro juga saya sediakan dan dapat didownload di http:rossee.100webspace.net/rose download/rose aplikasi3.php.
Besar file : 1 KB. 

Brontok-Sensasi.B [manual]
Rontokbro.BS@mm, itu menurut Norman . "@mm"... wow... banyak sekali brontok yang bertipe seperti itu. 
Besar file : 25 KB.

ITZ [manual]
Itz akhir-akhir ini cukup banyak memakan korban (saya juga belom makan he..he..33x), Norman menyebutnya sebagai W32/Delf.AFX. 

 
Agent.GOL [manual]
"GOOOL", emangnye maen bole. Ini ma virus Agent.GOL, walaupun menyatakan bahwa dirinya bukan virus. Sang pembuat virus mungkin seorang keeper sebuah SSB yang setiap waktu selalu kebobolan (maaf!).
Besar file : 66 KB. 

Lovgate.AB@mm [manual]
Lagi-lagi "@mm". Atau ada juga yang menamakan virus ini sebagai luvgate (sama aza ya.. he..). 
Besar file : 121 KB.

MLHR [manual]
Virus ini katanya dari spanyol (properties), bagi yang percaya. Norman mendeteksinya sebagai Rdesh.A. 

 
Small.JB [manual]
Virus dengan icon media player, biasanya file virus bernama Pecahkan Saja Gelasnya (emangnya gelas siapa sich!).
Besar file : 46 KB. 

Plexus.B [manual]
Virus apa lagi nich... capek deeh.... plexus memakai icon winzip. 
Besar file : 38 KB.

Provisioning [manual]
Sama seperti virus lokal yang gemar sekali memakai icon folder, tapi sayang...foldernya jelek. 

 
Renova [manual]
Virus baru nich. wkwkkwkw???.
Besar file : 23 KB. 

Soraci [manual]
Seperti halnya redlof, virri ini juga *.htt, ada beberapa virus disitu. 
Besar file : 12 KB.

Kill.AV [manual]
Dari namanya sudah tahu khan kenapa kok namanya killav, virus dari solo ini lumayan berbahaya ('cause killing av). Hati-hati bila mendapatkan file dengan icon winzip. 

 
Rontokbro.F@mm [manual]
Kok banyak sekali sich virus rontokbronya?, biarin aja lah .
Besar file : 30 KB. 

Rontokbro.CX@mm [manual]
Maaf bang Brontok mau lewat lagi. 
Besar file : 35 KB.

Rontokbro.T [manual]
Virus brontok varian T (mungkin). sekarang dah ada berapa variannya?..capek dehh...!!!. 

 
Sherry [manual]
Virus sherry... Vindika Anastasya. Virus ini dengan icon *.pdf, Disebarkan oleh penipu yg mengaku menyediakan tutorial hacking yg di winzip. Tapi setelah di extrak yg ada adalah file virus. Harap hati-hati!.
Besar file : 36 KB. 

Brontok.msg [manual]
Nama itu menurut deteksi pcmav, banyaknya varian virus brontok sering kali membuat saya bingung!???!. 
Besar file : 1 KB.

Leena.A [manual]
Virus ini menyerang file word Anda, sehingga file word tidak bisa dibuka/ diakses!. 

 
Aksis.F [manual]
Virus ini merupakan virus aksika varian F, yang akhir-akhir ini cukup nanyak menyebar. Dengan icon folder virus menyebar, saya sendiri belum tahu dampak dari virus ini, ada yg mau coba?.
Besar file : 26 KB. 

ZCrot.A [manual]
Dengan icon intenet explorer. "Deface" cRotZ Company Ruddoc. he he bukan virus yaa, yg jelas norman mendeteksinya sebagai ZCrot.A. 
Besar file : 203 KB.

Dialer.AXWP [manual]
Content Access Plugin, dengan icon seperti internet explorer tetapi hurufnya bukan e akan tetapi c. Norman juga mengenalnya sebagai Dialer.AXWP, saya juga tidak tahu kenapa norman memasukkannya dalam list virus. 

 

Rontokbro.LA [manual]
Senyummu gerakan senyumku. Sedihmu mengiris hatiku. Bukan virus Rontokbro namanya jika tidak melakukan sesuatu yg mengejutkan. Doeloe saya pernah mengatakan bahwa jika ada virus di flashdisk, maka kita boleh mendeletenya jika pc belom terinfeksi. Tapi Rontokbro.LA telah membantahnya dengan telak. Kini virus ini dengan bantuan file "Desktop.ini" & "Folder.htt" mampu menjalankan dirinya sendiri dari usb flashdisk tanpa kita klik, sebuah pemikiran yg cerdas. Tapi sayang virus ini masih dibuat dengan Visual Basic. Binggo!.
Besar file : 25 KB.

Source: Cintaku.A, Extacy&ZeroHunt, VBS
Virus source code ini saya dapatkan dari yogyafree dan jasakom, maaf bila dah ada yg poenya!. Untuk source code virus yg lebih lengkap bisa dicari di webnya mas kangtatantakwa, he he....
Besar file : 80 KB.

Brontok Terbaru [Remover]
http://h1.ripway.com/syur, apakah Anda tau isi dari web tersebut? didalamnya tentu saja ada beberapa file yg Anda "inginkan". Tapi harap hati-hati ada virus brontok terbaru disitu (Jasakom, Kresna PS). Menurut Kresna PS virus itu mirip Rontokbro.LA krn bisa mengaktifkan dirinya sendiri tanpa kita klik dari usb flash disk.

Shuriken new variant [manual]
Masih ingat dengan virus Shuriken3 atau oleh vaksincom dikenal sebagai Shur.A?, virus yg satu ini hanya "sedikit" memodifikasi virus tsb. Karena dampaknya sama aja. Knapa saya bilang baru? Karena AV Norman saya sudah tdk dpt mendeteksinya, padahal virus Shur.A yg dulu masih terdeteksi. But pake "The Killer Machine" masih ampuh kok!, & PCMAV RC14 masih mendeteksinya sebagai shuriken. Mungkin sang pembuat virus ini "lupa" mengenkripsi, sehingga jeroannya "sedikit" bisa diliat. Virus dibuat oleh (maaf) Bagus Supartono. Virus ini dibuat di komputernya di "Document and Settings\Bagus S\My Documents\MY SYURIKEN 3\SYURIKEN 3\Project1.vbp", ternyata masih dibuat dg VB.
Besar file : 35 KB.

Zulanick [manual]
Namanya kedengaran aneh ya? Tapi sebenarnya tidak, karena virus ini rupanya dibuat oleh seseorang dengan nama "Zul" dan ditujukan kepada seseorang juga (untung bukan monyet) dengan nama "anick". Nah kalo kedua nama itu digabung maka jadi "Zulanick", masuk akal khan knapa namanya Zulanick? Efek dari virus ini (yang saya ketauhi) antara lain membuat shortcut dengan nama "Cintaku kandas ditengah jalan.lnk", yang tentu anda tau kalo diklik knapa!. Nama dari virus ini saya ketahui setelah di Scan dg PCMAV.
Besar file : 180 KB.

SourceCodeVirus 4K51K4
Pelatihan Pembuatan Virus 4K51K4 dari ?The Black VB?, DNA [eXTR!M] Memori Club. Harap dipergunakan secara bijak untuk pembelajaran & pengetahuan kita akan virus komputer yg semakin meratulela! Dengan mengetahuinya diharapkan kita tdk takut lagi dengan virus2 yg menyebar saat ini. Go Coder Indonesia .



Free Blog Calendar

CARA MENGINTAL OPERATING SYSTEM (OS) BARU TANPA MENGHILANGKAN OS LAMA

- Masukkan CD OS
- Kemudian tekan Del untuk masuk ke BIOS
- Pilihlah menu Boot kemudian settinglah agar booting pertama kali ke CD-ROM, Setelah itu keluarlah dari BIOS
- Akan muncul jendela bertuliskan “Press Any Key to Boot from CD”
- Maka akan ke menu OS(cth:WindowsXP) setup
- Setelah itu muncul jendela mengenai persetujuan, tekan F8 untuk setuju.
- Kemudian akan muncul jendela yang berisi partisi-partisi harddisk
- Pilih drive C kemudian tekan Enter
- Kemudian akan muncul file system. Pilih “Leave tha current file system intact(no changes)
- Tekan Enter untuk melanjutkan
- Maka akan muncul jendela peringatan
- Lalu tekan Esc untuk menggunakan folder yang lain
- Ganti nama (cth:WINXP) tanpa space
- Maka akan masuk ke proses instalasi :
1. Pertama kali adalah file akan di copy
2. Setelah selesai , tekan Enter untuk merestart computer
3. Hingga akan muncul instalasi (kurang lebih 40 menit)
4. Isilah beberapa settingan yang terdapat pada proses instalasi
5. Isi pula product Key OS
- Tunggu hingga selesai 
- Setelah selesai , OS bisa digunakan



Free Blog Calendar

Kamis, November 20, 2008

Sejarah Hacker

 
Peretas (Inggris: hacker) adalah orang yang mempelajari, menganalisa, dan selanjutnya bila menginginkan, bisa membuat, memodifikasi, atau bahkan mengeksploitasi sistem yang terdapat di sebuah perangkat seperti perangkat lunak komputer dan perangkat keras komputer seperti program komputer, administrasi dan hal-hal lainnya , terutama keamanan.


Sejarah

Terminologi hacker muncul pada awal tahun 1960-an diantara para anggota organisasi mahasiswa Tech Model Railroad Club di Laboratorium Kecerdasan Artifisial Massachusetts Institute of Technology (MIT). Kelompok mahasiswa tersebut merupakan salah satu perintis perkembangan teknologi komputer dan mereka berkutat dengan sejumlah komputer mainframe. Kata hacker pertama kalinya muncul dengan arti positif untuk menyebut seorang anggota yang memiliki keahlian dalam bidang komputer dan mampu membuat program komputer yang lebih baik ketimbang yang telah dirancang bersama.

Kemudian pada tahun 1983, istilah hacker berubah menjadi negatif. Pasalnya, pada tahun tersebut untuk pertama kalinya FBI menangkap kelompok kriminal komputer The 414s yang berbasis di Milwaukee AS. 414 merupakan kode area lokal mereka. Kelompok yang kemudian disebut hacker tersebut dinyatakan bersalah atas pembobolan 60 buah komputer, dari komputer milik Pusat Kanker Memorial Sloan-Kettering hingga komputer milik Laboratorium Nasional Los Alamos. Satu dari pelaku tersebut mendapatkan kekebalan karena testimonialnya, sedangkan 5 pelaku lainnya mendapatkan hukuman masa percobaan.

Hacker memiliki konotasi negatif karena kesalahpahaman masyarakat akan perbedaan istilah tentang hacker dan cracker. Banyak orang memahami bahwa hackerlah yang mengakibatkan kerugian pihak tertentu seperti mengubah tampilan suatu situs web (defacing), menyisipkan kode-kode virus dsb. Padahal, mereka adalah cracker. Crackerlah menggunakan celah-celah keamanan yang belum diperbaiki oleh pembuat perangkat lunak (bug) untuk menyusup dan merusak suatu sistem. Atas alasan ini biasanya para hacker dipahami dibagi menjadi 2 golongan White Hat Hackers, yakni hacker yang sebenarnya dan cracker yang sering disebut dengan istilah Black Hat Hackers.

Nonton TV di Mozzila FirefoX

saat kita ingin ingin mendapat hiburan di warnet sambil menunggu loading yang cukup nyebelin lebih enak kita nonton TV on-line di mozilla caranya :

  1. siapkam progam mozilla
  2. masuk ke situs mas Google
  3. ketik pada search metrotv streaming 

TV on-ine siap di lihat....

Blokir Alamat Website Menggunakan SQUID

Melanjutkan tulisan saya seputar squid proxy berikut ini adalah apa yang saya lakukan terhadap setting squid, yaitu melakukan blokir terhadap situs-situs yang tidak diinginkan. Maksud situs-situs yang tidak diinginkan adalah situs-situs yang tidak mendidik, cenderung melalaikan tugas dan tentunya menghabiskan bandwith.

Asumsi saya disini adalah:
Squid sudah ter-install dengan baik serta mendukung transparent proxy (baca tulisan saya seputar transparents proxy)
Firewall yang digunakan (ipchains atau iptables) telah di atur sedemikian rupa agar mendukung transparent proxy pula (baca tulisan saya seputar transparent proxy)

Langkah-langkah …

Disini kita akan mengatur semua setting yang ada dalam file konfigurasi squid yaitu squid.conf. Letak dari file kofigurasi squid ini saya asumsikan –umumnya- ada di direktori /etc/squid/conf. Kemudian buka file squid.conf tersebut dengan text editor kesukaan anda. Dan disinilah kita akan ber-experimen. Ada beberapa jalan untuk memblokir alamat situs tertentu.

Kasus I :

Asumsikan kita akan memblokir sebuah situs berdasarkan nama alamat situs tersebut, misalnya www.nakal.com.

Solusi I :

Ketikkan baris berikut pada squid:

acl blokir_1 dstdomain www.nakal.com

http_access_deny blokir_1

Catt. Kekurangan dari perintah diatas adalah apabila ada user tidak lengkap dalam mengetikkan alamat situs seperti ini: nakal.com maka ia masih dapat mengakses situs www.nakal.com. Itu semuanya dikarenakan squid hanya membaca secara lengkap apa yang telah di tulis pada aturan acl. Lalu bagaimana untuk mengatasi kekurangan tersebut ? Kita dapat menggunakan bantuan regex –regular expression- squid, maksudnya adalah kita akan menyaring nama alamat situs yang berisi tulisan 17tahun. Berikut caranya:

acl blokir_1 url_regex –i nakal

http_access deny blokir_1

Kasus II :

Kita akan mencoba untuk memblokir alamat website yang lebih dari 1.

Solusi II :

Merupakan sebuah cara yang tidak efisien apabila kita memakai cara diatas (menuliskan satu demi satu aturan acl). Maka disini kita akan menggunakan bantuan sebuah file (nama file blokir, disimpan di /etc/squid/conf) yang berisi daftar alamat situs yang ingin diblokir, dimana squid akan membaca file tersebut untuk menentukan aturan.

Ketikkan aturan berikut pada squid:

acl blokir_2 dstdomain “/etc/squid/conf/blokir”

http_access_deny blokir_2

Contoh isi file /etc/squid/conf/blokir:

nakal.com

www.playboy.com

www.nude.com

gadisnakal.com

muda-mudi-gaul.com

dewasex.com

exotic.som

bedsex.com

Sama seperti Kasus I, kekurangan dari solusi diatas adalah tidak mampu untuk menyaring alamat-alamat situs yang tidak ditulis dengan lengkap. Maka solusinya adalah dengan menerapkan regex:

acl blokir_2 url_regex –i “/etc/squid/conf/blokir”

http_access_deny blokir_2

Penutup …

Ok selesai sampai disini tulisan saya … tetapi perlu diperhatikan bahwasanya alamat website porno akan selalu bertambah setiap harinya, maka kita perlu untuk selalu mengupdate isi file alamat situs tersebut.

“Waaah jadi pekerjaan tambahan buat kita, selain itu bagaimana kita bisa tahu website tersebut termasuk kategori porno/ tidak ? Perlukah kita mengeceknya satu persatu ? Ehm jadi keasyikan nih nanti om admin :), jadi badan sensor website.”

Untungnya kita tidak perlu melakukan itu semua, karena sudah ada yang melakukannya (mendata alamat website yang di blacklist kemudian mengumpulkannya dalam sebuah file). Yang kita perlukan adalah sering-sering mengunjungi situs tersebut dan download filenya. Pada daftar referensi saya cantumkan beberapa website yang menyediakan file tersebut.

Referensi:
http://www.squidguard.org/blacklist/
http://www.squid-cache.org/
http://www.linugen.com/contentfilter/
http://urlblacklist.com/
http://contentfilter.futuragts.com/phraselists/
Posted by weedodo
Filed in gnu/ linux




Free Blog Calendar suhadi

Rabu, November 19, 2008

LAPTOP MASA DEPAN


Sudah begitu banyak perubahan yang terjadi sejak pertama kali laptop diluncurkan, seperti prosesor gigahertz, layar warna, optical drive juga wireless. Tetapi bentuk standar laptop sama sekali tidak menunjukan perubahan yang berarti.

Saat perubahan itu akan segera tiba, aturan baku dari desain notebook dan komponen dalamnya sedang di tulis ulang. "Antara sekarang dan tahun 2015, kita akan melihat beberapa perubahan besar yang akan mendedinisi ulang apakah notebook itu dan bagaimana bentuknya" tutur Mike Trainor, Juru bicara Intel's untuk produk mobile.

nih saya kasih tahu contoh laptop masa depan!!!!

namun saya masih bingung gimana cara ngeinstalnya ya???? ;-)

Selasa, November 18, 2008

MySQL

MySQL adalah server basis data yang kompak dan kecil yang ideal untuk banyak aplikasi basis data on-line. MySQL mendukung SQL standar (ANSI), meskipun tidak selengkap subset yang menjadi standar seperti PostgreSQL.
MySQL dapat dijalankan di banyak platform dan memiliki kemampuan multithreading pada server UNIX. Pada lingkungan bukan UNIX, MySQL dapat dijalankan sebagai servis pada Windows NT dan sebagai proses normal pada mesin Windows 95/98. MySQL adalah server DBMS relasional SQL yang mendukung multithreading dan multi-user. MySQL mengimplementasikan client/server yang terdiri dari sebuah daemon server (servis di server) dan banyak program dan pustaka klien yang berbeda-beda.
MySQL dulunya dikembangkan tahun 1996 untuk menyediakan server SQL yang dapat menangani transaksi dalam basis data yang sangat besar dengan kecepatan tinggi.

Memulai Dengan MySQL
Program client yang biasanya digunakan untuk mengakses server MySQL di Linux adalah program mysql. Program interaktif ini mengijinkan Anda mengakses server MySQL, menjalankan query dan menyaksikan hasilnya.
Untuk connect ke server, biasanya dibutuhkan username MySQL ketika Anda menjalankan mysql, dan biasanya juga password. Jika servernya berbeda dari komputer tempat Anda login, Anda juga harus menuliskan hostname-nya. Contohnya seperti berikut :
$ mysql –h host –u user –p
Enter password: ********
Tanda ***** menunjukkan password Anda, masukkanlah ketika mysql menampilkan Enter password:. Jika Anda berhasil login, Anda akan melihat informasi introduction yang diikuti oleh prompt mysql> :
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 459 to server version: 3.22.20a-log

Type 'help' for help.

mysql>
Prompt ini menunjukkan bahwa mysql siap menerima perintah.
Beberapa instalasi MySQL memperbolehkan user untuk connect sebagai user ‘anonymous’ (tak bernama). Dalam hal ini, Anda dapat connect ke server tersebut dengan mysql tanpa option apa-apa.
Setelah Anda berhasil terhubung, Anda dapat disconnect setiap saat dengan menuliskan QUIT pada prompt mysql.

Memasukkan Query
Setelah Anda connect ke server MySQL Anda dapat mulai menuliskan query. Contohnya :
mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| version() | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19 |
+--------------+--------------+
1 row in set (0.01 sec)
mysql>
Query ini mengilustrasikan beberapa hal tentang mysql :
• Sebuah perintah umumnya terdiri dari sebuah pernyataan SQL diakhiri dengan tanda ; (titik koma).
• Ketika Anda membuat perintah, mysql mengirimkannya ke server untuk dieksekusi dan menampilkan hasilnya, kemudian menampilkan mysql> lain untuk menunjukkan bahwa dia sudah siap untuk perintah lain.
• mysql menampilkan output query sebagai tabel. Baris pertama berisi label untuk kolom, dan baris-baris selanjutnya adalah hasil query-nya. Normalnya, label kolom adalah nama dari kolom yang Anda ambil/fetch dari tabel database. Jika Anda mengambil nilai dari ekspresi dan bukan kolom tabel (seperti contoh di atas), mysql memberi label kolom menggunakan ekspresi itu sendiri.
• mysql menunjukkan jumlah baris yang dikembalikan, dan berapa lama waktu yang dibutuhkan untuk mengeksekusi, yang memberikan Anda gambaran kasar dari performa server. Nilai ini tidak terlalu tepat karena mereka menunjukkan wall clock time (bukan CPU time), dan karena mereka dipengaruhi oleh banyak faktor seperti beban server dan kelambatan network.

Perintah/keyword juga dapat dituliskan baik huruf besar maupun huruf kecil. Jadi query berikut ini hasilnya sama :
mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

Contoh berikut mendemonstrasikan bahwa Anda dapat menggunakan mysql sebagai kalkulator sederhana :
mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+-------------+---------+
| 0.707107 | 25 |
+-------------+---------+

Perintah-perintah yang sudah dicontohkan di atas relatif pendek, hanya pernyataan satu baris. Anda bahkan dapat memasukkan banyak pernyataan pada sebuah baris. Cuma tinggal mengakhiri tiap pernyataan dengan tanda titik-koma :
mysql> SELECT VERSION(); SELECT NOW();
+--------------+
| version() |
+--------------+
| 3.22.20a-log |
+--------------+

+---------------------+
| NOW() |
+---------------------+
| 1999-03-19 00:15:33 |
+---------------------+

Sebuah perintah tidak harus diberikan pada sebuah baris, jadi perintah yang panjang yang memerlukan beberapa baris bukan masalah. mysql menentukan apakah pernyataan Anda berakhir dengan mencari titik-koma, tidak dengan mencari akhir dari baris input. (Dengan kata lain, mysql menerima input berformat bebas, ia mengumpulkan baris input tetapi tidak mengeksekusinya hingga menemukan titik-koma.)
Berikut ini contoh pernyataan banyak baris sederhana :
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+--------------------+--------------+
| USER() | CURRENT_DATE |
+--------------------+--------------+
| joesmith@localhost | 1999-03-18 |
+--------------------+--------------+

Pada contoh ini, perhatikan bagaimana prompt berubah dari mysql> menjadi -> setelah Anda memasukkan baris pertama dari query banyak baris. Inilah cara mysql mengindikasikan bahwa ia tidak menemukan pernyataan yang lengkap dan ia menunggu sisanya. Jika Anda memutuskan untuk tidak mengeksekusi perintah yang sedang dalam proses pemasukannya, batalkanlah dengan mengetikkan \c :
mysql> SELECT
-> USER()
-> \c
mysql>

Tabel berikut ini menunjukkan tiap prompt yang mungkin Anda temukan dan artinya:
Prompt
Arti
mysql> Siap untuk perintah baru
-> Menunggu baris berikut dari perintah banyak baris
'> Menunggu baris berikut, memasukkan string yang dimulai oleh petik tunggal ( ‘ )
"> Menunggu baris berikut, memasukkan string yang dimulai oleh petik ganda ( “ )

Pernyataan banyak baris biasanya terjadi ‘tidak sengaja’ ketika Anda bermaksud untuk memberi perintah pada satu baris, tetapi lupa untuk mengakhirinya dengan titik-koma. Pada kasus ini, mysql menunggu input berikutnya :
mysql> SELECT USER()
->
Jika ini terjadi, kemungkinan besar mysql sedang menunggu titik-koma. Masukkan sebuah titik-koma untuk mengakhiri pernyataan, dan mysql akan mengeksekusinya :
mysql> SELECT USER()
-> ;
+--------------------+
| USER() |
+--------------------+
| erik@localhost |
+--------------------+

Tanda prompt ‘> dan “> terjadi ketika pemasukan string. Pada MySQL, Anda dapat menulis string yang diawali dan diakhiri oleh karakter ‘ atau “ (‘halo’ atau “halo”), dan mysql memperbolehkan Anda memasukkan string pada banyak baris. Ketika Anda melihat prompt ‘ atau “, berarti Anda sudah memasukkan baris yang berisi string yang dimulai dengan karakter ‘ atau “, tetapi Anda belum memasukkan tanda petik penutup yang sesuai.

Contoh Query Yang Umum
Berikut ini diberikan contoh tentang bagaimana memecahkan masalah yang umum ditemukan pada MySQL.
Beberapa contoh menggunakan tabel shop unuk menyimpan harga dari tiap article untuk penjual tertentu. Dianggap bahwa tiap penjual memiliki harga tetap untuk tiap article, lalu (item,trader) adalah kunci primer untuk record-nya.
CREATE TABLE shop (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
dealer CHAR(20) DEFAULT '' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY(article, dealer));

INSERT INTO shop VALUES
(1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69),
(3,'D',1.25),(4,'D',19.95);

Kemudian, contoh datanya adalah :
SELECT * FROM shop

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | A | 3.45 |
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | B | 1.45 |
| 0003 | C | 1.69 |
| 0003 | D | 1.25 |
| 0004 | D | 19.95 |
+---------+--------+-------+

Untuk melihat nomer article terbesar, Anda dapat menggunakan :
SELECT MAX(article) AS article FROM shop

+---------+
| article |
+---------+
| 4 |
+---------+

Untuk menemukan baris yang berisi nilai maximum untuk kolom tertentu, pada ANSI SQL hal ini dapat mudah dilakukan dengan subquery :
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop)

Pada MySQL (yang tidak memiliki subquery), lakukanlah dalam 2 langkah :
1. Ambil nilai harga (price) maximum dari tabel dengan pernyataan SELECT.
2. Menggunakan nilai ini, buatlah query sebenarnya :
SELECT article, dealer, price
FROM shop
WHERE price=19.95
Cara lain adalah dengan mengurutkan semua baris secara descending (dari besar ke kecil) dan hanya mengambil baris pertama menggunakan kalusa spesifik LIMIT :
SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1

Catatan: Bila terdapat beberapa baris dengan nilai price maximum yang sama, cuma ditampilkan salah satu saja, yaitu yang pertama.
Untuk menunjukkan nilai maximum dari kolom per grup cuma nilainya, dapat menggunakan :
``What's the highest price per article?''

SELECT article, MAX(price) AS price
FROM shop
GROUP BY article

+---------+-------+
| article | price |
+---------+-------+
| 0001 | 3.99 |
| 0002 | 10.99 |
| 0003 | 1.69 |
| 0004 | 19.95 |
+---------+-------+

Untuk mencari dealer dengan price yang paling mahal untuk tiap article-nya, pada ANSI SQL, dapat menggunakan :
SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article)

Pada MySQL, cara terbaik untuk melakukannya dengan langkah berikut :
1. Ambil daftar (article,maxprice).
2. Untuk tiap article ambil baris yang bersangkutan yang menyimpan price maximum.
Hal ini paling mudah dilakukan dengan sebuah tabel temporary :
CREATE TEMPORARY TABLE tmp (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL);

LOCK TABLES article read;

INSERT INTO tmp SELECT article, MAX(price) FROM shop GROUP BY article;

SELECT article, dealer, price FROM shop, tmp
WHERE shop.article=tmp.article AND shop.price=tmp.price;

UNLOCK TABLES;

DROP TABLE tmp;

Jika Anda tidak menggunakan tabel TEMPORARY, Anda juga harus mengunci (LOCK) tabel tmp. Masalah ini juga dapat dilakukan dengan query tunggal, tetapi dengan menggunakan trik yang tidak efisien :
SELECT article,
SUBSTRING( MAX( CONCAT(LPAD(price,6,'0'),dealer) ), 7) AS dealer,
0.00+LEFT( MAX( CONCAT(LPAD(price,6,'0'),dealer) ), 6) AS price
FROM shop
GROUP BY article;

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | C | 1.69 |
| 0004 | D | 19.95 |
+---------+--------+-------+

Pada MySQL Anda tidak memerlukan foreign key untuk menggabungkan (join) dua tabel. Satu hal yang tidak dilakukan MySQL adalah mengecek untuk memastikan bahwa key yang digunakan benar-benar ada pada tabel yang Anda referensi dan tidak secara otomatis menghapus baris dari tabel yang berisi definisi foreign key.
CREATE TABLE persons (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(60) NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE shirts (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
owner SMALLINT UNSIGNED NOT NULL REFERENCES persons,
PRIMARY KEY (id)
);

INSERT INTO persons VALUES (NULL, 'Antonio Paz');

INSERT INTO shirts VALUES
(NULL, 'polo', 'blue', LAST_INSERT_ID()),
(NULL, 'dress', 'white', LAST_INSERT_ID()),
(NULL, 't-shirt', 'blue', LAST_INSERT_ID());

INSERT INTO persons VALUES (NULL, 'Lilliana Angelovska');

INSERT INTO shirts VALUES
(NULL, 'dress', 'orange', LAST_INSERT_ID()),
(NULL, 'polo', 'red', LAST_INSERT_ID()),
(NULL, 'dress', 'blue', LAST_INSERT_ID()),
(NULL, 't-shirt', 'white', LAST_INSERT_ID());

SELECT * FROM persons;
+----+---------------------+
| id | name |
+----+---------------------+
| 1 | Antonio Paz |
| 2 | Lilliana Angelovska |
+----+---------------------+

SELECT * FROM shirts;
+----+---------+--------+-------+
| id | style | color | owner |
+----+---------+--------+-------+
| 1 | polo | blue | 1 |
| 2 | dress | white | 1 |
| 3 | t-shirt | blue | 1 |
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
| 7 | t-shirt | white | 2 |
+----+---------+--------+-------+

SELECT s.* FROM persons p, shirts s
WHERE p.name LIKE 'Lilliana%'
AND s.owner = p.id
AND s.color <> 'white';

+----+-------+--------+-------+
| id | style | color | owner |
+----+-------+--------+-------+
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
+----+-------+--------+-------+

Pada pencarian dua key, MySQL belum mengoptimasikan pencarian Anda pada kombinasi dua key yang berbeda dengan OR :
SELECT field1_index, field2_index FROM test_table WHERE field1_index = '1' OR field2_index = '1'

Untuk saat ini Anda dapat memecahkan masalah ini dengan sangat efisien dengan menggunakan tabel TEMPORARY, optimasi tipe ini juga sangat bagus jika Anda menggunakan query yang sangat kompleks dimana server SQL melakukan optimasi dengan cara yang salah.
CREATE TEMPORARY TABLE tmp
SELECT field1_index, field2_index FROM test_table WHERE field1_index = '1';
INSERT INTO tmp
SELECT field1_index, field2_index FROM test_table WHERE field2_index = '1';
SELECT * from tmp;
DROP TABLE tmp;

Membuat Dan Menggunakan Database
Sekarang setelah Anda mengetahui cara memasukkan perintah, inilah waktunya untuk mengakses database.
Anggaplah bahwa Anda memiliki beberapa hewan peliharaan di rumah dan Anda ingin menyimpan beberapa informasi mengenai mereka. Anda dapat melakukannya dengan membuat tabel untuk menyimpan data Anda dan mengisinya dengan informasi yang Anda inginkan. Kemudian Anda dapat menjawab banyak pertanyaan tentang hewan Anda dengan mengambil data dari tabel tadi.
Gunakan pernyataan SHOW untuk menemukan database apa saja yang ada di server:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
Daftar database ini mungkin berbeda untuk komputer Anda, tetapi database mysql dan test kelihatannya selalu ada. Database mysql diperlukan karena ia menunjukkan hak akses (privileges) untuk tiap user. Database test sering menyediakan tempat bagi user untuk mencoba-coba.
Jika database test ada, cobalah untuk mengaksesnya:
mysql> USE test
Database changed

Ingat bahwa USE, seperti QUIT, tidak memerlukan titik-koma. (Anda dapat mengakhiri pernyataan seperti ini dengan titik-koma jika ingin.) Pernyataan USE ini juga spesial, yaitu harus diberikan pada baris tunggal.
Anda dapat menggunakan database test (jika Anda memiliki akses untuknya) untuk contoh-contoh berikut, tetapi segala yang Anda buat pada database ini dapat dihapus oleh orang lain yang juga dapat mengaksesnya. Karena itu, Anda mungkin dapat meminta administrator MySQL Anda untuk ijin membuat database Anda sendiri. Misalkan Anda ingin membuat database hewan. Administrator harus mengeksekusi perintah seperti berikut :
mysql> GRANT ALL ON hewan.* TO your_mysql_name;
dimana your_mysqL_name adalah username MySQL Anda.
Jika administrator membuat database Anda ketika menset hak akses Anda, Anda dapat mulai menggunakannya, tetapi bila tidak Anda harus membuatnya sendiri :
mysql> CREATE DATABASE hewan;

Pada UNIX, nama database-nya case sensitive (tidak seperti keyword SQL), jadi Anda harus selalu menulis nama database Anda hewan, bukan Hewan, HEWAN, atau variasi yang lain. Hal ini juga berlaku untuk nama tabel (Pada Windows, hal ini tidak berlaku).
Membuat sebuah database tidak langsung dipilih untuk digunakan, Anda harus melakukannya secara explisit. Untuk menggunakan database hewan, gunakan :
mysql> USE hewan
Database changed

Database Anda cuma perlu dibuat satu kali, tetapi Anda harus memilihnya untuk digunakan tiap kali Anda memulai session mysql. Anda dapat melakukannya dengan memasukkan perintah USE seperti di atas. Cara lainnya, Anda dapat memilih database pada baris perintah ketika Anda menjalankan mysql. Hanya tinggal menuliskan nama database ini setelah parameter koneksi yang Anda butuhkan. Contohnya:
shell> mysql -h host -u user -p hewan
Enter password: ********

Ingat bahwa hewan bukan password Anda pada perintah di atas. Jika Anda ingin memasukkan password Anda pada baris perintah setelah option –p, Anda harus melakukannya dengan tidak memberi spasi setelah –p (-pmypassword, bukan –p mypassword). Namun, memasukkan password Anda pada baris perintah tidak disarankan, karena password Anda akan dapat dilihat oleh user lain yang sedang login ke komputer Anda.
Membuat database adalah bagian yang mudah, tetapi saat ini database tadi masih kosong, sebagaimana pernyataan SHOW TABLE akan menunjukkannya :
mysql> SHOW TABLES;
Empty set (0.00 sec)

Bagian yang lebih sulit adalah memutuskan struktur dari database Anda yang sebaiknya digunakan: tabel apa yang Anda butuhkan, dan kolom apa yang akan ada pada tiap tabelnya.
Anda menginginkan sebuah tabel yang berisi record untuk tiap hewan peliharaan Anda. Ini dapat dinamakan tabel pet, dan yang isi seharusnya, minimal adalah nama tiap hewan. Karena nama saja tidak terlalu menarik, tabel ini seharusnya berisi informasi lain. Sebagai contoh, jika lebih dari satu orang dalam keluarga Anda menyimpan piaraan, Anda mungkin ingin membuat daftar pemilik tiap hewan. Anda mungkin juga ingin informasi deskripsi untuk tiap spesies dan jenis kelamin.
Bagaimana tentang umur? Hal ini mungkin menarik, tetapi bukan ide yang bagus untuk menyimpannya dalam database. Umur berubah seiring perubahan waktu, yang berarti Anda harus sering mengupdatenya. Cara lain, adalah dengan menyimpan nilai yang pasti, seperti tanggal lahir. Lalu, ketika dibutuhkan usia, Anda dapat menghitungnya sebagai selisih antara tanggal sekarang dengan tanggal lahirnya. MySQL menyediakan fungsi untuk melakukan aritmatika tanggal, jadi hal ini tidak sulit. Menyimpan tanggal lahir dan bukannya umur juga memiliki keuntungan lain :
• Anda dapat menggunakan database untuk tugas seperti membangkitkan pengingat untuk ulang tahun hewan berikutnya.
• Anda dapat menghitung umur yang berhubungan dengan tanggal dan bukannya tanggal saat ini. Contohnya, jika Anda menyimpan tanggal kematian dalam database, Anda dapat dengan mudah menghitung umur hewan saat kematiannya.
Tampaknya informasi untuk tabelnya sudah cukup, sekarang kita coba untuk membuat tabelnya dengan menggunakan CREATE TABLE :
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

VARCHAR adalah pilihan yang bagus untuk kolom name, owner dan species karena nilai kolom ini akan bervariasi panjangnya. Panjang dari tiap kolom tidak perlu sama, dan tidak harus 20. Anda dapat memilih dari 1 sampai 255 yang tampaknya sesuai bagi Anda (jika pilihan Anda salah dan ternyata kemudian dibutuhkan kolom yang lebih panjang, MySQL menyediakan pernyataan ALTER TABLE).
Jenis kelamin hewan dapat ditunjukkan dengan bermacam cara, bisa “m” dan “f”, atau mungkin “male” dan “female”. Cara termudahnya adalah menggunakan karakter tunggal “m” dan “f”.
Penggunaan tipe data DATE untuk kolom birth dan death adalah pilihan yang bagus. Sekarang Anda sudah membuat tabel, SHOW TABLES seharusnya menghasilkan output :
mysql> SHOW TABLES;
+---------------------+
| Tables in hewan |
+---------------------+
| pet |
+---------------------+

Untuk memastikan bahwa tabel yang dibuat sesuai keinginan Anda, gunakan pernyataan DESCRIBE atau DESC :
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

Setelah membuat tabel, Anda butuh untuk memasukkan datanya. Pernyataan LOAD DATA dan INSERT dapat digunakan untuk hal ini.
Anggaplah bahwa record hewan Anda dapat ditunjukkan sebagai berikut (perhatikan bahwa MySQL mengharuskan tanggal dalam format YYYY-MM-DD).
name
owner species sex birth Death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1998-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29
Karena Anda memulai dengan tabel kosong, cara terbaik untuk mengisinya adalah dengan membuat file teks yang berisi sebuah baris untuk tiap hewan Anda, lalu memasukkan isi file ini ke tabel dengan pernyataan tunggal.
Anda dapat membuat file teks ‘pet.txt’ yang berisi satu record per baris, dengan nilai yang dipisahkan dengan tab, dan kolomnya urut sesuai dengan daftar pada pernyataan CREATE TABLE. Untuk nilai yang tidak ada dapat Anda isi dengan nilai NULL (dengan menulis \N).
Untuk memasukkan file teks ini ke tabel pet, gunakan perintah ini :
mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;

Anda dapat menspesifikasi nilai pemisah kolom dan tanda akhir baris secara eksplisit pada pernyataan LOAD DATA yang Anda inginkan, tetapi nilai defaultnya adalah tab dan linefeed.
Jika Anda ingin menambahkan record baru suatu saat, pernyataan INSERT sangat berguna. Pada bentuk yang paling sederhana, Anda menuliskan nilai untuk tiap kolomnya, menurut urutan yang sama dengan waktu pembuatan tabel. Misalnya Diane mendapatkan hamster baru bernama Puffball, Anda dapat menambahkan record baru menggunakan pernyataan INSERT seperti berikut:
mysql> INSERT INTO pet
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

Perhatikan bahwa nilai string dan tanggal ditulis dalam tanda petik. Juga dengan INSERT, Anda dapat memasukkan NULL langsung untuk menggantikan nilai yang tidak ada. Anda tidak menggunakan \N seperti dengan LOAD DATA.
Untuk mengambil informasi dari tabel, Anda dapat menggunakan pernyataan SELECT. Bentuk umum dari pernyataan ini adalah:
SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy

What_to_select menunjukkan apa yang ingin Anda lihat. Ini dapat merupakan daftar kolom, atau * untuk menunjukkan semua kolom. which_table menunjukkan tabel yang mana yang ingin Anda ambil datanya. Klausa WHERE optional. Jika ada, maka conditions_to_satisfy menunjukkan kondisi yang harus dipenuhi oleh baris agar ikut ditampilkan.
Bentuk paling sederhana dari SELECT mengambil segalanya dari sebuah tabel :
mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1998-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+--------+---------+------+------------+------------+

Bentuk SELECT ini berguna jika Anda ingin melihat keseluruhan tabel. Misalnya, setelah Anda selesai memasukkan himpunan data awal Anda. Tampak bahwa terdapat kesalahan pada tabel di atas: Bowser lahir sesudah dia mati. Padahal data sebenarnya untuk lahirnya adalah tahun 1989, bukan 1998.
Minimal ada dua cara untuk memperbaikinya :
• Edit file pet.txt untuk memperbaiki kesalahan ini, lalu kosongkan tabel dan isi ulang menggunakan DELETE dan LOAD DATA.
mysql> DELETE FROM pet;
mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;

Namun jika Anda melakukan ini, Anda juga harus memasukkan ulang record untuk Puffball.
• Perbaiki hanya record yang salah menggunakan pernyataan UPDATE:
mysql> UPDATE pet SET birth = "1989-08-31" WHERE name = "Bowser";

Mudah untuk mengambil keseluruhan tabel, tetapi Anda sering tidak ingin melakukannya, biasanya karena tabel menjadi sangat besar.
Anda dapat memilih hanya baris-baris tertentu saja dari tabel Anda. Contohnya, jika Anda ingin memastikan perubahan yang dilakukan pada tanggal lahir Bowser, pilih record Bowser seperti ini:
mysql> SELECT * FROM pet WHERE name = "Bowser";
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+

Outputnya menunjukkan bahwa tahun yang tersimpan sekarang sudah benar.
Pembandingan string normalnya case insensitive, Anda dapat menulis name “bowser”, “BOWSER”, dll. Hasilnya akan sama.
Anda dapat menuliskan kondisi untuk sembarang kolom, bukan hanya name. Contohnya, jika Anda ingin tahu hewan mana yang lahir setelah 1998, teslah kolom birth:
mysql> SELECT * FROM pet WHERE birth >= "1998-1-1";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+

Anda dapat menggabungkan kondisi, contohnya untuk melihat anjing betina:
mysql> SELECT * FROM pet WHERE species = "dog" AND sex = "f";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Query di atas menggunakan operator logika AND. Ada juga operator OR:
mysql> SELECT * FROM pet WHERE species = "snake" OR species = "bird";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+-------+---------+------+------------+-------+

AND dan OR dapat digabungkan. Jika Anda melakukannya, sebaiknya gunakan kurung untuk menunjukkan kondisi yang harus disatukan:
mysql> SELECT * FROM pet WHERE (species = "cat" AND sex = "m")
-> OR (species = "dog" AND sex = "f");
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Jika Anda tidak ingin melihat keseluruhan baris dari tabel Anda, Anda tinggal menulis nama kolom yang Anda inginkan dengan dipisahkan oleh koma. Contohnya, jika Anda ingin tahu kapan hewan Anda dilahirkan, pilihlah kolom name dan birth:
mysql> SELECT name, birth FROM pet;
+----------+------------+
| name | birth |
+----------+------------+
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Buffy | 1989-05-13 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Puffball | 1999-03-30 |
+----------+------------+

Untuk mencari siapa yang memiliki hewan piaraan, gunakan query ini:
mysql> SELECT owner FROM pet;
+--------+
| owner |
+--------+
| Harold |
| Gwen |
| Harold |
| Benny |
| Diane |
| Gwen |
| Gwen |
| Benny |
| Diane |
+--------+
Namun, perhatikan bahwa query ini mengambil kolom owner dari tiap record, dan ada beberapa yang tampil lebih dari sekali. Untuk meminimalkan outputnya, ambil record output unik hanya sekali dengan menambahkan keyword DISTINCT:
mysql> SELECT DISTINCT owner FROM pet;
+--------+
| owner |
+--------+
| Benny |
| Diane |
| Gwen |
| Harold |
+--------+

Anda dapat menggunakan klausa WHERE untuk menggabungkan pilihan baris dengan pilihan kolom. Contohnya, untuk mengambil hanya tanggal lahir anjing dan kucing, gunakan query ini:
mysql> SELECT name, species, birth FROM pet
-> WHERE species = "dog" OR species = "cat";
+--------+---------+------------+
| name | species | birth |
+--------+---------+------------+
| Fluffy | cat | 1993-02-04 |
| Claws | cat | 1994-03-17 |
| Buffy | dog | 1989-05-13 |
| Fang | dog | 1990-08-27 |
| Bowser | dog | 1989-08-31 |
+--------+---------+------------+

Anda mungkin memperhatikan bahwa contoh-contoh di atas menghasilkan baris yang tidak sesuai dengan urutan tertentu. Tapi, kadang-kadang, lebih mudah untuk memeriksa output query yang barisnya tersusun teratur menurut sesuatu. Untuk mengurutkan hasilnya, gunakan klausa ORDER BY.
Berikut ini tanggal lahir hewan, diurutkan berdasarkan tanggal:
mysql> SELECT name, birth FROM pet ORDER BY birth;
+----------+------------+
| name | birth |
+----------+------------+
| Buffy | 1989-05-13 |
| Bowser | 1989-08-31 |
| Fang | 1990-08-27 |
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Slim | 1996-04-29 |
| Whistler | 1997-12-09 |
| Chirpy | 1998-09-11 |
| Puffball | 1999-03-30 |
+----------+------------+

Untuk mengurutkannya secara terbalik, tambahkan keyword DESC (descending) setelah nama kolom yang digunakan untuk mengurutkan:
mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
+----------+------------+
| name | birth |
+----------+------------+
| Puffball | 1999-03-30 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Claws | 1994-03-17 |
| Fluffy | 1993-02-04 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Buffy | 1989-05-13 |
+----------+------------+

Anda dapat mengurutkan banyak kolom. contohnya, untuk mengurutkan berdasarkan jenis hewan, lalu berdasarkan tanggal lahir yang muda lebih dulu, gunakan query berikut:
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC;
+----------+---------+------------+
| name | species | birth |
+----------+---------+------------+
| Chirpy | bird | 1998-09-11 |
| Whistler | bird | 1997-12-09 |
| Claws | cat | 1994-03-17 |
| Fluffy | cat | 1993-02-04 |
| Fang | dog | 1990-08-27 |
| Bowser | dog | 1989-08-31 |
| Buffy | dog | 1989-05-13 |
| Puffball | hamster | 1999-03-30 |
| Slim | snake | 1996-04-29 |
+----------+---------+------------+

Perhatikan bahwa keyword DESC cuma berlaku untuk nama kolom yang mendahului kata DESC.
MySQL menyediakan beberapa fungsi yang dapat Anda gunakan untuk melakukan perhitungan berdasarkan tanggal, sebagai contoh, untuk menghitung umur atau seatu jangka waktu.
Untuk menentukan umur tiap hewan piaraan Anda, hitung umur sebagai selisih antara tanggal lahir dan tanggal saat ini. Lakukan ini dengan mengubah kedua tanggal menjadi hari, hitung selisihnya, dan bagi dengan 365 (jumlah hari dalam satu tahun).
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 FROM pet;
+----------+-------------------------------------+
| name | (TO_DAYS(NOW())-TO_DAYS(birth))/365 |
+----------+-------------------------------------+
| Fluffy | 6.15 |
| Claws | 5.04 |
| Buffy | 9.88 |
| Fang | 8.59 |
| Bowser | 9.58 |
| Chirpy | 0.55 |
| Whistler | 1.30 |
| Slim | 2.92 |
| Puffball | 0.00 |
+----------+-------------------------------------+

Meskipun query ini bekerja, ada beberapa hal yang harus ditingkatkan. Pertama, hasilnya dapat dilihat lebih mudah jika baris-barisnya diurutkan. Kedua, heading untuk kolom age tidak terlalu berarti.
Masalah pertama dapat diatasi dengan menambahkan klausa ORDER BY untuk mengurutkan berdasarkan name. Untuk mengatasi heading kolom, sediakan nama untuk kolom ini sehingga label yang berbeda tampil pada outputnya (hal ini dinamakan alias kolom):
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age
-> FROM pet ORDER BY name;
+----------+------+
| name | age |
+----------+------+
| Bowser | 9.58 |
| Buffy | 9.88 |
| Chirpy | 0.55 |
| Claws | 5.04 |
| Fang | 8.59 |
| Fluffy | 6.15 |
| Puffball | 0.00 |
| Slim | 2.92 |
| Whistler | 1.30 |
+----------+------+

Untuk mengurutkan output berdasarkan umur, cuma tinggal menggunakan klausa ORDER BY yang berbeda:
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age
-> FROM pet ORDER BY age;
+----------+------+
| name | age |
+----------+------+
| Puffball | 0.00 |
| Chirpy | 0.55 |
| Whistler | 1.30 |
| Slim | 2.92 |
| Claws | 5.04 |
| Fluffy | 6.15 |
| Fang | 8.59 |
| Bowser | 9.58 |
| Buffy | 9.88 |
+----------+------+

Query yang mirip dapat digunakan untuk menentukan umur saat kematian hewan yang sudah mati. Anda menentukan hewan yang mana dengan mengecek apakah nilai death-nya NULL. Lalu, untuk yang nilainya tidak NULL, hitung selisih antara nilai death dan birth:
mysql> SELECT name, birth, death, (TO_DAYS(death)-TO_DAYS(birth))/365 AS age
-> FROM pet WHERE death IS NOT NULL ORDER BY age;
+--------+------------+------------+------+
| name | birth | death | age |
+--------+------------+------------+------+
| Bowser | 1989-08-31 | 1995-07-29 | 5.91 |
+--------+------------+------------+------+

Query ini menggunakan death IS NOT NULL dan bukannya death != NULL karena NULL adalah nilai khusus.
Bagaimana jika Anda ingin tahu hewan mana yang berulang tahun bulan depan? Untuk perhitungan semacam ini, tahun dan tanggal tidak sesuai, Anda cuma ingin mengambil bagian bulan dari kolom birth.. MySQL menyediakan beberapa fungsi untuk mengambil bagian dari tanggal, seperti YEAR(), MONTH() dan DAYOFMONTH().
MONTH adalah fungsi yang tepat untuk hal ini. Untuk melihat cara kerjanya, jalankan query sederhana yang menampilkan nila untuk birth dan MONTH(birth):
mysql> SELECT name, birth, MONTH(birth) FROM pet;
+----------+------------+--------------+
| name | birth | MONTH(birth) |
+----------+------------+--------------+
| Fluffy | 1993-02-04 | 2 |
| Claws | 1994-03-17 | 3 |
| Buffy | 1989-05-13 | 5 |
| Fang | 1990-08-27 | 8 |
| Bowser | 1989-08-31 | 8 |
| Chirpy | 1998-09-11 | 9 |
| Whistler | 1997-12-09 | 12 |
| Slim | 1996-04-29 | 4 |
| Puffball | 1999-03-30 | 3 |
+----------+------------+--------------+

Menemukan hewan yang berulang tahun bulan depan itu mudah juga. Anggaplah bulan sekarang adalah April. Maka nilai month-nya 4 dan Anda cari hewan yang lahir di bulan Mei (month=5) seperti ini:
mysql> SELECT name, birth FROM pet WHERE MONTH(birth) = 5;
+-------+------------+
| name | birth |
+-------+------------+
| Buffy | 1989-05-13 |
+-------+------------+

Tetapi ada masalah jika bulan sekarang adalah Desember. Anda tidak bisa langsung menambahkan satu ke nilai bulan (12) dan mencari hewan yang lahir di bulan 13, karena tidak ada bulan 13. Namun, Anda mencari hewan yang lahir di bulan Januari (month 1).
Anda bahkan dapat menulis query yang dapat bekerja dengan benar, tidak peduli bulan apa sekarang ini. Dengan cara ini Anda tidak harus menggunakan nilai bulan sekarang dalam query. DATE_ADD() membolehkan Anda untuk menambahkan interval waktu untuk tanggal tertentu. Jika Anda menambahkan satu bulan ke nilai dari NOW(), maka bagian month untuk MONTH() akan menghasilkan bulan yang digunakan untuk mencari ulang tahun:
mysql> SELECT name, birth FROM pet
-> WHERE MONTH(birth) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH));

Cara lain untuk melakukannya adalah menambahkan 1 untuk mendapatkan bulan selanjutnya setelah bulan ini :
mysql> SELECT name, birth FROM pet
-> WHERE MONTH(birth) = MOD(MONTH(NOW()), 12) + 1;

Ingat bahwa MONTH mengembalikan nilai antara 1 dan 12. Dan MOD(sesuatu,12) mengembalikan nilai antara 0 dan 11. Jadi penambahan harus dilakukan setelah MOD().

Nilai NULL
Secara konsep, NULL berarti “nilai yang hilang” atau “nilai yang tidak diketahui” dan diperlakukan lain daripada nilai yang lain. Untuk mengetes nilai NULL, Anda tidak dapat menggunakan operator perbandingan aritmatik seperti =, < atau !=. Untuk mendemonstrasikannya sendiri, cobalah query berikut:
mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+

Anda mendapat hasil yang berarti dari perbandingan di atas. Gunakan operator IS NULL dan IS NOT NULL sebagai gantinya:
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+

pada MySQL, 0 berarti false dan 1 berarti true.
Perlakuan yang khusus untuk NULL inilah sebabnya, pada bagian di atas, Anda harus menggunakan death IS NOT NULL dan bukannya death != NULL.

Pengenalan Pola (Pattern Matching)
MySQL menyediakan pengenalan pola standar SQL juga pengenalan pola berdasarkan ekspresi regular yang mirip dengan yang digunakan pada utiliti UNIX seperti vi, grep dan sed.
Pengenalan pola memperbolehkan Anda untuk menggunakan ‘_’ untuk menggantikan satu karakter, dan ‘%’ untuk menggantikan sembarang jumlah karakter (termasuk nol karakter). Pada MySQL, pola SQL defaultnya adalah case insensitive. Beberapa contoh ditunjukkan di bawah. Perhatikan bahwa Anda tidak menggunakan = atau != ketika menggunakan pola SQL; gunakan perbandingan LIKE atau NOT LIKE sebagai gantinya.
Untuk menemukan nama yang dimulai dengan ‘b’:
mysql> SELECT * FROM pet WHERE name LIKE "b%";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+

Untuk menemukan nama yang diakhiri denga ‘fy’:
mysql> SELECT * FROM pet WHERE name LIKE "%fy";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

Untuk menemukan nama yang mengandung sebuah ‘w’:
mysql> SELECT * FROM pet WHERE name LIKE "%w%";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+

Untuk menemukan nama yang berisi tepat lima karakter, gunakan karakter pola ‘_’ :
mysql> SELECT * FROM pet WHERE name LIKE "_____";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Jenis pengenalan pola lain yang disediakan oleh MySQL menggunakan ekspresi regular (extended regular expressions). Jika Anda ingin mengetes untuk jenis pola seperti ini, gunakan operator REGEXP dan NOT REGEXP (atau RLIKE dan NOT RLIKE, yang sinonim).
Beberapa karakteristik dari ekspresi regular:
• ‘.’ menggantikan satu karakter.
• Sebuah kelas karakter ‘[…]’ menggantikan sembarang karakter yang termasuk di dalam tanda kurung siku. Contohnya, ‘[abc]’ menggantikan ‘a’, ‘b’, atau ‘c’. untuk menyebutkan jangkauan karakter, gunakan tanda ‘-‘. ‘[a-z]’ menggantikan sembarang huruf kecil, dan ‘[0-9]’ menggantikan sembarang digit.
• ‘*’ menggantikan nol atau lebih karakter yang didepannya. Contohnya, ‘x*’ menggantikan sembarang panjang dari karakter ‘x’, ‘[0-9]*’ menggantikan sembarang jumlah digit, dan ‘.*’ menggantikan sembarang jumlah dari sembarang.
• Ekspresi regular ini case sensitive, tetapi Anda dapat menggunakan kelas karakter untuk menggantikan kedua jenis huruf. Contohnya, ‘[aA]’ menggantikan huruf kecil dan huruf besar dari ‘a’ dan ‘[a-zA-Z]’ menggantikan sembarang huruf baik huruf besar maupun kecil.
• Pola ini cocok jika ditemukan dimanapun di dalam nilai yang sedang dites (pola SQL cuma cocok jika sesuai untuk keseluruhan nilai).
• Untuk memastikan bahwa pola harus sesuai untuk awal atau akhir nilai yang dites, gunakan ‘^’ pada awal atau ‘$’ pada akhir pola.
Untuk mendemokan cara kerja ekspresi regular, query LIKE yang ditunjukkan di atas ditulis ulang menggunakan REGEXP:
Untuk menemukan nama yang dimulai dengan ‘b’, gunakan ‘^’ untuk mencocokkannya dengan awal nama dan ‘[bB]’ untuk mencocokkannya baik untuk huruf b besar maupun kecil:
mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+

Untuk menemukan nama yang diakhiri dengan ‘fy’, gunakan ‘$’ untuk mencocokkannya dengan akhir dari nama:
mysql> SELECT * FROM pet WHERE name REGEXP "fy$";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

Untuk mencari nama yang mengandung sebuah ‘w’, gunakan ‘[wW]’ untuk mencocokkannya dengan huruf ‘w’ kecil maupun besar:
mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+

karena pola ekspresi regular mencocokkan jika terjadi dimanapun dalam nilai, maka pada query di atas tidak perlu memakai ‘*’ pada sisi kiri maupun kanan dari pola untuk mencocokkannya dengan keseluruhan nilai seperti jika Anda menggunakan pola SQL.
Untuk menemukan nama yang tepat berisi lima huruf, gunakan ‘^’ dan ‘$’ untuk mencocokkan dengan awal dan akhir nama, dan lima ‘.’ di antaranya:
mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Anda juga dapat menuliskan query tadi menggunakan operator ‘{n}’ (ulangi n-kali):
mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Database juga sering digunakan untuk menjawab pertanyaan, “Seberapa sering suatu tipe data terdapat dalam suatu tabel?”. Sebagai contoh, Anda mungkin ingin tahu berapa banyak hewan yang Anda miliki, atau berapa hewan yang dimiliki tiap pemiliknya, atau Anda mungkin ingin membuat sensus tertentu untuk hewan Anda.
Menghitung jumlah total hewan yang Anda miliki ini sama dengan pertanyaan “Berapa banyak baris yang ada dalam tabel pet?,” karena terdapat satu record per hewan. Fungsi COUNT() menghitung jumlah hasil yang bukan NULL, jadi query untuk menghitung hewan Anda tampak seperti berikut:
mysql> SELECT COUNT(*) FROM pet;
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+

Pada query di atas, Anda mengambil nama orang yang memiliki hewan. Anda dapat menggunakan COUNT() jika Anda ingin menemukan berapa banyak yang dimiliki tiap pemilik:
mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner;
+--------+----------+
| owner | COUNT(*) |
+--------+----------+
| Benny | 2 |
| Diane | 2 |
| Gwen | 3 |
| Harold | 2 |
+--------+----------+

Ingat bahwa penggunaan GROUP BY untuk menggabungkan semua record yang sama owner-nya. Tanpa ini, Anda akan mendapatkan pesan error:
mysql> SELECT owner, COUNT(owner) FROM pet;
ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
with no GROUP columns is illegal if there is no GROUP BY clause

COUNT() dan GROUP BY sangat berguna untuk mengkarakterisasi data Anda dalam cara tertentu. Contoh berikut menunjukkan cara berbeda untuk melakukan operasi konsensus hewan.
Jumlah hewan per spesies:
mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;
+---------+----------+
| species | COUNT(*) |
+---------+----------+
| bird | 2 |
| cat | 2 |
| dog | 3 |
| hamster | 1 |
| snake | 1 |
+---------+----------+

jumlah hewan per jenis kelamin:
mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;
+------+----------+
| sex | COUNT(*) |
+------+----------+
| NULL | 1 |
| f | 4 |
| m | 4 |
+------+----------+

(pada output ini, NULL menunjukkan “jenis kelamin tidak diketahui”)
Jumlah hewan per kombinasi dari spesies dan jenis kelamin:
mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | NULL | 1 |
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+

Anda tidak perlu mengambil keseluruhan tabel ketika menggunakan COUNT(). Contohnya, pada query sebelumnya, ketika digunakan hanya untuk anjing dan kucing, tampak seperti ini:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE species = "dog" OR species = "cat"
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
+---------+------+----------+

Atau, jika Anda ingin jumlah hewan per jenis kelamin cuma untuk hewan yang diketahui jenis kelaminnya:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE sex IS NOT NULL
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+

Menggunakan Lebih Dari Satu Tabel
Tabel pet menunjukkan hewan apa saja yang Anda miliki. Jika Anda ingin menyimpan informasi lain mengenai mereka, seperti kejadian pada kehidupan mereka, Anda membutuhkan tabel lain. Seperti apa tabel ini seharusnya?
• Perlu berisi nama hewan jadi Anda tahu hewan mana yang mengalaminya.
• Perlu tanggal jadi Anda tahu kapan hal ini terjadi.
• Perlu field yang menggambarkan kejadian ini
• Jika Anda ingin bisa mengkategorikan kejadian, akan sangat berguna untuk memiliki field jenis kejadian.
Berdasarkan pertimbangan di atas, pernyataan CREATE TABLE untuk tabel event mungkin tampak seperti berikut:
mysql> CREATE TABLE event (name VARCHAR(20), date DATE,
-> type VARCHAR(15), remark VARCHAR(255));

Seperti pada tabel pet, cara termudah untuk mulai mengisi record dengan membuat file teks yang berisi informasi berikut:
Fluffy
1995-05-15 Litter 4 kittens, 3 female, 1 male
Buffy 1993-06-23 Litter 5 puppies, 2 female, 3 male
Buffy 1994-06-19 litter 3 puppies, 3 female
Chirpy 1999-03-21 vet needed beak straightened
Slim 1997-08-03 vet broken rib
Bowser 1991-10-12 kennel
Fang 1991-10-12 kennel
Fang 1998-08-28 birthday Gave him a new chew toy
Claws 1998-03-17 birthday Gave him a new flea collar
Whistler 1998-12-09 birthday First birthday

Masukkan record ini dengan cara:
mysql> LOAD DATA LOCAL INFILE "event.txt" INTO TABLE event;

Berdasarkan apa yang Anda pelajari dari query yang Anda jalankan pada tabel pet, Anda seharusnya sudah mampu untuk melakukan pengambilan record pada tabel event, prinsipnya sama.
Anggaplah Anda ingin menemukan umur untuk tiap hewan ketika mereka melahirkan (litter). Tabel event menunjukkan kapan ini terjadi, tetapi untuk menunjukkan umur dari induknya, Anda butuh tanggal lahirnya. Karena ini disimpan dalam tabel pet, Anda butuh kedua tabel untuk querynya:
mysql> SELECT pet.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS age, remark
-> FROM pet, event
-> WHERE pet.name = event.name AND type = "litter";
+--------+------+-----------------------------+
| name | age | remark |
+--------+------+-----------------------------+
| Fluffy | 2.27 | 4 kittens, 3 female, 1 male |
| Buffy | 4.12 | 5 puppies, 2 female, 3 male |
| Buffy | 5.10 | 3 puppies, 3 female |
+--------+------+-----------------------------+

Ada beberapa hal yang harus diperhatikan tentang query ini:
• Pada klausa FROM terdapat dua tabel karena query ini butuh mengambil data dari keduanya.
• Ketika menggabungkan (join) informasi dari multiple tabel, Anda harus menspesifikasi bagaimana record dalam satu tabel dapat cocok dengan record dari tabel lain. Ini mudah karena mereka keduanya memiliki kolom name. Query ini menggunakan klausa WHERE untuk mencocokkan record dari kedua tabel berdasarkan value name.
• Karena kolom name terdapat pada kedua tabel, Anda harus menspesifikasi dari tabel mana kolom ini yang akan ditampilkan. Ini dilakukan dengan menambahkan nama tabel sebelum nama kolom.
Anda tidak harus memiliki dua tabel yang berbeda untuk melakukan join. Kadang-kadang ada gunanya untuk menggabungkan sebuah tabel ke dirinya sendiri, jika Anda ingin membandingkan record dalam suatu tabel ke record lain dalam tabel yang sama. Contohnya, untuk menemukan hewan yang merupakan pasangan diantara hewan Anda, Anda dapat menggabungkan tabel pet dengan dirinya sendiri untuk memadukan hewan jantan dan betina yang sejenis:
mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
-> FROM pet AS p1, pet AS p2
-> WHERE p1.species = p2.species AND p1.sex = "f" AND p2.sex = "m";
+--------+------+--------+------+---------+
| name | sex | name | sex | species |
+--------+------+--------+------+---------+
| Fluffy | f | Claws | m | cat |
| Buffy | f | Fang | m | dog |
| Buffy | f | Bowser | m | dog |
+--------+------+--------+------+---------+

Pada query ini, kita menulis alias dari nama tabel agar bisa mereferensi kolom dan menjelaskan asosiasi dari tiap kolom.

Mengambil Informasi Mengenai Database Dan Tabel
Bagaimana jika Anda lupa nama dari database atau tabel, atau struktur dari suatu tabel? MySQL memecahkan masalah ini melalui beberapa pernyataan yang menyediakan informasi mengenai database dan tabel yang didukungnya.
Anda sudah melihat SHOW DATABASES, yang menunjukkan daftar database yang dikelola oleh server. Untuk menemukan database mana yang sedang digunakan, gunakan fungsi DATABASE():
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| hewan |
+------------+

Jika Anda belum memilih database, hasilnya akan kosong.
Untuk melihat daftar tabel dari database yang sedang digunakan, gunakan perintah:
mysql> SHOW TABLES;
+---------------------+
| Tables in hewan |
+---------------------+
| event |
| pet |
+---------------------+

Jika Anda ingin melihat struktur dari suatu tabel, perintah DESCRIBE sangat berguna, perintah ini menampilkan informasi tentang tiap kolom tabel:
mysql> DESC pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

Field menunjukkan nama kolom, Type adalah tipe data kolom, Null menunjukkan apakah kolom yang bersangkutan dapat berisi nilai NULL, Key menunjukkan apakah kolom diindex dan Default menunjukkan nilai default kolom.
Jika Anda memiliki index pada suatu tabel, SHOW INDEX FROM tbl_name akan menghasilkan informasi mengenainya.

Index
Semua tipe kolom MySQL dapat diindex. Penggunaan index pada kolom yang relevan adalah cara terbaik untuk meningkatkan performa operasi SELECT.
Sebuah tabel dapat memiliki max 16 index. Panjang maximum index adalah 256 bytes, meskipun hal ini dapat diubah ketika meng-compile MySQL.
Untuk kolom CHAR dan VARCHAR, Anda dapat mengindex sebagian dari kolom. hal ini jauh lebih cepat dan memerlukan ruang harddisk yang lebih sedikit daripada mengindex keseluruhan kolom. Sintaks yang digunakan dalam pernyataan CREATE TABLE untuk mengindex sebagian awal kolom seperti berikut:
KEY index_name (col_name(length))

Contoh berikut membuat sebuah index untuk 10 karakter pertama dari kolom name:
mysql> CREATE TABLE test (
name CHAR(200) NOT NULL,
KEY index_name (name(10)));

MySQL dapat membuat index untuk banyak kolom. sebuah index dapat terdiri dari max 15 kolom. index multiple kolom dapat dianggap sebagai array tersortir yang berisi nilai yang dibuat dengan menggabungkan nilai dari kolom yang diindex.
MySQL menggunakan index multiple kolom sedemikian rupa sehingga query menjadi cepat jika Anda menspesifikasi kuantiti yang diketahui untuk kolom pertama dari index dalam klausa WHERE, bahkan jika Anda tidak menspesifikasi nilai untuk kolom yang lain.
Anggap sebuah tabel dibuat menggunakan kriteria berikut:
mysql> CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name));

Kemudian index name adalah index untuk last_name dan first_name. Index ini akan digunakan untuk query yang menspesifikasi nilai untuk jangkauan yang diketahui dari last_name atau last_name dan first_name. Maka, index name akan digunakan pada query berikut:
mysql> SELECT * FROM test WHERE last_name="Widenius";
mysql> SELECT * FROM test WHERE last_name="Widenius"
AND first_name="Michael";
mysql> SELECT * FROM test WHERE last_name="Widenius"
AND (first_name="Michael" OR first_name="Monty");
mysql> SELECT * FROM test WHERE last_name="Widenius"
AND first_name >="M" AND first_name < "N";

Namun, index name tidak akan digunakan untuk query berikut:
mysql> SELECT * FROM test WHERE first_name="Michael";

mysql> SELECT * FROM test WHERE last_name="Widenius"
OR first_name="Michael";

Program Yang Ada Dalam MySQL:
myisamchk
Program utilitas untuk menggambarkan, mengecek, mengoptimasi dan memperbaiki tabel MySQL.
make_binary_release
Membuat versi binary dari MySQL yang sudah di-compile.
msql2mysql
Sebuah skrip shell yang mengubah program mSQL ke MySQL. Ini tidak menangani semua kasus, tetapi memberikan awal yang baik ketika pengubahan.
mysqlaccess
Skrip yang mengecek hak akses untuk kombinasi host, user, dan database.
mysqladmin
Utilitas untuk melakukan operasi administrative, seperti membuat atau menghapus database, reload grant table, mem-flush taabel ke disk dan membuka ulang file log. mysqladmin dapat juga digunakan untuk mengambil informasi versi, proses dan status dari server.
mysqlbug
Skrip untuk melaporkan bug MySQL. Skrip ini seharusnya selalu digunakan detika mengisi laporan bug ke list MySQL.
mysqld
Daemon SQL. Ini harus selalu berjalan.
mysqldump
Untuk men-dump database MySQL ke sebuah file sebagai pernyataan-pernyataan SQL atau sebagai file teks yang dipisahkan oleh tab.
mysqlimport
Untuk mengimpor file teks ke tabel yang bersangkutan menggunakan LOAD DATA INFILE.
mysqlshow
Menampilkan informasi mengenai database, tabel, kolom, dan index.
mysql_install_db
Membuat tabel grant MySQL dengan hak akses default. Ini biasanya dijalankan cuma sekali, ketika pertama kali menginstall MySQL.
replace
Program utilitas yang digunakan oleh mysql2mysql, tetapi memiliki kegunaan yang lainnya. replace mengubah string di dalam file atau pada input standar. Dapat digunakan untuk menukar string. Contohnya, perintah ini menukar a dan b dalam file yang bersangkutan:
shell> replace a b b a -- file1 file2 ...
safe_mysqld
Script yang menjalankan daemon mysqld dengan option yang aman, seperti me-restart server ketika terjadi error dan mencatat informasi runtime ke file log.


Men-dump Struktur Dan Data Dari Database Dan Tabel MySQL
Utiliti untuk men-dump database atau koleksi dari database untuk backup atau untuk mentransfer data ke server SQL lain. Dump ini akan berisi pernyataan SQL untuk membuat tabel dan/atau mengisi tabel.
shell> mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]

Jika Anda tidak memberikan tabel apapun atau menggunakan –databases atau –all-databases, seluruh database akan di-dump.
Anda akan mendapatkan daftar option dari mysqldump yang didukung oleh versi Anda dengan menjalankan perintah :
shell> mysqldump –help

Penggunaan yang normal dari mysqldump mungkin adalah membuat backup dari seluruh database.
mysqldump --opt database > backup-file.sql

Namun, juga sangat berguna untuk membuat server MySQL lain dengan informasi dari suatu database:
mysqldump --opt database | mysql --host=remote-host -C database

Mungkin juga untuk men-dump beberapa database dengan satu perintah:
mysqldump --databases database1 [database2 database3...] > my_databases.sql

Jika Anda ingin men-dump seluruh database, dapat menggunakan:
mysqldump --all-databases > all_databases.sql


Mengimpor Data Dari File Teks
mysqlimport menyediakan interface baris perintah untuk pernyataan SQL: LOAD DATA INFILE. Sebagian besar option untuk mysqlimport berkaitan langsung dengan option yang sama dari LOAD DATA INFILE.
mysqlimport dijalankan seperti berikut:
shell> mysqlimport [options] database textfile1 [textfile2....]

Untuk tiap file teks yang disebutkan di baris perintah, mysqlimport menghapus ekstensi dari nama file dan menggunakan hasilnya untuk menentukan tabel mana yang harus diisi hasil impor.

Modul Menginstall Linux (Debian)

Dalam modul ini akan diberikan langkah-langkah dalam menginstall Linux, yang dalam hal ini Debian. Modul ini untuk menginstall linux dengan menggunakan cd namun tanpa menginstall X11.

Langkah ke Keterangan
I Persiapan Menginstall Linux (Debian)
II Boot dari CD
III Pilihan Awal Penginstallan
IV Menentukan Partisi Hardisk
V Menginisialisasi Partisi Swap
VI Memilih jenis File System pada Partisi Linux
VII Menginstall Kernel dan Modulnya
VIII Memilih Driver
IX Mengkonfigurasi Jaringan
X Menginstall Base System
XI Membuat System Menjadi Bootable
XII Membuat Boot Floppy
XIII Mereboot Komputer
XIV Konfigurasi System Debian
XV Login



Tutorial Install Linux (tanpa X11)

LANGKAH I
Persiapan Menginstall Linux (Debian)

Nyalakan komputer, kemudian tekan [delete] untuk masuk ke bios,
Setelah di dalam bios, pilih menu
BIOS FEATURES SETUP
tekan [ENTER]
Setelah itu pilihlah menu Boot Sequence agar menjadi CDROM,C,A

[ESC]
Pilih,
SAVE & EXIT SETUP
tekan [ENTER]
tekan y [ENTER]
Maka komputer akan mulai booting kembali dengan boot sequence pertama ke CDROM.

Masukkan CD debian yang ada kedalam CDROM.

LANGKAH II
Boot dari CD

Setelah memasukkan CD ke dalam CDROM maka tinggal tunggu CD boot.
Setelah komputer boot ke CD, akan muncul tampilan sebagai berikut:
Welcome to Deal
This is debian ...........................................
..........................................................

boot:_ [ENTER]

LANGKAH III
Pilihan Awal Penginstallan

Setelah itu komputer akan loading...
Tunggu sampai muncul tulisan sebagai berikut:

' Choose The Language '
Pilih bahasa (disarankan bahasa inggris - en). [ENTER]

' Choose Language Variant '
Pilih ' English (United States) ' [ENTER].

' Relase Notes '
Pilih [ENTER].

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Configure the Keyboard

tekan [ENTER].

' Select a Keyboard '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pilih,

qwerty/us : U.S. English (QWERTY)

[ENTER]

LANGKAH IV
Menentukan Partisi Hardisk

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,
Next : Initialize and Activate a Swap Partition
pilih,
Previous: Partition a Hard Disk
[ENTER]

' Select Disk Drive '
pilih,
/dev/hda
[ENTER]

' Lilo Limitations '
[ENTER]

' Note on additional space for the ReiserFS Journal '
[ENTER]

Akan muncul tampilan partisi yang ada pada hard Disk hda, dengan informasi ini anda akan mengetahui letak partisi swap dan letak partisi tempat anda akan meletakkan '/' (root).
pilih [ Quit ]
dengan menggerakan/menekan panah kearah kanan. [ENTER]

LANGKAH V
Menginisialisasi Partisi Swap

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight pada pilihan yang paling atas dengan tulisan,

Next : Initialize and Activate a Swap Partition
[ENTER]

' Scan for Bad Blocks? '
pilih [ENTER]

' Are You Sure? '
pilih [ENTER]

LANGKAH VI
Memilih jenis File System pada Partisi Linux


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Initialize a Linux Partition
[ENTER]

' Choose Filesystem Type '
Terdapat 3 pilihan pada kotak, pilih,

Ext3 : Next Generation of Ext2, a journaling filesystem
[ENTER]

' Select Partition '
Pilih partisi yang akan dijadikan "Ext3"
Terdapat 3 pilihan pada kotak, pilih,

/dev/hda2 : Linux native
[ENTER]

' Scan for Bad Blocks? '
pilih [ENTER]

' Are You Sure? '
Perhatikan baik-baik apakah benar yang anda pilih /dev/hda2 sebagai "Ext3" kalau sudah benar
pilih [ENTER]

' Mount as the Root Filesystem? '
pilih [ENTER]

LANGKAH VII
Menginstall Kernel dan Modulnya


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight pada pilihan yang paling atas dengan tulisan,

Next : Install kernel and Driver Modules
[ENTER]

' Select Installation Medium '
pilih,
cdrom : CD-ROM drive
[ENTER]

' Please insert the CD-ROM '
pilih [ENTER]

' Please Wait '

' Select Archive path '
Pilih directory tempat menginstall kernel.
/instmnt/dists/woody/main/disks-i386/current
[ENTER]

' Please Wait '

LANGKAH VIII
Memilih Driver


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Configure Device Driver Modules
[ENTER]

' Note about loaded drivers '
pilih, [ENTER]

' Select Category '
Akan tampil pilihan-pilihan module yang akan di pilih,

1. Pilih ' kernel/drivers/input Input Devices. ' [ENTER]

' Select kernel/driver/input modules '
pilih,
' kebdev - Keyboard support ' [ENTER]

' kebdev '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

pilih,
' mousedev - Mouse support ' [ENTER]

' mousedev '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

Pilih ' Exit Finish Return to previous menu. ' [ENTER]

2. Pilih ' kernel/drivers/net Drivers for network interface cards ' [ENTER]

' Select kernel/drivers/net modules '
carilah ' eepro100 ' [ENTER]

' eepro100 '
pilih, [ENTER]

atau bila gagal bisa coba bonding

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa. [ENTER]

Pilih ' Exit Finish Return to previous menu. ' [ENTER]

3. Pilih ' kernel/fs/msdos
MS-DOS file system ' [ENTER]

' Select kernel/fs/msdos modules '
pilih, ' msdos - PC BIOS ' [ENTER]

' msdos '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

Pilih ' Exit Finish Return to previous menu. ' [ENTER]

4. Pilih ' kernel/arch/1386/kernel i386-base drivers. ' [ENTER]
pilih, ' apm ' [ENTER]

' apm '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

pilih, ' cpuid ' [ENTER]

' cpuid '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

Pilih ' Exit Finish Return to previous menu. ' [ENTER]


Pilih, ' Exit ' [ENTER]

LANGKAH IX
Mengkonfigurasi Jaringan


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Configure the network

[ENTER]

' Choose The Hostname '
Ganti tulisan ' Debian ' dengan ' LAB-OS-27-*** '
*** diganti dengan nomor komputer.
[ENTER]

' Automatic Network Configuration '
pilih, [ENTER]

' Choose the IP Address '
Ganti tulisan default-nya dengan ' 152.118.27.*** '
*** diganti dengan nomor komputer.
[ENTER]

' Choose Network Mask '
Tidak usah diganti.
[ENTER]

' What is your IP gateaway address? '
152.118.27.1
[ENTER]

' Choose Domain Name '
Tulis ' cs.ui.ac.id '
[ENTER]

' Choose the DNS Server Addresses '
Ganti dengan ' 152.118.24.2 '
[ENTER]

LANGKAH X
Menginstall Base System


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di
highlight pada pilihan yang paling atas dengan tulisan,

Next : Install the base system
[ENTER]

' Select Installation Medium '
pilih,

' cdrom : CD-ROM drive '
[ENTER]

' Please insert the CD-ROM '
pilih, [ENTER]

' Select Archive path '
Pilih directory untuk menginstall base sistem.
/instmnt
[ENTER]

' Installing Base System, please wait '
Tunggulah sampai selesai menginstall.

LANGKAH XI
Membuat System Menjadi Bootable


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Make System Bootable
[ENTER]

' When should the LILO boot loader be installed ? '
Pilih,
/dev/hda : Install LILO in the MBR (use this if unsure).
[ENTER]


' Other bootable partitions '
Pilih,
Include Put all into the menu.
[ENTER]

' Securing LILO '
[ENTER]

LANGKAH XII
Membuat Boot Floppy

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Make a Boot Floppy

Masukkan disket(dalam keadaan baik)ke dalam floppy disk
[ENTER]

' Change Disk '
[ENTER]

Tunggulah sementara sedang membuat boot floppy

LANGKAH XIII
Mereboot Komputer

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Reboot The System
[ENTER]

' Reboot The System? '
Pilih,
Yes [ENTER]

Kemudian keluarkan disket dari floppy disk, sementara komputer sedang reboot.

Keluarkanlah cd deal dari cdrom.

Tunggu sampai muncul lilo boot seperti dibawah ini,

| Linux |
| WIN/Dos |

Pilih Linux [ENTER]

LANGKAH XIV
Konfigurasi System Debian


Kemudian akan masuk ke tampilan seperti dibawah ini :
' Debian System Configuration '
[ENTER]

' TimeZone Configuration '
Is the hardware clock set to GMT
Pilih,
[ENTER]

What area do you life in?
Pilih,
Asia [ENTER]

Select a city or time zone:
Pilih,
Jakarta [ENTER]

' Password setup '
Shall I enable md5 passwords?
Pilih,
[ENTER]

Shall I enable shadow passwords?
Pilih,
[ENTER]

Enter a password for the root:
Isi saja dengan 12345
[ENTER]

Re-enter password to verify:
Isi lagi dengan 12345
[ENTER]

Shall I create a normal user account now?
Pilih,
[ENTER]

' Debian System Configuration '
Shall I remove the pcmcia packages?
Pilih,
[ENTER]

Do you want to user a PPP connection to install the system.
Pilih,
[ENTER]

' Apt Configuration '
Choose the method apt should user to access to Debian archive:
Pilih,
cdrom [ENTER]

Masukkan cd deal ke dalam cdrom.

Enter CD ROM device file:
/dev/cdrom [ENTER]

Scan another CD?
pilih [ENTER]

Add another apt source?
pilih [ENTER]

Use security updates from security.debian.org?
pilih [ENTER]

Run tasksel?
pilih [ENTER]

Run dselect?
pilih [ENTER]

Run dselect?
pilih, [ENTER]

Tunggu sementara sedang mengkonfigurasi paket apa saja yang akan diambil,
sampai ada tulisan seperti di bawah ini :
Do you want to continue? [Y/n]
Ketikan y [ENTER]

Do you want to erase any previous downloaded.deb files? [Y/n]
Ketik,
y [ENTER]
Please enter to continue
[ENTER]

I can do .....
[---Please return---]
[ENTER]

You must choose one of the options below:
Enter value (default='1', 'x' to restart):
Ketik,
5 [ENTER]

'Debian System Configuration '
Have fun !
Thank you for choosing Debian.
[ENTER]


LANGKAH XV
Login

Nanti akan muncul pesan seperti dibawah ini:
LAB-OS-27-**** login :
(**** sesuai dengan komputer tempat anda menginstall)

Coba masukkan login root dan passwordnya.

Setelah itu kita akan mencoba menginstall paket.
Cara menginstallnya adalah dengan cara sebagai berikut:
ketik perintah ini di console:

apt-get install "nama paket" [ENTER]

Sebagai contoh kita akan mencoba menginstall lynx.
Jadi yang harus diketikkan adalah sebagai berikut :

apt-get install lynx [ENTER]

Do you want to continue? [Y/n]
ketikan y [ENTER]

Setelah selesai menginstall lynx coba ketikkan perintah ini di console :
lynx kambing.vlsm.org [ENTER]

Jika berhasil masuk ke halaman kambing.vlsm.org berarti anda berhasil.
Selamat menggunakan Debian!
Selamat mencoba di rumah!