Anda di halaman 1dari 143

Algoritma & Pemrograman

PERULANGAN
Rahmadyo Yudhi
Struktur Perulangan

Struktur perulangan secara umum ada dua bagian:


 Kondisi perulangan
 Ekspresi boolean yang harus dipenuhi untuk melaksanakan perulangan
 Badan perulangan
 Bagian algoritma yang diulang

Struktur perulangan disertai pula:


 Inisialisasi
 Aksi yang dilakukan sebelum perulangan dilakukan pertama kali
 Terminasi
 Aksi yang dilakukan setelah perulangan selesai dilaksanakan 2
Struktur Perulangan

 Struktur perulangan secara umum:


<inisialisasi>
awal perulangan
badan perulangan
akhir perulangan
<terminasi>

3
Struktur Perulangan

Beberapa hal yang harus diperhatikan:


 Inisialisasi dan terminasi tidak selalu harus ada, namun
dalam beberapa kasus inisialisasi biasanya diperlukan.
 Suatu perulangan harus berhenti!
 Beberapa struktur perulangan dapat dipakai untuk
masalah yang sama, namun ada notasi perulangan yang
hanya cocok dipakai untuk masalah tertentu.

4
Notasi Struktur Perulangan

Notasi struktur perulangan:


 Struktur FOR
 Struktur WHILE
 Struktur DO-WHILE

5
Struktur FOR

 Struktur perulangan FOR digunakan untuk menghasilkan


perulangan sejumlah kali yang dispesifikasikan.
 Jumlah perulangan diketahui atau dapat ditentukan
sebelum eksekusi.
 Diperlukan variabel counter/pencacah.
 Jika cacah perulangan sudah mencapai jumlah yang
dispesifikasikan, maka proses perulangan berhenti.

6
Struktur FOR

 Bentuk umum struktur FOR:


for(<ekspresi1>; <ekspresi2>; <ekspresi3>)
{
aksi1;
aksi2;
}

Ekspresi1: inisialisasi counter


Ekspresi2: syarat pelaksanaan
Ekspresi3: naikkan counter (inkremen)

7
Struktur FOR

 Bentuk umum struktur FOR menaik (ascending):


for(var=nilai_awal; nilai_awal<=nilai_akhir; var++)
{
aksi1;
aksi2;
}

8
Struktur FOR

Yang harus diperhatikan adalah:


 Pencacah harus dari tipe data yang memiliki predecessor dan
successor, yakni integer atau karakter.
 Aksi adalah satu atau lebih instruksi yang diulang
 nilai_awal harus lebih kecil atau sama dengan nilai_akhir
 Pada awalnya, pencacah diinisialisasi dengan nilai_awal.
 Nilai pencacah secara otomatis bertambah satu setiap kali aksi
perulangan dimasuki, sampai akhirnya nilai pencacah sama dengan
nilai_akhir
 Jumlah perulangan yang terjadi:

nilai_akhir - nilai_awal+1 9
Struktur FOR

 Contoh:

/* mencetak kata ‘Halo’ sebanyak 10


kali */

int i;

for(i=1;i<=10;i++)
cout<<“Halo\n”, i;

10
Struktur FOR

 Bentuk umum struktur FOR menurun (descending):

for(var=nilai_awal; nilai_awal>=nilai_akhir; var--)


{
aksi1;
aksi2;
}

11
Struktur FOR Menurun
Yang harus diperhatikan adalah:
 Pencacah harus dari tipe data yang memiliki predecessor dan
successor, yakni integer atau karakter.
 Aksi adalah satu atau lebih instruksi yang diulang
 nilai_awal harus lebih besar atau sama dengan nilai_akhir
 Pada awalnya, pencacah diinisialisasi dengan nilai_awal.
 Nilai pencacah secara otomatis berkurang satu setiap kali aksi
perulangan dimasuki, sampai akhirnya nilai pencacah sama
dengan nilai_akhir
 Jumlah perulangan yang terjadi:

nilai_awal - nilai_akhir+1
12
Struktur FOR

 Contoh:

/* mencetak angka: 9 8 7 6 5 4 3 2 1 0 */

int i;

for(i=9;i>=0;i--)
cout<<i ,"\n";
return 0;

13
Contoh Lain FOR

int i;
i=0; //inisialisasi
for(;i<10;) //kondisi
{
cout<<i,“%d\n”; //proses
i++; //inkremen
}
cout<<“--------------\n”;
Cout<<i,“%d\n”; //terminasi
14
Contoh Lain FOR

Contoh :

for (a =0; a<=10; ++a) perulangan positif


(+1)
for (a =0; a<=10; a+=2) perulangan positif
(+2)
for (a=10; a>=0; --a) perulangan
negatif(-1)
Notasi Algoritmik Struktur For

PROGRAM Cetak_10_HelloWorld
{program akan mencetak hello world sebanyak10 kali}

DEKLARASI:
i: integer

ALGORITMA:
for i1 to 10 do
write(“Hello World \n”)
endfor
Flowchart For

http://www.gatewan.com/2015/02/struktur-dasar-algoritma-pemrograman.html
Contoh Struktur For
(mencetak 1 s.d. 10)

PROGRAM Cetak_1_sampai_10
{program akan mencetak angka 1 hingga 10}

DEKLARASI :
i: integer

ALGORITMA:
for i1 to 10 do
write(i)
endfor
Flowchart Mencetak Angka 1..10

