Rabu, 22 Juli 2015

Apa itu Syiah? Apa beda Islam dengan Syiah?

Dulu saat masih kecil dan remaja, saya pernah mendengar konflik antara Syiah dan Sunni di negara timur tengah. Saat itu saya masih belum terlalu mengerti apa beda Syiah dan Sunni. Mengapa kedua golongan ini sampai terlibat konflik walau 'kelihatannya' sama-sama mengaku Islam. Setahu saya sebagai orang awam, persatuan umat Islam di negara arab cukup solid karena disanalah pertama kali ajaran Islam yang turun melalui wahyu-wahyu ilahi disebarkan. Jadi Islam bagi mereka lebih dari sekedar agama tapi juga budaya yang sudah mengakar secara turun temurun.
Lalu mengapa sesama orang Arab masih berperang bahkan tidak segan-segan melakukan pembantaian seperti yang kita lihat di negara Syria misalnya? Apakah itu murni perebutan kekuasaan atau ada konflik Syiah versus Sunni juga di dalamnya?
Pernah saya menonton video salah seorang pendakwah ahli perbandingan agama yaitu dr. Zakir Naik asal India. Sebagai info beliau hafal Al-quran, dan beberapa kitab suci lainnya sebagai perbandingan. Begitu ditanyakan kepadanya mengapa ada banyak aliran/sekte di dalam umat muslim, beliau menjawab dengan bijak di Al-qur'an tidak pernah ada disebutkan Islam terbagi menjadi Syiah dan Sunni, dll. Kedua sebutan ini murni hasil karya manusia dan bukan dari Allah Swt.
Menurut beliau, jika mau tau suatu ajaran benar atau salah  kembalikan saja ke isi Al-qur'an dan hadits2 Nabi Saw. Jika suatu kelompok berpegang teguh pada kedua sumber utama ajaran Islam berarti kelompok tersebut sesuai dengan Islam, jika tidak maka sudah dapat dipastikan kelompok tersebut harus kita tinggalkan. Simple.
JIKA DASAR AJARANNYA TIDAK BERSUMBER DARI AL-QUR'AN DAN HADITS YANG SANADNYA JELAS MAKA AJARAN TERSEBUT TIDAK LAYAK KITA IKUTI SEBAGAI UMAT MUSLIM.
Kembali ke Syiah, karena ajaran ini mulai masuk ke Indonesia sudah sewajarnya kita sebagai umat Islam lebih aware untuk mempelajari ajaran Islam lebih baik dan membandingkannya dengan faham Syiah sebagai benteng pribadi dan juga keluarga serta teman2 sesama Islam. Dari luar memang Syiah ini nggak kalah dengan umat Islam. Memakai jubah, surban dan jenggot untuk penganut laki-laki dan memakai hijab dan baju dalam bagi perempuannya. Namun jika otak kita sudah tertanam aqidah Islam yang benar, menurut hemat saya AMAT MUDAH mendeteksi suatu ajaran itu sesat atau tidak. Bandingkan saja dengan Al-qur'an yang kita punya, serta hadits2 shahih dengan referensi2  Mazhab 4 Imam besar Islam.  Mazhab adalah sebuah metodologi ilmiyah dalam mengambil kesimpulan hukum dari kitabullah dan Sunnah Nabawiyah. Jika berbeda dengan salah satu saja dari sumber tersebut maka ada baiknya tidak kita ambil ilmunya apalagi dipraktekan.
Syi’ah  ialah salah satu aliran atau mazhab. Secara umum, Syi'ah menolak kepemimpinan dari tiga Khalifah Islam (orang Arab menyebutnya Sunni) pertama (from Wikipedia). Padahal pada saat kepemimpinan Tiga  Khalifah inilah Al-qur'an di kumpulkan dari bentuk lembaran-lembaran menjadi sebuah buku utuh. Syiah otomatis tidak mempercayai Al-quran yang disusun pada masa ketiga Khalifah ini dan memilih membuat 'Al-qur'an' versinya sendiri yang tentunya tidak bersumber dari sahabat-sahabat terdekat Nabi Saw. Lalu kalau tidak mempercayai Al-qur'an, dasar apa yang digunakan Syiah untuk membenarkan ajarannya? Setahu saya kitab-kitab Syiah sudah dicampur-campur antara potongan ayat Al-qur'an dengan ajaran dari imam-imam mereka (perkataan manusia), tidak murni berisi perkataan Allah saja. Sedangkan Al-qur'an yang dikumpulkan pada zaman keKhalifahan Tiga  sahabat nabi murni dikumpulkan dari para penghafal ayat dan juga lembaran-lembaran (biasanya pelepah kurma) yang berisi ayat-ayat Al-qur'an yang diturunkan Allah melalui malaikat Jibril kepada Nabi Muhammad. Begitu juga dengan hadits, karena mereka tidak mempercayai hadits yang dirangkum di ketiga masa kepemimpinan Khalifah ini maka banyak sekali hadits penting yang menjadi pegangan utama umat Islam hingga saat ini mereka dustakan. Contohnya tentang tata cara shalat dan jumlah shalat dalam sehari semalam. Amat berbeda antara Syiah dengan Islam.
Demikian secara ringkas nya perbedaan utama antara Syiah dan Islam. Sebetulnya tidak ada istilah Sunni (berasal dari kata Sunnah yang artinya Ahlu Sunnah Wal Jamaah, yaitu kelompok yang berpegang teguh pada ajaran Islam pada masa awal Islam disebarkan yaitu pada masa Nabi atau Sahabat Nabi masih hidup). Semua orang Islam sejatinya haruslah seorang Sunni atau Ahlu Sunnah Wal Jamaah, namun karena jauhnya rentang waktu antara Islam disebarkan dengan masa sekarang banyak orang yang enggan mempelajari Islam sesuai ajaran Islam pada awal Islam diajarkan. Mereka menganggap ajaran tersebut 'kuno' dan tidak sesuai lagi dengan kehidupan modern sekarang. Karena itulah muncul paham2 penganut Islam moderat, liberal, kejawen, abangan dll karena sudah bercampur2 antara budaya dengan ajaran agama.
Padahal Islam yang hakiki sesuai dengan apa yang ada di dalam Al-qur'an dan Hadits, sifatnya tidak hanya berlaku untuk umat Islam pada zaman Nabi namun berlaku hingga hari kiamat. Untuk itu sebagai umat Islam yang ingin merasakan nikmat Islam yang sebenarnya, terutama untuk masyarakat yang memeluk Islam keturunan perlu mempelajari lebih dalam tentang aqidah dan fiqih Islam agar bisa menjadi benteng kita terhadap ajaran-ajaran yang amat jauh berbeda dengan Islam yang disampaikan oleh Nabi.
Pengetahuan lain tentang Syiah, bisa anda lihat disini. Penceramah2 Rodja TV dan Yufid TV serta penceramah Luar Negeri, Inshaa Allah mereka  faham bahasa Arab dan mempelajari Islam langsung dari buku-buku berbahasa arab dengan bimbingan guru-guru yang sudah diakui keluasan ilmunya terkait agama Islam.

