• Tidak ada hasil yang ditemukan

338626996 MODUL RPL KK B Profesional RevisiNaraSumber Manajemen Basis Data

N/A
N/A
Protected

Academic year: 2018

Membagikan "338626996 MODUL RPL KK B Profesional RevisiNaraSumber Manajemen Basis Data"

Copied!
125
0
0

Teks penuh

(1)
(2)

HALAMANFRANCIS

1. Imran,S.Kom.,M.Pd.,085242642377.imranlahami@gmail.com

(3)

KATA

SAMBUTAN

kompetensiguru(UKG)untukkompetensipedagogikdanprofesionalpadaakhir

tahun2015.HasilUKGmenunjukanpetakekuatandankelemahankompetensi

guru dalam penguasaan pengetahuan. Peta kompetensi guru tersebut

dikelompokan menjadi 10 (sepuluh) kelopok kompetensi. Tindak lanjut

pelaksanaanUKGdiwujudkandalambentukpelatihangurupaskaUKGmelalui

program Guru Pembelajar. Tujuannya untuk meningkatkan kompetensi guru

sebagaiagenperubahaandansumberbelajarutamabagipesertadidik.Program

Guru Pembelajar dilaksanakan melalui pola tatap muka, daring (online) dan

campuran(blended)tatapmukadengan online.

Pusat

Pengembangan

dan

Pemberdayaan

Pendidik

dan

Tenag

Kependidikan

(PPPPTK),

Lembaga

Pengembangan

dan

Pemberdayaan

PendidikdanTenagaKependidikanKelautanPerikananTeknologiInformasidan

Komunikasi (LP3TK KPTK) dan Lembaga Pengembangan dan Pemberdayaan

kompetensi.DenganmodulinidiharapkanprogramGPmemberikansumbangan

ii

yang sangat besar dalam peningkatan kualitas kompetensi guru. Mari kita

sukseskanprogramGPiniuntukmewujudkanGuruMuliaKarenaKarya.

Jakarta, Februari2016

DirekturJendral

(4)

SumarnaSurapranata,Ph.D

NIP.195908011985031002

iii

KATA

PENGANTAR

Profesigurudantenagakependidikanharusdihargaidandikembangkansebagai

profesiyangbermartabatsebagaimanadiamanatkanUndang-UndangNomor14

Tahun 2005 tentang Guru dan Dosen. Hal ini dikarenakan guru dan tenaga

kependidikanmerupakantenagaprofesionalyangmempunyaifungsi,peran,dan

kedudukan yang sangat penting dalam mencapai visi pendidikan 2025 yaitu

“MenciptakanInsanIndonesiaCerdasdanKompetitif”.Untukitugurudantenaga

kependidikan yang profesional wajib melakukan pengembangan keprofesian

berkelanjutan.

Buku

Pedoman

Penyusunan

Modul

Diklat

Pengembangan

Keprofesian

Berkelanjutan

Bagi

Guru

dan

Tenaga

Kependidikan

untuk institusi

penyelenggara program pengembangan keprofesian berkelanjutan merupakan

(5)

modul yang merupakan salah satu sumber belajar bagi guru dan tenaga

kependidikan.

Buku

ini

disajikan

untuk

memberikan

informasi

tentang

penyusunan modul sebagai salah satu bentuk bahan dalam kegiatan

pengembangankeprofesianberkelanjutanbagigurudantenagakependidikan.

Pada kesempatan ini disampaikan ucapan terima kasih dan penghargaan

kepada berbagai pihak yang telah memberikan kontribusi secara maksimal

dalammewujudkanbukuini, mudah-mudahanbukuinidapatmenjadiacuandan

sumber inspirasi bagi guru dan semua pihak yang terlibat dalam pelaksanaan

penyusunan modul untuk pengembangan keprofesian berkelanjutan. Kritik dan

saranyangmembangunsangatdiharapkanuntukmenyempurnakanbukuinidi

(6)

v

B. IndikatorPencapaianKompetensi... 7

C. UraianMateri... 7

D. AktivitasPembelajaran... 17

E. Latihan/Kasus/Tugas... 17

F. Rangkuman... 18

G. UmpanBalikdanTindakLanjut... 19

H. KunciJawaban... 19

KegiatanPembelajaran2: ... 23

A. Tujuan... 23

B. IndikatorPencapaianKompetensi... 23

C. UraianMateri... 23

D. AktivitasPembelajaran... 37

E. Latihan/Kasus/Tugas... 37

F. Rangkuman... 39

G. UmpanBalikdanTindakLanjut... 39

(7)

vi

KegiatanPembelajaran3:... 43

A. Tujuan... 43

B. IndikatorPencapaianKompetensi... 43

C. UraianMateri ... 43

D. AktivitasPembelajaran... 66

E. Latihan/Kasus/Tugas ... 66

B. IndikatorPencapaianKompetensi... 72

C. UraianMateri ... 72

D. AktivitasPembelajaran... 84

E. Latihan/Kasus/Tugas ... 85

B. IndikatorPencapaianKompetensi... 91

C. UraianMateri ... 91

D. AktivitasPembelajaran... 98

E. Lathan/Kasus/Tugas ... 98

B. IndikatorPencapaianKompetensi... 104

C. UraianMateri ... 104

D. AktivitasPembelajaran... 109

E. Latihan/Kasus/Tugas ... 109

F. Rangkuman... 110

(8)

G. UmpanBalikdanTindakLanjut... 111

H. KunciJawaban... 111

KegiatanPembelajaran7: ... 115

A. Tujuan... 115

B. IndikatorPencapaianKompetensi... 115

C. UraianMateri... 115

D. AktivitasPembelajaran... 117

E. Latihan/Kasus/Tugas... 117 Gambar1.1GambaranRelasionalDatabase... 8

(9)

Gambar1.3ModelHubunganEntitas(EntityRelationshipModel) ... 10

Gambar1.4GambarHubunganERMultiTabel... 12

Gambar1.5RecordpadaTabelEMPLOYEES ... 14

Gambar1.6KomunikasiDBMSMenggunakanSQL ... 16

Gambar2.1ContohPembatasanGarisdenganKriteriaTertentu ... 24

Gambar2.2MembatasiBarisYangDipilih... 25

Gambar2.3QuerydenganKlausa Where ... 25

Gambar2.4QuerydenganKasusCampuran ... 26

Gambar2.5OperatoryangTerdapatpadaQuery... 26

Gambar2.6HasilEksekusiQuerydenganKondisiPerbandingan ... 27

Gambar2.7HasilEksekusiQuerydenganKondisiBetween ... 28

Gambar2.8HasilEksekusiQuerydenganKondisiIN... 28

Gambar2.9HasilEksekusiQuerydenganKondisiLIKE... 29

Gambar2.10HasilEksekusiQuerydenganKondisiLIKE... 30

Gambar2.11HasilEksekusiQuerydenganKondisiNULL ... 30

Gambar2.12HasilEksekusiQuerydenganLogikaOR... 32

Gambar2.13HasilEksekusiQuerydenganLogikaNOT... 33

Gambar2.14HasilEksekusiQuery... 35

Gambar2.15HasilEksekusiQuerydenganKlausaORDERBY... 36

Gambar2.16ContohQuerydenganORDERBY... 37

Gambar3.1FungsiSQL ... 44

Gambar3.2IlustrasiFungsiSQL ... 44

Gambar3.3DeklarasiNamaFungsi ... 45

Gambar3.4Jenis-JenisFungsiSingleRow... 46

Gambar3.5KlasifikasiFungsiKarakter ... 46

Gambar3.6HasilKonversidenganFungsiString... 48

Gambar3.7HasilQueryMenggunakanFungsiManipulasiCase ... 49

ix Gambar3.8HasilQueryMenggunakanFungsiKarakterManipulasi... 50

Gambar3.9HasilQuerydenganFungsiNumerik ... 51

Gambar3.10HasilQueryFungsiROUND ... 52

Gambar3.11HasilQueryFungsiTRUNC... 52

Gambar3.12HasilQueryFungsiMOD... 53

Gambar3.13FormatTanggalpadaOracle... 53

Gambar3.14FungsiSYSDATEpadaQuery... 54

Gambar3.15HasilQuerySYSDATEdenganManipulasiTanggal... 55

Gambar3.16FungsiTRUNCdalamPemotonganTanggal... 56

Gambar3.17HasilQuerydenganManipulasiTanggal... 57

Gambar3.18HasilQuerydenganfungsiROUNDdanTRUNC... 57

Gambar3.19HasilQuerydenganKonversiTO_CHAR... 58

Gambar3.20QueryMenggunakanFungsiNVL... 60

(10)

Gambar3.22QueryMenggunakanFungsiNULLIF... 62

Gambar3.23HasilEksekusiQuerydenganFungsiCOALESCE ... 63

Gambar3.24QuerydenganKondisiCASE... 65

Gambar3.25QuerydenganFungsiDECODE ... 66

Gambar4.1Tabelyangakandimanipulasi... 73

Gambar4.2HasilQueryNATURALJOIN ... 74

Gambar4.3QueryNaturalJoindenganKlausaWHERE ... 75

Gambar4.4KlausaUSINGuntukEquijoin... 76

Gambar4.5QueryPenggunaanTabelAlias ... 76

Gambar4.6KlausaONpadaQuery... 77

Gambar4.7ContohSelfJoinpadaQuery... 78

Gambar4.8KlausaONdenganKombinasiSELFJOIN... 78

Gambar4.9KlausaJOINpadaQuery... 79

Gambar4.10TabelEMPLOYEESdanJOB_GRADES... 80

