Professional Documents
Culture Documents
Lapres5 210441100106 Abdul Wakhid
Lapres5 210441100106 Abdul Wakhid
MODUL V
“TYPE DATA/ STORED PROCEDURE”
SISTEM MANAJEMEN BASIS DATA
1.2 Tujuan
- Memahami dan membuat Stored Procedure pada basisdata
- Mampu Menggunakan type data sesuai kebutuhan pada Stored Procedure
BAB II
DASAR TEORI
2
2.1 Tipe Data
Tipe data merupakan bagian dari variabel yang mempengaruhi perilaku
variabel. Dengan tipe data ini, bisa ditentukan nilai apa yang bisa disimpan
didalam variabel tersebut. Dan satu variabel hanya bisa diberi satu tipe data. Ada
lima jenis tipe data sesuai dengan SQL - ANSI 1993 yaitu character string,
numeric, temporal, binary, dan boolean.
a) Character String
Atribut seperti nama dan alamat direpresentasikan oleh character
string. Ada 2 macam tipe data untuk merepresentasikan character string,
yaitu:
CHARACTER(<panjang>)
CHAR(<panjang>) menspesifikasikan karakter dengan panjang yang
tetap. Sisa karakter yang tidak terpakai umumnya digantikan oleh
padding characters (spasi).
CHARACTER VARYING(<panjang>)
Atau VARCHAR(<panjang>) menspesifikasikan karakter dengan
panjang yang fleksibel dan maksimum sesuai dengan <panjang>.
Sintak :
Type Data [(M)]
Misal :
CHAR [(M)]
VARCHAR [(M)]
Sintak :
Type Data [(M[,D])] [UNSIGNED] [ZEROFILL]
Misal :
INT/DECIMAL/FLOAT/DOUBLE[(M)] [UNSIGNED] [ZEROFILL]
Keterangan :
• M : menunjukkan lebar karakter maksimum, jumlah digit
keseluruhan
• D : Jumlah digit dibelakang koma
• tanda [ dan ] berarti pemakaiannya adalah optional Contoh :
ZEROFILL);
c) Temporal
Temporal merupakan tipe data yang menyimpan tanggal dan
waktu yang disesuikan dengan system-timezone (komputer). Sebagai
contoh data temporal adalah data tentang tanggal lahir. Ada dua macam
tipe data temporal, yaitu:
• DATETIME. Tipe data ini menyimpan informasi tanggal, waktu
atau bahkan keduanya. Dalam SQL Server, tipe data ini
menyimpan dengan tingkat akurasi sampai 3,33 milidetik.
Sedangkan untuk SMALLDATETIME hanya sampai 1 menit.
Dalam tipe data ini, juga terdapat tipe data TIMESTAMP dengan
tingkat akurasi sampai dengan 9 digit.
• INTERVAL. Umumnya digunakan untuk menyimpan periode seperti
garansi. Ada 2 macam yaitu (1) YEAR-MONTH dan (2) DAY-
TIME. SQL Server tidak mempunyai tipe data ini.
Sintak : type data;
Contohnya :
Atau
3
4
4.1 Soal
1. Buatkanlah procedure untuk menghitung sudah berapa lama atau hari
salah satu konsumen tersebut melakukan transaksi terakhir jika
diambilkan dari tanggal terakhir konsumen melakukan transaksi.
2. Buatkanlah procedure untuk membuat perubahan data pada data tabel
master.
3. Buatkanlah procedure untuk mengetahui berapa jumlah barang/jasa yang
dibeli oleh pelanggan/konsumen tertentu.
4. Buatkanlah procedure dengan menambahkan data tanggal saat ini pada
salah satu table dengan menggunakan fungsi bawaan MySQL yang dapat
mengambil tanggal saat ini.
5. Buatkanlah procedure untuk menampilkan data berdasarkan tanggal 1-5
4.2 Jawaban
1.
o Query
DELIMITER //
CREATE PROCEDURE getMhsByAlamat( IN alamatt
VARCHAR(20))
BEGIN
SELECT * FROM mahasiswa WHERE alamat = alamatt;
END //
DELIMITER ;
CALL getMhsByAlamat("Surabaya");
o Hasil
o Penjelasan
2.
o Query
DELIMITER //
CREATE PROCEDURE getMhsTigaField(
IN nama VARCHAR(20),
IN prodi VARCHAR(20),
IN alamatt VARCHAR(20)
)
BEGIN
SELECT * FROM mahasiswa m INNER JOIN prodi p ON
p.id_prodi = m.id_prodi WHERE
nama_mahasiswa = nama AND
alamat = alamat AND
nama_prodi = prodi;
END //
DELIMITER;
CALL getMhsTigaField("Ahmad", "Teknik Informatika",
"Bangkalan");
o Hasil
o Penjelasan
3.
o Query
DELIMITER //
CREATE PROCEDURE insertDosen(
IN id_dosen VARCHAR(20),
IN nama_dosen VARCHAR(50),
IN jenis_kelamin ENUM('Laki-laki', 'Perempuan'),
IN tanggal_lahir DATE,
IN alamat VARCHAR(100),
IN email VARCHAR(50),
IN no_telepon VARCHAR(15)
)
BEGIN
INSERT INTO dosen (id_dosen, nama_dosen, jenis_kelamin,
tanggal_lahir, alamat, email, no_telepon)
VALUES (id_dosen, nama_dosen, jenis_kelamin, tanggal_lahir,
alamat, email, no_telepon);
END //
DELIMITER;
o Hasil
o Penjelasan
Query tersebut digunakan untuk membuat stored procedure pada
yang bernama insertDosen. Stored procedure ini memiliki tujuh
parameter input yang masing-masing adalah id_dosen, nama_dosen,
jenis_kelamin, tanggal_lahir, alamat, email, dan no_telepon". Stored
procedure ini akan memasukkan data dosen baru ke dalam tabel dosen
dengan menggunakan perintah insert into. Data ini diambil dari nilai
parameter yang diinputkan. Contoh perintah untuk memanggil stored
procedure ini yaitu:
CALL insertDosen(“DSN123”, “Dr. Azrel”, “Laki-laki”, “1980-01-01”,
“Surabaya”, “azrel@dosen.com”, “08123456789”);
4.
o Query
DELIMITER //
CREATE PROCEDURE getMhsOut(
OUT nama VARCHAR(20),
OUT prodi VARCHAR(20),
OUT alamatt VARCHAR(20)
)
BEGIN
SELECT m.nama_mahasiswa, p.nama_prodi, m.alamat
INTO nama, prodi, alamatt
FROM mahasiswa m JOIN prodi p ON p.id_prodi = m.id_prodi
WHERE nim = '1234567890';
END//
DELIMITER;
CALL getMhsOut(@nama_mahasiswa, @prodi, @alamat);
SELECT @nama_mahasiswa, @prodi, @alamat;
o Hasil
o Penjelasan
Query tersebut adalah digunakan untuk membuat stored procedure
yang bernama getMhsOut. Stored procedure ini memiliki tiga parameter
output yaitu nama, prodi, dan alamatt yang bertipe data Varchar.
Kemudian Perintah “SELECT m.nama_mahasiswa, p.nama_prodi,
m.alamat INTO nama, prodi, alamatt FROM mahasiswa m JOIN prodi
p ON p.id_prodi = m.id_prodi WHERE nim = '1234567890' ” akan
mengeksekusi query tersebut dan memasukkan hasil query ke dalam
tiga parameter output. Lalu Perintah “CALL
getMhsOut( @nama_mahasiswa, @prodi, @alamat) ;” akan memanggil
stored procedure ini dengan memberikan tiga variabel sebagai
parameter output. Perintah “SELECT @nama_mahasiswa, @prodi,
@alamat;” akan menampilkan nilai tiga variabel tersebut.
5.
o Query
DELIMITER //
CREATE PROCEDURE getMhsInOut(
IN nim VARCHAR(20),
OUT nama VARCHAR(20),
OUT prodi VARCHAR(20),
OUT alamatt VARCHAR(20)
)
BEGIN
SELECT m.nama_mahasiswa, p.nama_prodi, m.alamat
INTO nama, prodi, alamatt
FROM mahasiswa m JOIN prodi p ON p.id_prodi = m.id_prodi
WHERE m.nim = nim;
END//
DELIMITER;
CALL getMhsInOut('1234567891', @nama_mahasiswa, @prodi,
@alamat);
SELECT @nama_mahasiswa, @prodi, @alamat;
o Hasil
o Penjelasan
Code diatas adalah contoh kode SQL untuk membuat stored
procedure bernama "getMhsInOut" yang mengambil NIM mahasiswa
sebagai input, dan mengembalikan tiga variabel output: nama, program
studi, dan alamat. Isi dari stored procedure adalah query SELECT yang
bergabung antara tabel mahasiswa dan tabel program studi berdasarkan
id_prodi, dengan kondisi WHERE pada NIM mahasiswa yang diambil
dari parameter input. Setelah membuat stored procedure, kode
kemudian memanggil stored procedure dengan memasukkan NIM
mahasiswa tertentu dan variabel untuk masing-masing output. Terakhir,
kode SQL menampilkan nilai variabel output dengan menggunakan
perintah SELECT.
BAB V
PENUTUP
5
5.1 Analisa
Pada praktikum ini,praktikan mengalisa bahwa dengan memakai Stored
Procedure memungkinkan pengguna bisa untuk menulis kode program yang lebih
terstruktur dan terorganisir. Kode program Stored Procedure dapat disimpan di
dalam database dan dipanggil kembali berulang-ulang, sehingga pengguna dapat
menghindari menulis kode program yang sama berulang-ulang. Penggunaan
Stored Procedure pada database memiliki manfaat yang signifikan, antara lain
meningkatkan efisiensi dan kecepatan operasi, meminimalkan jumlah data yang
ditransfer antara database dan aplikasi, keterstrukturan kode, keamanan data,
kemudahan pemeliharaan, dan portabilitas kode program.
5.2 Kesimpulan
1. Stored Procedure adalah sebuah program yang tersimpan di dalam database
dan dapat dieksekusi berulang-ulang tanpa perlu menulis ulang kode
program. Stored Procedure memungkinkan pengguna untuk mengakses data
dalam database dan menjalankan operasi tertentu dengan lebih efisien dan
terstruktur.
2. Dalam Implementasinya, penggunaan stored procedure sering melibatkan
parameter. Di MySQL, parameter stored procedure dibedakan menjadi tiga
mode : IN, OUT, dan INOUT
3. kelebihan yang ditawarkan stored procedure antara lain: mengingkatakan
performa, mereduksi trafik jaringan, reusable, dan meningkatkan kontrol
sekuriti.