Senin, 09 Juni 2014

Contoh Surat Lamaran Pekerjaan



Jambi, 10 Juni 2014

Kepada Yth:
Bapak/Ibu Pimpinan Klinik Medisa
Di-
Jambi
Perihal : Lamaran kerja

Dengan Hormat,
Saya yang bertanda tangan dibawah ini :
Nama                                       : Saikurahmi
Tempat/Tanggal Lahir             : Tambun Arang, 8 November 1990
Jenis Kelamin                          : Laki-laki
Alamat                                    : Tambun Arang RT 05 Kec. Muara Tabir
Telepon                                   : 0852 6978 9249

Melalui surat lamaran ini Saya ingin mengajukan diri untuk melamar pekerjaan yang ada di perusahaan milik Bapak/Ibu pimpin guna mengisi posisi yang saat ini sedang dibutuhkan.
Sebagai bahan pertimbangan Bapak/Ibu, Saya melampirkan juga beberapa kelengkapan data diri sebagai berikut :

1. Surat lamaran pekerjaan
2. Foto copy KTP
3. Daftar riwayat hidup
4. Foto copy Ijazah
5. Pas photo 3x4 terakhir

Demikianlah surat lamaran ini Saya buat dengan data yang sebenarnya dan atas perhatian serta kebijaksanaan dari Bapak/Ibu Saya mengucapkan terima kasih.

Hormat Saya,


Saikurahmi

Senin, 02 Juni 2014

Manajemen Database dengan MySQL



BAB 1 MENGENAL MySQL

