Pemrograman Visual Borland Delphi 5.0 TQuery

Slides:



Advertisements
Presentasi serupa
SQL – DML.
Advertisements

DESAIN & KONFIGURASI DATABASE
SQL.
Modul 10 : PHP dan MySQL Mempelajari koneksi PHP dengan database MySQL dan Fungsi-fungsi asesnya Modul- 10: PHP dan My SQL.
MATA KULIAH : “LOGIKA DAN ALGORITMA”
SQL (Structured Query Language)
Pertemuan 2 : Dasar-dasar SQL SBD C – Senin, Frank & Rudy
SISTEM BASIS DATA INTRO-5. •Setelah mengikuti perkuliahan ini diharapkan mahasiswa dapat mengerti : 1.Aplikasi perintah SQL ke MySql Server 2.Mengerti.
Database MySQL.
PERINTAH SQL.
Dasar-dasar SQL soesanto.
MYSQL.
SQL Basis Data.
VCL – LANJUTAN PERTEMUAN III (delphi3.ppt)
Pencabangan Bersyarat
Kondisional Inti dari sebuah program adalah bagaimana mengambil keputusan berdasarkan masukan yang ada Pengambilan keputusan dilakukan dengan eksekusi.
SISTEM BASISDATA Lasmedi Afuan, ST.,M.Cs. SQL (S RUCTURE Q UERY L ANGUAGE ) Query/SQL : Bahasa standar yang digunakan untuk mengakses basisdata. Standar.
Oleh : Kholid Fathoni, S.Kom., M.T.
Manajemen Basis Data menggunakan SQL Server
Pemrograman Visual Tipe Data dan Operator
Pemrograman Visual Pencarian Data
Otentifikasi.
-Tipe Bilangan Bulat > 1,4,40,100 -Tipe bilangan real > 1.50,3.234, Tipe Boolean > True, False -Tipe Karakter > A, B, X, y -Tipe String > Nama,
SQL 1 KTI by dna.  Merupakan bahasa query standar yang digunakan untuk mengakses basis data relasional  Jenis SQL yaitu 1. interactive  langsung dapat.
Internet Programming MySQL
Pemrogramn Berorientasi Obyek MySQL
Pelatihan Oracle sub : Pembuatan aplikasi dengan Visual Basic
Pemrograman Visual II Database Management System (DBMS) Oleh: Erna Sri Hartatik, S.Kom
TRIGGER.
Microsoft SQL Server DDL dan DML dasar
Data Definition Language dan Data Manipulation Language
Mengenal DBMS (Database Management System)
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
Data Types Data Definition Language Referential Constraint SQL Query
SQL (Structure Query Language)
BAHASA QUERY TERAPAN OLEH : HARSITI, ST.
Sistem Basis Data Pertemuan 11 Presented by :
STRUCTURED QUERY LANGUAGE (SQL)
Data Manipulation Language
Data Manipulation Language Presented by : Herianto.
PEMASARAN BERBASIS WEB
SQL (Structured Query Language)
SQL.
SQL (Structure Query Language)
Manajemen Basis Data menggunakan SQL Server
SQL DML Pertemuan 6 dan 7.
Konsep Teknologi Informasi B
SQL (Structured Query Language)
DATA MANIPULATION LANGUAGE (DML)
PEMASARAN BERBASIS WEB
Stucture Query Language
Stucture Query Language
SQL OVERVIEW.
Dml(Data manipulation language)
Created By Amir Ali,S.Kom.,M.Kom
BEKERJA DENGAN STRUCTURED QUERY LANGUAGE (SQL)
BEKERJA DENGAN STRUCTURED QUERY LANGUAGE (SQL)
Structured Query Language
Data Manipulation Language (DML)
Aplikasi Database Dosen : Sarwo, Skom,.Mkom Url :
SQL.
Stucture Query Language
Basis Data Bab 3 Structured Query Language (SQL).
Referensi Bahasa MySQL
Stucture Query Language
Membuat Query ACCESS Query adalah fasilitas untuk mengakses data dengan cara  yang memungkin bagi kita untuk menampilkan data-data dari database dalam.
Mengenal DBMS (Database Management System)
DATA MANIPULATION LANGUAGE
BAHASA BASIS DATA Data Manipulation Languange
Pengantar Teknologi SIM 2 (pertemuan 7)
Transcript presentasi:

Pemrograman Visual Borland Delphi 5.0 TQuery

TTable vs TQuery Dalam banyak kasus, komponen Ttable sudah mencukupi untuk membangun aplikasi basis data. Namun ada beberapa kasus yang hanya dapat ditangani dengan Tquery. Kasus pertama Bila mengakses beberapa tabel tetapi sebagai satu kesatuan contoh: menampilkan beberapa tabel dalam 1 tabel tunggal Kasus kedua Bila ingin menghubung keserver database yang hanya memahami SQL.

Perintah SQL ada 2 DML(Data menipulation Language) Perintah-perintah pada DML dugunakan untuk manipulasi tabel seperti menambah record(insert), menghapus record(delete) DDL(Data Definition Language) Perintah-perintah DDL digunakan untuk membuat table(Create table), membuat indek(Create Index)

Komponen TQuery Pemrograman SQL pada Delphi melibatkan komponan TQuery. Sebegai contoh buatlah aplikasi berikut Tambahkan Komponen Query, Datasource, DBGrid Query1 DatagbaseName SQL Active DBDEMOS Select * From Country True DataSource1 DataSet DBGrid1 Datasource Datasource1

Lebih Jauh dengan SELECT Select * From Country Tanda * pada perintah tersebut menunjukkan semua field pada country.db ditampilkan. Select Name, Capital From Country Menunjukkan field Nama dan Capital pada country.db ditampilkan. Contoh Perintah Select lengkap SELECT [DISTINCT] kolom FROM tabel [WHERE kondisi_pencarian] [ORDER BY pengurutan] [GROUP BY group_list] [HAVING having_condition] Huruf Besar : Kata kunci SQL Paramater dalam kurung : opsional

Klausa DISTINCT Bila perintah Select diikuti DISTINCT menunkukkan bahwa record yang terduplikasi tidak akan ditampilkan, Bila tidak semua record akan ditampilkan. SELECT DISTINCT CONTINENT FROM COUNTRY Perintah diatas akan menampilkan daftar benua dari table country.db. Coba praktekkan pada aplikasi sebelumnya, tinggal merubah SQL.

Klausa WHERE Digunakan untuk memilih record yang akan ditampilkan. Sebagai contoh memilih negara pada Contry.db yang memiliki jumlah penduduk dari 100 juta digunakan perintah. SELECT * FROM COUNTRY WHERE POPULATION > 100000000 Penduduk diantara 50 juta sampai 100 Juta SELECT * FROM COUNTRY WHERE POPULATION >= 50000000 <= 100000000 Negara yang memiliki Huruf Awal “A” SELECT * FROM COUNTRY WHERE NAME LIKE ‘A%’ Negara yang memiliki Huruf akhir “a” SELECT * FROM COUNTRY WHERE NAME LIKE ‘%a’

Klausa ORDER BY Digunakan untuk mengurutkan table berdasarkan salah satu fiend, baik naik (ascending) maupun turun (descending). Sebagai contoh mengurutkan daftar negara berdasarkan ibukota SELECT * FROM COUNTRY ORDER BY CAPITAL Seperti diatas tapi mengurutkan secara turun SELECT * FROM COUNTRY ORDER BY CAPITAL DESC Mengurutkan lebih dari 2 field SELECT * FROM COUNTRY ORDER BY CONTINENT, NAME

Klausa GROUP BY Digunakan untuk mengelompokkan record menurut field tertentu. Contoh menampilakn daftar benua pada Caountry.db SELECT CONTINENT FROM COUNTRY GROUP BY CONTINENT Perintah diatas akan menampilkan 2 record, yaitu ‘Nort America’ dan ‘South America’