http://www.gatewan.com/2015/02/struktur-dasar-algoritma-pemrograman.html
Contoh Struktur For
(Jumlah deret 1 hingga N)

PROGRAM Jumlah_deret
{program akan menjumlahkan deret bilangan 1 hingga N}

DESKRIPSI:
jumlah, i, N: integer

ALGORITMA:
read(N)
jumlah  0
for i1 to N do
jumlah  jumlah + i
endfor
write(jumlah)
DARI CONTOH MENGHITUNG JUMLAH DERET SUATU
BILANGAN,
BAGAIMANA CARA MENCARI RATA-RATA DARI DERET
TERSEBUT??
Struktur WHILE

 Bentuk umum struktur WHILE:


inisialisasi;
while(<ekspresi>)
{
aksi1;
aksi2;
}
terminasi;

22
Struktur WHILE

Beberapa hal yang harus diperhatikan:


 Aksi atau runtunan aksi akan dilaksanakan berulang kali
selama <ekspresi> bernilai true. Jika kondisi bernilai false,
badan perulangan tidak akan dilaksanakan yang artinya
perulangan selesai.

23
Struktur WHILE

 Contoh:

/* mencetak kata ‘Halo’ sebanyak 10 kali */

int i;

i=1;
while(i<=10)
{
cout<<“Halo\n”;
i++;
}

24
Struktur WHILE

Hal penting yang tidak boleh dilupakan dalam program:


 Melupakan inisialisasi: i=1;
 Tidak menuliskan instruksi yang mengubah kondisi: i++;

25
Contoh Struktur While
(Mencetak Hello World)

PROGRAM Cetak_10_HelloWorld
{program akan mencetak hello world sebanyak10 kali}

DESKRIPSI:
i: integer

ALGORITMA:
i1
while i<=10 do
write(“Hello World \n”)
i  i+1;
endwhile
COBA BUAT ALGORITMA PENGGUNAAN STRUKTUR
WHILE PADA CONTOH STRUKTUR FOR DIATAS
Struktur DO-WHILE

 Bentuk umum:

inisialisasi;
do
{
aksi1;
aksi2;
} while(<ekspresi>);
terminasi;

Jangan lupa
titik koma
28
Struktur DO-WHILE

Beberapa hal yang perlu diperhatikan:


 Aksi di dalam badan kalang diulang sampai kondisi
boolean bernilai false. Jika kondisi boolean masih
true, perulangan masih terus dilakukan.
 Karena proses perulangan suatu saat harus berhenti,
maka di dalam badan perulangan harus ada aksi yang
mengubah nilai peubah <ekspresi>.

29
Struktur DO-WHILE

 Contoh:
/* mencetak kata ‘Halo’ sebanyak 10 kali */

int i;

i=1;
do
{
cout<<“Halo\n”;
i++;
} while(i<=10);

30
FOR atau WHILE atau DO-WHILE ?

 Meskipun kadang bisa digunakan untuk fungsi yang


sama, ketiga struktur perulangan sebaiknya
digunakan sesuai dengan kasus yang dihadapi:
 Jika banyaknya perulangan dapat dipastikan
gunakan struktur FOR
 Jika perulangan dihentikan saat kondisi tertentu terpenuhi

gunakan WHILE atau DO-WHILE

31
WHILE atau DO-WHILE ?

WHILE DO-WHILE
Pemeriksaan kondisi dilakukan Pemeriksaan kondisi dilakukan
di awal perulangan di akhir perulangan
Badan perulangan mungkin Badan perulangan paling
tidak pernah dieksekusi sedikit 1 kali dieksekusi

Gunakan struktur WHILE pada kasus yang mengharuskan terlebih dahulu


pemeriksaan kondisi objek tersebut sebelum dimanipulasi.

Gunakan struktur DO-WHILE pada kasus yang terlebih dahulu memanipulasi


objek, baru kemudian memeriksa kondisi objek tersebut.

32
CONTOH PENGGUNAAN STRUKTUR PERULANGAN
DAN PEMILIHAN

PROGRAM Menjumlahkan_Bilangan_Ganjil_1_10

DEKLARASI :
jumlah, i: integer

ALGORITMA:
jumlah  0;
for i1 to 10 do
if(i mod 2 != 0)
jumlah  jumlah + i
endif
endfor
Nested Loop

 Looping bersarang
 Ada Looping di dalam Looping

Ketika bekerja dengan loop bersarang, loop luar (outer) berubah


hanya setelah loop dalam (inner) benar-benar selesai (atau
terganggu.).
Nested Loop
Contoh Nested Loop
(Menampilkan Segitiga Siku-siku)

PROGRAM MenampilkanSegitigaSikusiku

DEKLARASI :
I,j: integer

ALGORITMA:
for i1 to 5 do
for j1 to i do
write(“*”)
endfor
write(“\n”)
endfor
DATA WAREHOUSE
Pertemuan ke-3
Intelligence Enterprise
Pengertian Data Warehouse

Sebuah tempat penyimpanan data yang lengkap dan konsisten yang

berasal dari sumber-sumber yang berbeda dibuat untuk

penggunanya agar mereka dapat mengerti dan menggunakannya

dalam konteks bisnis.

[Barry Davlin]
Pengertian Data Warehouse (cont’d)

Sebuah proses transformasi data ke dalam sebuah informasi dan