1.1 Pengertian MySQL
Mysql adalah sebuah server database open source yang terkenal yang digunakan berbagai aplikasi terutama untuk server atau membuat WEB. Mysql berfungsi sebagai SQL (Structured Query Language) yang dimiliki sendiri dan sudah diperluas oleh Mysql umumnya digunakan bersamaan dengan PHP untuk membuat aplikasi server yang dinamis dan powerfull :).
Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David AxmarkAllan Larsson, dan Michael “Monty” Widenius.
MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL(Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun demikian pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional.

1.2 Keistimewaan MySQL
MySQL memiliki beberapa keistimewaan, antara lain :
1.                       Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
2.                       Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
3.                       Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
4.                       Performance tuning’, MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
5.                       Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
6.                       Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
7.                       Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
8.                       Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
9.                       Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IPUnix soket (UNIX), atau Named Pipes (NT).
10.                   Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
11.                   Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
12.                   Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
13.                   Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.


BAB 2 PERINTAH DASAR MYSQL
Perintah Dasar MySQL dengan Command Prompt atau CMD akan coba di share, diasumsikan anda sudah mengerti bagaimana caranya menjalankan server MySQL, tapi bagi yang belum memahami cara instalasi mysql anda dapat langsung membuka tutorial menginstal xampp. Langsung saja hal pertama yang di lakukan adalah membuka Command Prompt, dengan cara mengetik "cmd" di kolom Run. Kemudian pada jendela Command Prompt(CMD) ketikan perintah untuk masuk ke direktori bin MySQL berikut perintahnya: cd c:\xampp\mysql\bin kemudian tekan enter. Berikut penampakannya agar lebih jelas:



kemudian kita masuk ke server MySQL yaitu dengan cara mengetikan perintah berikut pada CMD: mysql -u root dan berikut penampakannya:
 

Setelah hal diatas sudah di lakukan mari kita lanjutkan ke step berikutnya, yaitu dengan cara memberikan instruksi berupa perintah-perintah SQL, berikut adalah contoh implementasi dalam operasi database.

2.1. Membuat Database
Ketika kita akan membuat database harus dipastikan dulu bahwa database yang akan dibuat belum ada (no exist). Kita akan membuat database dengan nama sekolah, perintah yang dilakukan adalah: create dabase sekolah; kemudian tekan enter.



2.2. Menghapus Database
perintah yang digunakan adalah drop database sekolah; kemudian tekan enter. Maka database sekolah akan terhapus.

2.3. Menampilkan Daftar Database
Perintah yang digunakan untuk menampilkan daftar database yang ada dalam server MySQL adalah show databeses; maka akan muncul seperti berikut:



2.4. Mengaktifkan Database
Kita akan menggunakan database Sekolah, tapi tadi sudah dihapus jadi harus dibuat lagi seperti cara nomor satu, berikut adalah perintah mengaktifkan database: use sekolah;



2.5. Membuat Tabel
Hal yang penting dalam membuat tabel adalah menentukan nama tabel, nama kolom dan tipe kolomnya:
CREATE TABLE nama_tbl(
kolom1 tipekolom1(ukuran),
kolom2 tipekolom2(ukuran), );



2.6. Melihat Daftar Tabel
Perintah yang digunakan untuk melihat tabel apa saja yang ada di dalam database adalah dengan mengetikan show tables;


2.7. Melihat Deskripsi Tabel
Sedangkan perintah yang digunakan untuk melihat deskripsi tabel digunakan perintah desc.

 



2.8. Memodifikasi Struktur Tabel
Yang dapat di modifikasi dalam sebuah tabel diantaranya ganti nama, ubah struktur(tambah kolom/indeks, hapus kolom/indeks, ubah tipe kolom), dan sebagainya. berikut adalah sintaks SQL yang dapat digunakan:

ALTER TABLE nama_tbl action
sedangkan perintah untuk menambah kolom baru dengan tipe dan posisi tertentu adalah:
ALTER TABLE nama_tbl
ADD kolom_baru type() definisi 




BAB 3 MANAJEMEN USER

Dalam sebuah Database MySQL Server biasanya terdapat banyak database, Dan pada umumnya satu buah database (dpt lebih dari satu) digunakan oleh satu buah aplikasi/web.
Contoh lainnya adalah pada jasa share hosting satu buah Database MySQL Server di pake rame-rame oleh banyak penyewa.

Karna Sebuah Database MySQL digunakan oleh rame-rame sudah saat nya dibutuhkan Manajemen User, untuk mengelolah hak ases dari setiap user dalam mengakses database agar tercipta ketertiban setiap user dalam menggunakan database.

Pada kasus lain Manajemen User Database juga dirasakan perlu diterapkan pada prodak-prodak aplikasi/program yang mengakses Database yang dapat berupa CMS, Framework atau apa pun yang mana prodak tersebut bersifat Open Source.



Karna  Open Source setiap orang bisa mengetahui dimana letak konfigurasi koneksi Database dan  bila kofigurasi itu berhasil 'dibongkar' dan koneksi-nya ke database menggunakan user Root  maka dapat terjadi kemungkian terburuk adalah Database dapat dirusak oleh-nya.

Untuk memenuhi kebutuhan tersebut dan mecegah kejadian buruk diatas maka Manajemen User adalah pilihan solusinya.

Berikut ini adalah Cara membuat membuat user di Database MySQL.

1. Masuk ke Console MySQL menggunakan user Root, sebagai contoh password yang gunakan adalah pass.
mysql -uroot -ppass

2. Sebagai contoh  membuat sebuah user bernama dendie dengan password pass
CREATE USER 'dendie'@'localhost' IDENTIFIED BY 'pass';

3. Sebagai contoh, Kemudian user dendie diberikan akses hanya dapat mengakses database bernama sms
GRANT ALL PRIVILEGES ON sms.* TO 'dendie'@'%' WITH GRANT OPTION;

simbol sms.* mengartikan database yang dapat diakses adalah database sms beserta seluruh tabelnya.
Bila Anda menuliskannya begini sms.inbox artinya yang dapat diakses hanya tabel inbox pada tabel sms
simbol 'dendie'@'%' artinya database dapat diakses menggunakan user dendie dariIPAddess apa saja.
Bila Anda menuliskan 'dendie'@'119.168.10.28' artinya user dendie hanya dapatdigunakan dari IP Address 119.168.10.28

Bila user dendie mencoba mengakses database selain sms maka yang terjadi adalah
ERROR 1044 (42000): Access denied for user 'dendie'@'localhost' todatabase 'portofolio

Sedangkan untuk menghapus user dapat mengunakan perintah seperti ini
DROP USER 'dendie'@'%';
pada contoh diatas adalah menghapus user dendie yang IP Address nya apa saja (%)

DROP USER 'yuli'@'localhost';
Pada contoh diatas adalah menghapus user yuli yang aksesnya dari localhost

Untuk melihat daftar user yang ada pada database dapat menggunakan cara seperti ini,terlebih dulu Anda harus login sebagai root
us mysql
slect host,user from user;
Kemudian akan muncul hasil seperti dibawah ini
+---------------+------------------+
| host          | user             |
+---------------+------------------+
| %             | root             |
| 127.0.0.1     | root             |
| 192.168.10.%  | root             |
| dendie-laptop | root             |
| localhost     | debian-sys-maint |
| localhost     | root             |
| localhost     | websekolah       |
| localhost     | yuli             |
+---------------+------------------+

BAB 4 JENIS DATA, KOLOM DAN OPERATOR

4.1.           4.1  Jenis data
Secara umum jenis data pada MySQL dibagi menjadi 4 jenis, yaitu:
  Numeric Values, yaitu angka atau bilangan.
  String/Character Values, yaitu teks atau karakter.
  Date and Time Values, yaitu tanggal dan waktu.
  NULL
                                
4.1.1. Numeric Values
            adalah angka atau bilangan seperti 10; 123; 100.50; ‑10; 1.2E+17; 2.7e‑11; dan sebagainya. Jenis data bilangan dibagi lagi menjadi dua, yaitu Bilangan Bulat (integer) dan Bilangan Pecahan (Floating point). Kedua jenis bilangan ini dapat bernilai positif (+) dan juga negatif (‑).  Jika bilangan tersebut menggunakan tanda (+) atau (‑), maka disebut SIGNED. Sebaliknya, bila tanpa tanda apapun disebut UNSIGNED. Karena tanda (+) dapat diabaikan penulisannya, maka pada bilangan yang bernilai positif disebut juga unsigned.

4.1.2. Character Values
adalah semua karakter (atau teks) yang penulisannya diapit oleh tanda kutip, baik kutip tunggal maupun kutip ganda.
Untuk angka yang ditulis dengan tanda kutip akan dianggap sebagai karakter atau string (bukan Numeric Values).
Contoh penulisan teks yang benar adalah sebagai berikut:
"Jl. Surabaya No. 34"
'Kota Malang'
" suka masakan ini"
‘123456'
" akan berkunjung ke rumahmu pada hari Jum'at depan"



4.1.3. Date and time values
Format standar (default) penulisan tanggal adalah "Tahun‑Bulan‑Tanggal" (“YYYY-MM-DD”).
Misalkan untuk 22 Januari 2002, dituliskan "2002‑01‑22". Untuk menampilankannya, kita bisa menggunakan fungsi DATE_FORMAT() yang dapat disesuaikan dengan kebutuhan kita.
Untuk penulisan waktu, formatnya adalah "Jam:Menit:Detik" (“HH:MM:SS”). Contoh, "13:55:07". Data tanggal dan waktu bisa digabung penulisannya, menjadi “2002‑01‑22 13:55:07”.

4.1.4. Null

NULL sebenarnya bukan data, tapi dia mewakili sesuatu yang "tidak pasti", 'tidak diketahui", atau “belum ada nilainya”.
NULL tidak identik dengan angka NOL (0).
Sebagai contoh, selama melakukan survei mengenai berapa jumlah pengguna sistem operasi Linux dan Windows di Indonesia, data pastinya belum dapat diketahui sebelum survei tersebut dilakukan secara tuntas. Oleh sebab itu, data tersebut bisa diwakili dengan NULL, alias belum diketahui atau kosong.

4.2 Attribut Kolom/Field Pada MySQL
Jenis kolom merupakan rincian dari tipe/jenis data yang diterapkan pada setiap kolom sebuah tabel. Sedangkan Atribut merupakan pelengkap dari karakteristik sebuah kolom/field. Pengisian attribut tambahan bersifat optional. 


4.3. Jenis Operator pada MySQL
A.    Operator Logika
B.     Operator Aritmatika
C.    Operator Pembanding
 

BAB 5 KONSEP DASAR DATABASE
Basis data adalah susunan  record data operasional lengkap dari suatu organisasi atau perusahaan, yang diorganisir dan disimpan secara integrasi dengan menggunakan metode tertentu dalam komputer sehingga mampu memenuhi informasi yang optimal yang dibutuhkan oleh para pengguna. jadi maksunya kumpulan data yang daling berhungan satu dengan yang lainnya, tersimpan di perangkat keras dan digunakan perangkat lunak untuk memanipulasinya. dan disusun sedemikian rupa supaya supaya informasi yang dihasilkan berkualitas.

1.                       KONSEP BASIS DATA & PENJELASANNYA
Konsep - konsep database terdiri dari 6 kelompok yaitu :

1. Hardware
Biasanya berupa perangkat komputer standar, media penyimpan sekunder dan media komunikasi untuk sistem jaringan.

2. Operating System
Yakni merupakan perangkat lunak yang memfungsikan, mengendalikan seluruh sumber daya dan melakukan operasi dasar dalam sistem komputer. Harus sesuai dengan DBMS yang digunakan.

3. Database
Yakni basis data yang mewakili sistem tertentu untuk dikelola. Sebuah sistem basis data bisa terdiri dari lebih dari satu basis data.

4. DBMS (Database Management System)
Perangkat lunak yang digunakan untuk mengelola basis data. Contoh kelas sederhana: dBase, Foxbase, Rbase, MS. Access, MS. Foxpro, Borland Paradox. Contoh kelas kompleks: Borland-Interbase, MS. SQL Server, Oracle, Informix, Sybase.

5. User ( Pengguna Sistem Basis Data )
Orang-orang yang berinteraksi dengan sistem basis data, mulai dari yang merancang sampai yang menggunakan di tingkat akhir.

6. Optional Software
Perangkat lunak pelengkap yang mendukung. Bersifat opsional.
2.                       TUJUAN PENGGUNAAN BASIS DATA
    • Mencegah data reduncy dan inconsistency
    • Mempermudah melakukan akses terhadap data
    • data isolasi
    • cegah concurrent access anomaly
    • masalah integritas.
3.                       KELEBIHAN DAN KEKURANGAN

A.      Kelebihan Sistem Basis Data
·       Terkontrolnya kerangkapan data
Dalam basis data hanya mencantumkan satu kali saja field yang sama yang dapat dipakai oleh semua aplikasi yang memerlukannya.
·       Terpeliharanya keselarasan (ke-konsistenan) data
Apabila ada perubahan data pada aplikasi yang berbeda maka secara otomatis perubahan itu berlaku untuk keseluruhan
·       Data dapat dipakai secara bersama (shared)
Data dapat dipakai secara bersama-sama oleh beberapa program aplikasi (secara batch maupun on-line) pada saat bersamaan.
·       Dapat diterapkan standarisasi
Dengan adanya pengontrolan yang terpusat maka DBA dapat menerapkan standarisasi data yang disimpan sehingga memudahkan pemakaian, pengiriman maupun pertukaran data.
·       Keamanan data terjamin
DBA dapat memberikan batasan-batasan pengaksesan data, misalnya dengan memberikan password dan pemberian hak akses bagi user (misal : modify, delete, insert, retrieve)
·       Terpeliharanya integritas data
Jika kerangkapan data dikontrol dan ke konsistenan data dapat dijaga maka data menjadi akurat
·       Terpeliharanya keseimbangan (keselarasan) antara kebutuhan data yang berbeda dalam setiap aplikasi Struktur basis data diatur sedemikian rupa sehingga dapat melayani pengaksesan data dengan cepat
·         Data independence (kemandirian data) Dapat digunakan untuk bermacam-macam program aplikasi tanpa harus merubah format data yang sudah ada
B.                       Kelemahan
§   Memerlukan tenaga spesialis
§   Kompleks
§   Memerlukan tempat yang besar
§   Mahal 
§   Kaku
§   Redudancy dan incosistency
§   Program oriented

BAB 6 PERINTAH LANJUTAN MYSQL

Tampilkan seluruh data.
 SELECT *  FROM user

Tampilkan pengguna yang tidak pernah bertransaksi.
 SELECT *  FROM user
 WHERE total_transaksi = 0

Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainya lebih dari 1.000.
 SELECT username   FROM user
 WHERE jml_transakai < 10 AND total_transaksi > 1000

Tampilkan total nominal transaksi yang sudah terjadi.
 SELECT SUM(total_transaksi) AS total_nominal_transaksi   FROM user

Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar ke terkecil.
 SELECT *  FROM user
 ORDER BY jml_transaksi DESC

Digunakan untuk menyimpan data dalam tabel dipergunakan sintaks:
INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])
Contoh:
INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES (“test”, “alamat”, “pass”);