Gambar4.11ImplementasiNon-EquijoinspadaQuery... 80

Gambar4.12HasilQueryLeftOuterJoin... 81

Gambar4.13HasilQueryRightOuterJoinpada... 82

Gambar4.14HasilQueryFullOuterJoinpada... 83

Gambar4.15HasilQueryCartesianProduct... 84

x Gambar4.16HasilQueryCROSSJOIN... 84

Gambar5.1QuerydalammembuatTabel ... 92

Gambar5.2SebelumDatadiperbarui... 93

Gambar5.3SesudahDatadiperbarui... 93

Gambar5.4DataSebelumdiperbarui... 94

Gambar5.5DataSesudahdiperbarui... 95

Gambar5.6DataSebelumdiperbarui... 96

Gambar5.7DataSesudahdiperbarui... 96

Gambar5.8DataSebelumdihapus ... 97

Gambar5.9DataSesudahdihapus ... 97

Gambar6.1HasilEksekusiQueryMembuatTabel... 106

Gambar6.2StrukturAwalTabel ... 108

Gambar6.3StrukturSetelahTerjadiPenambahanKolom... 108

Gambar71Penggunaancommit... 116

(11)

xi

DAFTAR

TABEL

Tabel 1KebenaranLogikanAND... 31

Tabel 2KebenaranLogikan ...OR 32 Tabel 3KebenaranLogikanNOT... 33

Tabel 4AturanProtokoler... 34

Tabel 5FungsidanKegunaannya... 47

Tabel 6FungsiNumerik ... 51

Tabel 7OperasipadaTanggal... 55

(12)

xii

(13)

PENDAHULUAN

A. LatarBelakang

Gurudantenagakependidikanwajibmelaksanakankegiatanpengembangan

keprofesian

secara

berkelanjutan

agar

dapat

melaksanakan

tugas

diharapkandapatmenjamingurudantenagakependidikansehinggamampu

secara terus menerus

memelihara, meningkatkan, dan mengembangkan

kompetensinya sesuai dengan standar yang telah ditetapkan. Pelaksanaan

kegiatanGPakanmengurangikesenjanganantarakompetensi yang dimiliki

guru

dan

tenaga

kependidikan

dengan

tuntutan

profesional

yang

dipersyaratkan.

Program Diklat GP ini membutuhkan modul yang berfungsi sebagai salah

satu sumber belajar. Modul untuk GP Guru Rekayasa Perangkat Lunak

(RPL) Kelompok Kompetensi B “Sistem Manajemen Basis Data” ini dapat

digunakanolehgurudantenagakependidikandanberfungsisebagaiacuan

untuk

memenuhi

tuntutan

kompetensinya,

sehingga

guru

dapat

melaksanakan tugasnya secara professional sesuai dengan standar yang

telahditetapkan.

Modul untuk GP Guru RPL Kelompok Kompetensi B “Sistem Manajemen

BasisData”inimempelajaritentangpembuatanstrukturtabel,mengisidata

ke tabel, mengubah data dan menghapus data dari tabel dengan

menggunakan softwareRelationalDatabaseManagementSystem (RDBMS),

serta komunikasi Sistem Manajemen Basis Data menggunakan perintah

StructureQueryLanguage(SQL).

(14)

B. Tujuan

Tujuan disusunnyamodul diklat GPGuru RPLKelompok Kompetensi B ini

adalahmemberikanpengetahuandanketrampilankepadaguruataupeserta

diklat tentang pembuatan struktur tabel, mengisi data ke tabel, mengubah

datadanmenghapusdatadaritabeldenganbenarmelaluiaktifitasobservasi

dan praktikum. Setelah mempelajari modul ini diharapkan guru dapat :

“Merencanakan Database Management System yang mampu memfasilitasipenggunauntukmenyimpan,memperoleh,danmengubah datadidalambasisdata”.

Sedangkanindikatorpencapaiankompetensinyaadalah:

1.

Membuatbasisdatamenggunakan DataDefinitionLanguage.

2.

MembuatrelasiantartabelmenggunakanfiturvisualDBMS

3.

MemanipulasidatamenggunakanDataManipulationLanguage.

4.

MembuatpengaturanprivalagespadaDBMS

(15)

basisdata. 1.1.2.Membuat Entity

Relationship Diagram

1.1.3.Menganalisis teknik

normalisasi basis

materipokokpadamoduliniadalah:1)DatabaseRelasional,2)Membatasi

dan

Menyortir

Data;

3)

Menggunakan

Fungsi

Single-Baris

Untuk

MenyesuaikanKeluaran;4)MenampilkanDatadariBeberapaTabel;5)Data

ManipulationLanguage PadaSQL;6) DataDefinitionLanguage PadaSQL;

dan7) DataControl Language PadaSQL;

E. SaranCaraPenggunaanModul

Modul Sistem Manajemen Basis Data ini terdiri dari sebelas topik utama.

Peserta diklat dapat mempalajari sesui dengan urutan topik mulai topik 1

sampaitopik7.Ketujuhtopiktersebuttidakmemilikiketergantungansecara

penuh, sehingga peserta diklat dapat mempelajari tidak secara berurutan.

3

Akan tetapi untuk masing-masing topik setiap kegiatan pembelajaran

mempunyai keterkaitan secara penuh. Ini berarti untuk setiap topik materi

yangdipelajariharussecaraberurutansesuaiurutankegiatanpembelajaran.

Untuk setiap kegiatan pembelajaran urutan yang harus dilakukan oleh

pesertadiklatdalammempelajarimoduliniadalah:

1.Membacatujuanpembelajaransehinggamemahamitargetataugoaldari

kegiatanbelajartersebut.

2.Membaca indikator pencapaian kompetensi sehingga memahami obyek

(16)

pembelajaran.

3.Membaca uraian materi pembelajaran sehingga memiliki pengetahuan,

ketrampilandansikapterhadapkompetensiyangakandicapai

(17)
(18)

6

1. Memperolehpemahamantentangsistemmanajemendatabaserelasional

dansistemobjekmanajemendatabaserelasional.

2. Memperolehpemahamankonsepdasar database relasional.

3. Mengkomunikasikan gagasan database menggunakan model datayang

sesuai.

B. IndikatorPencapaianKompetensi

1. Menggambarkanstrukturtabelrelasional

2. Membuatmodelmenggunakankonvensientitas

3. BerkomunikasidenganRDBMSmenggunakanpernyataanSQL

4. Mengelompokkan pernyataan-pernyataan SQL dalam kelompok DML,

DDL,DCL,danTransactionControl

C. UraianMateri

1. KonsepDatabaseRelasional

Dr.E.F.Coddpadatahun1970telahmemperkenalkanmodelrelasional

sistem database yang merupakan dasar untuk Relational Database

dalambentukrelasiatautabelduadimensi,danantartabelsatudengan

tabelyanglainnyaterdapathubunganataurelationship.

Komponen-komponen model ralasional meliputi : Kumpulan objek yang

memiliki keterkaitan atau relasional antar penyimpan data, Set operator

yang dapat melakukan relasi untuk membuat relasi yang lainnya, dan

(19)

Integritas data untuk akurasi dan konsistensi. Untuk membuat struktur

tabel, mengisi data ke tabel, mengubah data dan menghapus data dari

tabel diperlukan software RDBMS, sedangkan perintah yang digunakan

disebut Structure Query Language (SQL) sehingga setiap software

RDBMSdapatdigunakanuntukmenjalankanperintahSQL

2. Definisi Database Relasional

Sebuah database relasional menggunakan hubungan atau tabel dua

dimensi untuk menyimpan informasi. Sebagai contoh: Kita ingin

menyimpaninformasitentangsemuakaryawanyangadapadasalahsatu

perusahaan.Dalamsebuahdatabaserelasional,kitamembuatbeberapa

tabel untuk menyimpan bagian-bagian informasi yang berbeda tentang

karyawan yang bekerja diperusahaan tersebut, misalnya tabel yang

menyimpaninformasitentangkaryawan,tabelyangmenyimpaninformasi

tentangdepartemen,tabelyangmenyimpaninformasitentanggaji.

Gambar1.1GambaranRelasional Database

(20)

model untuk mengeksplorasi ide-ide dan meningkatkan pemahaman

desain database. Tujuan sebuah model adalah membantu

mengkomunikasikan konsep-konsep yang ada dipikiran orang. Model

dapat digunakan untuk melakukan hal berikut:

menyampaikan/mengkomunikasikan,mengkategorikan,menggambarkan,

menentukan, menyelidiki, mengembangkan, menganalisis, dan meniru.

Model yang baik adalah model yang cocok dalam banyak kegunaan,

dapatdipahamiolehpenggunaakhir,danberisidetailyangcukupuntuk

pengembangdalammembangunsistem database.

Gambar1.2ContohSkenarioModelData

Commented [A2]:

Gambar

4. ModelHubunganEntitas(EntityRelationshipModel)

Dalam sistem yang efektif, data dibagi menjadi kategori diskrit atau

entitas. Sebuah model Entity Relationship (ER) adalah sebuah ilustrasi

dariberbagaientitasdalambisnisdanhubungandiantaramereka.Model

ERberasaldarispesifikasibisnisataunarasidandibangunselamatahap

analisis siklus hidup pengembangan sistem (System Development Life

Cycle).

4.1. ManfaatModelER

a. Informasidokumenbagiorganisasidalamformatyangjelasdantepat.

b. Memberikan gambaran yang jelas tentang ruang lingkup kebutuhan

diketahui.Contohnyaadalahdepartemen,karyawan,danpesanan.

(21)

entitas. Sebagai contoh, untuk entitas karyawan, atributnya adalah:

nomor

karyawan,

nama,

jabatan,

tanggal

perekrutan,

nomor

departemen,dansebagainya.Setiapatributyangbaikadalahatribut

yangdiperlukanatauopsional.

c. Hubungan: Hubungan atau relationship adalah sebuah asosiasi

antara entitas dan derajat. Contohnya adalah karyawan dan

departemen,danpesanandanitembarang.

Gambar1.3ModelHubunganEntitas(EntityRelationshipModel)

5. KonvensiModelHubunganEntitas

5.1. Entitas

d. Namasinonimopsionaldenganhurufbesardidalamtandakurung:().

5.2. Atribut

Garisputus-putus Elemenopsionalyangmenunjukkan"mungkin"

Garispenuh Elemenwajibyangmenunjukkan"harus"

Crow’sfoot Menunjukkan"satuataulebih"

(22)

6. HubunganMultiTabel

Setiaptabelberisidatayangmenggambarkansecaratepatsatuentitas.

Sebagai contoh, tabel EMPLOYEES berisi informasi tentang karyawan.

Kategori data yang tercantum di bagian atas setiap tabel, dan

kasus-kasus individu tercantum di bawah tabel. Dengan menggunakan format

tabel, dapat dengan mudah memvisualisasikan, memahami, dan

menggunakan informasi. Karena data tentang entitas yang berbeda

disimpan

dalam

tabel

yang

berbeda,

sehingga

perlu

untuk

menggabungkan

dua

atau

lebih

tabel

dalam

menyelesaikan

permasalahan tertentu. Sebagai contoh, untuk mengetahui lokasi pada

departemen mana seorang karyawan bekerja. Dalam skenario ini,

memerlukaninformasidaritabelEMPLOYEES(yangberisidatatentang

karyawan) dan tabel DEPARTMENTS (yang berisi informasi tentang

departemen). Dengan RDBMS, seseorang dapat menghubungkan data

yang berada dalam satu tabel dengan data yang berada di tabel lain

11

menggunakan foreign key. Foreign key adalah kolom (atau set kolom)

yangmengacupadaPrimarykeydalamtabelyangsamaatautabellain.

Datadalamduatabelyangterpisahdapatdiorganisasimenjadiinformasi

baruyangdapatdikelolasecaraterpisah.

Gambar1.4GambarHubunganERMultiTabel

7. TerminologiDatabaseRelasional

Sebuahdatabaserelasionaldapatberisisatuataubanyaktabel.Sebuah

tabel merupakan struktur penyimpanan dasar dari sebuah RDBMS.

Sebuah tabel memiliki semua data yang diperlukan tentang sesuatu di

dunianyata,sepertikaryawan,faktur,ataupelanggan.

Didalam

sistem

relasional

database

data

dinyatakan

dengan

menggunakantabel(relations).Sebuahtabelmempunyaistrukturseperti

(23)

12

Baris(record)

Sebuah tabel harus diberi nama secara unik sebagai identitasnya dan

terdiridaribeberapabarissebagaipenyimpananinformasi,dan

masing-masingbarisberisisatu record.Sebuahtabeldapatmempunyaisebuah

kolom atau lebih. Sebuah kolom memiliki sebuah nama dan tipe data

yangdiberlakukandanmerupakandeskripsiatributpada record.Struktur

tabel yang disebut juga relation schema, ditentukan oleh

atribut-atributnya.Tipeinformasiyangtersimpandidalamtabelditentukanoleh

tipedatayangterdapatpadaatribut-atributnyapadasaattabeldibuat.

Sebuah tabel dapat mempunyai lebih dari 254 kolom yang mempunyai

tipe data yang sama atau tipe data yang berbeda sesuai dengan

penempatan values (domain). Kemungkinan-kemungkinan domain yang

dipergunakan adalah alphanumeric data (strings), numbers, dan date

formats.ORACLEmenawarkantipe-tipedatadasarsepertidibawahini:

a. Char(n): Fixed-lenghtcharacterdata(strings),mendefinisikan string

sepanjangnkarakter.Nilaimaksimumuntuknadalah255byte(...

di ORACLE 9i). Bila n tidak dituliskan, maka panjang karakteryang

berlakuadalah1.

contoh:char(40).

b. Varchar2(n):Variable-lenghtcharacterstrings,mendefiniskanstring

yang panjangnya berubah-ubah sesuai dengan kebutuhan dan

dibatasisebanyakkaraktern.Nilainmaksimumadalah2000(... di

ORACLE 9i). Hanya banyaknya byte yang digunakan saja yang

tersimpanpadamemori.

contoh:varchar2(80).

c. Number(o,d): Numericdatatype ,mendefinisikanangkaintegerdan

riel,o=jumlahdigit,d=jumlahdigityangberadadibelakangkoma.

Nilaimaksimum:o=38,d=-84sampai+127.

contoh:number(8),number(5,2).

13

kolom1 kolom2 ……….. kolomn

(24)

Number(5,2)nilainyatidakdapatlebihdari999.99,jikamelebihinilai

maksimum tersebut maka akan menjadi kesalahan. Tipe data yang

berasaldarinumberadalahint[eger],dec[imal],smallintdanreal.

d. Date: Date data type untuk menempatkan atau mendefinisikan tanggal, bulan, tahun, hari, jam, menit dan detik. Format keadaan awal(default)untukdateadalah:DD-MMM-YY.

Contoh:’10-FEB-94’,’29-NOV-98’.

e. long:

mendefinisikan

tipe

data

binary,

panjangnya

karakter

maksimumadalah2GB.Setiaptabelhanyadiperbolehkansatukolom

sajayangmempunyaitipelong.

Catatan:

DidalamORACLE–SQLtidakadatipedataboolean,tetapidengandata

yangsamadapatmenggunakanchar(1)ataunumber(1).

Selama tidak terdapat ketentuan/hambatan lain yang membatasi

kemungkinan values pada atribut, dapat digunakan special value yaitu

null (untuk sesuatu yang tidak diketahui). Nilai ini tidak sama dengan

angka0,danjugatidaksamadengankosong.

Gambar1.5 RecordpadaTabelEMPLOYEES

(25)

Gambar 1.5 menunjukkan isi tabel atau relasi EMPLOYEES.

Angka-angkamenunjukkanhal-halsebagaiberikut:

1) Baristunggal(atautuple)mewakilisemuadatayangdibutuhkanuntuk

karyawan

tertentu.

Setiap

baris

dalam

sebuah

tabel

harus

diidentifikasi oleh primary key, yang memungkinkan tidak ada

duplikasibaris.Urutanbaristidaksignifikan;menentukanurutanbaris

saatdatadiambil.

2) Sebuah kolom atau atribut yang berisi nomor karyawan. Jumlah

karyawan

mengidentifikasi

karyawan

yang

unik

dalam

tabel

EMPLOYEES. Dalam contoh ini, kolom nomor karyawan yang

ditunjuksebagai primarykey.Sebuah primarykey harusmengandung

nilai,dannilaiharusunik.

3) Sebuahkolomyangbukankeyvalue.Sebuahkolommerupakanatau

merepresentasikansalah satu jenis data dalam tabel; dalam contoh

ini, data adalah gaji semua karyawan. Urutan kolom tidak signifikan

ketikamenyimpandata;menentukanurutankolomsaatdatadiambil.

4) Sebuahkolomyangberisinomordepartemen,yangjugamerupakan

foreign key. Foreign key adalah kolom yang mendefinisikan

bagaimanatabelberhubungansatusamalain.Foreignkeymengacu

pada primarykey ataukunciunikditabelyangsamaatauditabellain.

Dalam contoh, DEPARTMENT_ID secara unik mengidentifikasi

sebuahdepartemendalamtabelDEPARTMENTS.

5) Sebuahfielddapatditemukandipersimpangandaribarisdankolom.

Hanyaadasatunilaididalamnya.

6) Sebuahfieldmungkintidakmemilikinilaididalamnya.Inidisebutnilai

null.DalamtabelEMPLOYEES,hanyakaryawanyangmemilikiperan

perwakilanpenjualanmemilikinilaidiCOMMISSION_PCT(komisi).

8. Properti Database Relasional

Dalam sebuah relasional database, pengguna tidak menentukan rute

aksesketabel,dantidakperlutahubagaimanadatadiatursecarafisik.

Untuk mengakses database, cukup dengan mengeksekusi

perintah-perintah atau pernyataan SQL, yang merupakan American National

Standards Institute (ANSI) bahasa standar untuk operasi relasional

15

database.SQLberisisatusetoperator-operatoryangcukupbesaruntuk

membagi dan mempertautkan hubungan. Database dapat dimodifikasi

denganmenggunakanpernyataanSQL.

9. BerkomunikasidenganRDBMSmenggunakanSQL

9.1. StructuredQueryLanguage

Menggunakan SQL, pengguna dapat berkomunikasi dengan server

database. SQL memiliki beberapa keuntungan: efisien, mudah untuk

dipelajaridandigunakan,danmemilikifungsi-fungsiyangsangatlengkap

(26)
(27)

D. AktivitasPembelajaran

Aktivitaspadakegiatanpembelajaran1,mencakuptopik-topikberikut:

a. PengenalankonsepDBMSdanmodelhubunganentitasnya

b. PengenalanmetodekomunikasiDBMSmenggunakanSQL

c. PengenalanklasifikasiperintahSQLuntukberkomunikasidenganDBMS

E. Latihan/Kasus/Tugas

d. Hubunganmatrikskeduanya

2. Penggunaantandakurung“()”padaERModelmerepresentasikansuatu

ilustrasientitasyangmenunjukkan

