Monday, July 18, 2011

INTRODUCTION TO CONTROL INPUT / OUTPUT

Definitions and Requirements for Control I / O A control system I / O aims to provide assistance to users to enable them to access files, regardless of the details of the characteristics and storage time. Control I / O related to file management and management tools that are part of the operating system. The task of the Control System I / O is: 1) Maintaining a directory of files and location information 2) Determine the path for the flow of data between main memory and secondary storage devices 3) Coordinate komunimasi between the CPU and secondary storage devices 4) Prepare a file using the input or output has been completed
Channel On most computer systems, the CPU is not burdened handle tasks associated with the I / O. But the responsibility for control of equipment delivered to the processor I / O, known as the channel I / O (I / O channels). Channel I / O processor itself is programmed. The programs in this so-called channel-execute the program. This program determines the operating channel, which is required for equipment access and control the data path (data pathway).
Types of Channel 1. Channel selector; Can regulate the flow of data between main memory with a piece of equipment at that time. Since the channel is a fast processors then the channel selector normally only use I / O device with high speed, like a disk. Use of equipment with low speeds, eg card reader. 2. Multiplexor Channel; Can regulate the flow of data between main memory with some equipment. Multiplexor channel is more effective when using equipment with low speeds, as compared with channel selector. With the multiplexor channel, some equipment can be activated simultaneously, but the channels must complete the channel program for the equipment before starting the other program channels. 3. Block Multiplexor Channel; Regulate the flow of data to various devices. Block Multiplexor Channel can execute one instruction of the program channels to one device, can then transfer instructions from the channel program to other equipment.
Miscellaneous Device 1. Dedicated Device; Used for access by one person at any time. Example: Terminal. 2. Shared Device; Used for access by multiple users simultaneously. Example: Disk.
Activity I / O to shared devices is very complex compared to the activity I / O on a dedicated device. Two very important function of the shared device is the allocation of places and the provision of timely access. Channel Activity The purpose of the channel I / O is as an intermediary between the CPU, main memory with a storage controller unit. CPU communicates with the channel through a few simple commands. Some channels will give the command: Test I / O, to determine whether the pathway (pathway) that led to the equipment is busy. Start I / O, on certain equipment. Halt I / O, on certain equipment. Channel typically communicates with the CPU through an interrupt. Interruptions will occur, if the error condition is detected, such as CPU instructions are incorrect or if the activity I / O has been terminated. If an interrupt occurs, control will be forked through regularly interrupt handler (interrupt-handler routine), where the control will determine the cause of the interruption, doing the right activities, then return control to the caller (caller).
Buffer Management Divided into four types of management are: 1. Single Buffering; 2. Anticipatory Buffering; 3. Double Buffering; 4. Three Buffers; 1. Single Buffering;


The picture above shows the structure of the data from the buffer in the form of a simple, consisting of one record per block and one buffer per file, where it serves to fill the request buffer of a program. This buffer structure contains a pointer to the start address & channel program to the file. The basic structure of the channel program to fill the buffer is: Wait for instructions from the program READ Inform instruction start I / O to the control unit Wait until the buffer is emptied Inform interruptions in the program so it can start reading from the buffer The problem that arises here is the user program at the time idle waiting for the buffer filled.
2. Anticipatory Buffering; Another approach that can eliminate some things that might be to wait for the CPU is using Anticipatory Buffering. With the anticipatory buffering, the control system I / O will try to put the needs of the program data. Endeavored that the buffer is always full. Channel always test this flag. If the buffer is near empty, because the user program has to read its contents then the flag will be reset and channel programs will menginitates replenishment buffer. The structure of the channel program to fill a buffer with anticipatory buffer is shown in the figure below:

3. Double Buffering; To reduce the possibility of waiting for the program, then the double buffer can be used. Two of the buffers that exist, only one set for the file. The basic idea of ​​double buffering is if the consumer emptied one buffer, then the producer can fill into the buffer to another, when the first buffer is empty, then the second buffer must be fully charged. Then the consumer can mengkosongkan a second buffer, when the first producer to fill buffers, and so on.

4. Three Buffers;
pfill: which indicates the next buffer will be filled or being filled pempty: which indicates the next buffer will be emptied or being emptied

Murottal Al.Quran Ash-Shaykh Ali ibn Abd al-Hudaify