Perintah untuk memasukkan/menyisipkan  data ke dalam sebuah tabel yang telah kita buat.
Perintah: INSERT INTO nama_tabel (nama_kolom1, nama_kolom2, ...) values (data1, data2, ...);

Contoh : insert into mahasiswa (nama, npm, kelas, alamat) values ("Budi", "12345", "1IA07", "Jakarta");

Perintah diatas berarti kita akan memasukkan data ke dalam tabel mahasiswa, yang pertama yaitu Budi ke dalam kolom nama, lalu 12345 ke dalam kolom npm, 1IA07 ke dalam kolom kelas, dan Jakarta ke dalam kolom alamat. Tanda petik ("") berarti kita sudah definisikan tipe data dari nama_kolom dengan varchar, sehingga kita harus menggunakan tanda petik ("").

Perintah : UPDATE nama_tabel SET nama_kolom = ekspresi WHERE kondisi;
Contoh: update mahasiswa set nama = "Udin" where npm = "12345";
Perintah diatas berarti kita akan mengubah data pada kolom nama menjadi Udin yang dikondisikan / dilihat dari nilai npm 12345. Sehingga semua yang memiliki nilai npm 12345 pada kolom nama nya akan berubah menjadi Udin.

Delete from mahasiswa where npm = "12345";
Perintah diatas berarti kita akan menghapus data dari tabel mahasiswa yang dikondisikan / dilihat dari npm yaitu 12345. Maka semua data yang memiliki npm 12345 akan terhapus dari tabel mahasiswa.