a. Akronimsuatu database

b. Akronissuatutabel

c. Sinominsuatu database

d. Sinonimsuatutabel

3. TipedatabooleanpadaOracletidakdidukung,sebagaigantinyaOracle

menyediakanmodelrepresentasitipebooleandengancara

a. Menggunakantipedatavarhcar(n)

b. Menggunakantipedatanumber(1)

c. Menggunakantipedataint(1)

d. Menggunakantipedatalongint(1)

4. PerintahSQLCOMMENTtermasukkategoriperintahSQLdengantipe

a. DataDefinitionLanguage(DDL)

b. DataManipulationLanguage(DML)

c. TransactionControl

d. DataControlLanguage (DCL)

5. QueryberikutyangtidakmampumengelolaperubahanhasiloperasiDML

(28)

database relasional dan model data yang digunakan untuk menyampaikan

ataumengkomunikasikan,mengkategorikan,menggambarkan,menentukan,

memenyelidiki,mengembangkan,menganalisis,danmeniru.Modelyangbaik

adalah model yangcocok dalam banyak kegunaan,dapat dipahami oleh

oleh integrityconstraints.DenganserverOracle,penggunadapatmenyimpan

danmengelolainformasidenganmenggunakanbahasaSQL.

G. UmpanBalikdanTindakLanjut

1. Apakah Anda sudah mampu memahami sistem manajemen database

relasional (RDBMS) dan sistem objek manajemen database relasional

(ORDBMS),sertaberapaprosentingkatpencapaiankompetensinya?

2. Apakah Anda sudah mampu memahami konsep dasar database

relasionaldanberapaprosentingkatpencapaiankompetensinya?

(29)
(30)
(31)

22

datasertamenentukanurutanbarisyangakanditampilkan.

2. Menggunakankondisikomparasiuntukmenampilkandata

B. IndikatorPencapaianKompetensi

1. MembatasibarisyangdipilihmenggunakanklausaWHERE

2. Menggunakan

kondisi

BETWEEN,

IN,

LIKE,

dan

NULL

untuk

menampilkaninformasipadakeluaran.

3. Menggunakan operator logika AND, OR, dan NOT untuk menampilkan

informasipadakeluaran.

C. UraianMateri

(32)

Dalam contoh pada Gambar 2.1, anggaplah bahwa pengguna ingin

menampilkansemuakaryawandidepartemen90.Barisdengannilai90

pada kolom DEPARTMENT_ID adalah satu-satunya yang dikembalikan

atau ditampakkan. Metode pembatasan ini adalah dasar darik klausa

WHEREdidalamSQL.

23

Gambar2.1ContohPembatasanGarisdenganKriteriaTertentu

1.1. MembatasiBarisYangDipilih

Penggunadapatmembatasibarisyangdikembalikandari query dengan

menggunakan klausa WHERE. Sebuah klausa WHERE memuat suatu

kondisiyangharusdipenuhi,danlangsungmengikutiklausaFROM.Jika

kondisi benar, maka baris yang memenuhi kondisi yang dipersyaratkan

akandikembalikan.

Dalamsintak:

WHERE membatasi query kebarisyangmemenuhikondisi

condition terdiri dari nama kolom, ekspresi, konstanta, dan

operatorperbandingan.

Klausa WHERE dapat membandingkan nilai-nilai dalam kolom, nilai

literal,ekspresiaritmatika,ataufungsiyangterdiridaritigaunsur:

(33)

KondisiPerbandingan

NamaKolom,konstan,ataunilai

24

Gambar2.2MembatasiBarisYangDipilih

1.2. MenggunakanKlausa WHERE

Dalamcontoh,pernyataanSELECTmengambilemployeeID,name,job

ID,dan departmen ID dari semua karyawan yang berada didepartemen

90.

Gambar2.3QuerydenganKlausa Where

1.3. CharacterStringdanDate

Semua karakter dan tanggal diklausa WHERE harus diapit oleh tanda

kutiptunggal(''),sedangkankonstantatidakbolehdiapitolehtandakutip

tunggal.

Semua pencarian karakter adalah case-sensitive. Pada contoh berikut,

tidakadabarisyangdikembalikankarenatabelEMPLOYEESmenyimpan

semuanamabelakangdalamkasuscampuran:

SELECT last_name, job_id, department_id

FROM employees

WHERE last_name = 'WHALEN';

(34)

Gambar2.4QuerydenganKasusCampuran

2. MembandingkanBerdasarPadaKondisi

2.1. KondisiPerbandingan

Kondisi perbandingan digunakan untuk membandingkan satu ekspresi

dengannilailainatauekspresilain.

FormatpenggunaanklausaWHEREadalahsebagaiberikut:

... WHERE expr Operator value

Contoh

... WHEREhire_date = '01 -Jan-95'

... WHERE salary>= 6000

... WHERE last_name = 'Smith'

AliastidakdapatdigunakandalamklausaWHERE.

Catatan:Simbol!=dan^=dapatdiartika‘tidaksamadengankondisi’.

Gambar2.5OperatoryangTerdapatpadaQuery

(35)

2.2. MenggunakanKondisiPerbandingan

Dalamcontoh,pernyataanSELECTmengambilnamabelakangdangaji

daritabel EMPLOYEE untuk setiap karyawan yang gajinya kurang dari

atausamadengan$3.000.Perhatikanbahwaadanilaieksplisitdipasok

keklausaWHERE.Nilaieksplisit3000dibandingkandengannilaigajidi

kolomSALARYdaritabelEMPLOYEE.

Gambar2.6HasilEksekusiQuerydenganKondisiPerbandingan

2.3. MenggunakanKondisiBetween

Operator BETWEEN akan menguji apakah suatu nilai berada dalam

suatu range tertentuyangdapatdiartikan“lebihbesaratausamadengan

nilaiterkecildanlebihkecilatausamadengannilaiterbesar“.

Penggunadapatmenampilkanbarisberdasarkanrentangnilaijangkauan

menggunakan kondisi between. Jangkauan yang pengguna tentukan

berisibatasbawahdanbatasatas.PernyataanSELECTdalamGambar

2.7 mengembalikan baris dari tabel EMPLOYEEuntukkaryawanyang

(36)

2.4. MenggunakanKondisiIN

Untuk menguji nilai-nilai dalam satu kelompok keanggotaan tertentu,

pengguna dapat menggunakan operator IN. Kondisi IN juga dikenal

sebagaikondisikeanggotaan.KondisiINdapatdigunakandengansemua

jenisdata.ContohberikutmengembalikanbarisdaritabelEMPLOYEES

untuk setiap karyawan yang nama belakangnya termasuk dalam daftar

namadiklausaWHERE:

SELECT employee_id, manager_id, department_id

FROM employees

WHERE last_name IN ('Hartstein', 'Vargas');

Gambar2.8HasilEksekusiQuerydenganKondisiIN

Jika memuat karakter atau tanggal, maka harus diapit oleh tanda kutip

tunggal('').

2.5. MenggunakanKondisiLIKE

Pengguna mungkin tidak selalu tahu persis nilai yang akan dicari. Pengguna

dapat memilih baris yang cocok dengan pola karakter dengan menggunakan

operator LIKE. Operasi pencocokan pola karakter disebut sebagai pencarian

wildcard. Operator ini digunakan untuk membandingkan karakter atau

28

string atau CLOB dengan pola yang sudah ditetapkan dan akan

menghasilkannilai booleantrue jikapola yangdibandingkan cocokdan

akanmenghasilaknnilai booleanfalse jikapolatidakcocok dengannilai

yangdibandingkan.Polayangdianggapcocokpadaoperatorlikedapat

termasukpenggunaanduakarakterspesial yangbiasadisebut wildcards

yaitu underscore (_)yangsecara eksakhanyasatukarakteryangcocok

danpercent(%)zeroatau lebihkarakteryangcocok. Pernyataan SELECT

dalam Gambar 2.9 mengembalikan nama depan karyawan dari tabel

EMPLOYEES untuk setiap karyawan yang nama depannya dimulai

denganhurufS.

(37)

PerhatikanhurufbesarS.Namayangdiawalidenganhurufkecilstidak dikembalikan. Kondisi seperti ini dapat digunakan sebagai jalan pintas

untukbeberapaperbandinganBETWEEN.

Contoh berikut menampilkan last name dan menye wahire date semua

karyawan yang tanggal perekrutannya antara Januari 1995 dan

Desember1995:

SELECT last_name, hire_date

FROM employees

WHERE hire_date LIKE '%95';

29

Gambar2.10HasilEksekusiQuerydenganKondisiLIKE

2.6. MenggunakanKondisiNULL

Kondisi NULL termasuk kondisi IS NULL dan kondisi IS NOT NULL.

Kondisi IS NULL untuk menguji null. Sebuah nilai null berarti nilai tidak

tersedia,belum ditetapkan, tidak diketahui, atau tidak berlaku. Oleh

karenaitu,penggunatidakdapatmengujidengan=nullkarenatidakbisa

samaatautidaksamadengannilaiapapun.

ContohpadaGambar2.10mengambillastnamedanmanagerIDuntuk

semuakaryawanyangtidakmemilikimanagerID.

Berikutiniadalahcontohlain:Untukmenampilkanlastname,jobID,dan

komisi untuk semua karyawan yang tidak berhak menerima komisi,

menggunakanpernyataanSQLberikut:

SELECT last_name, job_id, commission_pct

FROM employees

(38)

Gambar2.11HasilEksekusiQuerydenganKondisiNULL

3. MembandingkanSecaraLogika

Sebuah kondisi logis menggabungkan hasil dari dua kondisi komponen

