Anda di halaman 1dari 10

Modul Praktikum Sistem Basis Data

BAB 6 OPERATOR
TUJUAN BELAJAR:
• Mahasiswa mengetahui operator-operator yang ada pada DBMS SQL Server.
• Mahasiswa mengetahui kondisi apa yang mengharuskan penggunaan operator
tertentu.
• Mahasiswa memahami contoh-contoh kasus operator.

6.1 OPERATOR
Operator adalah simbol yang menentukan suatu aksi yang dilakukan pada satu atau
lebih expression. Ada beberapa operator yang dapat digunakan dalam statement SQL, antara
lain:
• Operator aritmetika • Operator String
• Operator penugasan (assignment) • Operator bitwise
• Operator logika • Operator compound
• Operator pembandingan • Operator set

6.2 OPERATOR ARITMETIKA


Operator aritmetika adalah simbol yang digunakan untuk melakukan operasi terhadap
atribut (semisal atribut nilai dikalikan 0.5) bertipe numerik. Operator aritmetika antara lain +
(penjumlahan), - (pengurangan), * (perkalian) dan / (pembagian). Berikut ini adalah contoh
penggunaan operator aritmetika.

SELECT *, salary * 0.05 as tax, Salary - (salary*0.05) as paid


FROM instructor

Perintah di atas menampilkan gaji kotor, pajak (5% dari gaji), dan gaji yang dibayar (95% dari
gaji kotor) menggunakan operator aritmetika.
Berikut ini adalah contoh penggunaan operator aritmetika pada syarat.

SELECT *, salary * 0.05 as tax, Salary - (salary*0.05) as paid


FROM instructor
WHERE salary - (salary* 0.05) < 50000

31 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

Query di atas menampilkan instructor yang gaji bersihnya kurang dari 50.000.

6.2.1 Precedence dari Operator


Operator perkalian dan pembagian memiliki prioritas (precedence) lebih tinggi
daripada penambahan dan pengurangan.

SELECT *, 2 * salary + 300 as salary_with_bonus


FROM instructor

6.2.2 Penggunaan Tanda Kurung


Penggunaan tanda kurung memiliki prioritas paling tinggi dibandingkan precedence
dengan operator yang lain. Penggunaan tanda kurung ini dapat digunakan untuk mengubah
prioritas dari suatu ekspresi.
Pada contoh query sebelumnya, maka operasi 2 * salary akan dilakukan terlebih
dahulu baru kemudian hasilnya + 300 atau sama dengan (2 * salary) + 300. Pada contoh
berikut maka operasi (salary + 300) akan dilakukan terlebih dahulu baru kemudian dikalikan
2.

SELECT *, 2 * (salary + 300) as salary_with_bonus


FROM instructor

32 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

6.3 OPERATOR COMPOUND


Operator compound mengeksekusi sejumlah operasi dan memberikan hasil dari nilai
asal dengan hasil operasi. Operator compound pada SQL Server antara lain:
• += • %=
• -= • &=
• *= • ^=
• /= • |=
Operator ini mirip dengan operator compound dalam pemrograman Java atau bahasa lain
yang sesuai.

6.4 OPERATOR PEMBANDINGAN


Operator pembandingan digunakan untuk menguji apakah dua expression
memberikan hasil yang sama.

Operator Deskripsi Tipe Data


= Sama dengan Numerik, String
<> Tidak sama dengan Numerik, String
!= Tidak sama dengan
> Lebih dari Numerik
>= Lebih dari sama dengan Numerik
< Kurang dari Numerik
<= Kurang dari sama dengan Numerik

Perintah berikut digunakan untuk menampilkan semua course yang berada pada dept_name
‘Comp. Sci’.

SELECT * FROM course


WHERE dept_name = 'Comp. Sci.'

Berikut ini adalah contoh lainnya untuk menampilkan suatu course dengan credit > 3

SELECT * FROM course


WHERE credits > 3

33 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

Contoh berikut adalah contoh untuk menampilkan kuliah yang memiliki course_id lebih dari
125.

SELECT * FROM course


WHERE course_id >= 125

6.5 OPERATOR LOGIKA


Operator logika digunakan untuk menguji kebenaran dari suatu kondisi yang
menghasilkan nilai Boolean TRUE, FALSE, atau UNKNOWN.

Operator Deskripsi Tipe Data


ALL TRUE jika semua himpunan pembandingan bernilai
TRUE
AND TRUE jika kedua ekspresi Boolean bernilai TRUE
ANY TRUE jika salah satu dari himpunan pembandingan
bernilai TRUE
BETWEEN TRUE jika nilai berada di antara suatu rentang Numerik
EXISTS TRUE jika subquery menghasilkan baris record Array (numerik,
string)
IN TRUE jika operand sama dengan salah satu dari daftar Array (numerik,
ekspresi/tuple string)
LIKE TRUE jika sesuai dengan pola tertentu % atau _ String
NOT Kebalikan nilai dari operator Boolean apapun
OR TRUE jika salah satu ekspresi Boolean bernilai TRUE
SOME TRUE jika beberapa dari himpunan pembandingan
bernilai TRUE