BAB 7 OPTIMASI MYSQL
Teknik optimasi database adalah hal yang cukup merepotkan pada database dengan jumlah record sedikit, namun akan sangat berguna bahkan bisa dibilang “sebuah kewajiban” untuk database dengan ribuan bahkan mungkin bisa membludak sampe ratusan ribu.
Dulu sewaktu  awal-awal belajar database menggunakan MySQL,  pernah beberapa kali membaca artikel tentang optimasi database. Namun karena saat itu  tidak merasa perlu, artikel-artikel itu  abaikan saja. Bahkan saat setelah beneran bekerja menggunakan database, teknik optimasi yang pernah  baca pun tetap saja banyak yang  abaikan. Setelah record database membludak,  baru merasa menyesal mengabaikan optimasi database.
Sekarang ke inti optimasi database MySQL, tapi sebagian besar juga bisa diterapkan untuk semua database. Secara garis besar, optimasi database terbagi menjadi dua kelompok yaitu optimasi struktur table dan juga optimasi query.
Optimasi Struktur table:
1.      Pastikan untuk membuat primary key untuk setiap table yang dibuat. Alasannya tentu saja untuk memberikan indexing inti pada tiap table. Dan biasanya primary key adalah field paling mudah digunakan untuk pencarian menggunakan WHERE dan juga untuk relasi tabel dengan JOIN.
2.       Lebih baik primary key dengan tipe data Integer. Meskipun kita field unik no_pelanggan di tabel pelanggan dengan pattern “xxx-9999” (char atau varchar), usahakan anda menambahkan satu field lagi yang berperan sebagai primary key dengan tipe data integer.
3.      Hindari null dan gunakan not null. Ini yang paling sering  lupakan dan  sudah merasakan akibatnya beberapa kali. Disamping ukuran field null lebih besar dari not null, mengijinkan field untuk menerima inputan null seringkali membuat kita harus bekerja dua kali saat menggunakannnya dalam applikasi. Sebagai gantinya kita bisa mengeset inputan default untuk memastikan field tersebut tidak kosong (yang berpotensi menimbulkan error).
4.      Tambahkan index, tapi jangan terlalu banyak. Index dapat meningkatkan kecepatan SELECT namun juga menurunkan kecepatan INSERT dan UPDATE, maka kita harus berhati-hati memilih field mana yang perlu diberikan index mana yang tidak. Prioritas memasang index pada suatu field adalah yang sering digunakan untuk 1) WHERE clause 2) JOIN clause 3) ORDER BY clause 4) SELECT clause. Memberikan index untuk semua field sepertinya bukan ide yang bagus.
5.      Gunakan tipe data yang sesuai. Menggunakan tipe data Text untuk field nama hanya akan membebani memori saja, karena umumnya nama orang biasanya tidak lebih dari 100 karakter, sehingga menggunakan varchar (100) sepertinya lebih dari cukup. Demikian juga untuk field harga (dalam rupiah), sepertinya lebih bijaksana jika menggunakan Integer, mengingat dalam satuan rupiah kita tidak pernah menemui harga dalam bentuk decimal.
6.      Gunakan Enum untuk field berisi pilihan. Field pilihan seperti jenis_kelamin, agama, kewarganegaraan lebih baik menggunakan tipe data Enum. Enum disimpan oleh database dalam bentuk binary, dan di-display dalam bentuk teks. Dengan menggunakan enum kita dapat menghemat space dan sekaligus mempermudah retrieve.