Contoh SELECT Buatlah aplikasi berikut : Query1 DatagbaseName DBDEMOS DataSource1 DataSet DBGrid1 Datasource Datasource1 Edit1 Text ‘’ BitBtn Kind OK

Contoh SELECT procedure TForm1.BitBtn1Click(Sender: TObject); begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add (Edit1.Text); Query1.Open; end;

Query Berparameter Berguna untuk meningkatkan fleksibilitas. Contohnya Select * From country where name like ‘A%’ Menjadi fleksibel dengan menjadikan ‘A%’ sebagai parameter. Jadi bisa diisi dengan string apa saja. where name like :Nama Parameter nama pada perintah di atas dapat diganti dengan string apa saja.

Query Berparameter Penulisan query parameter dengan memberi nilai properti params. Tapi sebelumnya harus memanggil metode prepare terlebih dulu, guna meningkatkan kinerja query berparameter. {Menutup Query} Query1.close; {menyiapkan query berparameter} Query1.prepare; {Memilih negara yang namanya berawalan C} Query1.Params[0].AsString := ‘C%’; {Membuka Query lagi} Query1.Open; Dapat diganti Query1.ParamByname(‘Nama’).AsString:=‘C%’;

Menggunakan Fungsi Format Alternatif lain dari query parameter, juga berguna untuk meningkatkan query parameter. Contoh: Str:=‘SELECT * FROM COUNTRY WHERE CONTINENT = “%s”’; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add (Format(Str, [Edit1.Text])); Query1.Open; Artinya menampilkan data yang mempunyai benua dengan huuf belakang s di Edit1.Text.

Menggunakan Fungsi Format Contoh lain bila menampilkan negara yang memiliki penduduk antara 25 juta sampai 150 juta : Str:=‘SELECT * FROM COUNTRY’ + ‘WHERE POPULATION > %d AND POPULATION < %d’; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add (Format(Str, [25000000,15000000])); Query1.Open;

Aplikasi Query Berparameter Buatlah aplikasi berikut : Tambahkan komponen Query1 DatagbaseName DBDEMOS DataSource1 DataSet DBGrid1 Datasource Datasource1 Label1 Caption ‘Nama Negara’ Label2 ‘Kota’ ComboBox1 - Edit1 Text ‘’ Button1 ‘Fiter’ Button2 ‘Default’

Menggunakan Fungsi Format procedure TForm1.FormCreate(Sender: TObject); var i : integer; begin ComboBox1.Items.Add('Semua'); for i := 0 to 25 do ComboBox1.Items.Add ( Format ('%s%%', [char (i+65)])); ComboBox1.ItemIndex := 0; end;

procedure TForm1.Button1Click(Sender: TObject); var Str : String; begin Str := 'SELECT * FROM COUNTRY'; if (ComboBox1.Text <> 'Semua') then Str := Str + ' WHERE NAME LIKE "%s"'; if (Edit1.Text <> '') then Str := Str + ' AND CAPITAL = "%s"' else Str := Str + ' WHERE CAPITAL = "%s"'; if (ComboBox1.Text = 'Semua') then Str := Format (Str, [Edit1.Text]) Str := Format (Str, [ComboBox1.Text, Edit1.Text]); Query1.Close; Query1.SQL.Clear; Query1.SQL.Add (Str); Query1.Open; end;

Menggunakan Fungsi Format procedure TForm1.Button2Click(Sender: TObject); begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add ('SELECT * FROM COUNTRY'); Query1.Open; end;

Manipulasi Data Menggunakan INSERT INSERT INTO COUNTRY (NAME, CAPITAL, CONTINENT, AREA, POPULATION) VALUES (“Indonesia”, “Jakarta”, “Asia”, 5200000, 190000000) Klausa INTO diikuti nama table yang akan ditambah record baru (sama seperti klausa FROM pada perintah SELECT) Diikuti nama field yang akan diisi Klausa VALUES menunjukkan nilai-nilai field dari record baru.

