Rabu, 17 Juli 2019

SQL multi table dan SQL bertingkat

1. Perintah MySQL untuk Menampilkan Data dari Beberapa Tabel



Di dalam suatu RDBMS termasuk MySQL, tentunya sudah menjadi suatu kewajaran jika dalam satu database dapat terdiri dari beberapa tabel. Masing-masing tabel tersebut dapat berhubungan (berelasi) satu sama lain. Relasi antar-tabel dapat berupa relasi 1-1 (one-to-one), 1-M (one-to-many), atau M-N (many-to-many). Sebagai contoh terlihat pada gambar pemodelan data konseptual (class diagram) di bawah ini. Tabel pelanggan berhubungan dengan pesan, pesan dengan barang, dsb.
Pada pembuatan suatu aplikasi, terkadang kita juga memerlukan tampilan data yang tidak hanya berasal dari 1 (satu) tabel, namun bisa dari beberapa tabel sekaligus. Contohnya, dari class diagram di bawah, kita ingin menampilkan nama pelanggan berikut transaksi yang pernah dilakukannya. Dari contoh tersebut, kita harus bisa menggabungkan minimal dua tabel, yaitu pelanggan dan pesan.
Untuk menggabungkan 2 (dua) atau lebih tabel, kita dapat menggunakan bentuk perintah JOIN. Dalam tutorial ini, akan dijelaskan secara bertahap mengenai bagaimana menggabungkan dua tabel atau lebih, terutama untuk menampilkan data yang berasal dari beberapa tabel (query mysql untuk penggabungan tabel). Contoh-contoh dalam tutorial ini secara khusus telah dicoba di database MySQL, namun demikian secara umum perintah penggabungan tabel di semua jenis database tidak jauh berbeda alias sama.
Sebelum belajar mengenai perintah penggabungan tabel, perlu dipersiapkan tabel-tabel yang akan dijadikan sebagai bahan latihan dan contoh dalam tutorial ini. Kita akan menggunakan tabel rancangan sistem pemesanan barang (pembelian) sederhana berikut ini. Untuk membuatnya, Anda dapat menggunakan tools seperti PHPMyAdmin dan MySQLFront atau dapat juga melalui command-prompt. Jika diperlukan, pelajari kembali postingan saya sebelumnya mengenai administrasi database MySQL dengan PHPMyAdmin dan juga dasar-dasar perintah SQL. Jangan lupa isikan beberapa contoh data ke tabel-tabel yang sudah Anda buat.
                                       Contoh Clas Diagram Sistem Pembelian

 Inner Join

Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Misalkan isi tabel pelanggan dan pesan adalah sebagai berikut :
Tabel pelanggan (hanya ditampilkan field id_pelanggan, nm_pelanggan dan email)

                                  
                                                  Contoh IsiTabel Pelangan

Tabel Pesan.
                                                    Contoh Isi Tabel Pesan
Cara #1. Inner Join dengan WHERE.
Penggabungan dengan klausa WHERE memiliki bentuk umum sebagai berikut:
SELECT tabel1.*, tabel2.* FROM tabel1, tabel2
WHERE tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan
FROM pelanggan, pesan
WHERE pelanggan.id_pelanggan=pesan.
Hasilnya Berikut:
Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima) transaksi yang dilakukan oleh 3 (tiga) orang pelanggan. Jika kita lihat kembali isi tabel pelanggan di atas, maka terdapat satu pelanggan yang tidak ditampilkan yaitu yang memiliki id pelanggan P0003. Pelanggan tersebut tidak ditampilkan karena belum pernah melakukan transaksi.