untuk menghasilkan hasil tunggal berdasarkan kondisi mereka, atau

30

membalikkan hasil dari suatu kondisi tunggal. Sebuah baris akan

dikembalikan hanya jika hasil keseluruhan kondisi adalah benar.

TigaoperatorlogikayangtersediadiSQL:

AND

Tabel 1KebenaranLogikanAND

Gambar2.11HasilEksekusiQuerydenganLogikaAND

31

AND TRUE FALSE NULL

TRUE TRUE FALSE NULL

FALSE FALSE FALSE FALSE

(39)

3.3. MenggunakanOperatorOR

Dalam contoh, hanya salah satu kondisi benar maka akan dipilih, oleh

karena itu, setiap karyawanyang memiliki job ID yang memuat string

'MAN'atauberpenghasilansebesar$10.000ataulebihakandipilih.

3.4. TabelKebenaranLogikaOR

Tabel berikut menunjukkan hasil gabungan dua ekspresi dengan logika

OR:

Tabel 2KebenaranLogikanOR

Gambar2.12HasilEksekusiQuerydenganLogikaOR

(40)

3.6. TabelKebenaranLogikaNOT

Tabel berikut menunjukkan hasil dari penerapan operator NOT untuk

kondisi:

Tabel 3KebenaranLogikanNOT

Operator NOT juga dapat digunakan dengan operator SQL lainnya,

sepertiBETWEEN,LIKE,danNULL.

... WHERE

job_idNOTIN ('AC_ACCOUNT', 'AD_VP')

... WHERE

salaryNOTBETWEEN10000 AND15000

... WHERE

last_name NOTLIKE '%A%'

... WHERE

commission_pctIS NOTNULL

Gambar2.13HasilEksekusiQuerydenganLogikaNOT

3.7. AturanProtokoler

Tabel 4AturanProtokoler

(41)

a. ContohPrioritasEksekusiOperatorAND

Dalamcontohini,adaduakondisi:

Kondisi pertama adalah bahwa job ID adalah AD_PRES

dansalarylebihbesardari$15.000.

KondisikeduaadalahbahwajobIDadalahSA_REP.

Olehkarenaitu,pernyataanSELECTberbunyisebagaiberikut:

"Pilih

baris

jika

seorang

karyawan

adalah

presiden

dan

berpenghasilan lebih dari $15.000, atau jika karyawan adalah

perwakilanpenjualan".

b. ContohMenggunakanKurung

Dalamcontohini,adaduakondisi:

1) Kondisi pertama adalah bahwa ID kerja adalah AD_PRES

atauSA_REP.

2) Kondisikeduaadalahbahwagajilebihbesardari$15.000.

Olehkarenaitu,pernyataanSELECTberbunyisebagaiberikut:

"Pilih baris jika seorang karyawan presiden atau perwakilan

penjualan,danjikakaryawanberpenghasilanlebihdari$15.000"

34

Gambar2.14HasilEksekusi Query

3.8. MenggunakanKlausaORDERBY

Urutan baris yang dikembalikan dalam hasil query tidak terdefinisi.

Klausa ORDER BY dapat digunakan untuk mengurutkan baris. Jika

penggunamenggunakanklausaORDERBY,klausainiharusmenjadi

kalimat terakhir dari pernyataan SQL. Pengguna dapat menentukan

ekspresi,alias,atauposisikolomsebagaikondisipilihanurutan.

Sintak:

(42)

FROM table

[WHERE condition(s)]

[ORDER BY {column, expr, numeric_position}

[ASC|DESC]];

dimana:

ORDERBY menentukan urutan di mana baris yang dapat

ditampilkan

ASC memerintahkan baris dalam urutan menaik (ini

adalahurutan default)

DESC memerintahkanbarisdalamurutanmenurun

JikaklausaORDERBYtidakdigunakan,urutantidakterdefinisi,dan

server Oracle mungkin tidak mengambil baris dalam urutan yang

samauntukpermintaanyangsama(permintaanpertamabelumtentu

mengambil urutan baris yang sama dengan urutan baris pada

permintaankedua).GunakanklausaORDERBYuntukmenampilkan

barisdalamurutantertentu.

35

Gambar2.15HasilEksekusi QuerydenganKlausaORDERBY

4. Penyortiran

Urutandatastandar(default)adalahmenaik:

a. Nilai-nilai numerik ditampilkan pertama dengan nilai terendah

(misalnya,1-999).

b. Tanggalditampilkanpertamadengannilaiawal(misalnya,01-JAN-92

sebelum01-JAN-95).

c. Nilai karakter yang ditampilkan dalam urutan abjad (misalnya, A

pertamadanterakhirZ).

d. NilaiNullditampilkanterakhiruntukurutanmenaikdanpertamauntuk

urutanmenurun.

e. Penggunadapatmengurutkandengankolomyangtidakdalamdaftar

SELECT.

Contoh

1) Untuk membalik urutan baris yang ditampilkan, gunakan kata kunci

DESC setelah nama kolom dalam klausa ORDER BY. Gambar

2.16(1)hasilpengurutankaryawanyangterbarudipekerjakan.

2) Pengguna dapat menggunakan kolom alias di klausa ORDER BY.

(43)

3) Pengguna dapat mengurutkan hasil query dengan lebih dari satu

kolom.Bataspengurutanadalahjumlahkolomyangdiberikandalam

tabel.DalamklausaORDERBY,menentukankolomdanmemisahkan

nama kolom menggunakan koma. Jika pengguna ingin membalik

urutan kolom, gunakan kata kunci DESC setelah nama kolom

Gambar2.16(3).

36

Gambar2.16Contoh QuerydenganORDERBY

D. AktivitasPembelajaran

Aktivitaspadakegiatanpembelajaran2,mencakuptopik-topikberikut:

1. Pemilihandatadanmengubahurutanbarisyangditampilkan.

2. MembatasibarisdenganmenggunakanklausaWHERE.

3. PenyortiranbarisdenganmenggunakanklausaORDERBY.

4. Menggunakan

variabel

substitusi

untuk

menambah

fleksibilitas

diurutkanberdasarkankolomtertentu.Manapernyataanyangtidakbenar

tentangklausaORDERBYdibawahini?

a. AscendingdanDescendingbisaditulisdenganASCdanDESCpada

klausaORDERBY

(44)

b. Hanyasatukolomyangbisadidefinisikansebagaidasarpengurutan

diklausaORDERBY

c. Beberapa kolom bisa digunakan sebagai dasar pengurutan data di

klausaORDERBY

d. KolomdiklausaORDERBYbisadigantidengannomorurutkolomdi

klausaSELECT

3. Andainginmenampilkan pegawai yang ada dibagian 30 dan namanya

diawalidengankarakter‘B’.Perintahyangbenaradalah:

a. SELECT nama_pegawai, gaji, kode_bag FROM pegawai WHERE

tabelpegawai.Manakahperintahyanggagaldieksekusi?

a. SELECT*FROMpegawai;

b. SELECT id_pegawai FROM pegawai WHERE nama_pegawai =

‘WIRAAULIA’;

c. SELECTid_pegawai,nama_pegawaiWHEREid_pegawai=1004;

d. SELECT*FROMORDERBYgaji;

5. Anda mengurutkan data pegawai berdasarkan gaji secara descending,

dalamkolomgajiterdapatpegawaiyangbelummemilikigajiataugajinya

NULL. Pada bagian mana pegawai yang gajinya NULL tesebut akan

ditampilkan?

a. Bagiantengahhasilquery

b. PegawaiyanggajinyaNULLtidakdimunculkan

c. Padabagianbawahhasil query

d. Padabagianatashasi query

(45)

F. Rangkuman

Padakegiatanpembelajaran2,telahdipelajaripenggunaanklausaWHERE

untukmembatasibarisyangakanditampilkanpadakeluaran.Penggunakan

kondisi perbandingan seperti BETWEEN, IN, LIKE, dan NULL serta

penggunaan operator logika AND, OR, dan NOT disamping penggunaan

ORDERBYuntukmengurutkanbarispadakeluaran.

G. UmpanBalikdanTindakLanjut

1. Apakah anda sudah mampu mengambil datadari database, dengan

melakukan pembatasan baris data serta menentukan urutan baris yang

akanditampilkan,danberapaprosentingkatkompetensinya?

2. Apakah anda sudah mampu menggunakan kondisi komparasi untuk

menampilkandatadanberapaprosentingkatkompetensinya?

(46)
(47)
(48)

42

Kegiatan

Pembelajaran

3

:

MenggunakanFungsiSingle-BarisUntukMenyesuaikanKeluaran

A. Tujuan

Setelah mengikuti kegiatan pembelajaran 3 ini diharapkan peserta diklat

dapat:

Mengeksplorasi fungsi single-baris yang berfokus fungsi karakter, numerik,

dan tanggal, serta fungsi-fungsi yang mengkonversi data dari tipe data

tertentuketipedatayanglain(misalnya,konversidaridatakarakterkedata

numerik).

B. IndikatorPencapaianKompetensi

1. MenjelaskanberbagaijenisfungsiyangtersediadalamSQL.

2. Menggunakan fungsi karakter, numerik, dan tanggal di pernyataan SELECT.

3. Menjelaskanpenggunaanfungsikonversi

C. UraianMateri

1. Fungsi-FungsiSQL

Fungsi merupakan ciri yang sangat menonjol dari SQL. Fungsi-fungsi

tersebutdapatdigunakanuntukmelakukanhal-halsebagaiberikut:

a. Melakukanperhitungandata

b. Memodifikasiitemdataindividu

c. Memanipulasikeluaranuntukkelompokbaris

