Selasa, 11 Desember 2012

LAPORAN PRAKTIKUM SINGLE ROW & GROUP FUNCTION Disusun oleh : RINDI FATIMAH SI 12 C 12.12.0116 A. LATAR BELAKANG Didalam sebuah software ada beberapa komponen yang harus kita ketahui, bukan hanya di ketahui tetapi kita juga harus mengerti apa fungsi dari komponen yang terdapat di software tersebut. Salah satu komponen yang ada di dalam software tersebut adalah bahasa pemrograman. Bahasa pemrograman yang sering sekali digunakan adalah ORACLE. Didalam oracle ini kita dapat membuat suatu relasi tabel, pembuatan tabel dan masih banyak lagi. Dengan menggunakan oracle ini bukan hanya digunakan untuk pembuatan tabel saja, tetapi juga dapat digunakan untuk perhitungan sebuah data, pembuatan tanggal dan masih banyak lagi yang dapat digunakan dengan oracle. B. SOAL / PERMASALAHAN Laporan praktikum ini mencakup batasan masalah mengenai Single Row & Group Function Adapun permasalahannya sebagai berikut 1. Apa saja yang dapat dilakukan dengan menggunakan Single Row ? 2. Apa saja yang dapat dilakukan dengan menggunakan Group Function ? C. LANDASAN TEORI Secara garis besar Oracle database built-in function dibagi dalam dua bagian, yaitu: • Single-row function : Memproses satu baris data pada satu saat dan memberikan satu output untuk setiap satu baris data masukan. Contoh single-row functions adalah UPPER yang berfungsi mengubah data input menjadi huruf kapital. • Group Function : Memproses multi-row data pada saat bersamaan dan memberikan satu output. Contoh group function adalah SUM untuk menghitung nilai total. Perbedaan Single Row Function dan Group Function dapat diperlihatkan pada gambar berikut: Single-row function : Nama_Pegawai: INITCAP (Nama_Pegawai) ------------------------- AYU Ayu NAYLA Nayla PUTRI Putri BAB II ISI LAPORAN A. SINGLE ROW • Character Function ( digunakan untuk memproses data karakter ) Contoh dari Character Function adalah sebagai berikut :  ASCII dan CHR ASCII digunakan untuk menampilkan nilai ASCII dari karakter X. CHR digunakan untuk mengembalikan karakter dari suatu nilai ASCII. Langkah – langkanya sebagai berikut : 1. Ascii SQL > select ascii(‘a’), ascii(‘A’), 2 ascii(‘z’), ascii(‘t’), ascii(‘I’) 3 from dual ; 2. CHR SQL > select chr(100), chr(92), 2 chr(97), chr(65), chr(122) 3 from dual ; Maka akan muncul tampilan sebagai berikut : OUTPUT
 CONCAT( ) Concat(x,y) digunakan untuk menggabungkan karakter string x dan y. Langkah - langkahnya sebagai berikut : SQL> select concat(nama_barang,keterangan) 2 from barang where kode_barang=1;  INITCAP( ), LOWER ( ) dan UPPER( ) INITCAP(x) untuk mengubah karakter awal suatu kata dari string x menjadi huruf kapital. LOWER(x) untuk mengubah string (x) menjadi huruf kecil. UPPER(x) digunakan untuk mengubah string (x) menjadi huruf kapital. Langkah – langkahnya sebagai berikut : SQL> select 'bELaJar OraCle' as "string", 2 INITCAP ('bELaJar OraCle') as "Initcap", 3 LOWER ('bELaJar OraCle') as "Lower", 4 UPPER ('bELaJar OraCle') as "UPPER" FROM DUAL;  SUBSTR( ) SUBSTR(x, y [,z] ) digunakan untuk menampilkan substring mulai dari posisi y sebanyak z karakter dari string x. Jika nilai z tidak ditentukan maka akan ditampilkan mulai dari posisi y sampai karakter terakhir. Jika nilai y negatif (-) maka posisi karakter diambil dari sisi kanan atau belakang string. Langkah – langkahnya sebagai berikut : SQL> select 'ABCDEFGHIJKLMN' string, 2 substr ('ABCDEFGHIJKLMN',3,4), 3 substr ('ABCDEFGHIJKLMN',-6,3) 4 from dual;  KOMBINASI CHARACTER FUNCTION Kombinasi dari beberapa character function bisa dilakukan dengan menjadikan hasil dari suatu function sebagai parameter untuk function berikutnya. Sebagai contoh adalah kombinasi antara function LOWER,SUBSTR dan CONCAT berikut ini untuk menghasilkan email pelanggan. Langkah – langkahnya sebagai berikut : SQL> select nama_pelanggan, 2 lower(concat(substr(nama_pelanggan,4,5), '@gmail.com')) as "email" 3 from pelanggan; • Numeric Function (digunakan untuk memproses data numerik )  FLOOR ( ) Floor (x) digunakan untuk pembulatan ke bawah dari nilai desimal x. Langkah – langkahnya sebagai berikut : SQL> select floor(5.1), floor(5.9),Floor(-5.9) 2 from dual; OUTPUT
 MOD ( ) Langkah – langkahnya sebagai berikut : SQL> select mod(7,2) 2 from dual; • Date Function ( digunakan untuk memproses data tanggal )  ADD_MONTH ( ) ADD_MONTHS (x,y) mengembalikan hasil penjumlahan tanggal x dengan y bulan. Jika y bernilai negatif maka terjadi pengurangan tanggal x dengan y bulan. Sebagai contoh, tanggal ’02-Nov-09’ ditambah 6 bulan maka hasilnya adalah tanggal ’02-May-10’. Langkah – langkahnya sebagai berikut : SQL> select add_months('10-feb-2013',6) from dual; • Convertion Function ( digunakan untuk melakukan konversi data )  Konversi Tanggal ke Karakter dengan TO_CHAR Langkah – langkahnya sebagai berikut : SQL> select to_char(sysdate,'day DD, month yyyy') 2 from dual; • General Function ( digunakan untuk memproses semua tipe data )  NULLIF NULLIF(x,y) digunakan untuk membandingkan nilai x dan y. Langkah – langkahnya sebagai berikut : SQL> select nullif(7,8), 2 nullif(7,7), 3 nullif('RINDI','SALAVIE'), 4 nullif('FARRA','LEVI') 5 from dual; OUTPUT