Manipulasi Data Menggunakan DELETE DELETE FROM COUNTRY WHERE NAME = : Nama Program yang berhubungan dengan pernyataan diatas dapat ditulis sebagai berikut : With Query3 do Begin prepare; params[0].AsString := ‘Negara Saya’; ExexcSQL; End; Query1.Close; Query1.Open; Program diatas akan menghapus data ‘Negara Saya’ dari Country.db

Manipulasi Data Menggunakan UPDATE Untuk mengganti nilai field dari sebuah record dihunakan pasangan perintah UPDATE..SET. Sebagai contoh perintah di bawah ini akan mengganti jumlah penduduk negara indonesia menjadi 210 juta UPDATE COUNTRY SET POPULATION = 21000000 WHERE NAME = “Indonesia” Untuk mengganti beberapa field sekaligus, anda cukup menuliskan perintah SET sekali saja, contoh : UPDATE COUNTRY SET CAPITAL = “DKI Jaya”, CONTINENT = “Asia tenggara”, POPULATION = 200000000 WHERE NAME = “Indonesia”

Contoh Form1 Caption ‘Menambah dan menghapus Data’ Button1 ‘Menambah Data’ Button2 ‘Menghapus Data’ Query1 DatabaseName ‘DBDEMOS’ DataSource1 DataSet DBGrid1 Align DataSource alButton Query2 Query3

Listing code private { Private declarations } StrTambah : string; procedure TForm1.FormCreate(Sender: TObject); begin {Inisialisasi Query1} Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM COUNTRY'); Query1.Open; {Inisialisasi perintah SQL untuk menambah data} StrTambah := 'INSERT INTO COUNTRY (' + 'NAME, CAPITAL, CONTINENT, AREA, POPULATION)' + 'VALUES ("%s", "%s", "%s", "%s", "%s")'; Query3.SQL.Clear; Query3.SQL.Add('DELETE FROM COUNTRY WHERE'); Query3.SQL.Add('NAME = :Nama'); end;

Listing code procedure TForm1.Button1Click(Sender: TObject); var i :integer; begin {Mengosongkan text pada Edit1..Edit5} for i := 0 to Form2.ControlCount - 1 do if (Form2.Controls[i] is TEdit) then (Form2.Controls[i] as TEdit).Clear; Form2.ActiveControl := Form2.Edit1; Form2.ShowModal; if (Form2.ModalResult = mrOK) then {Mengisi Query2 dengan perintah penambahan data} Query2.SQL.Clear; with Form2 do Query2.SQL.Add(Format ( StrTambah, [Edit1.Text, Edit2.Text, Edit3.Text, Edit4.Text, Edit5.Text])); end; Query2.ExecSQL; Query1.Close; Query1.Open; Listing code

Listing code procedure TForm1.Button2Click(Sender: TObject); begin if (Application.MessageBox( 'Anda yakin record ini dihapus','Peringatan', MB_YESNO or MB_ICONQUESTION) = IDNO) then exit; With Query3 do {mengisi parameter} prepare; Params[0].AsString := Query1.Fields[0].AsString; ExecSQL; end; {Memperharui Data} Query1.Close; Query1.Open; Listing code

Memakai File Text Anda dapat mengubah perintah SQL pada saat aplikasi dijalankan dengan memasukkan perintah-perintah SQL ke dalam file text dan membukanya pada saat aplikasi dijalankan. Lebih mudahnya buatlah aplikasi berikut ini : Query1 : DataBase=DBDEMOS DataSource1:DataSet=Query1 DBGrid1:DataSource=DataSource OpenDialog1:Filter=… File Text *.TXT File SQL *.SQL BitBtn:Kind=bkOK

Listing Code BitBtn procedure TForm1.BitBtn1Click(Sender: TObject); begin if OpenDialog1.Execute then begin Query1.Close; Query1.SQL.Clear; Query1.SQL.LoadFromFile(OpenDialog1.FileName); Query1.Open; end;

Listing Code Buatlah beberapa file text dan isikan Format berikut: data1.txt SELECT * FROM BioLife data2.txt SELECT * FROM BioLife WHERE Category=‘Cod’ data3.txt SELECT Category, Commond_Name, “Species Name”, Length_in FROM BioLife data4.txt SELECT * FROM BioLife WHERE Category LIKE‘%C%’