membuat informasi ini dapat diakses oleh penggunanya tepat

waktu untuk membuat perubahan-perubahan (strategi bisnis).

[Forrester Research, 1996]


Pengertian Data Warehouse (cont’d)

1. Berorientasi subjek,

2. Diintegrasikan,

3. Time-variant,

4. Nonvolatile,

Koleksi data untuk medukung proses pembuatan manajemen


pengambilan keputusan.

[Bill Inmon]
Pengertian Data Warehouse (cont’d)

Sean Kelly :

The data in the data warehouse is:


 Separate
 Available
 Integrated
 Time stamped
 Subject oriented
 Nonvolatile
 Accessible
Pengertian Data Warehouse (cont’d)

• Data warehouse adalah basis data yang menyimpan


data sekarang dan data masa lalu yang berasal dari
berbagai sistem operasional dan sumber yang lain
(sumber eksternal) yang menjadi perhatian penting
bagi manajemen dalam organisasi dan ditujukan
untuk keperluan analisis dan pelaporan manajemen
dalam rangka pengambilan keputusan
• Data warehouse digunakan untuk mendukung
pengambilan keputusan, bukan untuk melaksanakan
pemrosesan transaksi
• Data warehouse hanya berisi informasi-informasi
yang relevan bagi kebutuhan pemakai yang dipakai
untuk pengambilan keputusan
Pengertian Data Warehouse (cont’d)

• Data Warehouse adalah Pusat


repositori informasi yang mampu
memberikan database berorientasi
subyek untuk informasi yang
bersifat historis yang mendukung
DSS (Decision Suport System)
dan EIS (Executive Information
System).
Pengertian Data Warehouse (cont’d)

• Salinan dari transaksi data


yang terstruktur secara spesifik
pada query dan analisa.
Tujuan :

Meningkatkan kualitas dan akurasi


informasi bisnis danmengirimkan
informasi ke pemakai dalam
bentuk yang dimengerti dan dapat
diakses dengan mudah.
Perbedaan DW dan OLTP
OLTP Data Warehouse

 Menangani data saat ini  Lebih cenderung menangani data


 Data bisa saja disimpan pada beberapa masa lalu
platform  Data disimpan dalam satu
 Data diorganisasikan berdasarkan platform
fungsi atau operasi seperti penjualan,  Data diorganisasikan menutut
produksi, dan pemrosesan pesanan subjek seperti pelkanggan atau
 Pemrosesan bersifat berulang produk
 Untuk mendukung keputusan harian  Pemrosesan sewaktu-waktu, tak
(operasional) terstruktur, dan bersifat heuristik
 Melayani banyak pemakai operasional  Untuk mendukung keputusan yang
 Berorientasi pada transaksi strategis
 Untuk mendukung pemakai
manajerial yang berjumlah relatif
sedikit
 Berorientasi pada analisis
Sumber Data untuk DW

1. Data operasional dalam organisasi, misalnya basis


data pelanggan dan produk, dan
2. Sumber eksternal yang diperoleh misalnya melalui
Internet, basis data komersial, basis data pemasok
atau pelanggan

• Berbagai data yang berasal dari sumber


digabungkan dan diproses lebih lanjut oleh manajer
data warehouse dan disimpan dalam basis data
tersendiri.
• Selanjutnya, perangkat lunak seperti OLAP dan
data mining dapat digunakan oleh pemakai untuk
mengakses data warehouse
4 Karakteristik Data Warehouse

• Subject oriented
• Integrated
• Time variant
• Non-volatile
Subject Oriented

1. Data warehouse diorganisasikan dalam lingkup subjek, sebagai

contoh: Penjualan, Produk, dan Pelanggan.

2. Berfokus ke dalam pemodelan dan analisis data untuk pihak-

pihak pembuat keputusan.

3. Memisahkan data yang tidak berguna di dalam proses

pendukung keputusan.
Subject Oriented (cont’d )

• Subjek
• Aplikasi
Integrated

1. Data warehouse dikonstruksikan dengan cara mengintegrasikan

sejumlah sumber data yang berbeda.

2. Data preprocessing diaplikasikan untuk meyakinkan

kekonsistensian data.
Integrated (cont’d)

Savings Loans Trust Credit card

Same data Different data Data found here Different keys


different name Same name nowhere else same data
Integrated (cont’d)

Encoding
Structures

Measurement
of attributes

Multiple
Sources

Data Type
Formats
Integrated (cont’d)
Data Warehouse

appl A - m,f
appl B - 1,0
appl C - x,y
appl D - male, female

appl A - pipeline - cm
appl B - pipeline - in
appl C - pipeline - feet
appl D - pipeline - yds

appl A - balance
appl B - bal
appl C - currbal
appl D - balcurr
Integrated (cont’d)
Integrated (cont’d)

Data perlu distandarkan :


Sales Inventori Transaksi Penjualan
Format Key Key Key
Text Integer Yes/No
Description Nama pelanggan Nama pelanggan Nama pelanggan
U.N.I.J.O.Y.O UNIPAHIT Universitas majapahit
Unit Tinggi Tinggi Tinggi
centimeter meter inch
Encoding Sex Sex Sex
Yes = Laki-laki L = laki-laki 1 = Laki-laki
No = Perempuan P = Perempuan 0 = Perempuan
Time-Variant

1. Menghasilkan informasi dari sudut pandang historical (misal:

5-10 tahun yang lalu).