Optimasi query:

1. Hindari SELECT *. Ini adalah basic dari optimasi query namun paling sering dilupakan pemula. Dengan menggunakan karakter wildcard (*) kita akan membaca semua field yang termasuk field-field yang seharusnya tidak kita perlukan. Ini tentu saja akan membebani memori. Ini juga berlaku untuk SELECT COUNT(*), sebaiknya query tersebut dihindari.

2. Biasakan menggunakan WHERE. Bahkan untuk paling sederhana lebih baik kita tetap menggunakan WHERE 1 yang pasti akan mengembalikan hasil true. Contoh: SELECT nama FROM student WHERE

3. Gunakan LIMIT untuk membatasi hasil. Kalau anda yakin query anda hanya menghasilkan satu record atau hanya akan berefek pada satu record gunakan LIMIT 1, ini akan mencegah DBMS untuk mencari kemungkinan lain di sepanjang tabel. Begitu juga kalau kita hanya memerlukan 100 record, tidak perlu meng-query ribuan data yang ada pada tabel.

4. ORDER BY dapat menurunkan performa namun meningkatkan keterbacaan.  ingat dulu pernah dimarahin karena data yang  tampilkan tidak sortingnya, jadi susah untuk dibaca. Tapi seumpama ada alternatif lain yang lebih baik, misalkan sorting menggunakan javascript, sepertinya ide bagus untuk menghindari ORDER BY.

5. Tabel yang lebih sedikit disebutkan lebih dulu dalam JOIN. Misalkan kita mempunyai tabel category dengan 30 record dan tabel article dengan 150 record, maka contoh joinnya adalah SELECT * FROM category JOIN article ON (category.id = article.category_id). Category disebutkan lebih dulu daripada article.

6. Manfaatkan View dan Stored Procedure. Sebenarnya untuk view masih ada perdebatan antara mana yang lebih cepat menggunakan View atau plain query dengan JOIN, tapi beberapa kali percobaan menggunakan MySQL  melihat hasilnya lebih cepat menggunakan View. Sedangkan stored procedure sangat bermanfaat untuk mengeksekusi beberapa query sekaligus. Misalkan untuk menambahkan data konsumen kita perlu melakukan insert pada tabel consumer dan juga consumer_group, dari pada mengeksekusi 2 query pada aplikasi lebih baik menggunakan stored procedure, lebih menghemat bandwith pada aplikasi dengan jaringan yang lambat.

7. Hindari menggunakan Trigger. Dulu  kira alasannya adalah karena MySQL adalah pemain baru dalam dunia trigger, sehingga algorithma yang digunakan mungkin kurang bagus. Tapi ternyata di DBMS yang lain pun kondisinya sama, Trigger dieksekusi lebih lambat dari pada Stored Procedure. Oleh sebab itu usahakan untuk mengganti peran Trigger (memanipulasi logika Trigger) menggunakan Stored Procedure.


BAB 8 SISTIM ADMINISTRASI MYSQL

8.1 Backup Database dengan mysqldump

Mysqldump adalah suatu program bantu yang digunakan untuk membuat backup sebuah database, beberapa database, beberapa table sekaligus bahkan dapat juga untuk memindahkan data ke server yang lain. Cara kerja mysqldump adalah menuliskan kembali isi dari satu database tertentu dalam bentuk perintah-perintah MySQL kedalam sebuah file teks. Sehingga dapat digunakan juga pada server database lain yang tidak sama system opersinya dan bahkan tidak sama program databasesnya.

Bentuk umum perintah mysqldump adalah :

[system prompt] mysqldump [pilihan] nama_ss [nama_table]
atau
[system prompt] mysqldump [pilihan] --nama_database [pilihan] DB1 [DB2 DB3]
atau
[system prompt] mysqldump [pilihan] --all -databases [pilihan]

Pilihan yang dapat disertakan banya, di bawah ini dijelaskan beberapa pilihan yang serig digunakan :
·       -?, --help
Untuk menampilkan layar bantuan yang berisi pilihan yang tersedia pada mysqldump
·       -A, --all-databaes
Akan membackup seluruh databases yang ada didalam server tersebut.
·       -B, --databases
Akan membackup beberaoa databases tertentu.
·       -d, --no-data
Tidak menyertakan data-data yang ada didalam table. Hanya struktur tablenya saja yang dibackup.
·       -l, --lock -nama_table
melakukan penguncian pada seluruh table sebelun melakukan prises pem-backupan
·       dan lain2

8.2 Backup Database dengan mysqlhotcopy

adalah sebuah program bantu yang dibuat dengan script PERL untuk melakukan penyalinan seluruh file-file data. Program mysqlhotcopy ini tidak tersedia pada MySQL versi windows. Untuk dapat menjalankan perintah ini kita harus login sebagai root atau setidaknya meiliki izin akses (privileges).

Bentuk umum perintah ini adalah :

Mysqlhotcopy [pilihan] nama_databases / nama_direk_tuj;

