Anda di halaman 1dari 14

LAPORAN RESMI

MODUL V
“TYPE DATA/ STORED PROCEDURE”
SISTEM MANAJEMEN BASIS DATA

NAMA : ABDUL WAKHID


N.R.P : 210441100106
DOSEN : YUDHA DWI PUTRA NEGARA S.Kom.,M.Kom
ASISTEN : AGISTIA DEVI WARDANI
TGL PRAKTIKUM : 14 APRIL 2023

Disetujui : 2 MEI 2023


Asisten

AGISTIA DEVI WARDANI


200441100145

LABORATORIUM BISNIS INTELIJEN SISTEM


PRODI SISTEM INFORMASI
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BAB I
PENDAHULUAN

1.1 Latar Belakang


Dalam SQL Type Data adalah jenis atau format data yang digunakan
untuk menyimpan dan memanipulasi informasi pada sebuah program. Dalam
pemrograman, data biasanya dibagi menjadi beberapa jenis, seperti string,
angka, boolean, dan lain-lain. Masing-masing jenis data ini memiliki cara
penyimpanan dan manipulasi yang berbeda. Kemudian Stored Procedure adalah
objek database yang menyimpan serangkaian perintah SQL dan diberi nama.
Stored Procedure dapat dijalankan secara berkali-kali tanpa perlu menulis
perintah SQL secara berulang-ulang. Stored Procedure sering digunakan untuk
mempercepat kinerja database dan mengurangi jumlah kode yang harus ditulis
oleh programmer.

Kedua konsep ini memiliki peran penting dalam pengembangan


perangkat lunak. Jenis data yang digunakan dalam suatu program memengaruhi
cara program tersebut diimplementasikan dan dapat mempengaruhi kinerja
program. Stored Procedure memungkinkan programmer untuk menyimpan
serangkaian perintah SQL yang kompleks dan diakses dengan mudah dari
berbagai bagian dalam program. Dengan demikian, Stored Procedure membantu
meningkatkan kinerja program dan mengurangi jumlah kode yang harus ditulis.

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)]

CREATE TABLE contoh_cha (cha CHAR(5), varcha VARCHAR(5));


INSERT INTO contoh_cha values ('a ','a ');
INSERT INTO contoh_cha values ('dunia','dunia');
INSERT INTO contoh_cha VALUES ('basisdata','basisdata');
b) Numeric
Data-data seperti usia dan gaji disimpan dalam bentuk angka.
Penyimpanan dalam bentuk angka menggunakan tipe data numeric. Ada
empat macam tipe data numeric, yaitu:
• INT, BIGINT, SMALLINT. SMALLINT mempunyai range ±2^15.
INT mempunyai range ±2^31. BIGINT mempunyai range ±2^63.
• NUMERIC(<panjang>, [<presisi>]),
DECIMAL(<panjang>, [<presisi>])
Mempunyai panjang karakter dan presisi (angka belakang koma)
dengan range ±10^38. Sebagai contoh: NUMERIC (5,2) mempunyai
panjang karakter 5 dengan tingkat presisi 2. Jadi nilai 100,52 bisa
disimpan tetapi tidak untuk 1000,1. Nilai 0,00001 disimpan menjadi
0,00.
• REAL. Tingkat presisi tinggi dengan range -3,40E+38 s.d -1,18E-
38 dan +1,18E-38 s.d +3,40E+38.
• FLOAT. Tingkat presisi tinggi dengan range -1,79E+308 s.d -2,23E-
308; 0; +2,23E+308 s.d +1,79E+308.

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 :