2. Setiap struktur kunci mengandung elemen waktu.


Time-Variant (cont’d)
Time-Variant (cont’d)
Time-Variant (cont’d)

Operasional :
– Data pada saat ini (current value)

Datawarehouse :
– Analisa data pada masa lampau
– Informasi pada saat ini
– Forecast untuk masa yang akan datang
Nonvolatile

1. Sekali data direkam maka data tidak bisa diupdate.

2. Data warehouse membutuhkan dua operasi pengaksesan data,

yaitu:

a. Initial loading of data

b. Akses data
Nonvolatile (cont’d)
Nonvolatile (cont’d)

Operasional :
 Add, change, delete data pada sistem operasional
secara real time setiap transaksi terjadi

Datawarehouse
 Update ketika kita perlukan saja, bisa secara periodik

Data pada DW dikhususkan untuk query dan


analisa data
Nonvolatile (cont’d)
Prinsip Data Warehouse
Sumber Data Internal

Sumber
Data
Operasional
1  Perangkat EIS
 Perangkat pelaporan
 Perangkat
pengembangan
Manajer aplikasi
Sumber Data Warehouse
Data
Operasional
2

OLAP

Sumber
Data Data
Eksternal Warehouse
Data Mining
Sifat Data Warehouse

Tahun n-4
• Multidimensional yang berarti Tahun n-3
Tahun n-2
bahwa terdapat banyak Tahun n-1

lapisan kolom dan baris (Ini


Jawa Tengah
berbeda dengan tabel pada
Jawa Barat
model relasional yang hanya
berdimensi dua)
Produk 3
• Berdasarkan susunan data
seperti itu, amatlah mudah Produk 2

untuk memperoleh jawaban Produk 1

atas pertanyaan seperti:


“Berapakah jumlah produk 1
terjual di Jawa Tengah pada
tahun n-3?”
Petunjuk Membangun DW

• Menentukan misi dan sasaran bisnis bagi pembentukan


data warehouse
• Mengidentifikasi data dari basis data operasional dan
sumber lain yang diperlukan bagi data warehouse
• Menentukan item-item data dalam perusahaan dengan
melakukan standarisasi penamaan data dan maknanya
• Merancang basis data untuk data warehouse
• Membangun kebijakan dalam mengarsipkan data lama
sehingga ruang penyimpanan tak menjadi terlalu besar dan
agar pengambilan keputusan tidak menjadi terlalu lamban.
• Menarik data produksi (operasional) dan meletakkan ke
basis data milik data warehouse
Data Mart

• Bagian dari data warehouse yang mendukung kebutuhan


pada tingkat departemen atau fungsi bisnis tertentu dalam
perusahaan. Karakteristik yang membedakan data mart dan
data warehouse adalah sebagai berikut (Connolly, Begg,
Strachan 1999).

– Data mart memfokuskan hanya pada kebutuhan-kebutuhan


pemakai yang terkait dalam sebuah departemen atau fungsi
bisnis.
– Data mart biasanya tidak mengandung data operasional yang
rinci seperti pada data warehouse.
– Data mart hanya mengandung sedikit informasi dibandingkan
dengan data warehouse. Data mart lebih mudah dipahami dan
dinavigasi.
 Data mart = subset of DW for
community users, e.g. accounting
department
 Sometimes exist as Multidimensional
Database
 Info mart = summarized data + report
for community users
DATAWAREHOUSE vs DATAMART
DATAWAREHOUSE DATAMART
• Perusahaan, melingkupi Departemen
semua proses Satu bisnis proses
• Gabungan datamart Start-Join (fakta dan dimensi)
• Data didapat dari proses Teknologinya optimal untuk
Staging pengaksesan dan analisis
• Merepresentasikan data data
dari perusahaan atau Cocok untuk
organisasi merepresentasikan data
• Diorganisasi dlm E-R Model departemen
DATAWAREHOUSE vs DATAMART

• Datawarehouse = gabungan dari beberapa


datamart yang levelnya berada pada
perusahaan atau organisasi.

• Datamart = bagian dari datawarehouse yang


berada level departemen pada perusahaan
atau organisasi tersebut. Data mart
menangani sebuah business proses,
misalkan penjualan.
Data Warehousing Architecture

Monitoring & Administration


OLAP
servers
Metadata
Repository Analysis

Extract
Query/
External
Transform Reporting
Sources Load Serv
Operational
Refresh
e
Data
dbs Mining

Data Marts
Three-Tier Architecture

 Warehouse database server


– Almost always a relational DBMS; rarely flat files
 OLAP servers
– Relational OLAP (ROLAP): extended relational DBMS
that maps operations on multidimensional data to
standard relational operations.
– Multidimensional OLAP (MOLAP): special purpose
server that directly implements multidimensional data
and operations.
 Clients
– Query and reporting tools.
– Analysis tools
– Data mining tools (e.g., trend analysis, prediction)
Two Worlds -> Two Systems
Data warehouse Component
6 Functional Components

 Extract, Transform, Load (ETL) tools


 DW databases & DBMS tools
 Data marts
 Meta data
 DW administration & management
tools
 Information delivery system
 Data about data
 Field description, business rules (e.g.
profit=? formula), log of file updates
 Help users understand content &
locate data
Source data :
 Production Data  data operasional persh.

 Internal Data  spreadsheets, dokumen, Profil