d. Formattanggaldannomoruntuktampilan

e. Mengkonversitipedatakolom

Fungsi

SQL

kadang-kadang

mengambil

argumen

dan

selalu

mengembalikannilai.

(49)

Gambar3.1FungsiSQL

Adaduajenisfungsi:

FungsiSingle-baris

Fungsi Multiple-baris

1.1.FungsiSingle-Baris

Fungsi-fungsi ini beroperasi pada baris tunggal saja dan hasil

pengembaliannyaadalahsatuhasilperbaris.

1.2.

FungsiMultiple-Baris

Fungsi-fungsiinidapatmemanipulasikelompokbarisuntukmemberikan

satuhasilperkelompokbaris.

Gambar3.2IlustrasiFungsiSQL

Fungsi single-baris digunakan untuk memanipulasi item data. Fungsi ini

44

(50)

untuksetiapbaris.

Argumendapatberupasalahsatudariberikutini :

Nilaiataukonstantayangdisiapkanolehpengguna

NilaiVariabel

NamaKolom

Ekspresi

Ciri-cirifungsisingle-barismeliputi:

Bertindakpadasetiapbarisyangdikembalikandalam query

Satuhasilperbaris

Mungkinmengembalikan nilaidata dari tipe yang berbeda daripada

yangdireferensikan

Mungkinmengharapkansatuataulebihargumen

DapatdigunakandalamSELECT,WHERE,danORDERBY

Dalamsintak:

function_name adalahnamafungsi

arg1,arg2 adalahargumenyangakandigunakanoleh

fungsi. Hal ini dapat diwakili oleh nama

kolomatauekspresi.

Gambar3.3DeklarasiNamaFungsi

Character functions: Menerima masukan berupa karakter dan

pengembaliannyadapatberupanilaikarakterdannilainumber

Number functions: Menerima masukan numerik dan

mengembalikannilai-nilainumerik

Date functions: Beroperasi pada nilai-nilai dari tipe data DATE (Semua fungsi tanggal mengembalikan nilai tipe data DATE

kecuali fungsi MONTHS_BETWEEN, yang mengembalikan nilai

number.)

(51)

Gambar3.4Jenis-JenisFungsi Single-Baris

1.3.

FungsiKarakter

Gambar3.5KlasifikasiFungsiKarakter

Fungsi karakter single-baris menerima data karakter sebagai masukan

dandapatmengembalikankarakterdannilainumerik.

Fungsikarakterdibagimenjadiberikut:

FungsiKasus-manipulasi

FungsiKarakter-manipulasi

46

Tabel 5FungsidanKegunaannya

Fungsi Kegunaan

LOWER(columm/expression) Mengkonversi nilai-nilai karakter

alphabetmenjadihurufkecil

UPPER(columm/expression) Mengkonversi nilai-nilai karakter

alphabetmenjadihurufbesar

Pad nilaikarakterpadagaristepi

(52)

47

1.4. FungsiManipulasi Case

LOWER, UPPER, dan INITCAP adalah tiga fungsi untuk mengkonversi

ataumemanipulasi case.

LOWER Mengkonversikarakter string campuranhurufbesarke

hurufkecil

UPPER Mengkonversikarakterstringcampuranhurufkecilke

hurufbesar

INITCAP Mengubah huruf pertama dari setiap kata ke huruf

besardanhurufyangtersisamenjadiatautetaphuruf

kecil

SELECT 'The job id for

'||UPPER(last_name)||' is '

||LOWER(job_id) AS "EMPLOYEE DETAILS"

FROM employees;

Gambar3.6HasilKonversidenganFungsi String

1.5. MenggunakanFungsiManipulasiCase

Gambar 3.7 menampilkan jumlah karyawan, nama, dan nomor

departemenpadaperusahaanHiggins.KlausaWHEREpadapernyataan

SQLpertamamenentukannamakaryawanhiggins.Karenasemuadata

(53)

dalamtabelEMPLOYEESdisimpandalam case yangtepat,namahiggins

tidak dapat ditemukan kecocokannya dalam tabel, dan tidak ada baris

yang dipilih. Klausa WHERE pada pernyataan SQL kedua menentukan

bahwanamakaryawandalamtabelEMPLOYEESdibandingkandengan

48

higgins,mengubahkolomLAST_NAMEmenjadihurufkeciluntuktujuan

perbandingan. Karena kedua nama sekarang berhuruf kecil, kecocokan

ditemukan dan satu baris yang dipilih. Klausa WHERE dapat ditulis

dengancaraberikutuntukmenghasilkanhasilyangsama:

...WHERE last_name = 'Higgins'

Nama dalam keluaran muncul seperti yang disimpan pada database.

Untuk menampilkan nama dengan hanya huruf pertama dalam huruf

besar,gunakanfungsiUPPERdalampernyataanSELECT.

SELECT employee_id, UPPER(last_name),

department_id

FROM employees

WHERE INITCAP(last_name) = 'Higgins';

Gambar3.7Hasil QueryMenggunakanFungsiManipulasi Case

1.6. FungsiManipulasiKarakter

CONCAT, SUBSTR, LENGTH, INSTR, LPAD, RPAD, dan TRIM

merupakanfungsikaraktermanipulasi.

CONCAT :Menggabung

nilai

bersama-sama (dibatasi untuk

menggunakanduaparameterdenganCONCAT)

SUBSTR :Ekstrak string berdasarpadapanjangyangditentukan

LENGTH :Menunjukkanpanjangstringsebagainilainumerik

INSTR :Menemukanposisinumerikdarikaraktertertentu

LPAD : Pad nilaikarakterpadagaristepisebelahkanan

RPAD :Padnilaikarakterpadagaristepisebelahkiri

(54)

TRIM :Memangkasataumenyisakankarakter(atauke-duanya) dari string karakter (Jika trim_character atau trim_source) adalah

karakterliteral,penggunaharusmengapitdalamtandakutiptunggal.

1.7. MenggunakanFungsiKarakterManipulasi

Gambar 3.8 menampilkan nama depan dan nama belakang karyawan

bergabungbersama-sama, panjangnama belakang, dan posisi numerik

dari huruf nama belakang karyawan untuk seluruh karyawan yang

memilikiREPyangadadalamjobIDdimulaipadaposisikeempatdarijob

ID. Contoh

Memodifikasi pernyataan SQL dalam Gambar 3.8 untuk menampilkan

datakaryawanyangnamanyadiakhiridenganhurufn.

SELECT employee_id, CONCAT (first_name, last_name)

NAME,LENGTH (last_name), INSTR(last_name, 'a')

"Contains 'a'?"

FROM employees

WHERE SUBSTR(last_name, -1, 1) = 'n';

Gambar3.8Hasil QueryMenggunakanFungsiKarakterManipulasi

(55)

Fungsi numerik menerima masukan numerik dan mengembalikan

nilai-nilainumerik.Bagianinimenjelaskanbeberapafungsinumerik.

Tabel 6FungsiNumerik

Gambar3.9Hasil QuerydenganFungsiNumerik

1.9. FungsiPembulatan(ROUND)

Fungsi pembulatan nilai pada kolom, ekspresi, atau nilai desimal ke-n.

Jikaargumenkeduaadalah0atauhilang,nilaidibulatkankenoldesimal.

Jika argumen kedua adalah 2, nilai dibulatkan ke dua tempat desimal.

Sebaliknya,jikaargumenkeduaadalah-2,nilaidibulatkankeduadesimal

ke kiri (dibulatkan ke unit terdekat dari 10). Fungsi ROUND juga dapat

digunakandenganfungsitanggal.

1.10.TabelDUAL

TabelDUALdimilikiolehpenggunaSYSdandapatdiaksesolehsemua

pengguna. Tabel ini berisi satu kolom, DUMMY, dan satu baris dengan

nilaiX.TabelDUALbergunaketikapenggunainginmengembalikannilai

sekalisaja(misalnya, nilaikonstan, pseudocolumn, atau ekspresiyang

tidak berasal dari tabel data pengguna). Tabel DUAL umumnya

digunakan untuk sintak SELECT dan klausa kelengkapannya, karena

51

SELECT dan klausa FROM keduanya adalah wajib, dan beberapa

(56)

Gambar3.10Hasil QueryFungsiROUND

1.11.

FungsiTRUNC

Fungsi TRUNC memotong nilai pada kolom, ekspresi, atau atau nilai

desimal ke-n. Fungsi TRUNC bekerja dengan argumen mirip dengan

fungsiROUND.Jikaargumenkeduaadalah0atauhilang,nilaidipotong

ke nol desimal. Jika argumen kedua adalah 2, nilai dipotong untuk dua

tempatdesimal.Sebaliknya,jikaargumenkeduaadalah-2,nilaidipotong

untuk dua desimal ke kiri. Jika argumen keduaadalah-1, nilai tersebut

dipotong ke satu tempat desimal ke kiri. Seperti fungsi ROUND, fungsi

TRUNCdapatdigunakandenganfungsitanggal.

Gambar3.11Hasil QueryFungsiTRUNC

52

1.12.

FungsiMOD

Fungsi MOD mendapatkan hasil sisa argumen pertama dibagi dengan

argumen kedua. Gambar 3.12 menghitung hasil sisa gaji setelah

membaginyadengan5.000untuksemuakaryawanyangjobIDtugasnya

adalahSA_REP.

Gambar3.12Hasil QueryFungsiMOD

2. BekerjadenganTanggal

2.1. FormatTanggal

Database menyimpan tanggal dalam format numerik internal yang

(57)

dan format masukan untuk setiap tanggal adalah DD-MON-RR. Oracle database memberlakukan tanggal valid adalah antara 1 Januari 4712

