Dokumen tersebut berisi penjelasan tentang beberapa cara membuat fungsi SQL. Terdapat penjelasan tentang cara membuat fungsi untuk mengecek ketersediaan barang stok, menghitung rata-rata harga, melakukan validasi nomor rekening, dan mengambil tanggal-tanggal minggu dari rentang tanggal.
filter data pada datatables server side 5 menggunakan yajra laravel adminlteAdi Nata
Pada artikel kali ini saya akan membahas bagaimana melakukan filter data pada datatables, fitur filter ini sangat bermanfaat pada aplikasi kita dimana user aplikasi kita ingin menampilkan data yang memiliki kriteria tertentu saja.
filter data pada datatables server side 5 menggunakan yajra laravel adminlteAdi Nata
Pada artikel kali ini saya akan membahas bagaimana melakukan filter data pada datatables, fitur filter ini sangat bermanfaat pada aplikasi kita dimana user aplikasi kita ingin menampilkan data yang memiliki kriteria tertentu saja.
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondelferrydmn1999
Indonesia, negara kepulauan yang kaya akan keragaman budaya, suku, dan tradisi, memiliki Jakarta sebagai pusat kebudayaan yang dinamis dan unik. Salah satu kesenian tradisional yang ikonik dan identik dengan Jakarta adalah ondel-ondel, boneka raksasa yang biasanya tampil berpasangan, terdiri dari laki-laki dan perempuan. Ondel-ondel awalnya dianggap sebagai simbol budaya sakral dan memainkan peran penting dalam ritual budaya masyarakat Betawi untuk menolak bala atau nasib buruk. Namun, seiring dengan bergulirnya waktu dan perubahan zaman, makna sakral ondel-ondel perlahan memudar dan berubah menjadi sesuatu yang kurang bernilai. Kini, ondel-ondel lebih sering digunakan sebagai hiasan atau sebagai sarana untuk mencari penghasilan. Buku foto Lensa Kampung Ondel-Ondel berfokus pada Keluarga Mulyadi, yang menghadapi tantangan untuk menjaga tradisi pembuatan ondel-ondel warisan leluhur di tengah keterbatasan ekonomi yang ada. Melalui foto cerita, foto feature dan foto jurnalistik buku ini menggambarkan usaha Keluarga Mulyadi untuk menjaga tradisi pembuatan ondel-ondel sambil menghadapi dilema dalam mempertahankan makna budaya di tengah perubahan makna dan keterbatasan ekonomi keluarganya. Buku foto ini dapat menggambarkan tentang bagaimana keluarga tersebut berjuang untuk menjaga warisan budaya mereka di tengah arus modernisasi.
1. /*
Amelia Sitanggang
11319015
*/
--Execute sql code below to create a product table
CREATE TABLE product
(prod_nr int NOT NULL
CONSTRAINT pk_product PRIMARY KEY (prod_nr),
Name varchar(30) NOT NULL, Price money NOT NULL,
Type varchar(30) NOT NULL)
INSERT product (prod_nr, name, price, type)
VALUES (1, 'tv', 500, 'electronics')
INSERT product (prod_nr, name, price, type)
VALUES (2, 'radio', 100, 'electronics')
INSERT product (prod_nr, name, price, type)
VALUES (3, 'ball', 100, 'sport')
INSERT product (prod_nr, name, price, type)
VALUES (4, 'racket', 200, 'sport')
--result
SELECT * FROM product;
--Exercise 1
--cara I
CREATE FUNCTION dbo.cari_produk
(@NAME VARCHAR(30))
RETURNS VARCHAR(30)
AS BEGIN
DECLARE @FINAL VARCHAR(30)
if @NAME in (select Name From product)
set @FINAL='There are in stock'
else
set @FINAL='There are no in stock'
return @FINAL
END
--result
select dbo.cari_produk('radio')
2. select dbo.cari_produk('book')
select dbo.cari_produk('tv')
terdapat 2 cara yang dapat saya temukan dalam exercise ini. Dalam cara I, kita mendifine sebuah nama function
menggunakan default Schema dbo.cari_produk. Dengan memberiinput parameter @NAME dengan tipe data
VARCHAR(30). Kemudian kita RETURNS VARCHAR (30). Artinya fungsi itu akan mengembalikan nilai dengan tipe
data VARCHAR. Setelah itu kita buat dua kondisi dimana kondisi pertama kita set dengan input parameter
@FINAL dimana select nama dari daftar produk sesuai dengan inputan user, sesuai dengan daftar , maka akan
diberikan alert “There are in stock”. Jika kondisi nya tidak sesuai dengan daftar produk (user menginput nama
lain selain daftar produk), maka alert yang keluar “There are not stock”.
--cara II
CREATE FUNCTION stok_barang
(
@productName VARCHAR(255)
)
RETURNS VARCHAR(255)
AS
BEGIN
DECLARE @pesan VARCHAR(255)
IF EXISTS (SELECT * FROM product WHERE Name = @productName)
BEGIN
SET @pesan = 'There are ' + rtrim(@productName) + ' in Stock'
END
ELSE
BEGIN
SET @pesan = 'There are no ' + rtrim(@productName) + ' in Stock'
END
RETURN @pesan
END
--result
SELECT dbo.stok_barang('sepatu');
SELECT dbo.stok_barang('tv');
SELECT dbo.stok_barang('ketumbar');
Pada cara II ini sama seperti diatas yaitu terlebih dahulu mendefine nama function yaitu stok_barang, kemudian
membuat inputan parameter dengan nama @roductName dengan tipe data VARCHAR(255). Kemudian kita
RETURNS VARCHAR(255). Artinya fungsi itu akan mengembalikan nilai dengan tipe data VARCHAR. Disini saya
menggunakan BEGIN dan blok END dengan 2 kondisi, dimana jika inputan user terdaftar dalam daftar product
yang sesuai maka akan ditampilkan alert dengan pesan There are + menggunakan rtrim(@productName) + “in
Stock”. Artinya jika apabila parameter yang di input user berada dalam daftar stok product maka akan
ditampilkan alert bahwa parameter tersebut berada dalam daftar, jika parameter yang diinput user tidak berada
dalam daftar maka akan menampilkan alert bahwa barang tersebut tidak berada dalam daftar stok.
3. --Exercise 2
--cara I
CREATE FUNCTION AVERAGE_PRICE_STOK
(@harga varchar(100))
RETURNS VARCHAR(100)
AS BEGIN
DECLARE @FINAL VARCHAR(100)
declare @productprice float = (select AVG(Price) from product)
if @harga < @productprice
set @FINAL='The average price of product smaller than ' +@harga
else
set @FINAL='The average price of product greater than ' +@harga
return @FINAL
END
--RESULT
SELECT dbo.AVERAGE_PRICE_STOK(100)
SELECT dbo.AVERAGE_PRICE_STOK(150)
SELECT dbo.AVERAGE_PRICE_STOK(400)
Pada syntax diatas sama dengan sebelumnya yaitu terlebih dahulu mendefine nama function dan menginput
nama parameter diikuti dengan tipe data nya. Pada exercise 2 ini diminta yaitu Buat fungsi dengan parameter
input numerik. Berdasarkan masukan ini, fungsinya harus kembalikan atau cetak pesan sepertiini: ‘harga rata-
rata produk olahraga lebih besar atau sama atau kurang dari (nilai input) 'jika itu terjadi dalam database. Maka
kita perlu mendeklarasikan nama parameter @FINAL dengan tipe data VARCHAR(100) kemudian
mendeklarasikan lagi inputan parameter dengan nama @productprice dengan tipe data float. Disini kita
excecute select AVG(Price) from product dengan membuat kondisi dimana jika parameter dengan nama
@harga < @productprice maka alert yang ditampilkan adalah “The average price of product smaller” dengan
parameter @harga sebelumnya. Jika kondisi tidak memenuhikondisi pertama maka akan dilanjutkan ke kondisi
4. kedua dengan menampilkan alert “The average price of product greater”. Dalam result nantinya jika user
menginput parameter misalkan 100,parameter tersebut akan di excecusi ke kondiis pertama, jika memenuhi
kondisi pertama maka akan ditampilkan alert dimana parameter 100 memang lebih kecil dari 150. Sebelumnya
500 sudah merupakan inputan defaultpada syntax sebelumnya.
--cara II
CREATE FUNCTION AVERAGE_PRICE_2 (@price INT)
RETURNS VARCHAR (100)
AS
BEGIN
DECLARE @batas INT
SET @batas = (SELECT AVG(price) AS avg_price FROM product WHERE Type = 'sports')
IF (@price < @batas)
RETURN ('The average price of sports product is greater than 100')
ELSE IF (@price = @batas)
RETURN ('The average price of sports product is equal 150')
ELSE
RETURN ('The average price of sports product is less than 400')
RETURN CAST(@price AS VARCHAR(100))
END
GO
-- RESULT
SELECT dbo.AVERAGE_PRICE_2(100)
SELECT dbo.AVERAGE_PRICE_2(150)
SELECT dbo.AVERAGE_PRICE_2(400)
Cara kedua ini sama seperti sebelumnya, hanya saja dalam syntax ini berisi 3 kondisi dimana pada kondisi I yaitu
jika @price < @batas akan mengeluarkan alert : 'The average price of sports product is greater than 100' dan
pada kondisi II yaitu (@price = @batas), jika kondisi ini memenuhi akan mengeluarkan alert: 'The average price
of sports product is equal 150'. Pada kondisi trakhir yaitu dimana jika inputan user tidak memenuhi kondisi
sebelumnya maka akan ditampilkan alert: 'The average price of sports product is less than 400'.
---Exercise 3
CREATE FUNCTION UBAH_HARGA (@input MONEY)
RETURNS @tablee TABLE (prod_id SMALLINT, price INT) AS
BEGIN
DECLARE @temp INT, @a INT, @b int, @loop INT, @percent MONEY
SET @percent = (SELECT AVG(Price) FROM product)
SET @a = 1
SET @loop = 1
SET @b = (SELECT COUNT(*) FROM product)
WHILE @a <= @b
BEGIN
INSERT INTO @tablee
5. SELECT prod_nr, Price FROM product WHERE prod_nr = @a
SET @a += 1
END
SET @temp = (SELECT AVG(price) FROM @tablee)
WHILE (@temp) < @input
BEGIN
UPDATE @tablee SET price += (price * 10 / 100)
SET @temp = (SELECT AVG(price) FROM @tablee)
END
RETURN
END
SELECT * FROM product
SELECT AVG(price) AS AVG FROM product
SELECT * FROM UBAH_HARGA (500)
SELECT AVG(price) AS AVG FROM UBAH_HARGA (500)
Syntax diatas berfungsi Buat fungsi untuk memperbarui harga semua catatan dalam produk tabel sebesar 10%
hingga rata-rata harga lebih besar dari 500 (500 ditentukan oleh pengguna melalui parameter input).
--Exercise 4
CREATE FUNCTION CheckModulo (@account INT)
RETURNS VARCHAR (150)
AS
BEGIN
DECLARE @result VARCHAR(150)
DECLARE @length INT
DECLARE @lengthNew INT
DECLARE @x INT
DECLARE @jumlah INT
SET @length = len (convert (VARCHAR(100), len(@account), 150))
SET @lengthNew = len (convert (VARCHAR(100),len(@account), 150))
SET @jumlah = 0
SET @x = 0
WHILE (@x < @length)
BEGIN
SET @jumlah = @jumlah + (@lengthNew * convert(INT, substring(convert
(VARCHAR(50),@account, 150),@x,1),150))
SET @x = @x + 1
SET @lengthNew = @lengthNew - 1
6. IF((@jumlah % 11) = 0)
SET @result = 'valid'
ELSE
SET @result = 'not valid'
END
RETURN @result
END
--result
PRINT dbo.CheckModulo(972428577)
PRINT dbo.CheckModulo(716438439)
PRINT dbo.CheckModulo(123456789)
PRINT dbo.CheckModulo(098765432)
Syntax diatas berfungsi sebagai membuat tabel untuk menyimpan account dengan menambahkan dan
mencoba memasukkan data ke dalam tabel.
--Exercise 5
CREATE FUNCTION fnTable_Sunday
(
@dateFrom DATETIME,
@dateTo DATETIME
)
RETURNS @tblSunday TABLE (number SMALLINT , date DATETIME)
AS
BEGIN
DECLARE @n INT
SET @n = 1
WHILE(@dateFrom < @dateTo)
BEGIN
INSERT @tblSunday (number, date)
SELECT @n, @dateFrom
WHERE DATENAME(dw, @dateFrom) IN ('Sunday')
SET @dateFrom = DATEADD(day, 1, @dateFrom)
IF(EXISTS(SELECT * FROM @tblSunday WHERE number = @n))
SET @n = @n + 1
END
RETURN
END
--RESULT
SELECT * FROM dbo.fnTable_Sunday('2008-03-08', '2008-05-09')
7. Pada syntax diatas berfungsi untuk Yang mengembalikan tanggal semua minggu antara @dateFrom dan
@dateTo dalam tabel dengan
nomor kolom dan Minggu. Pertama kali kita deklarasikan nama function, kemudian kita beri2 inputan
parameter dengan nama @dateFrom DATETIME dan @dateTo DATETIME. Kemudian kita RETURNS @tblSunday
TABLE (number SMALLINT , date DATETIME) yang artinya kita akan mengembalikan data dalam bentuk tabel
dengan tipe data number sebagai SMALLINT, dan date sebagai DATETIME. Setelah itu, kita menggunakan BEGIN
dan blok END dimana kita akan menyatakan sebuah kondisi, yaitu dengan mendeklarasikan inputan parameter
dengan nama @n = 1. Membuat sebuah statement while dimana (@dateFrom < @dateTo), akan mnginsert
parameter @tblsunday dengan parameter number, dan date yaitu select dari @n dan @datefrom , untuk
mengambil tanggal,bulan, tahun, waktu, dan number dalam tabel yang diset sebagai @date. Tabel yang
dihasilkan yaitu dimana 09-maret-2008 itu merupakan hari Sunday, begitupun dengan tanggal 16-03-2008
merupakan hari Sunday, dan selanjutnya sampai number 9, yaitu dari rentang @datefrom ke @dateTo.