pelanggan, dan database departemen persh.

 Archived Data  data operasional yang telah disimpan

 External Data  data statistik, penelitian dari


agenci luar, market share competitor, indikator
financial standar, dll
Data staging component

dari berbagai SO + eksternal data disimpan pd


DW yg hrs dirubah/disamakan formatnya shg
dpt disimpan u/ query & analisa

ada 3 komponen :
1. Ekstraksi data
2. Transformasi data,
3. Loading data (ETL)
Data Storage Component

Repository data warehouse terpisah dengan


repositori sistem operasional

Sistem Operasional
mendukung “day-to-day operation” (OLTP)
Data warehouse
data histori yang besar untuk kebutuhan analisa
data.
KOMPONEN METADATA

Metadata dalam Data WareHouse

=
Kamus Data/ Data Katalog dalam DBMS
(Database Management System)
Metadata

– Informasi tentang logical struktur data


– Informasi file dan alamatnya
– Informasi index
– Dll

Intinya
– Meta data = data mengenai data pada data
warehouse
Pengenalan Metadata

TIPE-TIPE METADATA
 OPERASI METADATA
 EKSTRAKSI DAN TRANSFORMASI
METADATA
 END – USER METADATA
Pengenalan Metadata

OPERASI METADATA
Terdiri dari semua informasi tentang data
sumber
Proses:
Pilih data dari sistem sumber untuk data
warehouse, pisah recordnya, gabungkan
bagian record dengan file sumber lainnya,
dan berhasil dengan skema multiple coding
dan panjang field
Pengenalan Metadata

EXTRAKSI DAN INFORMASI METADATA


Terdiri dari data dari data extraksi data dari
sistem sumber, yaitu:
 Extraction frequencies
 Extraction method
 Business rules untuk data extraction
Pengenalan Metadata

END-USER METADATA
Adalah Peta Navigasi pada data
warehouse
Pengenalan Metadata

FUNGSI METADATA
 Menggabungkan semua bagian pada data
warehouse
 Menyediakan informasi tentang isi dan
struktur pada pengembang
 Membuka pintu bagi end - user dan
membuat isi yang dapat dikenal oleh
mereka.
Contoh Software Data Mart
• SmartMart (IBM)
• Visual Warehouse (IBM)
• PowerMart (Informatica)
SISTEM BASIS DATA

SQL (STRUCTURE QUERY


LANGUAGE)
DDL, DML, DCL

RAHMADYO YUDHI
STRUCTURE QUERY LANGUAGE

Structure Query Language (SQL) merupakan komponen bahasa


relational database system. SQL merupakan bahasa baku (ANSI/SQL),
non procedural, dan berorientasi himpunan (set-oriented language).
SQL dapat digunakan baik secara interaktif atau ditempelkan
(embedded) pada sebuah program aplikasi.

Komponen-Komponen SQL
a. Data Definition Language (DDL)
b. Data Manipulation Language (DML)
c. Data Control Language (DCL)
1. Data Definition Language (DDL)
Dengan bahasa ini kita dapat membuat tabel baru, membuat indeks,
mengubah tabel, menentukan struktur penyimpanan tabel dsb.
2. Data Manipulation Language (DML).
Berguna untuk melakukan manipulasi dan pegambilan data pada suatu
basis data. Berupa:
 penyisipan/penambahan data baru (insert)
 penghapusan data (delete)
 pengubahan data (update)

3. Data Control Language (DCL).


DCL terdiri dari sekolompok perintah SQL yang digunakan untuk
memberikan hak akses/otoritas user terhadap database.
Query in Web Application
DATA DEFINITION LANGUAGE
1. CREATE TABLE
Fungsi : membuat tabel
Sintaks : CREATE TABLE tbname
(col 1 data type data spec,
col 2 data type data spec,
.
.
PRIMARY KEY (col1,……))

Contoh :
CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BIRTH DATE NOT NULL WITH DEFAULT,
PRIMARY KEY (REGNO))
NULL
Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT

NULL :
dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak
tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0
(Nol)
NOT NULL :
Pemakai atau program harus memberikan nilai-nilai pada saat
memasukkan record
NOT NULL WITH DEFAULT :
Nilai default disimpan pada saat record dimasukkan tanpa nilai
yang ditentukan untuk kolom ini.
Nilai default-nya :
Nol untuk tipe field NUMERIC
Blank untuk tipe field CHARACTER
CURRENT DATE untuk tipe field DATE
CURRENT TIME untuk tipe field TIME

Pada saat membuat tabel, salah satu atribut


tersebut di atas dispesifikasikan pada sebuah
kolom.
2. CREATE VIEW
Fungsi : membuat tabel view.

View merupakan bentuk alternatif penyajian data dari satu atau


lebih tabel. View dapat berisi semua atau sebagian kolom yang
terdapat pada tabel dimana kolom tersebut didefinisikan.

Tujuan membuat view :


• Meningkatkan keamanan data
• Meningkatkan kemandirian data
• Penyederhanaan bagi end user (data yang sedikit, nama-
nama kolom yang baru dan dapat dibaca dengan lebih baik)
Properti :

• Tidak terdapatnya data tambahan


• View mencakup subset kolom dan / atau baris
• View dapat berisikan data dari beberapa tabel dan / atau tabel-
tabel view lainnya
• View dapat berisikan perolehan data, misal : nilai rata-rata
• Manipulasi data melalui view terbatas