Contoh :

Untuk membackup databases latihan kemudian di simpan di direktori /home/hary/.

[system prompt] mysqlhotcopy latihan /home/hary/ -user='Joni' password='xxxxxx';

8.3 Pemerikasaan dan perbaikan struktur database

Beban kerja yang berat, sibuknya permintaan query maupun ketidakstabilan kinerja listrik dan perangkat dapat mengakibatkan kerusakan pada database. Untungnya kita dapat memriksa kondisi fisik database tersebut dengan menggunakan beberapa alat bantu yang disediakan oleh mysql.


8.4 Pemerikasaan dengan MYSQLCHECK

mysqlcheck adalah sebuah program bantu (utility) yang disediakan oleh MysSQL sejak versi 3.23.38. Fungsi mysqlcheck meluputi memeriksa (check), memperbaiki (repair), menganalisis (Analyze), dan mengoptimasi (optimize) kondisi fisik suatu database dari table.



8.5 Perintah dengan MYISAMCHK dan ISAMCHK

Adalah sebuah program bantu untuk mengetahui kondisi table, memeriksa dan memperbaiki table yang rusak, maupun mengoptimasi table dalam format MYISAM. Sedangkan untuk formattabel ISAM program bantunya adalah isamchk. Format MyISAM merupakan perkembangan dari format ISAM dan format MySQL menjadi standart format table pada MySQL.


BAB 9 SEKILAS PHP DAN MYSQL

9.1 PHP

PHP pertama dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada awalnya dia menamakan script ini “Personal Home Page Tool” yang merupakan bahasa sederhana dari bahasa pemrograman C, di mana Personal Home Page Tool ini dapat berkomunikasi dengan database dan bersifat Open Source.
Pada awalnya Rasmus membuat bahasa pemrograman ini bertujuan untuk menyimpan data pengunjung yang melihat biodata pada Website-nya. PHP/FI merupakan cikal bakal PHP yang sekarang.
Pada pertengahan tahun 1997, programmer bahasa PHP semakin banyak, terlihat dari jumlah statistik domain yang menggunakan PHP hampir lebih dari 50.000 Website. Kemudian karena perkembangannya yang sangat pesat, Rasmus mengembangkan bahasa pemrograman ini dan pada bulan November tahun 1997 muncul PHP/FI versi 2.0 yang merupakan cikal bakal PHP 3.
PHP Versi 3 merupakan versi penyempurna dari bugs-bugs pada PHP/FI versi 1.0 dan PHP/FI versi 2.0. PHP Versi 3 ini dikembangkan oleh Andi Gutmans dan  Zeev Suraski pada tahun 1997 yang berhasil ditulis secara sempurna pada waktu itu. Fasilitas tambahan PHP Versi 3 dibandingkan versi sebelumnya, selain tambahan fungsi-fungsi baru, juga mendukung beberapa akses ke banyak database, pengelolaan protokol dan API. Dari versi 3 inilah singkatan PHP muncul, yaitu Hypertext Preprocessor dan pada tahun 1998 hampir 10% Website di dunia  menggunakan PHP sebagai web server-nya. Sekarang PHP disingkat menjadi PHP Hypertext Preprocessor yaitu bahasa pemrograman web server-side yang bersifat open source.  PHP merupakan script yang dapat digunakan dengan HTML dan berada pada server (server side HTML embedded scripting). PHP adalah script yang digunakan untuk membuat halaman Web yang dinamis. Mekanisme ini menyebabkan informasi yang diterima client selalu yang terbaru.
Pada musim dingin di tahun 1998, dibuat ulang bahasa pemrograman PHP ini untuk membuat ketangguhan bahasa pemrograman ini. Akhirnya pada pertengahan tahun 1999 diperkenalkan PHP versi 4.0 yang menggunakan script engine Zend untuk meningkatkan penampilan (performance) dan mempunyai dukungan yang sangat banyak terhadap ekstensi dan berbagai library beserta modul. PHP versi 4.0 ini juga mempunyai keunggulan dibandingkan versi-versi sebelumnya, di antaranya mendukung ke beberapa Webserver, fasilitas HTTP session, output buffer dan sistem keamanan. Pada perkembangannya, pada saat itu hampir 20% Webserver menggunakan bahasa pemrograman PHP sebagai interpreter-nya. Pada bulan Juli tahun 2005 muncul PHP versi 5.0 yang menggunakan Zend Engine 2.0 dengan penambahan beberapa fitur dan beberapa obyek baru. PHP Versi 5 ini sangat mendukung pemrograman berbasis Object Oriented Programming alias OOP.
PHP sendiri termasuk dalam server side scripting. Maksudnya PHP merupakan bahasa pemrograman yang berjalan pada sisi server atau server side. Yang dimaksud dengan server side adalah bahwa PHP hanya dibaca oleh sistem server pada suatu jariangan dan menampilkan hasilnya pada sisi Client. Dalam kasus ini, bahasa PHP sendiri tidak bisa dibaca melalui halaman Client, sehingga untuk perubahannya, seorang programmer harus masuk ke dalam server untuk mengubah sintaks PHP itu sendiri.

9.2 MySQL