Click the Name Letter, please:

     Al-Fatihah
     Al-Baqarah
     Ali Imran
     An-Nisaa '
     Al-Maidah
     Al-An'am
     Al-A'raaf
     Al-Anfal
     At-Tauba
     Jonah
     Hud
     Joseph
     Ar-Raad
     Ibrahim
     Al-Hijr
     An-Nahl
     Al-Israa '
     Al-Kahf
     Maryam
     Taha
     Al-Anbiyaa '
     Al-Hajj
     Almu'minun
     An-Nuur
     Al-Furqan
     Ash-Syu'araa
     An-Naml
     Al-Qasas
     Al-Ankabuut
     Ar-Rum
     Luqman
     As-Sajda
     Al-Ahzab
     Saba
     Fatir
     yaa Seen
     Ash-Shaaffaat
     Sad
     Az-Zumar
     Al-Mu'min
     Al-Fushshilat
     Ash-Syuura
     Az-Zukhruf
     Ad-Dukhan
     Al-Jaatsiyah
     Al-Ahqaaf
     Muhammad
     Al-Fath
     Al-Hujurat
     Qaf
     Adh-Dzaariiyaat
     Ath-Thuur
     An-Najm
     Al-Qamar
     Ar-Rahman
     Al-Waqi'ah
     Al-Hadiid
     Al-Mujaadilah
     A l-Hashr
     Al-Mumtahanah
     Ash-Shaf
     Al-jumu'a
     Al-Munaafiqun
     At-Taghaabun
     Ath-Thalaaq
     At-Tahrim
     Al-Mulk
     Al-Qalam
     Al-Haaqah
     Al-Ma'aarij
     Noah
     Al-Jin
     Al-Muzzammil
     Al-Muddatstsir
     Al-Qiyama
     Al-Insan
     Al-Mursalaat
     An-Naba '
     An-Naazi'aat
     Abasa
     At-Takwiir
     Al-Infithaar
     Al-Muthaffifiin
     Al-Insyiqaaq
     Al-Buruuj
     Ath-Thaariq
     Al-A'laa
     Al-Ghaasyiyah
     Al-Fajr
     Al-Balad
     Ash-Shams
     Al-Lail
     Adh-Dhuhaa
     Nature Nasyrah
     The Fig
     Al-'Alaq
     Al-Qadr
     Al-Bayyinah
     Az-Zalzalah
     Al-'Aadiyaat
     Al-Qaari'ah
     Al-Takaatsur
     Al-'Ashr
     Al-Humazah
     A l-Fill
     Quraishi
     Al-Maa'uun
     Al-Kautsar
     Al-Kaafiruun
     An-Nasr
     Al-Lahab
     Al-Ikhlash
     Al-Falaq
     An-Naas

TI highlights STMIK charisma

Kharisma STMIK Falkirk will be holding an event titled "Gebyar IT in 2011" with two events. The first event of the seminar "Doing business through a blog" with speakers from BLOGGER Team Falkirk. The second event is "a race Post Article About Linux".
1. As for the seminar will be held on:

    
Day / Date: Saturday, June 26, 2011
    
Hours: 08.00 till finish
    
Venue: 2nd Floor Campus Kharisma Jl. Struggle base Km.1 By Pass Falkirk
    
Contact: Dendi Prana Yudha (0857 8001 0405) / Rahmat Saifudin (0856 9709 3674)
    
Email: seminarkharisma@yahoo.com
Terms enrollment seminars:

    
Fill out the registration form Click Here
    
via email: seminarkharisma@yahoo.com or come to campus STMIK Kharisma Falkirk.
    
Pay the registration fee for participants:
        
Government and Private Rp 50.000, -
        
Teachers, Lecturers and General 50,000
        
Students and Student Rp 30.000, -
    
Payment by Bank Transfer to Account No. Branch BJB Falkirk with No. 0009977481100 a / n BEM STMIK Kharisma Falkirk
    
Most Slow Registration Date June 23, 2011
Seminar participants get a certificate, Seminar Kit, Snack and Doorprise interesting.
2. Meanwhile for the race event Post Article About linux start after registration.
Terms of race registration:

    
Fill out the registration form Click Here
    
via email: artikelkharisma@yahoo.com or come to campus STMIK Kharisma Falkirk.
    
Pay the registration fee for participants:
        
Only for students and students with the cost pendafaran
        
Rp 50.000, - and 1 free entrance ticket to the seminar.
    
Payment by Bank Transfer to Account No. Branch BJB Falkirk with No: 0009977481100 a / n BEM STMIK Kharisma Falkirk
    
Most Slow Registration Date June 23, 2011
Rule Of Game:

    
Implemented prior to posting articles of date June 23, 2011

    
Registering your blog address to the committee participants

    
If posting the article "copy - paste" (Disqualification)

    
If the posting is done after date June 23 (WILL NOT BE CONSIDERED)

    
Lists the Linux Logo Such charisma On Post

    
Link Download Iso Linux lists Kharisma At Post: http://belajar.internetsehat.org/iso/stmikkharisma/laksana-desktop-i386.iso