B. GROUP FUNCTION Beberapa jenis group function:  AVG (x) Digunakan untuk menghitung nilai rata-rata dari kelompok data x. Langkah – langkahnya sebagai berikut : SQL> select avg(harga_jual) as "Rata-Rata Harga Jual" 2 from barang;  COUNT Digunakan untuk menghitung jumlah data dari kelompok data x. Langkah – langkahnya sebagai berikut : SQL> select count(kode_barang) as "jumlah barang" 2 from barang;  MAX ( ) dan MIN ( ) MAX ( ) digunakan untuk mencari nilai paling tinggi dari kelompok data x. MIN ( ) digunakan untuk mencari nilai yang paling rendah dari kelompok data x. Langkah – langkahnya sebagai berikut : SQL> select max(harga_jual), 2 min(harga_jual) 3 from barang; 4 STDDEV( ) Digunakan untuk menghitung nilai standar deviasi dari kelompok data x. Langkah – langkahnya sebagai berikut : SQL> select stddev(harga_jual) 2 from barang; 5 SUM ( ) Digunakan untuk menghitung jumlah total dari data yang ada di kelompok data x. Langkah – langkahnya sebagai berikut : SQL> select sum(total) 2 from jual; OUTPUT
 VARIANCE( ) VARIANCE( ) digunakan untuk menghitung nilai variance dari kelompok data x. Langkah – langkahnya sebagai berikut : SQL> select variance(harga_jual) 2 from barang;  Mengelompokkan data menggunakan GROUP BY GROUP BY digunakan untuk mengelompokkan data berdasarkan suatu kriteria pada perintah select. Langkah – langkahnya sebagai berikut : SQL> select id_pelanggan, sum(total) "total Penjualan" 2 from jual 3 group by id_pelanggan;  Menyeleksi Hasil GROUP BY dengan HAVING Pada single-row function klausa where digunakan untuk menyeleksi data berdasarkan kriteria tertentu. Langkah – langkahnya sebagai berikut : SQL> select id_pelanggan, sum(total) "total Penjualan" 2 from jual 3 having avg(total) >1000000 6 group by id_pelanggan;