MySQL adalah database yang sering dipakai dalam kombinasi sistem yang menggunakan interface PHP.
PHP sangat banyak dipakai, mudah digunakan, gratis (free), dan efisien yang menjadi kompetitor Microsoft’s ASP. Syntax (Bahasa Programnya) mirip dengan bahasa program Perl dan C.
PHP sering digunakan bersama Apache (Web Server) dalam berbagai Operating System (OS) seperti Linux, Unix, dan Windows. PHP bisa juga berjalan bersama Microsoft’s IIS pada Windows.
PHP sendiri merupakan singkatan dari Personal Home Page tools. Skrip ini akan membuat suatu aplikasi dapat diintegrasikan ke dalam HTML, sehingga suatu halaman web tidak lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server-side berarti pengerjaan skrip akan dilakukan di server, baru kemudian hasilnya dikirimkan ke browser. Keunggulannya dari sifatnya yang server-side tersebut antara lain:
• Tidak diperlukan kompatibilitas browser atau harus menggunakan browser tertentu, karena serverlah yang akan mengerjakan skrip PHP. Hasil yang dikirimkan kembali ke browser umumnya bersifat teks atau gambar saja, sehingga pasti dikenal oleh browser apapun.
• Dapat memanfaatkan sumber-sumber aplikasi yang dimiliki oleh server, misalnya koneksi ke database.
• Skrip tidak dapat “diintip” dengan menggunakan fasilitas view HTML source.
Sebagai contoh, perhatikan skrip PHP sederhana berikut ini:
<HTML>
<HEAD>
<TITLE> Contoh Skrip PHP </TITLE>
<BODY>
<?
Echo �<H1> Hallo, saya skrip PHP </H1>�;
?>
</BODY>
</HTML>
Setelah skrip ini dikerjakan di server, server akan memberikan output kepada browser sebagai berikut:
<HTML>
<HEAD>
<TITLE> Contoh Skrip PHP </TITLE>
<BODY>
<H1> Hallo, saya skrip PHP </H1>
</BODY>
</HTML>
Output inilah yang dieksekusi oleh browser. Dengan output yang berupa tag-tag HTML biasa, maka output tersebut pasti dapat dieksekusi oleh browser apapun. Sebagai perbandingan dapat dilihat pada gambar 1 dan gambar 2 untuk eksekusi skrip PHP pada Netscape dan pada IE.
Jika dibandingkan dengan skrip yang bersifat client-side, misalnya VBScript atau JavaScript, maka nampak nyata sifat browser independent tersebut. Perhatikan contoh berikut:
<HTML>
<HEAD>
<TITLE> Contoh JavaScript </TITLE>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
document.write (“<H1> Hallo, saya skrip JavaScript </H1>”);
</SCRIPT>
</BODY>
</HTML>
Jika skrip tersebut di atas dijalankan pada browser yang tidak mendukung JavaScript, maka browser tidak akan memberikan hasil apapun atau malah memunculkan teks yang diapit oleh tag <SCRIPT> yaitu â��document.write (“<H1> Hallo, saya skrip JavaScript </H1>”);â��.
Misalnya skrip tersebut dijalankan pada NCSA Mosaic 3.0, hasilnya akan nampak seperti gambar 3. Namun jika NCSA Mosaic 3.0 tersebut menjalankan skrip PHP ternyata dapat berjalan dengan baik
Kelebihan PHP
PHP dapat “melakukan” semua aplikasi program CGI, seperti mengambil nilai form, menghasilkan halaman web yang dinamis, mengirim dan menerima cookie. PHP juga dapat berkomunikasi dengan layanan-layanan yang menggunakan protokol IMAP, SNMP, NNTP, POP3, HTTP, dan lain-lain. Namun tampaknya kelebihan PHP yang paling signifikan adalah kemampuannya untuk melakukan koneksi dengan berbagai macam database. Saat ini, database yang didukung oleh PHP adalah:
• Adabas D
• InterBase
• PostgreSQL
• dBase
• FrontBase
• Solid
• Empress
• mSQL
• Sybase
• FilePro (read-only)
• Direct MS-SQL
• Velocis
• IBM DB2
• MySQL
• Unix dbm
• Informix
• Semua database yang mempunyai provider ODBC
• Ingres
• Oracle (OCI7 and OCI8)
Struktur Skrip
Seperti telah dibahas minggu lalu, skrip PHP ditambahkan ke dalam HTML dengan menggunakan delimiter khusus. Delimiter merupakan karakter atau kumpulan karakter yang membedakan antara skrip atau tag dengan teks biasa dalam HTML. Seperti kita ketahui, delimiter untuk tag HTML adalah karakter <>. Untuk PHP, delimiter yang digunakan adalah sebagai berikut:
1. Untuk dokumen SGML/HTML biasa:
<? Skrip PHP ?> atau <?php skrip php ?>
2. Untuk dokumen XML:
<?php skrip PHP ?>
3. Untuk editor yang tidak mendukung PHP:
<script language=�php�>
skrip php
</script>
4. Dapat juga menggunakan delimiter ASP:
<% skrip PHP %>
Baris-baris pada skrip PHP dipisahkan dengan cara yang sama dengan C atau Perl, yaitu dengan menambahkan karakter titik koma (;). Contoh:
<?
Skrip php;
Skrip php;
?>
Jika terdapat skrip yang hanya terdiri dari satu baris, ada dua gaya penulisan yang dapat digunakan:
<?
Skrip php;
?>
Atau:
<? Skrip php ?>
Jika digunakan gaya penulisan yang kedua, tanda titik koma tidak perlu digunakan, karena tag penutup ?> sudah menandakan akhir dari skrip tersebut.
Untuk menambahkan komentar dalam skrip PHP dapat digunakan gaya C, C++, atau shell UNIX. Contoh:
<?php
skrip php; // Komentar satu baris gaya C++
/* Komentar yang panjangnya
lebih dari satu baris */
skrip php;
skrip php; # Komentar gaya shell UNIX
?>
Pengenalan struktur PHP ini merupakan dasar dari pelajaran mengenai PHP. Karena itu perhatikan baik-baik dan minggu depan kita akan mencoba membuat skrip-skrip PHP sederhana.