Menampilkan gambar Buatlah Aplikasi berikut untuk memahami field bertipe grapict (G) Label1,2 DBImage1 ListBox1,2 Query1 DataSource1 DBGrid1

Menampilkan gambar Form1 Caption ‘Menampilkan gambar’ Label1 ‘Min’ ‘Max’ Query1 DatabaseName SQL Params ‘DBDEMOS’ ‘SELECT * FROM BioLife WHERE BioLife.”Length (cm)” >= :Min AND BioLife.”Length (cm)” <= :Max’ ftFloat DataSource1 DataSet DBGrid1 DataSource DBImage1 DataField Graphic Query3

Listing Code BitBtn procedure TForm1.FormCreate(Sender: TObject); Klik ganda pada form untuk memebuat procedure Form1Create procedure TForm1.FormCreate(Sender: TObject); Var i : integer; S : String; begin for i:=0 to 40 do begin S := IntToStr(i*10) ; ListBox1.Items.Add(S); ListBox2.Items.Add(S); end; ListBox1.ItemIndex:=0; ListBox2.ItemIndex:=0;

Listing Code BitBtn procedure TForm1.ListBox1Click(Sender: TObject); Klik ganda pada ListBox1 untuk memebuat procedure ListBox1Click procedure TForm1.ListBox1Click(Sender: TObject); begin Query1.Close; Query1.Prepare; Query1.Params[0].AsFloat := StrToInt(ListBox1.Items.Strings[ListBox1.Itemindex]); Query1.Params[1].AsFloat := StrToInt(ListBox2.Items.Strings[ListBox2.Itemindex]) ; Query1.Open ; end; Lakukan hal yang sama dengan ListBox2

DBLookupComboBox Komponen untuk menghubungkan 2 tabel dan dapat berhubungan dengan 2 datasource sekaligus.Sebagai contoh buatlah aplikasi berikut ini : 5 Label 4 DBEdit 1 DBLookupComboBox 2 Query 2 DataSource 1 DBNavigator

DBLookupComboBox Query1 DatabaseName SQL Active DBDEMOS SELECT * FROM Orders True Query2 SELECT * FROM Customer DataSource1 DataSet DataSource2 DBNavigator DataSource 4 Buah DBEdit DataField OrderNo,SaleData,ShipDate,EmpNo DBLookupComboBox1 ListSource KeyField ListField DropDownWidth CustNo Company;CustNo 300 DBLookupComboBox

DBLookupComboBox Properti DataField dan DataSource menyatakan hubungan utama ke tabel Order. Ketiga properti berikut mengacu pada data source kedua - KeyField : menyatakan field yang dipakai untuk menghubungkan kedua data source. - ListSource : menyatakan data source kedua - ListField : Menyatakan Field-field yang akan ditampilkan. - Properti DropDownWidth diisi dengan nilai yang besar untuk menampilkan beberapa field

DBLookupComboBox

Membuat Grafik Lingkaran Data yang ditampilkan dalam bentuk grafik mempunyai beberapa keuntungan: Lebih indah dilihat Dipakai untuk melaporkan data ke pemimpin Untuk presentasi Ada beberapa jenis grafik di antaranya, lingkaran, garis, bar, anak panah, gelembung dan pemakaiannya tergantung kebutuhan (data yang akan ditampilkan) misalkan jika data yang ditampilkan banyak, yang digunakan grafik garis atao point tidak bisa menggunakan lingkaran……

Membuat Grafik Lingkaran Untuk lebih mudahnya buatlah aplikasi berikut : Page Control dari tab win32 Klik kanan New Page 1 Query, 1 DataSource 1 Timer dari tab System Komponen Pada TabSheet1 - DBGrid Komponen Pada TabSheet2 - DBChart

Mengurutkan Data Untuk mengurutkan data pada komponen Query anda harus memakai klausa ORDER BY dan field yang diurutkan tidak perlu diindex (bandingkan dengan komponen Table) Query1 DatabaseName DBDEMOS DataSource1 DataSet DBGrid1 DataSource RadioGroup Items Category Species Name Category + Species Name