BAB III PENUTUP A. KESIMPULAN Dari uraian diatas maka dapat disimpulkan bahwa : 1. Dengan menggunakan Single Row. Kita juga dapat menggunakan sql untuk memproses data karakter menggunaka (Character Function) meliputi ASCII ( ) dan CHR ( ), CONCAT ( ) , INITCAP( ), LOWER ( ) dan UPPER( ), SUBSTR( ) dan KOMBINASI CHARACTER FUNCTION. Untuk memproses data numerik menggunakan (Numeric Function) yang meliputi FLOOR ( ) dan MOD ( ). Untuk memproses data tanggal menggunakan (Date Function) meliputi ADD_MONTHS. Untuk melakukan konversi data menggunakan (Convension Function) meliputi Konversi Tanggal ke Karakter dengan TO_CHAR , untuk memproses semua tipe data menggunakan (General Function) meliputi NULLIF. 2. Dengan menggunakan Group Function. Kita juga dapat menggunakan sql untuk menghitung nilai rata-rata dari kelompok data x menggunakan AVG, untuk menghitung jumlah data dari kelompok data x menggunakan COUNT, untuk menghitung nilai tertinggi dan nilai terendah dari kelompok data x menggunakan MAX dan MIN, untuk menghitung nilai standar deviasi dari kelompok data x menggunakan STDDEV, untuk menghitung jumlah total dari data yang ada di kelompok data x menggunakan SUM, untuk menghitung nilai variance dari kelompok data x menggunakan VARIANCE, untuk mengelompokkan data berdasarkan suatu kriteria pada perintah select menggunakan GROUP BY, untuk untuk menyeleksi data berdasarkan kriteria tertentu GROUP BY dengan HAVING.

Jumat, 09 November 2012

DDL dan DML Landasan Teori Data Definition Language (DDL) adalah bahasa SQL yang digunakan untuk mendefinisikan, menghapus, memberi hak akses ataupun menganalisa objek-objek database. Yang terdiri atas perintah-perintah SQL yang secara langsung membuat objek database seperti tabel dan index. Kita juga dapat mendefinisikan key index maupun menspesifikasikan link antar tabel. Data Manipulation Language (DML) adalah bahasa yang digunakan untuk memanipulasi objek-objek yang ada di database.Yang terdiri atas perintah SQL yang secara lansung dapat menginputkan data, merubah data, menghapus data, serta menampilkan data dari database. Oleh karena itu DDL lebih berhubungan pada objek bukan pada isi atau data. kata-kata yang akan sering kita jumpai dalam DDL antara lain : Create, Use, Alter, dan Drop. Sedangkan DML lebih berhubungan pada isi atau data-datanya. Kata-kata yang sering kita jumpai pada DML antara lain : Insert into, Update, Delete, dan Select. A. PEMBAHASAN DATA DEFINITION LANGUAGE DAN DATA MANIPULATION LANGUAGE Jalankan Oracle caranya : All program Oracle - OraDb10g_home1 Application Development SQL Plus. 2. Aktifkan mode SPOOL dengan mengarahkan ke folder masing-masing, misal fina001 maka ketikkan perintah : SQL > SPOOL D:\sql\sqlsales.txt; 3. Buatlah user “sales1” dengan password : “amikom” 4. Berikan hak akses untuk user sales1 dengan perintah Grant DBA to sales1;
5. Membuat tabel wilayah : 7 Membuat tabel barang : SQL> create table BARANG( 2 KODE_BRG NUMBER(7) CONSTRAINT PK_BARANG PRIMARY KEY, 3 NAMA_BRG VARCHAR2(50), 4 IMAGE_ID NUMBER(7), 5 HARGA_JUAL NUMBER(11,2), 6 SATUAN VARCHAR2(25), 7 KETERANGAN VARCHAR2(30));
7 Membuat tabel pelanggan : SQL> create table PELANGGAN; 2 ID_PLG NUMBER(7) CONSTRAINT PK_PELANGGAN PRIMARY KEY, 3 NAMA_PLG VARCHAR2(50) NOT NULL, 4 TELEPON_PLG VARCHAR2(15), 5 ALAMAT VARCHAR2(400), 6 KOTA VARCHAR2(35), 7 KODE_POS VARCHAR2(10), 8 KODE_WILAYAH NUMBER(7) REFERENCES WILAYAH(KODE_WILAYAH)); 8 Membuat tabel jual : SQL> create table JUAL( 2 ID_JUAL NUMBER(7) CONSTRAINT PK_ORDER PRIMARY KEY, 3 ID_PLG NUMBER(7) REFERENCES PELANGGAN(ID_PLG), 4 TGL DATE, 5 TOTAL NUMBER(12,2));
9. Menampilkan struktur tabel pelanggan dengan menggunakan syntak : SQL> desc PELANGGAN; 10. Mengubah struktur tabel : a. ADD untuk menambah kolom baru pada tabel dengan syntak berikut : SQL> alter table PELANGGAN add AGAMA VARCHAR2(7); b. DROP digunakan untuk menghapus kolom dengan syntak sebagai berikut : SQL> alter table PELANGGAN drop column AGAMA;
A. DML (DATA MANIPULATION LANGUAGE) 1. Insert digunakan untuk memasukkan data ke dalam tabel Lakukan perintah insert untuk tabel wilayah dengan syntak : SQL> insert into WILAYAH VALUES (1,‘JAWA’);
2. Kemudian lakukan perintah insert tersebut pada tabel barang, pelanggan, dan tabel jual masing-masing berjumlah 5 data. Perintah insert pada tabel barang :
Perintah insert pada tabel pelanggan :