Sintaks : CREATE VIEW viewname (column1, column2, ……..)


AS SELECT statement FROM tbname
[WITH CHECK OPTION]
Keterangan :

View-name : nama view yang akan dibuat.


Column : nama atribut untuk view
Statement : atribut yang dipilih dari tabel basis data. Tabel-name
: nama tabel basis data.

Contoh :

CREATE VIEW VPERSON (REGNO, NAME) AS


SELECT REGNO, NAME FROM PAUL.PERSONEL
3. CREATE INDEX
Fungsi : membuat index

Sintaks :
CREATE [UNIQUE] INDEX indexname
ON nama_table (nama_kolom)

Contoh :
CREATE UNIQUE INDEX PRSONIDX
ON PERSONEL(REGNO)

Dengan indeks memungkinkan suatu tabel diakses dengan


urutan tertentu tanpa harus merubah urutan fisik dari datanya dan
dapat pula diakses secara cepat melalui indeks yang dibuat
berdasar nilai field tertentu. Spesifikasi UNIQUE akan menolak
key yang sama dalam file.
4. DROP TABLE
Fungsi : menghapus Tabel
Sintaks : DROP TABLE tbname
Contoh : DROP TABLE PERSONEL

Dengan perintah itu obyek lain yang berhubungan dengan


tabel tersebut otomatis akan dihapus atau tidak akan
berfungsi seperti :
- semua record dalam tabel akan terhapus
- index dan view pada tabel akan hilang
- deskripsi tabel akan hilang
5. DROP VIEW
Fungsi : menghapus view
Sintaks : DROP VIEW viewname
Contoh : DROP VIEW VPERSON

6. DROP INDEX
Fungsi : menghapus index
Sintaks : DROP INDEX indexname
Contoh : DROP INDEX PRSONIDX
7. ALTER
Fungsi : merubah atribut pada suatu tabel

Sintaks :
ALTER TABLE tbname
MODIFY (nama_kolom tipe_kolom)
ADD (nama_kolom tipe_kolom [[before, nama_kolom]])
DROP (nama_kolom tipe_kolom)

Contoh : merubah Tabel TABX dengan menambah Field D.


ALTER TABLE TABX
ADD D CHAR(3)
DATA MANIPULATION LANGUAGE

1. INSERT
Fungsi : menambah baris (record) baru

Sintaks : INSERT INTO tbname (col1, ...) VALUES (value1, ...)

Catatan:
Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi
jika dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut
ini :

Sintaks : INSERT INTO tbname VALUES (value1, value2, ...)

Nilai-nilai diisikan sebanyak kolom yang terdapat di tabel tersebut


2. UPDATE

Fungsi : merubah record

Sintaks : UPDATE tbname SET field = ekspresi


WHERE kondisi

3. DELETE

Fungsi : menghapus record

Sintaks : DELETE FROM tbname


WHERE kondisi
4. SELECT

Fungsi : menampilkan record

Sintaks :
SELECT [DISTINCT] colname FROM tbname
[WHERE kondisi]
[GROUP BY kondisi]
[HAVING kondisi]
[ORDER BY kondisi]
Contoh Kasus DDL :
 Membuat Tabel (CREATE TABLE)

1. CREATE TABLE S
(Sn Char(5) NOT NULL,
Sname Char(20) NOT NULL,
Status Smallint NOT NULL,
City Char(15) NOT NULL);

2. CREATE TABLE P
(Pn Char(6) NOT NULL,
Pname Char(20) NOT NULL,
Color Char(6) NOT NULL,
Weight Smallint NOT NULL);
3. CREATE TABLE SP
(Sn Char(5) NOT NULL,
Pn Char(6) NOT NULL,
QTY INTEGER NOT NULL);

4. CREATE UNIQUE INDEX Sidx ON S(Sn);


CREATE UNIQUE INDEX Pidx ON P(Pn);
CREATE INDEX Sdx ON SP(Sn);
CREATE INDEX Pdx ON SP(Pn);
• Modifikasi Table P dengan perintah :
RENAME COLUMN P.COLOR TO WARNA
ALTER TABLE P ADD (City CHAR(15) NOT NULL)

• Membuat View (CREATE VIEW)


1. Membuat view untuk suplier yang statusnya lebih besar dari 15
CREATE VIEW GOOD_SUPPLIERS
AS SELECT Sn, Status, City FROM S
WHERE Status > 15;
2. Membuat view yang berisi supplier yang tinggal di Paris
CREATE VIEW Paris_Suppliers
AS SELECT * FROM Supliers
WHERE City = ' Paris '
3. Membuat view dengan mengganti nama_atributnya
CREATE VIEW Parts (PNum, Part_Name, WT)
AS SELECT P#, Pname, Weight FROM Part
WHERE COLOR = 'Red'
Contoh Kasus DML :

• Menambah record (INSERT)

INSERT INTO S VALUES ('S1','Smith',20,'London');