11.04 ubuntu update error

maybe my friends have experienced anything like I experienced at the time the update ubuntu with the command sudo apt-get update at the time of completion there is an error writing updates the repository can not be opened or parsed.

Yesterday I also had experienced anything like it, here I want to share how to restore ubuntu 11:04 update to be successful without having to reinstall.

into the terminal: Applications> Accessories> Terminal

then typing the following command:

sudo rm / var / lib / apt / lists / *-vf (hit enter)

still in the terminal, after typing the above command typing this command:

sudo apt-get upgrade (press enter)

sudo apt-get update (hit enter)

yesterday thank God I managed to restore the system updates and error does not happen again.

note:

* when typing the command you are using a display unity can not then change the first to classic view.

create a database in pascal

mmm ...
This one cooperative program that uses the pascal program and enter data into a text input with extension. dat
program is also quite a bit complicated, but for what's wrong with learning materials in the share?
check this sources:
program sales;
uses crt;

 
type

 
data = record

 
no, number: integer;

 
nama_barang: string;

 
price, harga_barang: real;

 
end;

 
var

 
rdata: array [1 .. 100] of the data;

 
filedata: file of data;

 
f: data;

 
number: integer;

 
datacari: string;
procedure title;
begin
writeln ('COOP STUDENTS' KHARISMA KARAWANG "');
writeln ('jl. Pangkal Struggle KM.1 By Pass');
writeln ('KARAWANG');
writeln ('*********************************************** *******************');
writeln;
end;
procedure added;
var
i: integer;
again: char;
begin
clrscr;
title;
writeln ('Enter the additional data');
assign (filedata, 'jual.dat');

 
reset (filedata);

 
seek (filedata, filesize (filedata));

  
write ('Item:');

  
readln (f.nama_barang);

  
write ('price:');

  
readln (f.harga);

  
write ('amount:');

  
readln (f.jumlah);

  
f.harga_barang: = f.harga * f.jumlah;

  
write (filedata, f);

  
close (filedata);
end;
delete procedure;
var
i, j: integer;
nm: string;
begin
assign (filedata, 'jual.dat');

 
reset (filedata);

 
j: = 0;

 
while not eof (filedata) do

  
begin

     
inc (j);

     
read (filedata, rdata [j]);

  
end;

 
writeln ('Enter the name of the item be deleted:');

 
readln (nm);

 
i: = 1;
while (i <= j) and (rdata [i]. nama_barang <> nm) do
inc (i);

  
if nm = rdata [i]. nama_barang then

   
begin

   
dec (j);

    
for i: = i to j do

     
rdata [i]: = rdata [i +1];

     
rewrite (filedata);

     
for i: = 1 to j do

     
write (filedata, rdata [i]);

     
writeln ('Press enter to start the delete');

     
readln;

     
writeln ('S N K S E S');

   
end

   
else

   
writeln ('SORRY data not found');

   
readln;

   
close (filedata);

  
end;
edit_data procedure;
var
i, p: integer;
again: char;
dataedit: string;
begin
assign (filedata, 'jual.dat');
reset (filedata);
writeln ('input the name of the data to be edited [written in small letters]:');
readln (dataedit);
i: = 1;
while not eof (filedata) do
begin
read (filedata, rdata [i]);
begin
if dataedit = rdata [i]. nama_barang then

 
begin

  
p: = filepos (filedata); writeln (p);

  
p: = p-1;

  
seek (filedata, p);

  
writeln ('input surrogate data:');

   
writeln ('no', i: 2);

   
write ('item name:'); read (rdata [p]. nama_barang);

   
write ('price:'); read (rdata [p]. price);

   
write ('number'); read (rdata [p]. number);

   
rdata [p]. harga_barang: = rdata [p]. price * rdata [p]. number;

   
write (filedata, rdata [p]);

 
end;
end;
i: = i +1;
end;
close (filedata);
end;
in_data_barang procedure;
var i: integer;

    
again: char;
begin
i: = 1;
assign (filedata, 'jual.dat');

 
rewrite (filedata);

 
reset (filedata);

 
begin
repeat

 
begin

   
clrscr;

   
title;

   
writeln ('input to lowercase');

   
writeln ('no', i);

   
write ('item name:'); readln (rdata [i]. nama_barang);

   
write ('price:'); readln (rdata [i]. price);

   
write ('number'); readln (rdata [i]. number);

   
rdata [i]. harga_barang: = rdata [i]. price * rdata [i]. number;

   
write (filedata, rdata [i]);

   
writeln;

   
writeln ('want to input the data again [y / t]:');

   
readln (again);

   
i: = i +1;

 
end;

 
until ((again = 't') or (again = 'T'));

 
close (filedata);

 
end;

 
end;
tampil_daftar_barang procedure;
var i: integer;
begin
assign (filedata, 'jual.dat');
reset (filedata);

      
writeln ('LIST OF GOODS IN THE $ 1,000,000');

  
writeln ('=============================================== ==============');

  
writeln ('NO NAME OF STOCK PRICE / S TOTAL');

  
writeln ('=============================================== ==============');
i: = 1;
while not eof (filedata) do
begin

 
read (filedata, rdata [i]);

 
if (rdata [i]. price)> = 1000000 then

    
begin

  
write (i);

  
write ('', rdata [i]. nama_barang: 10);

  
write ('', rdata [i]. price: 10:0);

  
write ('', rdata [i]. number: 2);

  
writeln;

 
i: = i +1;

 
end;

 
end; writeln;

 
end;
cetak_daftar_barang procedure;
var i, select: integer;

    
total: real;
begin
repeat
clrscr;
assign (filedata, 'jual.dat');
reset (filedata);

 
total: = 0;

 
begin
title;
writeln ('LIST SALES');
writeln ('=============================================== ===========================');
writeln ('NO NAME OF STOCK PRICE / S TOTAL PRICE OF GOODS');
writeln ('=============================================== ===========================');
i: = 1;
while not eof (filedata) do

 
begin

 
read (filedata, rdata [i]);

  
write (i);

  
write ('', rdata [i]. nama_barang: 10);

  
write ('', rdata [i]. price: 10:0);

  
write ('', rdata [i]. number: 2);

  
write ('', rdata [i]. harga_barang: 8:0);

  
writeln;

  
total: = total + rdata [i]. harga_barang;

  
i: = i +1;

 
end;
writeln ('----------------------------------------------- ----------------------');
writeln ('TOTAL SALES;', Total: 3:0);
writeln;
writeln;
tampil_daftar_barang;
end;
writeln ('- Choice --');
writeln ('**************************');
writeln ('1. Add sales data ');
writeln ('2. Remove the sales data ');
writeln ('3. Edit the sales data ');
writeln ('4. Go to the Main MENU ');
writeln ('**************************');
readln (choice);
case select of

 
1: add;

 
2: delete;

 
3: edit_data;

 
end;

 
until (select = 4);
end;
search procedure;
var
i, number: integer;
match, name: string;
price, harga_barang: real;
begin

 
assign (filedata, 'jual.dat');

 
reset (filedata);

  
match: = datacari;

   
begin

   
i: = 1;

   
while not eof (filedata) do

    
begin

    
read (filedata, rdata [i]);

    
if matches = rdata [i]. nama_barang then

     
begin

     
name: = rdata [i]. nama_barang;

     
Price: = rdata [i]. price;

     
number: = rdata [i]. number;

     
harga_barang: = rdata [i]. harga_barang;

    
end;

     
end;

     
i: = i +1;

     
end;
if (name ='') then

 
begin

  
writeln ('SORRY NO DATA AVAILABLE ")

  
end

  
else

  
begin

  
title;

  
writeln ('LIST SEARCH');
writeln ('=============================================== =======================');
writeln ('NAME OF GOODS PRICE / S TOTAL PRICE OF GOODS');
writeln ('=============================================== =======================');

  
writeln;

  
Write (name: 10);

  
write (price: 35:0);

  
write (number: 8);

  
write (harga_barang: 12:0);

  
writeln;

  
writeln ('----------------------------------------------- --------------------------');

  
writeln;

  
end;
:=''; name
Price: = 0;
number: = 0;
harga_barang: = 0;
end;
cek_data_barang procedure;
var
again: char;
begin

 
repeat

 
clrscr;
title;
writeln ('Enter the name of the data in search [written in small letters]:');
readln (datacari);
clrscr;
search;
writeln ('Do want to find the data again? [y / t]');
readln (again);
writeln;
until (again = 'T') or (again = 't');
end;
begin
repeat
clrscr;
title;

  
writeln ('- MENU --');

  
writeln ('************************');

  
writeln ('1. IN GOODS DATA ');

  
writeln ('2. CHECK DATA ITEM ');

  
writeln ('3. PRINT LIST OF GOODS ');

  
writeln ('4. E X I T ');

  
writeln ('************************');

  
writeln;
writeln ('Select Transaction Type =');
readln (number);

  
clrscr;
case number of

  
1: in_data_barang;

  
2: cek_data_barang;

  
3: cetak_daftar_barang;
end;
until number = 4;
end.
for my friends who want to program in the form of extensions. textnya fit and in shape. dat
can be downloaded here:
Click Here
Do not Just Copy Paste Continue to Smile, But Let's Learn And try to show creativity.
Information


Saturday, June 25, 2011

SQL ( Structured Query Language )


Structured Query Language
Sejarah
  • Tahun 1986, ANSI (American National
Standards Institute) dan ISO mengumumkan standard SQL, SQL-86
  • IBM merilis Systems Application Architecture) SAA-SQL tahun 1987
  • Berturut-turut ANSI merilis SQL-89, SQL- 92, dan SQL- 99
SQL (Structured query language)
  • SQL adalah bahasa yang digunakan untuk mengelola database relasional
  • SQL adalah bahasa standard untuk sistem manajemen database relasional
  • Sistem database yang menggunakan SQL :
    1. Oracle
    2. DB2
    3. Sybase
    4. MS SQL
    5. MS Access
    6. My SQL
Type Data
Dibedakan menjadi :
    1. Tipe data numerik
semua data bilangan yang dapat diperhitungkan bukan angka yang bersifat keterangan, mis jumlah komputer
jenis tipe data numerik : integer, float, single, double, currency.


          2. Tipe data karakter
semua data huruf, angka dan tanda baca jenis tipe data karakter : char, string, text, memo.

          3. Tipe data tanggal
mendefinisikan waktu
jenis tipe data waktu : date, datetime, time, timestamp.

          4. Tipe data boolean ; tipe data khusus untuk menyatakan status benar atau salah, ya atau tidak.

kebanyakan mereka memiliki perintah tambahan yang proprietary.
Jenis perintah SQL :
    1. DDL (Data Definition Language)
    2. DML (Data Manipulation Language)
    3. DCL (Data Control Language)
Skema Contoh
Struktur Dasar
  • Select, berkaitan dengan operasi proyeksi
pada aljabar relasional. Digunakan untuk mendaftar atribut yang ingin dikeluarkan sebagai hasil query
  • From, berkaitan dengan operasi produk
kartesian (relasi mana yang akan di-scan)
  • Where, berkaitan dengan predikat seleksi.

Operasi SELECT
Operasi select digunakan untuk mengambil sebagian atau seluruh isi tabel dari suatu basisdata.
Contoh : “Tentukan nama-nama dari semua cabang bank dalam relasi loan “
Query-nya :
SELECT branch-name FROM loan
 
Operasi WHERE
Klausa where menspesifikasi kondisi yang harus dipenuhi oleh hasil query
– Berkaitan dengan predikat seleksi pada aljabar relasional.
Contoh : “Temukan semua loan number untuk pinjaman-pinjaman yang dibuat pada cabang Perryridge dengan jumlah lebih besar dari $1200”.
Query-nya ditulis sebagai berikut :
SELECT loan-number FROM loan WHERE branch-name = “Perryridge” and amount >1200;
  • Perbandingan dapat dikombinasikan dengan
menggunakan operasi logika and, or, dan not.
  • Operand hubungan logika dapat menggunakan
operasi perbandingan <,<=,>,>=,=, dan <>
  • Contoh:
SELECT loan-number FROM loan WHERE amount <=100000 and amount >=90000;
  • SQL juga memasukkan perintah between
    • untuk menentukan apakah suatu nilai lebih kecil daripada atau sama dengan suatu nilai lain dan lebih besar daripada atau sama dengan suatu nilai lain.
    • Contoh : “jika diinginkan menemukan loan-number
yang jumlah pinjamannya antara $90000 dan $100000”
Query ditulis sebagai berikut :
SELECT loan-number FROM loan WHERE amount between 90000 and 100000
  • Klausa from menunjukkan daftar relasi
yang dilibatkan dalam query
– Berkaitan dengan operasi produk kartesian pada aljabar relasional
  • Contoh: Produk Kartesian dari borrower x loan
select * from borrower, loan;
Contoh query : “Untuk semua customer yang mempunyai sebuah pinjaman dari bank, temukan nama dan loan number mereka”.
Dalam SQL ditulis :
SELECT distinct customer-name,borrower.loan-number FROM borrower, loan WHERE borrower.loan-number = loan.loan-number
Contoh: “Tampilkan nama,loan number and loan amount dari semua customer yang memiliki pinjaman di cabang Perryridge”
select customer-name, borrower.loan-number, amount from borrower, loan where borrower.loan-number = loan.loan-number and branch-name = ‘Perryridge’

DDL (data definition language)
Merupakan kelompok perintah yang digunakan untuk melakukan pendefinisian tabel.
Kelompok perintah DDL dapat membuat :
    1. Tabel
    2. Mengubah struktur
    3. Menghapus tabel
    4. Membuat index
DML (Data manipulation Language)
Digunakan untuk melakukan manipulasi data dalam database, menambahkan (insert), mengubah (update), menghapus (delete), mengambil dan mencari data (query).
Perintah SQL standar tsb dapat digunakan untuk menyelesaikan tugas yang diberikan berhubungan dengan data suatu database.
Dcl (data control language)
Perintah untuk melakukan pendefinisian pemakai yang boleh mengakses database dan apa saja privilegenya.
Fasilitas ini tersedia pada sistem manajemen database yang memiliki fasilitas keamanan dengan membatasi pemakai dan kewenangannya.
Data definision language (DDL)
digunakan untuk melakukan pembuatan struktur database, mulai dari mendefinisikan database, tabel-tabel dan indexnya, view, dan perintah-perintah berkenaan dengan maintenance dari strukture database itu sendiri.
Membuat database
Perintah CREATE DATABASE namadatabase
Perintah ini digunakan pertama kali sebelum membuat tabel, view, fungsi, prosedur atau pun komponen lain suatu sistem database.
Contoh :
create database datamahasiswa;

Membuat tabel
Perintah CREATE TABLE namatabel(Field1 TipeData1 [, field2 tipedata2[, ...] ]
);
perintah ini diberikan untuk membuat tabel dalam suatu database
contoh :
create table kota(kodekota char(3) not null,namakota varchar(35) null,primary key (kodekota));

Menambah Field baru tabel
Perintah ALTER TABLE namatable
ADD fieldbaru tipenya;
namatabel adalah nama dari tabel yang akan ditambah fieldnya
fieldbaru adalah nama field yang akan ditambahkan .
Contoh :
alter table bukualamat add foreign key (kodekota) reference kota (kodekota);

Mengubah lebar field tabel Perintah ALTER TABLE namatabel
MODIFY fieldnya tipenya panjangbaru namatabel adalah nama dari table yang akan diubah salah satu fieldnya.
fieldnya adalah nama field yang akan diubah lebar fieldnya.
tipenya dan panjangbaru merupakan berubahan yang akan diterapkan kepada tabel tsb.
contoh :
alter table dbmahasiswa modify (nama_mahasiswa char(45));

Menghapus tabel
Perintah DROP TABLE namatabel
namatabel adalah nama dari tabel yang akan dihapus secara fisik.
penghapusan menyebabkan struktur dan data yang dibuat akan hilang
Menghapus database
Perintah DROP DATABASE namadatabase;
namadatabase adalah nama dari database yang akan dihapus.
penghapusan database akan menyebabakan seluruh struktur dan data yang ada didalamnya menjadi hilang

Membuat index
Perintah
CREATE INDEX namaindeks ON namatabel (namakolom1[,namakolom2, ...])
namaindeks adalah nama yang diacu untuk mendapatkan data index dari suatu kolom dalam tabel.
namatabel adalah nama dari tabel yang kolom-kolomnya akan dibuatkan indexnya.
contoh :
create index kotaonbukualamat on bukualamat (kodekota);

Menghapus index
Perintah DROP INDEX namaindex ON namatabel
penghapusan index tidak menyebabkan terhapusnya tabel.
penghapusan index tabel suatu kolom hanya menyebabkan prosees pencarian data pada kolom tersebut bisa lebih lambat.



Data manipulation language (DML)

Merupakan bagian dari SQL yang digunakan untuk melakukan manipulasi dalam database (tambah, ubah, hapus, cari)
Contoh Dataset Loan

loan-number branch-name amount
L-170 Downtown 3000
L-230 Redwood 4000
L-260 Perryridge 1700

Borrower
customer-name loan-number
Jones L-170
Smith L-230
Hayes L-155

Insert
Perintah INSERT INTO namatabel (field1 [,field2 [,...]]) VALUE (nilai1 [,nilai2 [,...]]; atau INSERT INTO namatabel VALUES (nilai1 [,nilai2[,...]]); 
namatabel adalah tabel yang akan diisi data.
field1,field2 ... Adalah field-field (kolom) dari tabel yang akan diisi
nilai1,nilai2 ... Adalah data yang akan dimasukkan dalam tiap kolom yang disebutkan pada bagian field.
Untuk menambahkan satu tuple dalam relasi digunakan statement
insert.
Contoh :
INSERT INTO account values (“Perryridge”,”A-9732”,1200)
Query ini identik dengan
INSERT INTO account (branch-name, account-number,balance) values (“Perryridge”,”A-9732”,1200)
Insert juga dapat dilakukan untuk suatu hasil dari query yang lain.
Contoh :
INSERT INTO account SELECT branch-name, loan-number, 200
FROM loan WHERE branch-name = “Perryridge”

Update
Perintah UPDATE namatabel
SET field1 = nilai1 [, field2= nilai2 [,...]] [WHERE kondisi];
namatabel adalah nama dari tabel yang akan diperbaiki datanya
field1 adalah nama field dalam tabel yang akan diubah.
nilai1 adalah data yang akan dimasukan ke dalam field1
field2 dan nilai 2 adalah nama field dan datanya dst.
kondisi adalah kriteria data dalam tabel yang akan diperbaiki
perintah update digunakan untuk memperbaiki data dalam suatu record (baris) dalam suatu tabel, perbaikan dapat dilakukan untuk satu record, beberapa atau seluruh record.
Contoh :
untuk menaikkan saldo para nasabah sebesar 5% ditulis
query sebagai berikut :
UPDATE account SET balance = balance * 1.05
Untuk menaikkan saldo nasabah sebesar 6% bagi nasabah yang saldonya lebih dari $10000
UPDATE account SET balance = balance *1.06 WHERE balance >10000
question :
Apa yang akan terjadi jika dalam pengupdate-an suatu record apabila lupa menulis kondisinya ?
Query yang sama dengan sebelumnya: Naikkan semua account dengan saldo di atas $10,000 sebesar 6%, account yang lain sebesar 5%.
update account set balance = case when balance <= 10000 then balance *1.05 else balance * 1.06 end

delete
Perintah DELETE FROM namatabel [WHERE kondisi];
namatabel adalah nama dari tabel yang akan dihapus datanya.
kondisi adalah kriteria data dalam tabel yang akan dihapus.
perintah DELETE digunakan untuk melakukan penghapusan record dari suatu tabel yang memiliki kondisi yang dinyatakan dalam pernyataan kondisi.
“Hapus semua account pada cabang Perryridge”
delete from account where branch-name = ‘Perryridge’
“Hapus semua account di setiap cabang yang berlokasi di Needham city”
delete from account where branch-name in (select branch-name
from branch where branch-city = ‘Needham’) delete from depositor
where account-number in (select account-number from branch, account
where branch-city = ‘Needham’ and branch.branch-name = account.branch-name)
Apa yang akan terjadi jika dalam DELETE suatu record apabila lupa menulis kondisinya ?


Data mahasiswa
NIM Nama Jurusan
2901 Anjar Sipil
2902 Jasmin Hukum
2903 Bayu Hukum

Ingin menghapus data Mahasiswa dengan NIM = 2902 :
DELETE from Mahasiswa Where NIM = 2902;
Hasil
NIM Nama Jurusan
2901 Anjar Sipil
2903 Bayu Hukum

Jika ingin menghapus record mahasiswa bernama Anjar dan Bayu bersamaan, dapat digunakan perintah :
DELETE from Mahasiswa
where Nama =‘Anjar’ or Nama=‘Bayu’;
Beberapa hal yang patut diperhatikan dalam penulisan perintah SQL adalah:
    1. Perhatikan huruf besar - huruf kecil. Agus tidak sama dengan agus. Gaji_Pegawai tidak sama dengan GajiPegawai.
    2. Jangan lupa untuk membubuhi tanda titik koma ( ; ) di setiap akhir penulisan perintah.
Select
Perintah
SELECT (* | field1 [,field2 [,...]]) FROM namatabel [WHERE kondisi]
namatabel adalah nama dari tabel yang akan ditampilkan datanya
field1,field2 ... Adalah nama field yang akan ditampilkan datanya.
* digunakan untuk menampilkan seluruh field dari tabel
kondisi adalah kriteria data dalam table yang akan ditampilkan
Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel
Kondisi
LIKE
merupakan kata kunci dalam SQL yang digunakan untuk mendefinisikan suatu kriterisa yang lebih fleksibel.
Kondisi yang dinyatakan dengan menggunakan LIKE dapat memfilter data sehingga dapat menampilkan suatu kriteria seolah dengan menggunakan bahasa inggris.
Perintah
SELECT * FROM namatabel WHERE namafield LIKE ‘datadicari’;
perintah ini akan menampilkan seluruh record dalam tabel yang memiliki data dalam nama field yang disebutkan dengan “datadicari”

Perintah
SELECT * FROM namatabel WHERE namafield LIKE ‘datadicari%’;
perintah ini akan menampilkan seluruh record dalam tabel yang memiliki data dalam nama field yang disebutkan diawali dengan “datadicari”
View
Perintah
CREATE VIEW namaview
AS ekspresiQuery
namaview adalah nama dari view yang akan dibuat
ekspresiQuery adalah perintah select dan kondisi query yang ditentukan sama seperti halnya pada saat melakukan perintah select dengan menggunakan kondisi.
Data control language (DCL)
Terdiri atas sekelompok perintah SQL untuk memberikan hak otorisasi mengakses database, mengalokasikan space, pendefinisian space, pengauditan penggunaan database.
Secara umum DCL merupakan bahasa yang digunakan untuk melakukan pengelolahan pemakai yang dapat melakukan akses dan manipulasi database terutama perintah GRANT dan REVOKE
Perintah COMMIT dan ROLLBACK merupakan kelengkapan fasilitas dalam pembuatan aplikasi yang memungkinkan suatu transaksi yang terjadi untuk dapat segera disimpan atau dibatalkan transaksinya.
Fungsi Agregat
Fungsi yang disediakan oleh SQL untuk melakukan ringkasan (summary) data, bukan menampilkan data baris per baris.
Fungsi Agregat di SQL :
    1. Sum()
    2. Avg()
    3. Max()
    4. Min()
    5. Count()

Fungsi agregat dapat disisipkan pada perintah SELECT, yang digunakan untuk melakukan manipulasi sederhana ataupun untuk mendapatkan informasi dari suatu tabel.
SUM
sum(namafield)
merupakan fungsi agregat yang digunakan untuk melakukan penjumlahan isi field yang bertipe numerik yang namanya disebutkan padan namafield yang dijadikan parameter pada fungsi sum()

Tabel Karyawan
Kode Nama Gaji
KP01 Amrin 200000
KP02 Camelia 300000
KP03 Bembi 100000

SELECT SUM(gaji) From Karyawan
Hasil
Gaji
600000










AVG
avg(namafield)
fungsi ini digunakan untuk mendapatkan nilai rata-rata suatu field yang bertipe numerik yang namanya disebutkan sebagai parameter pada fungsi avg().
SELECT AVG(gaji) From Karyawan
Hasil
Gaji
200000

Max
max(namafield)
fungsi ini digunakan untuk mendapatkan nilai terbesar(maximum) dari field bertipe numerik yang nama fieldnya dijadikan parameter pada fungsi min
Tabel Karyawan
Kode Nama Gaji
KP01 Amrin 200000
KP02 Camelia 300000
KP03 Bembi 100000

select MAX(gaji) from Karyawan;
Hasil :

Gaji
300000

Min
min(namafield)
fungsi ini digunakan untuk mendapatkan nilai terkecil (minimum) dari field bertipe numerik yang nama fieldnya dijadikan parameter pada fungsi min
select MIN(gaji) from Karyawan;

Gaji
100000

count(namafield)
digunakan untuk mengetahui jumlah record dari suatu tabel.
Jumlah record yang ditampilkan adalah jumlah record berdasarkan perintah SELECT
sql> use dbmahasiswa;
database changed
sql>select count(*) from bukumahasiswa
+----------------+
| count(*) |
|-----------------|
| 2 |
+-----------------+

Group by
Perintah Group By memiliki kegunaan untuk melakukan perhitungan berdasarkan kriteria tertentu.
Pegawai_baru
Kode Nama Asal Pendidikan Gaji
PB01 Ronald Jakarta S1 400000
PB02 Made Bali S1 300000
PB03 Aziz Semarang S1 300000
PB04 Mustofa Semarang D3 250000
PB05 Eka Jakarta S1 275000
PB06 Gozali Yogya D3 200000
PB07 Dani Jakarta S1 350000

Dari tabel Pegawai_baru, kita ingin menampilkan gaji tertinggi / maksimum yang diperoleh pegawai berdasarkan pendidikannya.
select Pendidikan,max(Gaji)
from Pegawai_baru
GROUP BY Pendidikan;
Hasil
D3 250000
S1 400000
select Asal,count(Asal) from Pegawai_baru GROUP BY Asal;
Bali 1
Jakarta 3
Semarang 2
Yogya 1

select Pendidikan,count(Pendidikan),sum(Gaji) from Pegawai_baru GROUP BY Pendidikan;
D3 2 162500
S1 5 450000