Sabtu, 20 Oktober 2012

pembahasan cara membuat user baru SQL > create user (nama_file) identified by (password)
untuk memberi grant atau hak kepada user rindi kita dapat menggunakan syntaks sebagai berikut : SQL > grant DBA to rindi;
kita bisa masuk ke user rindi dengan syntaks berikut: SQL > connect to rindi; dan masukan passwordnya
membuat table GURU dengan data berikut : SQL> create table GURU;
membuat table KELAS dengan syntaks berikut: SQL > create table KELAS;
membuat table KELAS dengan syntaks berikut: SQL > create table KELAS;
membuat table murid dengan syntaks berikut: SQL > create table MURID;
membuat table ulangan dengan syntaks : SQL > create table ULANGAN;
membuat table belajar dengan syntaks berikut : SQL > Create table BELAJAR;

Jumat, 19 Oktober 2012

Landasan Teori DDL merupakan singkatan dari Data Definition Languagr yang juga bagian dari SQL. DDL berfungsi lebih kedalam manipulasi struktur database. DDL digunakan untuk membuat tabel atau menghapus tabel, membuat key atau indeks, membuat relasi antar beberapa statement Atau syntaks yang sering dijumpainadalah sebagai berikut : CREATE TABLE => Untuk membuat table CREATE INDEX => Untuk membuat indeks dalam table DROP TABLE => Untuk menghapus table DROP INDEX => Untuk menghapus indeks ALTER TABLE => Untuk merubah struktur suatu table  CREATE Digunakan untuk membuat table, ideks. CREATE TABLE Nama tabel(atribut dan domain) Sebagi tambahan setiap kolom pada pendefinisian table dapat dilengkapi dengan UNIQUE, NOT UNIQUE,NULL,NOT NULL. NULL : Untuk menyatakan nilai kolom dapat diisi NOT NULL : Untuk menyatakan nilai kolom harus diisi UNIQUE : Untuk menyatakan nilai pada kolom tidak ada yang sama NOT UNIQUE : Untk menyatakan nilai pada kolom boleh sama.  ATER TABLE Digunakan untuk mengubah struktur table Contoh : ALTER TABLE tabel pegawai ADD nama pegawai STRING (35) Perintah ini merupakan pernyataan untuk menambah kolom dengan nama kolom NAMA PEGAWAI dengan tipe STRING.  DROP Perintah ini digunakan untuk menghapus kolom. Contoh : DROP TABLE Tabel_data_pengunjung_perpustakaan Perintah ini digunakan untuk menghapus TABLE DATA PENGUNJUNG PERPUSTAKAAN. Pembahasan : Landasan Teori DDL merupakan singkatan dari Data Definition Languagr yang juga bagian dari SQL. DDL berfungsi lebih kedalam manipulasi struktur database. DDL digunakan untuk membuat tabel atau menghapus tabel, membuat key atau indeks, membuat relasi antar beberapa statement Atau syntaks yang sering dijumpainadalah sebagai berikut : CREATE TABLE => Untuk membuat table CREATE INDEX => Untuk membuat indeks dalam table DROP TABLE => Untuk menghapus table DROP INDEX => Untuk menghapus indeks ALTER TABLE => Untuk merubah struktur suatu table  CREATE Digunakan untuk membuat table, ideks. CREATE TABLE Nama tabel(atribut dan domain) Sebagi tambahan setiap kolom pada pendefinisian table dapat dilengkapi dengan UNIQUE, NOT UNIQUE,NULL,NOT NULL. NULL : Untuk menyatakan nilai kolom dapat diisi NOT NULL : Untuk menyatakan nilai kolom harus diisi UNIQUE : Untuk menyatakan nilai pada kolom tidak ada yang sama NOT UNIQUE : Untk menyatakan nilai pada kolom boleh sama.  ATER TABLE Digunakan untuk mengubah struktur table Contoh : ALTER TABLE tabel pegawai ADD nama pegawai STRING (35) Perintah ini merupakan pernyataan untuk menambah kolom dengan nama kolom NAMA PEGAWAI dengan tipe STRING.  DROP Perintah ini digunakan untuk menghapus kolom. Contoh : DROP TABLE Tabel_data_pengunjung_perpustakaan Perintah ini digunakan untuk menghapus TABLE DATA PENGUNJUNG PERPUSTAKAAN.