INSERT INTO S VALUES ('S2','Jones,10,'Paris');
INSERT INTO S VALUES ('S3','Blake',30,'Paris')

Tabel S, P dan SP isikan dengan data-data sebagai berikut :


TABEL S TABEL SP

TABEL P
• Merubah record (UPDATE)
1. Merubah data (record) pada tabel P yang
mempunyai nomor part P2, warnanya dirubah menjadi Kuning
dan beratnya ditambah 5

UPDATE P SET Warna = 'Yellow',


Weight =Weight + 5
WHERE Pn = 'P2'
2. Merubah record pada tabel S, statusnya menjadi dua kali
status awal untuk supplier yang bertempat tinggal di kota
London

UPDATE S SET Status = 2 * Status


WHERE City = 'London'
• Menampilkan record (SELECT 1 tabel)

1. Menampilkan semua data supplier


SELECT * FROM S
atau
SELECT Sn, Sname, Status, City FROM S

2. Menampilkan semua nilai Pn pada tabel SP

SELECT Pn FROM SP

3. Menampilkan nomor supplier dan status untuk supplier yang tinggal


di Paris

SELECT Sn, Status FROM S


WHERE City ='Paris'
4. Menampilkan no.supplier yang tinggal di Paris dengan Status >
20

SELECT Sn FROM S
WHERE City ='Paris" AND Status > 20

5. Menampilkan jumlah pengiriman P1


SELECT COUNT(*) FROM SP
WHERE Pn = 'P1'

6. Perintah untuk menghindari hasil data yang sama terulang


kembali (distinct)

SELECT DISTINCT Pn FROM SP


7. Menampilkan no.supplier dan status bagi supplier yang tinggal di
Paris dalam urutan status menurun

SELECT Sn,Status FROM S


WHERE City = 'Paris'
ORDER BY Status desc

8. Menampilkan no.Part dari semua part yang dipasok oleh lebih dari
seorang supplier

SELECT Pn FROM SP
GROUP BY Pn
HAVING COUNT(*) > 1

9. Menampilkan semua part yang nomornya dimulai dengan huruf C

SELECT * FROM P
WHERE Pname LIKE 'C%'
 Menampilkan record (SELECT lebih dari satu tabel / JOIN)

1. Menampilkan semua supplier dan part yang keduanya bertempat tinggal


pada kota yang sama

SELECT Sn, Sname,S tatus, S.City , Pn, Pname, Warna,Weight FROM S,P
WHERE S.City = P.City

2. Menampilkan nama supplier yang memasok barang dengan nomor part P2

SELECT Sname FROM S, SP


WHERE S.Sn = SP.Sn AND SP.Pn = 'P2'

3. Menampilkan nama supplier yang memasok part berwarna merah

SELECT Sname FROM S, SP, P


WHERE S.Sn = SP.Sn
AND SP.Pn = P.Pn
AND P.COLOR = 'RED‘
• Menampilkan record (SELECT lebih dari satu tabel /
SELECT Bertingkat)

1. Menampilkan nama supplier yang memasok barang dengan


nomor part P2
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM SP WHERE Pn = 'P2')
atau
SELECT Sname FROM S WHERE Sn = ANY
(SELECT Sn FROM SP WHERE Pn = 'P2')

2. Menampilkan nama supplier yang memasok part berwarna


merah
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM SP WHERE Pn IN
(SELECT Pn FROM P WHERE Warna = 'Red'))
3. Menampilkan no.supplier dengan nilai status lebih kecil daripada
nilai maksimum status yang ada pada tabel S

SELECT Sn FROM S WHERE Status <


(SELECT MAX(Status) FROM S)

4. Menampilkan nama supplier yang tidak memasok barang dengan


nomor part P2

SELECT Sname FROM S WHERE Sn NOT IN


(SELECT Sn FROM SP WHERE Pn = 'P2')

5. Menampilkan semua nomor supplier yang sama lokasinya dengan


S1

SELECT Sn FROM S WHERE CITY =


(SELECT CITY FROM S WHERE Sn = 'S1')
 Fungsi Perhitungan

COUNT: jumlah baris dan kolom


SUM : jumlah nilai dam kolom
AVG : rata - rata nilai dalam kolom
MAX : nilai terbesar dalam kolom
MIN : nilai terkecil dalam kolom

Untuk SUM dan AVG nilainya harus numerik (INT,


SMALLINT, FLOAT). Fungsi-fungsi tsb jika dikenakan pada nilai
yang NULL maka nilainya akan diabaikan kecuali untuk
COUNT(*)
Peng. Teknologi SIM 2
1. Menghitung jumlah supplier

SELECT COUNT(*) FROM S


atau
SELECT COUNT (Sn) FROM S

2. Menampilkan nomor part dan total kuantitas pengiriman dari


setiap part

SELECT Pn, SUM(QTY) FROM SP


GROUP BY Pn

3. Menghitung jumlah kuantitas dari P2 yang telah disupply


SELECT SUM (QTY) FROM SP WHERE Pn = 'P2'
4. Menampilkan jumlah pengiriman barang dengan nomor P4
dan dipasok oleh nomor suppplier S1

SELECT COUNT(*) FROM SP


WHERE Pn = 'P4' AND Sn = 'S1'

5. Menampilkan nomor part dan total kuantitas dari masing-


masing part

SELECT Pn, SUM(QTY) FROM SP


GROUP BY P3
DATA CONTROL LANGUAGE

1. GRANT
Fungsi : digunakan untuk memberikan izin akses kepada user Sintaks : GRANT privileges ON tbname
TO user

Contoh :

GRANT SELECT ON CLUB TO PUBLIC


GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01

2. REVOKE
Fungsi : digunakan untuk mencabut izin akses kepada user
Sintaks : REVOKE privileges ON tbname FROM user

Contoh :

REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01