34 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

Operator LIKE merupakan operator yang digunakan untuk tipe data String, bedanya
jika ‘=’ itu artinya sama persis, akan tetapi LIKE dapat digunakan untuk membandingkan
dengan pola tertentu atau sebagian string saja. Berikut ini adalah pola yang didukung oleh
LIKE.

Wildcard Description Example


character
% Any string of zero or WHERE title LIKE '%computer%' finds all book titles with
more characters. the word 'computer' anywhere in the book title.
_ Any single character. WHERE au_fname LIKE '_ean' finds all four-letter first
(underscore) names that end with ean (Dean, Sean, and so on).
[] Any single character WHERE au_lname LIKE '[C-P]arsen' finds author last
within the specified names ending with arsen and starting with any single
range ([a-f]) or set character between C and P, for example Carsen, Larsen,
([abcdef]). Karsen, and so on. In range searches, the characters
included in the range may vary depending on the sorting
rules of the collation.
[^] Any single character WHERE au_lname LIKE 'de[^l]%' all author last names
not within the starting with de and where the following letter is not l.
specified range ([^a-
f]) or set ([^abcdef]).

6.5.1 Syarat Dengan Satu Kondisi


Dalam contoh berikut, syarat yang terdapat pada klausa WHERE hanya berisi satu
kondisi saja. Contoh untuk mencari semua course yang berasal dari semua department
(dept_name) yang mengandung kata ‘eng’.

SELECT * FROM course


WHERE dept_name LIKE '%eng%'

6.5.2 Syarat Lebih Dari Satu Kondisi


Seringkali kita jumpai permasalahan yaitu syarat lebih dari satu kondisi. Oleh sebab itu
SQL menyediakan operator logika yang dapat digunakan untuk mengatasi permasalahan
tersebut. Operator logika yang dapat digunakan dalam SQL Server adalah AND, NOT, dan OR.

SELECT s.id, s.name, t.semester, t.year, c.title, t.grade


FROM takes t
JOIN student s ON t.ID=s.ID
JOIN course c ON t.course_id=c.course_id

35 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

WHERE s.name = 'colin' AND (t.grade='B' OR t.grade='A')

6.5.3 Conditional Operator Bertipe Array (IN, BETWEEN)


Adakalanya kita juga menjumpai syarat yang berupa suatu range tertentu. Sebagai
contoh menampilkan data nilai dengan syarat mulai 10 sampai 100. Bisa dibayangkan
banyaknya ekspresi kalau menggunakan OR, maka akan ada sebanyak elemen mulai 10
sampai 100. SQL menyediakan BETWEEN untuk memudahkan permasalahan tersebut.
Berikut ini adalah contoh penggunaan operator BETWEEN dalam query.

SELECT s.id, s.name, t.semester, t.year, c.title, t.grade


FROM takes t
JOIN student s ON t.ID=s.ID
JOIN course c ON t.course_id=c.course_id
WHERE s.name = 'colin' AND year BETWEEN 2006 AND 2009
ORDER BY year ASC

Query di atas menampilkan nilai kuliah Colin mulai tahun 2006 sampai 2009.

Permasalahan lain yang juga dijumpai yaitu pembanding tidak hanya 2 tetapi sekumpulan
data/array. Berikut ini adalah contoh penggunaan IN dalam membandingkan dengan
sekumpulan data.

SELECT s.id, s.name, t.semester, t.year, c.title, t.grade


FROM takes t
JOIN student s ON t.ID=s.ID
JOIN course c ON t.course_id=c.course_id
WHERE s.name = 'colin' AND t.grade IN ('A', 'A-', 'B+', 'C+')

36 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

Query di atas bertujuan untuk menampilkan semua nilai dari Colin yang bernilai 'A',
'A-', 'B+', 'C+'. Cara lain bisa dengan menggunakan logika OR akan tetapi hal tersebut
akan sangat banyak ekspresi sebanyak kemungkinan nilai. Penggunaan IN lebih lanjut dapat
dijumpai pada materi Subquery.

6.6 PREDICATE
Predicate adalah ekspresi untuk mengevaluasi hasil berupa TRUE, FALSE, atau
UKNOWN. Predicate digunakan dalam kondisi pencarian pada klausa WHERE dan HAVING,
kondisi join pada klausa FROM, dan konstruksi lainnya yang memerlukan nilai Boolean.

Operator Deskripsi Tipe Data


CONTAINS Digunakan untuk pencarian full text atau indeks full String
text
IS NULL Bernilai NULL -
IS NOT Bernilai Non-NULL -
NULL

Eksekusi perintah query berikut, untuk menambahkan data ke dalam tabel course.

INSERT INTO course (course_id, title) VALUES (1111, 'Sastra Jawa')