Cara #1. Inner Join dengan klausa INNER JOIN.
Berikut ini bentuk umumnya:
SELECT tabel1.*, tabel2.*
FROM tabel1 INNER JOIN tabel2
ON tabel1.PK=tabel2.FK;
Dan berikut ini perintah SQL penggabungan tabel pelanggan dan pesan.
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan
FROM pelanggan INNER JOIN pesan
ON pelanggan.id_pelanggan=pesan.
Hasilnya akan sama dengan gambar di atas (cara #1).


2. Pengertian , Contoh Penerapan dan Penanggulangan SQL Injection 

Ø Apa itu SQL Injection ?
Kali ini saya akan membahas sedikit mengenai SQL Injection yang merupakan salah satu istilah dalam dunia teknologi khususnya dalam teknologi database. Tutorial ini sebenarnya saya buat untuk mengerjakan tugas praktikum kuliah saya . Oke langsung saja kita bahas lebih lanjut lagi ----->>>


SQL Injection merupakan salah satu masalah vulnerability dalam security dalam implementasi database. SQL sendiri merupakan singkatan dari Structured Query Languange. Artinya pengelolaan database dilakukan dengan mengirimkan perintah-perintah (queries) yang terstruktur dengan bahasa yang tersedia. Nah, SQL Injection yang secara harafiah berarti penyuntikan SQL memiliki artinya menyisipkan perintah atau query ke dalam query yang akan digunakan dalam database SQL.

Penggunaan SQL sebagai salah satu database management system turut mempopulerkan istilah SQL Injection ini dan menjadikan SQL Injection sebagai salah satu masalah keamanan yang cukup berbahaya bila tidak ditangani dengan serius. Apalagi penggunaan database dengan basis SQL seperti MySQL, Microsoft SQL Server, PostgreSQL cukup populer dibanding database lainnya.

SQL Injection umumnya terjadi karena ketidaktelitian programmer dalam membuat script yang akan dijadikan query SQL. Dan tentu saja hal ini bukan merupakan sesuatu yang mudah untuk dihilangkan karena setiap programmer memiliki tingkat ketelitiannya masing-masing saat membuat program.

Ø Contoh Penerapan SQL Injection

Mari kita lihat contoh penerapan SQL Injection seperti di bawah. Perlu diketahui bahwa contoh yang saya gunakan adalah dengan bahasa pemrograman PHP dan database MySQL.
Seringkali ketika kita akan mengambil data dari database, kita akan menggunakan query seperti

"SELECT * FROM table_user WHERE username = '".$username."';"

Ketika user memasukkan data ke variable $username dengan nilai etersoul maka kode di atas akan berubah menjadi:
SELECT * FROM table_user WHERE username = 'etersoul';

Hasil di atas tampak tidak bermasalah dan dengan mudah sang programmer akan mendapatkan semua data mengenai seorang user dari table_user yang memiliki username = ‘etersoul’. Masalah akan timbul bila seorang hacker (atau user lain) yang mencoba untuk memasukkan nilai ' OR 1 = 1; -- ke dalam variabel $username. Maka hasil dari penggunaan variabel tersebut adalah:

SELECT * FROM table_user WHERE username = '' OR 1 = 1; --'

Query di atas akan mengambil semua data yang terdapat dalam table_user karena terdapat nilai 1 = 1 yang selalu bernilai true. Sedangkan penggunaan -- berguna agar kode setelah tanda tersebut dianggap sebagai komentar (comment) dan tidak dieksekusi oleh SQL. Seorang hacker bisa saja menggunakan data yang telah didapat di atas untuk keperluan yang buruk misalnya menggunakan account user karena password telah diketahui (walau pada kenyataannya saat ini kebanyakan password telah dienkripsi atau diacak sebelum dimasukkan ke database).
Bila contoh di atas tidak cukup, mari kita coba menggunakan

'; DROP TABLE table_user; --
sehingga menjadi:

SELECT * FROM table_user WHERE username = '; DROP TABLE table_user; --'

Setelah query tersebut dieksekusi, maka hilanglah tabel table_user dari database Anda, kecuali Anda memiliki backup atas table itu.

Ø Cara Pencegahan
Cara yang dapat dilakukan cukup mudah. Di PHP sendiri disediakan fungsi mysql_real_escape_string() yang dapat digunakan untuk “membersihkan” (sanitize) string dengan melakukan escape atau perubahan terhadap karakter-karakter tertentu, misalnya karakter \ menjadi \\, ” menjadi \” sehingga tidak terjadi salah “asumsi” oleh SQL. Sedangkan untuk melakukan sanitize terhadap integer dapat digunakan fungsi intval(). Untuk float dapat digunakan floatval(). Sekarang mari kita lihat kode hacker di atas setelah di-sanitize dengan mysql_real_escape_string($username);

SELECT * FROM table_user WHERE username = '\' OR 1 = 1; --'
atau

SELECT * FROM table_user WHERE username = '\'; DROP TABLE table_user; --'
Yah, sekarang tanda ‘ telah di-escape menjadi \’ sehingga SQL tidak akan menganggap tanda kutip tersebut sebagai bagian dari perintah SQL untuk menutup tanda kutip sebelumnya, melainkan sebagai sebuah karakter.

Untuk bahasa pemrograman lainnya umumnya telah disediakan juga fungsi untuk melakukan escape terhadap string (umumnya fungsi tersebut menggunakan kata escape). Dalam PHP sendiri dapat digunakan mysql_escape_string(), akan tetapi fungsi ini tidak disarankan untuk digunakan karena tidak melakukan escape terhadap beberapa jenis karakter.

Yah, itulah sedikit penjelasan mengenai SQL Injection. Semoga hal ini dapat membantu Anda dalam membuat program yang baik dan aman.


Senin, 05 November 2018

Html dan css

Disini akan menjelaskan apa itu HTML dan CSS ..

HTML adalah singkatan dari HyperText Markup Language yaitu bahasa pemrograman  standar yang digunakan untuk membuat sebuah halaman web, yang kemudian dapat diakses untuk menampilkan berbagai informasi di dalam sebuah penjelajah web Internet (Browser). HTML dapat juga digunakan sebagai link link antara file-file dalam situs atau dalam komputer dengan menggunakan localhost, atau link yang menghubungkan antar situs dalam dunia internet.

Css


merupakan singkatan dari Cascading Style Sheets. Yaitu sebuah rangkaian instruksi yang dapat menentukan bagaimana suatu text itu dapat tertampil di halaman web. Perancangan desain text ini bisa dilakukan dengan mengartikan fonts (huruf) , margins (ukuran), colors (warna), latar belakang (background), ukuran font (font sizes) dan lain sebagainya. Elemen-elemen contohnya colors (warna) , fonts (huruf), sizes (ukuran) trus spacing (jarak) dapat disebut juga dengan “styles”.
Cascading Style Sheets (CSS) ini ternyata juga bisa meletakkan styles yang berbeda pada layers atau (lapisan) yang berbeda pula. CSS ini terdiri atas style sheet yang memberitahubrowser dalam menyelesaikan suatu dokumen yang akan disajikan.  lalu untuk fitur-fitur baru pada halaman web juga lama dapat ditambahkan dengan bantuan style sheet.  Pada saat menggunakan CSS, Anda tidak perlu repot-repot menulis font, size  atau pun color pada setiap paragraf nya, ataupun pada setiap dokumen sekalipun. Lalu, setelah Anda membuat sebuah style sheet, Anda pun bisa menyimpan kode tersebut sekali saja dan juga dapat kembali menggunakannya apabila suatu saat diperlukan.

Java script


JavaScript adalah bahasa yang digunakan untuk membuat program yang digunakan agar dokument HTML yang ditampilkan pada sebuah Browser menjadi lebih interaktif, tidak sekedar indah saja. JavaScript memberikan beberapa fungsionalitas ke dalam halaman web, sehingga dapat menjadi sebuah program yang disajikan dengan menggunakan antar muka web.
JavaScript merupakan bahasa script, yaitu bahasa yang tidak memerlukan kompiler untuk dapat menjalankanya, tetapi cukup dengan Interpreter. Tidak perlu ada proses kompilasi terlebih dahulu agar program dapat dijalankan. Browser web Netscape Naviagtor dan Internet Exploler adalah salah satu contoh dari salah banyak interpreter, karena kedua browser ini telah dilengkapi dengan Interpreter JavaScript. Tetapi tidak semua browser web dapar menjadi interpreter javascript karena belum tentu browser tersebut dilengkapi dengan interpreter JavaScript.

Senin, 07 Mei 2018

1. Untuk memulai mendaftar blog di blogspot silahkan kunjungi alamat situs  www.blogger.com, setelah itu cari tombol Sign up (daftar) yang ada di pojok kanan atas

2. Setelah tombol sign up diklik, nanti akan muncul aplikasi pendaftaran pembuatan akun gooogle.  Silahkan lengkapi aplikasi tersebut. Gambar di bawah ini merupakan contoh pengisiannya.
Penjelasan pengisian : pada bagian Name, Isi nama  depan dan nama belakang kamu.
Pada Choose your username,  isi sesuai dengan keinginanmu, username ini nantinya berfungsi sebagai email login untuk akses ke dashboard blogspot kamu dan bisa juga untuk login ke Gmail. (jika username tidak tersedia, tambahka angka atau huruf di belakangnya),
Pada Create a Password, isi password kamu (gunakan yang mudah diingat), pada Confirm your password silahkan isi dengan password yang sama dengan password pada kolom pada create a possword tadi.
Pada birth day isi tanggal lahir kamu.  Pada Phone, isi dengan nomor ponsel kamu, untuk Curent your email, dikosongkan saja.  Pada type the two pieces of text, ketikan dua buah teks kode yang ada di atasnya.  Selanjutnya beri tanda centang pada dua kotak kecil di bawahnya, dan yang terakhir Klik pada tombol Next step.
3. Setelah kamu klik pada tombol next, akan ditampilkan perintah verifikasi akun, silahkan masukan nomor ponsel kamu. Kemudian klik tombool Send Verifikation Code. Nanti kamu akan mendapat sms dari google yang berisi  kode aktifasi.
4.  SMS kode verifikasi dari google ke ponsel kamu 
5.  Masukkan kode verikasi sms di atas pada kolom yang tampil, kemudian klik tombol Verify
6.  Jika langkah sebelumnya berhasil, kamu akan menjumpai halaman. Untuk menambahkan foto silahkan klik add profile photo,  jika ingin langsung ke langkah selanjutnya silahkan klik tombol Next Step.
7.   Selanjutnya akan tampil halaman seperti gambar di bawah ini. Ini merupakan tanda bahwa kamu telah memiliki sebuah akun google  berupa alamat email yang bisa digunakan untuk login ke Gmail.comdan blogger.com, selanjutnya silahkan klik tombol Back to blogger.
8. Jika melihat halaman seperti gambar di bawah ini abaikan saja , biar lebih cepat dalam membuat blog. SIlahkan klik tombol lanjutkan ke blogger.
9.   Setelah itu kamu akan masuk ke halaman utama Dashboard blogger. Di dashboard ini kamu bisa membuat blog, menulis posting, mengatur tema dan lain-lain.  Untuk membuat blog pertama kali klik tombol Blog Baru.
10.  Setelah tombol blog baru diklik, akan muncul  jendela pembuatan blog.  Pada bagian Judul isi  Judul blog kamu, pada bagian Alamat isi dengana alamat blog yang kamu inginkan. Pada template, pilih salah satu template yang kamu inginkan.  Kemudian klik tombol buat blog
11. Setelah langkah-langkah di atas, blog kamu sudah berhasil di buat.  Untuk menulis posting silahkan klik tombol Pensil, sedangkan untuk melihat tampilan blog yang masuk kosong (belum ada artikelnya) silahkan klik tombol lihat blog.

Kopetensi 3 -> menerapkan replikasi basis data.

A. Replikasi basis data Replikasi database adalah seperangkat teknologi yang digunakan untuk menyalin dan mendistribusikan data dari satu ...