B.C.,dan31Desember9999A.D.

Gambar3.13FormatTanggalpadaOracle

Gambar 3.13, kolom keluaran HIRE_DATE ditampilkan secara default

dengan format DD-MON-RR. Namun, tanggal tidak disimpan dalam

database dalam format ini. Semua komponen tanggal dan waktu

disimpan. Jadi, meskipun HIRE_DATE seperti 17-Juni-87 ditampilkan

53

sebagaihari,bulan,dantahun,adajugawaktudaninformasiabadterkait

dengantanggal.Data lengkap17Juni1987, 05:10:43, disimpansecara

internalsebagaiberikut:

Abad Tahun Bulan Hari Jam Menit Detik

19 87 06 17 17 10 43

TipedataDATEselalumenyimpaninformasitahunsebagaiangkaempat

digit internal: dua digit untuk abad dan dua digit untuk tahun. Sebagai

contoh, database Oracle menyimpan tahun 1987 atau 2004, dan tidak

hanyasebagai87atau04.

2.3. FungsiSYSDATE

SYSDATEadalahfungsitanggalyangmengembalikantanggaldanwaktu

server database sekaramg. Pengguna dapat menggunakan SYSDATE

sepertimenggunakannamakolomlainnya.

Contoh :

SELECT SYSDATE

FROM DUAL;

Gambar3.14FungsiSYSDATEpada Query

2.4.PenambahandanPenguranganTanggal

(58)

penggunadapatmelakukanperhitungandenganmenggunakanoperator

aritmetika seperti penambahan dan pengurangan. Pengguna dapat

melakukanoperasiberikut:

54

Tabel 7OperasipadaTanggal

Gambar 3.15 menampilkan nama belakang dan jumlah minggu untuk

semua karyawan di departemen 90. Tanggal di mana karyawan mulai

dipekerjakan (hire-date) dikurangi dengan tanggal saat ini (SYSDATE)

danmembagihasilnyadengan7untukmenghitungjumlahminggubahwa

seorangkaryawansudahbekerja.

Catatan:SYSDATEadalahfungsiSQLyangmengembalikantanggaldan

waktu. Hasil eksekusi mungkin berbeda dari contoh, karena tenggal

sekarang dikurangi dengan tanggal karyawan mulai bekerja, diperoleh

angkanegatif(perbedaanadalahangkanegatif).

Gambar3.15Hasil QuerySYSDATEdenganManipulasiTanggal

2.5. FungsiDate

Fungsi Date mengembalikan nilai dari tipe data DATE kecuali

MONTHS_BETWEEN,yangmengembalikannilainumerik.

(59)

Menemukan jumlah bulan antara date1 dan date2. Hasilnya bisa

positif atau negatif. Jika date2 adalah lebih awal date1, hasilnya

positif;jikadate1lebihawaldaridate2,hasilnyanegatif.

b. ADD_MONTHS(date,n),

Menambahkan sejumlah n dari bulan kalender. Nilai harus integer

danbisanegatif.

c. NEXT_DAY(date,'char'),

Menemukan tanggal hari tertentu berikutnya dalam minggu ('char')

padatanggalsesuaidate.Nilaicharadalahsejumlahkarakterstring

yangmewakilihari.

d. LAST_DAY(date),

Menemukantanggalhariterakhirdaribulanyangberisitanggal

e. ROUND(date[,'fmt']),

Mengembalikan tanggal dibulatkan ke unit yang ditentukan oleh

format model fmt. Jika format model fmt dihilangkan, tanggal

dibulatkanketerdekathari.

f.

TRUNC(date [,'fmt']),

Pengembaliantanggaldenganporsiwaktuharidipotongkeunityang

ditentukanolehmodelformatfmt.Jikamodelformatfmtdihilangkan,

tanggaldipotongsatuhari.

Gambar3.16FungsiTRUNCdalamPemotonganTanggal

Misalnya,menampilkanIDkaryawan,tanggalmerekamulaibekerja,

jumlah bulan bekerja, enam bulan tanggal review, Hari Jum’at

pertamasetelahtanggalmerekamulaibekerja,danhariterakhirdari

bulan mereka mulai bekerja untuk seluruh karyawan yang telah

bekerjaselamakurangdari70bulan.

(60)

SELECT employee_id, hire_date,

Gambar3.17Hasil QuerydenganManipulasiTanggal

Fungsi ROUND dan TRUNC dapat digunakan untuk nilai numerik

dantanggal.Ketikadigunakandengantanggal,fungsi-fungsiinibulat

atau memotong dengan model format yang ditentukan.Oleh karena

ROUND(hire_date, 'MONTH'), TRUNC(hire_date,

'MONTH')

FROM employees

WHERE hire_date LIKE '%97';

Gambar3.18Hasil QuerydenganfungsiROUNDdanTRUNC

3. FungsiBersarang(NestingFunction)

Fungsi single-baris dapat bersarang ke dalam. Fungsi bersarang

dievaluasidaritingkatterdalamketingkatterluar.

57

Gambar3.19menampilkannamabelakangdarikaryawandidepartemen

60.EvaluasipernyataanSQLmelibatkantigalangkahyaitu:

a. Fungsibagiandalammengambildelapankarakterpertamadarinama

belakang.

Result1=substr(LAST_NAME, 1, 8)

b. Fungsibagianluarmerangkaihasildengan_us.