REVOKE ALL ON CLUB FROM PUBLIC
Praktikum Database
Pengenalan Query
Rahmadyo Yudhi
Perintah SELECT
 Digunakan untuk mengambil data
 Bentuk dasar:
SELECT nama_tabel FROM nama_tabel;

 Contoh:
SELECT * FROM pasien;
Memilih Field Tertentu
 SELECT Nama FROM pasien;

 SELECT no_rm, nama_pasien FROM pasien;

 SELECT no_rm, tgl_daftar, keluhan FROM


pendaftaran;
Perintah Update
 UPDATE digunakan untuk mengganti data pada tabel
 Bentuk dasar:
UPDATE nama_tabel SET nama_field = nilai,
nama_field = nilai, … WHERE nama_field = nilai
 Contoh:
UPDATE pasien
SET nama_pasien = ”Susi Similiki"
WHERE no_rm = ”1001";
Hati-Hati dengan UPDATE!
 Perhatikan isi tabel pasien terlebih dulu dan
amati no_rm secara sekilas
 Lakukan perintah:

UPDATE Pekerjaan SET nama_pasien = “Susi


Similikiti”;
 Jalankan perintah di atas dan kemudian amati
nama_pasien pada tabel pasien. Apa yang
terjadi?
Perintah Delete
 DELETE digunakan untuk mengganti data
pada tabel
 Bentuk dasar:
DELETE FROM nama_tabel WHERE
nama_field = nilai
 Contoh:
DELETE FROM pasien WHERE no_rm = ”1005";
 Setelah Anda menghapus dengan perintah di atas,
masukkan kembali datanya
Hati-Hati dengan DELETE!
 Perintah seperti:
DELETE FROM pasien;
akan menghapus semua record pada tabel
Bagian
Klausa WHERE pada SELECT
 Bentuk: WHERE kondisi
 Contoh:
SELECT nama_pasien FROM Pasien WHERE no_rm = “1003”;

SELECT nama_pasien FROM Pasien WHERE jenis_kelamin =


‘Perempuan’;

SELECT no_rm FROM periksa WHERE kd_diagnosa = ‘G001’;


Susunan Tanggal
 Format: ‘Tahun/Bulan/Tanggal’
 Contoh:
SELECT Nama FROM Pribadi WHERE Tgl_lahir >
‘1970/12/25’;
Klausa WHERE pada SELECT
 Bentuk: WHERE kondisi
 Contoh:
SELECT Nip FROM Pekerjaan WHERE Gaji
>1000000;
Operator Relasional
 = Sama dengan
 > Lebih dari
 < Kurang dari
 >= Lebih dari atau sama dengan
 <= Kurang dari atau sama dengan
 <> Tidak sama dengan
Latihan
 Tampilkan data pasien yang berusia dibawah
50 tahun
Operator And
 AND digunakan sebagai kriteria “DAN”
 Penggunaan: operand AND operand
 Contoh:

SELECT NIP FROM Pribadi WHERE Tgl_lahir >= ‘1970/01/01’


AND Tgl_lahir <= ‘1971/12/31’;
Operator Or
 OR digunakan sebagai kriteria “ATAU”
 Penggunaan: operand OR operand
 Contoh:

SELECT NIP FROM Pribadi WHERE Kota = ‘Yogya’ OR Kota


‘Bantul’
Operator Not
 Untuk menyatakan “TIDAK” atau “BUKAN”
 Penggunaan: NOT kondisi
 Contoh:
SELECT NIP, Nama, Kota FROM Pribadi
WHERE NOT (Kota = ‘Yogya’ OR Kota =
‘Bantul’);
Operator BETWEEN
 BETWEEN untuk menyatakan suatu
jangkauan
 Contoh:
SELECT Nama, Tgl_lahir FROM Pribadi
WHERE Tgl_lahir BETWEEN ‘1971/01/01’
AND ‘1971/12/31’;
 Cek pula:
SELECT Nama, Tgl_lahir FROM Pribadi
WHERE Tgl_lahir NOT BETWEEN
‘1971/1/1’ AND ‘1971/12/31’;
Operator LIKE dan NOT LIKE
 LIKE digunakan untuk mencari data menurut awalan,
akhiran, atau penggalan suatu kata atau suku-kata
 Contoh:
SELECT Nama FROM Pribadi WHERE Nama LIKE "A%";
digunakan untuk mencari nama yang berawalan
dengan A
 NOT LIKE digunakan untuk kebalikan dengan LIKE
Wildcard untuk LIKE
 Tanda seperti % dinamakan wildcard
 Wildcard % Cocok dengan nol, satu, atau
sejumlah karakter apa saja
 Contoh:
SELECT Nama FROM Pribadi WHERE Nama
LIKE “%i”;
menampilkan nama yang berakhiran dengan i.
Wildcard untuk LIKE (lanjutan…)
 Contoh %:
SELECT Nama FROM Pribadi WHERE Nama
LIKE “%s%”;
menampilkan nama yang mengandung s.
Wildcard untuk LIKE (lanjutan…)
 Wildcard _ (underscore) digunakan untuk
mencocokkan dengan sebuah karakter apa saja
 Contoh:
SELECT Nama FROM Pribadi WHERE Nama
LIKE “%i_n%";
menampilkan nama yang mengandung i
diikuti dengan sebuah huruf apa saja dan
kemudian diikuti dengan n

Anda mungkin juga menyukai