CREATE TABLE contoh_int (mini TINYINT, kecil

SMALLINT UNSIGNED,sedang MEDIUMINT(4) ZEROFILL,

biasa INT(4) UNSIGNED,besar BIGINT(6) UNSIGNED

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 :

CREATE TABLE contoh_date (dat DATE, tim TIME, dattim


DATETIME,timestam TIMESTAMP, yea YEAR);

Atau

SELECT NOW(), CURDATE(), CURTIME();

2.2 Sintaks Stored Procedure :

<create procedure statement> ::=


CREATE PROCEDURE <procedure name> ( [ <parameter
list> ] )
<routine body>
<parameter list> ::=
<parameter specification> [ , <parameter
specification> ]...
<parameter specification> ::=
[ IN | OUT | INOUT ] <parameter> <data type>
<routine body> ::= <begin-end block>
<begin-end block> ::=
[ <label> : ] BEGIN <statement list> END [ <label> ]
<statement list> ::= { <body statement> ; }...
<statement in body> ::=

<declarative statement> | <procedural statement>

Aktivasi/pemanggilan Stored Procedure:


<call statement> ::=
CALL [ <database name> . ] <stored procedure name>
( [ <scalar expression> [ , <scalar expression> ]... ] )

Menghapus Stored Procedure:


<drop procedure statement> ::=
DROP PROCEDURE [ IF EXISTS ]
[ <database name> . ] <procedure name>

Pernyataan pembuatan stored procedure :


DELIMITER $$
CREATE PROCEDURE set_counter(INOUT count INT(4),IN inc
INT(4)) BEGIN
SET count = count + inc;
END$$
DELIMITER ;

Cara memanggilnya dengan mengset isi awal :


SET @counter = 1;
CALL set_counter(@counter,1); -- 2
CALL set_counter(@counter,2); -- 3
CALL set_counter(@counter,9); -- 12
SELECT @counter; -- 12
BAB IV
IMPLEMENTASI

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 hitung_hari(
IN nim VARCHAR(255),
IN kode_kelas VARCHAR(4),
OUT total_hari INT
)
BEGIN
SELECT DATEDIFF(CURRENT_DATE(), MAX(tanggal_diambil))
INTO total_hari
FROM krs
WHERE nim = nim && kode_kelas = kode_kelas;
END //
DELIMITER ;
CALL hitung_hari ("1234567890", "C02", @total_hari);
SELECT @total_hari AS Total_Hari;

o Hasil

o Penjelasan
Query diatas adalah procedure yang digunakan untuk mengetahui
selisih hari antara tanggal mahasiswa mengambil kelas dan tanggal saat
ini. Procedure menggunakan 2 parameter IN yaitu nim dan kode_kelas,
dan 1 parameter OUT yaitu total_hari, kemudian didalam isi procedure
tersebut melakukan eksekusi Query SELECT
DATEDIFF(CURRENT_DATE(), MAX(tanggal_diambil)) INTO
total_hari, ini berfungsi untuk menampilkan selisih hari dari tanggal
sekarang dan kolom tanggal_diambil, dan hasilnya akan dimasukan ke
dalam total_hari. Kemudian klausa where disini digunakan untuk
memfilter data berdasarkan nim dan juga kode_kelas. Selanjutnya
procedure yang sudah dibuat, akan dipanggil munggunakan call, dan untuk
menampilkan hasil total_hari menggunakan perintah SELECT @total_hari
AS Total_hari.

2.
o Query
DELIMITER //
CREATE PROCEDURE updateAlamatMhs(
IN nim VARCHAR(25),
IN alamat VARCHAR(100)
)
BEGIN
UPDATE mahasiswa m SET m.alamat = alamat WHERE m.nim =
nim;
END //
DELIMITER ;

CALL updateAlamatMhs("1234567890", "Sampang");


SELECT * FROM mahasiswa;

o Hasil

o Penjelasan
Query diatas adalah procedure yang digunakan untuk mengupdate
alamat mahasiswa. Di procedure tersebut terdapat 2 parameter IN yaitu
nim dan alamat. Procedure yang sudah dibuat akan dipanggil
menggunakan call dengan memasukan 2 argumen yakni nim dan alamat.
Contohnya disini nim yang dimasukan 1234567890, dan perubahan
alamatnya adalah Sampang.

3.
o Query
DELIMITER //
CREATE PROCEDURE getMhsKrs()
BEGIN
SELECT m.nim, m.nama_mahasiswa, COUNT(*) AS Jumlah_Kelas
FROM
krs k INNER JOIN mahasiswa m ON k.nim = m.nim
GROUP BY nama_mahasiswa
ORDER BY m.nim;
END //
DELIMITER ;

CALL getMhsKrs();

o Hasil

4.
o Query
DELIMITER //
CREATE PROCEDURE tambah_krs(
IN nim VARCHAR(16),
IN kode_kelas VARCHAR(4),
IN tahun_ajaran YEAR(4)
)
BEGIN
DECLARE tanggal_sekarang DATE;
SET tanggal_sekarang = CURDATE();

INSERT INTO krs (nim, kode_kelas, tahun_ajaran, tanggal_diambil)


VALUES (nim, kode_kelas, tahun_ajaran, tanggal_sekarang);
END //
DELIMITER ;

CALL tambah_krs("1234567890", "D02", 2022);

o Hasil
5.
o Query
DELIMITER //
CREATE PROCEDURE getMhsByTgl()
BEGIN
SELECT * FROM mahasiswa WHERE tanggal_lahir BETWEEN
'2000-01-01' AND '2000-01-05';
END //
DELIMITER ;

CALL getMhsByTgl();

o Hasil
BAB V
PENUTUP

5
5.1 Analisa
Pada praktikum kali ini, praktikan dapat mengalisa bahwa dengan
mengetahui penggunaan Type Data dan Stored Procedure memungkinkan
pengguna bisa untuk menulis kode program yang lebih terstruktur dan
terorganisir. Dengan adayanya tipe data, kita bisa menentukan nilai apa yang
bisa disimpan didalam variabel tersebut. Ada lima jenis tipe data yaitu
character string, numeric, temporal, binary, dan boolean. Query Stored
Procedure dapat disimpan ke dalam database dan dapat dipanggil berulang kali,
sehingga pengguna dapat menghindari menulis Query yang sama berulang kali.
Untuk membuat prosedur kita perlu menuliskan Create Procedure kemudian
diikuti nama prosedur yang ingin kita buat 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. Tipe data merupakan bagian dari variabel yang mempengaruhi perilaku
variabel
2. Dalam Type Data Atribut seperti nama dan alamat direpresentasikan
oleh character string
3. Type Data Temporal merupakan tipe data yang menyimpan tanggal dan
waktu yang disesuikan dengan system-timezone (komputer)
4. Stored Procedure adalah sekumpulan Kode yang tersimpan di dalam
database dan dapat dieksekusi berulang-ulang tanpa perlu menulis ulang
kode program.
5. Stored Procedure memungkinkan pengguna untuk mengakses data dalam
database dan menjalankan operasi tertentu dengan lebih efisien dan
terstruktur.

Anda mungkin juga menyukai