INSERT INTO course (course_id, title) VALUES (1112, 'Bahasa Daerah')

Dari hasil penambahan di atas untuk menampilkan data yang memiliki nilai NULL, contohnya:

SELECT * FROM course


WHERE dept_name IS NULL

Sebaliknya apabila mengunakan IS NOT NULL maka akan menampilkan semua data yang tidak
berisi NULL.

SELECT * FROM course


WHERE dept_name IS NOT NULL

37 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

6.6.1 Fungsi
Fungsi adalah sintaksis untuk memanggil fungsional tertentu pada SQL. Fungsi
digunakan untuk memudahkan dalam melakukan konversi, manipulasi data, dan fungsi-fungsi
lain. Sintaksis penulisan fungsi:

function_name(column|expression, [arg1, arg2, …])

Pemanggilan fungsi dapat dilakukan di dalam klausa SELECT maupun WHERE atau HAVING.

6.6.1.1 Fungsi Karakter/String


Berikut ini adalah fungsi manipulasi string yang didukung oleh SQL Server.

ASCII LTRIM SOUNDEX


CHAR NCHAR SPACE
CHARINDEX PATINDEX STR
CONCAT QUOTENAME STRING_ESCAPE
DIFFERENCE REPLACE STRING_SPLIT
FORMAT REPLICATE STUFF
LEFT REVERSE SUBSTRING
LEN RIGHT UNICODE
LOWER RTRIM UPPER

Contoh pemanggilan fungsi UPPER untuk mengubah menjadi huruf kapital adalah sebagai
berikut.

SELECT title, UPPER(title) as upper_title


FROM course

6.6.1.2 Fungsi Bilangan


Berikut ini adalah fungsi numerik yang didukung SQL Server.

ABS DEGREES RAND


ACOS EXP ROUND
ASIN FLOOR SIGN
ATAN LOG SIN
ATN2 LOG10 SQRT
CEILING PI SQUARE
COS POWER TAN

38 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

COT RADIANS

6.6.1.3 Fungsi Tanggal


Berikut ini fungsi tanggal yang didukung oleh SQL Server.

Function Return value Return Determinism


data type
CURRENT_TIMESTAMP Returns a datetime value that contains datetime Nondeterministic
the date and time of the computer on
which the instance of SQL Server is
running. The time zone offset is not
included.
GETDATE ( ) Returns a datetime value that contains datetime Nondeterministic
the date and time of the computer on
which the instance of SQL Server is
running. The time zone offset is not
included.
GETUTCDATE ( ) Returns a datetime value that contains datetime Nondeterministic
the date and time of the computer on
which the instance of SQL Server is
running. The date and time is returned as
UTC time (Coordinated Universal Time).
DATENAME ( datepart , Returns a character string that represents nvarchar Nondeterministic
date ) the specified datepart of the specified
date.
DATEPART ( datepart , Returns an integer that represents the int Nondeterministic
date ) specified datepart of the specified date.
DAY ( date ) Returns an integer that represents the day int Deterministic
day part of the specified date.
MONTH ( date ) Returns an integer that represents the int Deterministic
month part of a specified date.
YEAR ( date ) Returns an integer that represents the int Deterministic
year part of a specified date.

DATEDIFF ( datepart , Returns the number of date or time int Deterministic


startdate , enddate ) datepart boundaries that are crossed
between two specified dates.
DATEDIFF_BIG ( Returns the number of date or time bigint Deterministic
datepart , startdate datepart boundaries that are crossed
, enddate ) between two specified dates.

6.6.1.4 Fungsi COALESCE


Fungsi COALESCE digunakan untuk menampilkan suatu nilai default yang ditentukan
apabila berisi NULL. Fungsi ini tidak akan mengubah nilai NULL yang tersimpan dan tidak
berpengaruh apabila isinya bukan NULL.
SELECT course_id, title, COALESCE(dept_name, 'NO_DEPARTMENT') as dept_name,
credits FROM course
WHERE dept_name IS NULL

39 Fakultas Ilmu Komputer


Universitas Brawijaya
Modul Praktikum Sistem Basis Data

6.7 LATIHAN
1. Tampilkan data dari tabel course yang memiliki credits selain 3!
2. Tampilkan data dari tabel course yang memiliki course_id mulai 140 sampai ke atas!
3. Tampilkan data (dari join) student_id, nama, course, grade (dari tabel takes) dengan
syarat grade mengandung huruf “C” (bisa C/C+/C-) !

`
4. Modifikasi query untuk menampilkan semua nilai Colin semester spring dan tahun
2007 dan 2008!
5. Tampilkan gaji bersih instructor dengan pembulatan!
6. Tampilkan gabungan field name dan dept_name dari student menjadi bentuk “name
is a student of departement” (contoh Colin is student of Civil eng.) dengan salah satu
fungsi string!

40 Fakultas Ilmu Komputer


Universitas Brawijaya

Anda mungkin juga menyukai