Listing Program Isikan Procedure RadioGroup1Click sebegai berikut procedure TForm1.RadioGroup1Click(Sender: TObject); var str : string ; begin str := 'select * from BioLife order by '; case RadioGroup1.ItemIndex of 0 : str := str + 'Category'; 1: str := str + 'BioLife."Species Name"'; 2 : str := str + ' Category, Biolife."Species Name"'; end; with Query1 do SQL.Clear; SQL.Add(str); Open;

Fungsi Agregasi SQL mempunyai kemampuan menghitung fungsi-fungsi berdasarkan kelompok data. Fungsi-fungsi tersebut memakai klausa group by. Atribut pada klausa group by dipakai untuk membentuk kelompok. Fungsi² agregasi: Avg, untuk menghitung rata² Min, untuk mencari minimum Max, untuk mencari Maksimum Sum, Untuk menghitung total Count, Untuk menghitung banyak data

Fungsi Agregasi Query1 DatabaseName SQL DBDEMOS SELECT CATEGORY, COUNT(BIOLIFE.”SPECIES NO)”), AVG(LENGTH_IN) FROM BIOLIFE GROUP BY CATEGORY DataSource1 DataSet DBGrid1 DataSource

Menggabungkan beberapa tabel Sama seperti pada komponen table, untuk komponen query juga dapat digunakan untuk menggabungkan beberapa tabel. Sebagai contoh DBDEMOS terdapat beberapa tabel yang berhubungan misalnya Customer.db dan Orders.db, contoh perintah untuk menggabngkan tabel tersebut : SELECT C.CustNo, O.OrderNo, O.SaleDate, O.ShipDate FROM CUSTOMER C, ORDERS O WHERE C.CustNo = O.CustNo Perintah Diatas terdiri dari 3 bagian

Menggabungkan beberapa tabel Bagian pertama adalah memilih field yang akan ditampilkan dengan klausa SELECT. Bagian kedua, tabel yang dibaca (‘FROM CUSTOMER C, ORDERS, O’) arti : tabel C sama dengan Customer.db dan O sama dengan Orders.db - Bagian ketiga, bagian ini untuk menghubungkan tabel Customes.db dan Orders.db dihubungkan oleh field CustNo

Contoh Form1 Caption ‘Penggabungan beberapa tabel’ Query1-Query4 Databasename ‘DBDEMOS’ DataSource1 Query1 DBGrid1 DatabaseName DataSource2 DataSet Query2 DBGrid2 DataSource DataSource3 Dataset Query3 DBGrid3 DataSource4 Query4 DBGrid4

Listing code procedure TForm1.FormCreate(Sender: TObject); begin { Inisialisasi Query1} Query1.DatabaseName := 'DBDEMOS'; Query1.SQL.Clear; Query1.SQL.Add ('SELECT * FROM CUSTOMER'); Query1.Open; Query2.DatabaseName := 'DBDEMOS'; Query2.SQL.Clear; Query2.SQL.Add ('SELECT * FROM ORDERS'); Query2.SQL.Add ('WHERE CustNo = :CustNo'); Query2.Params[0].DataType := ftFloat; Query2.DataSource := DataSource1; Query2.Open;

Listing code { Inisialisasi Query1} Query3.DatabaseName := 'DBDEMOS'; Query3.SQL.Clear; Query3.SQL.Add ('SELECT * FROM ITEMS'); Query3.SQL.Add ('WHERE OrderNo = :OrderNo'); Query3.Params[0].DataType := ftFloat; Query3.DataSource := DataSource2; Query3.Open; Query4.DatabaseName := 'DBDEMOS'; Query4.SQL.Clear; Query4.SQL.Add ('SELECT * FROM PARTS'); Query4.SQL.Add ('WHERE PartNo = :PartNo'); Query4.Params[0].DataType := ftFloat; Query4.DataSource := DataSource3; Query4.Open; end;