Result2=CONCAT(Result1, '_ US)

c. Fungsiterluarmengkonversihasilkehurufbesar.

Seluruh ekspresi menjadi judul kolom karena tidak ada kolom alias

(61)

Contoh :

Gambar3.19Hasil QuerydenganKonversiTO_CHAR

58

4. Fungsi-FungsiUmum

Fungsi ini bekerja dengan tipe data dan berhubungan dengan

penggunaannilainulldalamdaftarekspresi.

Tabel 8FungsiUmum

4.1. FungsiNVL

Untukmengkonversinilainulluntuknilaiyangsebenarnya,menggunakan

(62)

NVL(expr1, expr2)

dimana

expr1adalahnilaisumberatauekspresiyangmungkinberisi

null

expr2adalahnilaitargetuntukmengkonversinol

PenggunadapatmenggunakanfungsiNVLuntukmengkonversitipedata,

tetapi nilai kembali selalu sama dengan tipe data dari expr1.

KonversiNVLuntukberbagaijenisdata.

59

4.2. MenggunakanFungsiNVL

Untukmenghitungkompensasitahunandarisemuakaryawan,pengguna

perlu mengalikan gaji bulanan dengan 12 dan kemudian hasilnya

mendapatkankomisi.Jikaadakolomnilaidalamsebuahekspresiadalah

null, hasilnya adalah null. Untuk menghitung nilai semua karyawan,

penggunaharus mengubahnilai null untuk angkasebelum menerapkan

operator aritmetika. Dalam Gambar 3.20, fungsi NVL digunakan untuk

mengkonversinilainullkenol.

Gambar3.20QueryMenggunakanFungsiNVL

(63)

FungsiNVL2menelitiekspresipertama.Jikaekspresipertamatidaknull,

makafungsiNVL2mengembalikanekspresikedua.Jikaekspresipertama

adalahnull,makaekspresiketigadikembalikan.

Sintak

NVL2 (expr1, expr2, expr3)

60

dimana

a. expr1adalahnilaisumberatauekspresiyangmungkinberisinol b. expr2adalahnilaiyangdikembalikanjikaexpr1tidaknull

c. expr3adalahnilaiyangdikembalikanjikaexpr1adalahnull

Dalam

contoh

yang

ditunjukkan

pada

Gambar

3.21,

kolom

COMMISSION_PCT diperiksa. Jika sebuah nilai terdeteksi, ekspresi

kedua SAL + COMM dikembalikan. Jika kolom COMMISSION_PCT

memiliki atau menyimpan nilai null, ekspresi ketiga SAL dikembalikan.

Argumenexpr1dapatmemilikitipedata.Argumenexpr2danexpr3dapat

memilikitipedatakecualitipedataLONG.Jikajenisdataexpr2danexpr3

berbeda, server akan mengkonversi expr3 dengan jenis data expr2

sebelum membandingkan mereka kecuali expr3 adalah konstan null.

Dalamkasusterakhir,tipedatakonversitidakdiperlukan.Tipedatadari

nilai pengembalian selalu sama dengan tipe data dari expr2, kecuali

expr2 adalah data karakter, maka nilai pengembalian memilikitipe data

VARCHAR2.

Gambar3.21 QuerydenganFungsiNVL2

(64)

4.4. MenggunakanFungsiNULLIF

FungsiNULLIFmembandingkanduaekspresi.Jikamerekasama,fungsi

mengembalikan null. Jika mereka tidak sama, fungsi mengembalikan

ekspresipertama.PenggunatidakdapatmenentukanNULLliteraluntuk

ekspresipertama.

Sintak

NULLIF (expr1, expr2)

dimana

a. expr1adalahnilaisumberdibandingkandenganexpr2

b. expr2 adalah nilai sumber dibandingkan dengan expr1 (Jika tidak

samadenganexpr1,expr1dikembalikan.)

Gambar

3.22

panjang

nama

depan

dalam

tabel

EMPLOYEES

dibandingkan dengan panjang nama belakang dalam tabel

EMPLOYEES.Ketika panjang dari nama depan dan nama belakang

sama,nilai null ditampilkan tetapi jika tidak sama, maka panjang nama

depanditampilkan.

Catatan:FungsiNULLIFsecaralogissetaradenganekspresiCASE.

CASE WHEN expr1 = expr 2 THEN NULL ELSE

expr1 END

Gambar3.22QueryMenggunakanFungsiNULLIF

(65)

4.5. MenggunakanFungsiCOALESCE

a. expr1ekspresiinidikembalikanjikatidaknull

b. expr2mengembalikanekspresiinijikaekspresipertamaadalahnull

danekspresiinitidaknull

c. exprnmengembalikanekspresiinijikaekspresisebelumnyanull

Semuaekspresiharusmemilikitipedatayangsama.

DalamcontohyangditunjukkanpadaGambar3.23,jikanilai

MANAGER_IDtidaknull,iaditampilkan.JikanilaiMANAGER_IDadalah

null,makaCOMMISSION_PCTditampilkan.Jikanilai-nilaiMANAGER_ID

danCOMMISSION_PCTadalahnull,makanilai-1ditampilkan.

Gambar3.23HasilEksekusi QuerydenganFungsiCOALESCE

5. EkspresiBersyarat

Duametodeyangdigunakanuntukmelaksanakanpengolahanbersyarat

(66)

literalNULLuntuksemua return_exprs dan else_expr tersebut.

Semuaekspresi(expr,comparison_expr,danreturn_expr)harusmemiliki

tipe data yang sama, dapat berupa CHAR, VARCHAR2, NCHAR, atau

NVARCHAR2.

5.2. MenggunakanEkspresiCASE

Pernyataan SQL pada Gambar 3.24, nilai job_id telah diuraikan atau

diterjemahkan.Jika job_idadalahIT_PROG,kenaikan gajiadalah 10%;

jika job_id adalah ST_CLERK, kenaikan gaji 15%; jika job_id adalah

SA_REP,kenaikangajiadalah20%.Untuksemuaperanpekerjaanlain,

tidakadakenaikangaji.

PernyataanyangsamadapatditulisdenganfungsiDECODE.Contohdi

atas merupakan contoh pencarian yang menggunakan ekspresi CASE.

PencarianmenggunakanekspresiCASEterjadidarikirikekanansampai

pada kondisi yang dicari telah ditemukan, maka ekspresi pengembalian

akandikembalikan.Jikatidakadakondisiyangditemukan,tetapiklausa

ELSE ada, maka akan dikembalikan ekspresi pengembalian yang

terdapatdalamklausaELSE;jikatidak,makanilaiNULLdikembalikan.

SELECT last_name,salary,

Gambar3.24 QuerydenganKondisiCASE

(67)

5.4. MenggunakanFungsiDECODE

PernyataanSQLpadaGambar3.25,nilaijob_iddiuji.Jikajob_idadalah

IT_PROG, kenaikan gaji adalah 10%; jika job_id adalah ST_CLERK,

kenaikan gajia dalah 15%; jika job_id adalah SA_REP, kenaikan gaji

adalah20%.Untuksemuaperanpekerjaanlain,tidakadakenaikangaji.

Pernyataan yang sama dapat dinyatakan dalam pseudocode sebagai

Gambar3.25 QuerydenganFungsiDECODE

D. AktivitasPembelajaran

Aktivitaspadakegiatanpembelajaran3,mencakuptopik-topikberikut:

1. Pembuatan query yang memerlukan penggunaan fungsi numerik,

karakter,dantanggal.

2. Melakukanperhitungantahundanbulanuntukmemecahkanmasalah.

3. Menentukantanggalseseorangmulaibekerja

E. Latihan/Kasus/Tugas

1. Andaakanmengeksekusibeberapafungsimatematika.Tabelapayang

akanandagunakanuntukmelakukankalkulasimatematikadariekspresi

ataunilaiyangbukandiambildaritabeldidalamdatabase?

a. EMP

b. EMPLOYEES

c. DUAL

(68)

2. AndadimintamenulispernyataanSQLuntukmengeksekusikenaikangaji

4. Dariperintahtentangoperasidatatanggal,manayanggagalpadasa’at

dieksekusi?

Padakegiatanpembelajaran3,telahdipelajarifungsi single-barisyangdapat

digunakanuntukdapatmemanipulasiberikut:

DataCharacter :LOWER,UPPER,INITCAP,CONCAT,SUBSTR,

INSTR,danLENGTH.

DataNumerik :ROUND,TRUNC,danMOD

DataTanggal :MONTHS_BETWEEN,ADD_MONTHS,NEXT_

DAY,LAST_DAY,ROUND,danTRUNC

HalpentingyangperludiIngatadalah:

Nilai tanggal juga dapat menggunakanoperator aritmetika. Fungsi konversi

dapat mengkonversi karakter, tanggal, dan nilai-nilai numerik:

TO_CHAR,TO_DATE, TO_NUMBER. Ada beberapa fungsi yang

(69)

berhubungandengannulls,termasukNVL,NVL2,NULLIF,danCOALESCE.

Logika IF-THEN-ELSE dapat diterapkan dalam pernyataan SQL dengan

menggunakanekspresiCASEataufungsiDECODE.

SYSDATE adalah fungsi tanggal yang mengembalikan tanggal dan waktu.

Untuk melakukan kalkulasi matematika dari nilai yang bukan diambil dari

tabeldidalamdatabasedigunakantabeldummyyangdisebuttabelDUAL.

G. UmpanBalikdanTindakLanjut

ApakahandasudahmampumenulissubqueriesdiklausaWHEREpada

pernyataanSQLlainuntuk mendapatkannilai-nilaiyangkondisinyatidak

(70)
(71)
(72)

71

daribeberapatabel(lebihdarisatutabel).

2. MenggunakanJOINuntukmelihatinformasidaribeberapatabel.

3. Menampilkandatayangdiperolehdaribeberapatabel.

B. IndikatorPencapaianKompetensi

1. MenulispernyataanSELECTuntukmengaksesdatadaribeberapatabel

(lebihdarisatutabel)denganmenggunakanequijoindannonequijoin.

2. Jointabeluntukdirinyasendiridenganmenggunakanself-join.

3. Melihat data yang secara umum tidak memenuhi kondisi join dengan

menggunakan OuterJoin.

4. MenghasilkanprodukCartesiansemuabarisdariduatabelataulebih.

C. UraianMateri

1. PenggabunganTabelMenggunakanSQL

1.1. MendapatkanDatadariBeberapaTabel

Kadang-kadangpenggunaperlumenggunakandatalebihdarisatutabel.

PadaGambar4.1,ditampilkandatadariduatabelyangterpisah:

EmployeeIDadadalamtabelEMPLOYEES.

Department

ID

ada

di

tabel

EMPLOYEES dan

di

tabel

DEPARTMENTS.

NamaDepartmentadadalamtabelDEPARTMENTS.

Untuk menghasilkan laporan yang mencakup hal-hal di atas, maka

pengguna perlu untuk menghubungkan tabel EMPLOYEES dan tabel

(73)

72

Gambar4.1Tabelyangakandimanipulasi

1.2. PengertianJOIN

Untuk menggabung tabel, pengguna dapat menggunakan sintak JOIN

yangkompatibeldenganSQLStandar1999.

Dalamdatabaseterdiridaribeberapatabel,setiaptabelmenyimpandata

yang berbeda-beda. Jika pengguna ingin menampilkan informasi yang

datanyadiperolehdaribeberapatabel,makapenggunaharusmelakukan

join. Join antaraduatabelmemerlukankondisi join yangdigunakanuntuk

menghubungkandatadarisatutabelkedatayangberadapadatabellain.

Kondisi join didefinisikanpadaklausaWHERE.

1.3. KondisiJOINdanJenisJOIN

Berdasar pada tanda pembanding yang digunakan pada kondisi join di

klausaWHERE, join dibagikedalamduabagianyaitu:

Equi Join adalah join antara dua tabel yang kondisi join nya

menggunakanoperatorsamadengan(=)

Non-equi Join adalah join antara dua tabel yang kondisi join-nya

menggunakanselainoperatorsamadengan:<,>,BETWEEN,serta

tandapembandinglainnya.

Sedangkandaridatayangdihasilkanjenisjoinadatiga,yaitu:

Inner Join adalah join yang menghasilkan data yang bersesuaian atau data yang memenuhi kondisi join saja, sedangkan data yang

Gambar

Gambar 1. 1 Gambaran Relasional Database

Referensi

Dokumen terkait

Bank Jabar Banten Cabang Soreang Bandung mengalami kenaikan sebesar 192.99 hal ini disebabkan karna permintaan kredit pada tahun tersebut mengalami kenaikan dari

Implikasi dari hasil penelitian ini adalah bahwa layanan bimbingan kelompok dengan teknik modeling merupakan salah satu alternatif yang dapat dipilih untuk dite- rapkan dan

Dari ukuran tersebut, aktivitas belajar bersama/berkelompok memang tidak dapat terpenuhi ketika hanya menggunakan satu meja, kecenderungan ketika belajar

Salah satu strategi pengambilan keputusan yang terpenting yang dapat dilakukan oleh perusahaan bukanlah mengenai bagaimana menggunakan sistem informasi untuk memperbaiki

Beberapa peserta didik yang lain juga masih belum paham pertanyaan yang diberikan guru dalam bahasa Jerman, sehingga guru memberikan petunjuk dengan memberikan kata kunci untuk

Pengaturan dalam peraturan Bank Indonesia ini utamanya diperuntukkan bagi Penyelenggara Jasa Sistem Pembayaran Selain Bank dalam kegiatan Alat Pembayaran Menggunakan

Konsumen (rumah tangga) masih optimis, meski dengan tingkat menurun Pemerintah mulai waspada dan cenderung siaga dalam kebijakan ekonomi Bank Indonesia mulai siaga bersiap