Minggu, 14 Oktober 2012

Secara default pada saat melakukan instalasi oracle akan dibuatkan satu database global. Oracle mengartikan database sebagai global database yang didalamnya terdapat banyak schema/user dan didalamnya terdapat banyak object database. 2. Jalankan Oracle caranya : All program Oracle - OraDb10g_home1 Application Development SQL Plus 3. Masukkan
2. Jalankan Oracle caranya : All program Oracle - OraDb10g_home1 Application Development SQL Plus 3. Masukkan User Name = “system” dan Password=…….
Kita juga bisa masuk ke sql plus menggunakan command prompt seperti gambar berikut:
4. Melakukan pengecekan terhadap database anda dengan perintah berikut:
Melakukan pengecekan ada berapa user atau schema dalam database, caranya:
Untuk mengetahui kita berada di schema mana maka ketikkan:
Secara default user Scott belum bisa digunakan karena masih di-lock. Apabila ingin menggunakan user tersebut maka buka lock user tersebut dengan cara:
Secara default pada saat melakukan instalasi oracle akan dibuatkan satu database global. Oracle mengartikan database sebagai global database yang didalamnya terdapat banyak schema/user dan didalamnya terdapat banyak object database.
1.Secara default pada saat melakukan instalasi oracle akan dibuatkan satu database global. Oracle mengartikan database sebagai global database yang didalamnya terdapat banyak schema/user dan didalamnya terdapat banyak object database. Jalankan Oracle caranya : All program Oracle - OraDb10g_home1 Application Development SQL Plus 3. Masukkan User Name = “system” dan Password=…….
Melakukan pengecekan terhadap database anda dengan perintah berikut:
Melakukan pengecekan ada berapa user atau schema dalam database, caranya:
Untuk mengetahui kita berada di schema mana maka ketikkan:
Apabila ingin menggunakan user lain maka untuk buka lock user tersebut dengan cara:
Ganti password user scott menjadi oracle dengan cara:
PERMASALAHAN SQL hampir selalu dijumpai pada sisrem database relasional. Meskipun demikian system database kmersial juga membutuhkan query yang lebih ramah pengguna (user friendly) dimana pada umumnya terlalu rumit jika diperoleh lewat bahasa pemrograman seperti C#, C++, dan java. Disini kita akan sedikit mempelajari query sederhana yang merupakan bahasa permohonan tersukses dan juga akrab di kalangan programmer di Indonesia. LANDASAN TEORI Meskipun sesuai dan sering digunakan sebagai bahasa query SQL tidak hanya digunakan untuk database ,dapat pula digunakab untuk mendefinisikan struktur data dan modifikasi data pada database. Secara umum bahasa SQL memiliki beberapa bagian yaitu:  DDL (Data Definition language) SQL yang menyediakan perintah-perintah untuk mendeskripsikan skema relasi, menghapus, serta memodifikasi.  DML (Data Manipulation Language) SQL yang digunakan untuk menyisipkan rekaman pada relasi, mrnghapus, serta memodifikasi relasi.  View Definition SQL yang memuat perintah untuk mendefinisikan tampilan- tampilan yang dikehendaki.  Transaction Control SQL yang memuat perintah – perintah untuk menspesifikasi awal dan akhir trasaksi.  Embedded SQL dimana dynamic SQL terminology ini mencakup kemampuan untuk mendeskripsikan pada bahasa pemrograman.  Integrity Mencakup perintah untuk menspesifikasi batasan integritas.  Authorization Mencakup perintah untuk membatasi akses pada basis demi keamanan. 1,Secara default pada saat melakukan instalasi oracle akan dibuatkan satu database global. Oracle mengartikan database sebagai global database yang didalamnya terdapat banyak schema/user dan didalamnya terdapat banyak object database. 2. Jalankan Oracle caranya : All program Oracle - OraDb10g_home1 Application Development SQL Plus 3. Masukkan User Name = “system” dan Password=…….
Melakukan pengecekan terhadap database anda dengan perintah berikut:
Melakukan pengecekan ada berapa user atau schema dalam database, caranya:
Untuk mengetahui kita berada di schema mana maka ketikkan:
Apabila ingin menggunakan user lain maka buka lock userterlebih dahulu dengan cara:
Ganti password user sesuai dengan password yang kita hendaki dengan cara:
Berpindah dari user system ke user scott caranya :
Atau bisa juga dengan mengisikan username dan password sebagai berikut :
Lakukan pengecekan di schema scott untuk mengetahui object database yang ada didalamnya, caranya :
Untuk menampilkan isi buffer sql*plus atau menampilkan perintah yang terakhir diketik dan cara menjalankannya gunakan syntak berikut:
Untuk menyimpan perintah yang ada di buffer menjadi file script dan menamainya dengan latihan_oracle.sql gunakan perintah berikut :
Untuk mengetahui default penyimpanan ketik perintah berikut untuk memanggil MS Dos Prompt:
berarti file latihan_oracle.sql disimpan di E:\oracle\product\10.2.0\BIN> kemudian ketik exit untuk kembali ke sql*plus. Apabila proses penyimpanan akan ditujukan pada satu folder tertentu maka ketikkan tempat penyimpanan yang dimaksud missal akan disimpan ke folder f:\amikom maka tuliskan perintah berikut:
Untuk memuat file script tersebut ke buffer sql ketikkan perintah berikut:
Apabila ingin langsung menjalankan file script tersebut gunakan perintah perintah berikut:
atau juga dapat menggunakan perintah berikut :
Kemudian untuk menghilangkan perintah dari buffer membersihkan buffer dari perintah gunakan syntak berikut:
Untuk mengedit kita bisa mengetikkan edit. Apabila kita akan membuat suatu aplikasi dan kita membutuhkan suatu database maka yang kita lakukan adalah membuat user/schema karena didalam oracle sebenarnya telah terdapat database global yang didalamnya menckup banyak user/schema. Untuk memulai objek database pada suatu schema tertentu maka yang kita lakukan pertama kali adalah membuat user/schema.
Akhiri koneksi dari database dengan perintah disconnect. Dengan perintah tersebut, utility SQL plus tetap berjalan tetapi koneksi ke database terputus. Sedangkan untuk mengakiri atau keluar dari SQL plus gunakan perintah exit SQL (Structured Query Language) adalah bahasa query yang standard yang digunakan sebagai suatu bahasa sederhana dan dasar, yang memungkinkan Anda untuk berkomunikasi dengan database, membaca, menulis, dan memperoleh informasi yang berguna dari database. KESIMPULAN SQL terbagi 3 bagian besar, untuk operasi pemakai : DDL = mendefinisikan struktur database seperti pembuatan table / index DML = Bagian untuk memanipulasi data DCL = Bagian untuk mengontrol data  View Definition SQL yang memuat perintah untuk mendefinisikan tampilan- tampilan yang dikehendaki.  Transaction Control SQL yang memuat perintah – perintah untuk menspesifikasi awal dan akhir trasaksi.  Embedded SQL dimana dynamic SQL terminology ini mencakup kemampuan untuk mendeskripsikan pada bahasa pemrograman.  Integrity Mencakup perintah untuk menspesifikasi batasan integritas.  Authorization Mencakup perintah untuk membatasi akses pada basis demi keamanan.