Membuat data base barang


  1. PENGERTIAN DATABASE DAN TABEL
A.    DATABASE
Microsoft Visual Foxpro 6.0 mendefinisikan secara berbeda mengenai pengertian DATABASE dibandingkan bahasa Xbase yang lainnya. Database dalam pengertian Microsoft Visual foxpro adalah keterangan mengenai kumpulan sejumlah table, procedure tersimpan (stored procedure) dan hubungan relasi antar table yang saling berhubungan dalam membentuk suatu program aplikasi. Jadi ,file database dalam Microsoft Visual Foxpro hanya menampung nama file, hubungan relasi dan keterangan dari file-file table lainnya.

database

    gambar 2.1 Kedudukan database dan Tabel

B.     TABEL
Tabel adalah kumpulan dari satu atau lenih bari baris (Record). Baris (Record) dalam pengertian pemrograman Microsoft Visual Foxpro adalah kumpulan dari sejumlah Field (item data), struktur table dapat anda lihat pada gambar 2.2 bawah ini

struktur tabel
gambar 2.2 Struktur Tabel

C.    RANCANGAN DATABASE DAN TABEL
Dalam pembuatan contoh program aplikasi Sistem Informasi Pengolahan Data Stok Barang, database yang akan kita gunakan kita berinama Stok.dbc. sedangkan untuk table ada pada penjelelasan berikut ini :
a.      Rancangan Tabel Supplier
      berfungsi untuk melakukan pencatatn terhadap data supler  
Nama Tabel                       : Supplier                    
Kunci Utama                     : Kodespl
Kunci Tamu                      : -
Ukuran Record     : 86 Byte

b.      Rancangan Tabel Petugas
Table petugas berfungsi untuk melakukan pencatatan data petugas
Nama Tabel                       : Petugas                     
Kunci Utama                     : Kodeptgs
Kunci Tamu                      : -
Ukuran Record     : 121 Byte

c.      Rancangan Tabel Jenis Barang
Table jenis barang berfungsi untuk melakukan pencatatan data jenis barang.
Nama Tabel                       : Jenis
Kunci Utama                     : Kodejns
Kunci Tamu                      :  -
Ukuran Record     : 35 Byte

d.      Rancangan Tabel Barang
      digunakan sebagai melakukan pencatatan terhadap data barang
Nama Tabel                       : Barang                      
Kunci Utama                     : Kodebrg       
Kunci Tamu                      : Kodejns
Ukuran Record     : 115 Byte

e.      Tabel Masuk
Table masuk digunakan untuk mencatat data transaksi, nomor nota masuk
Nama Tabel                       : Masuk          
Kunci Utama                     : Notamsk
Kunci Tamu                      : Kodespl,kodeptgs
Ukuran Record     : 28 Byte

f.      Tabel Rincimsk
table rincimsk digunakan untuk mencatat data rincian barang yang masuk sesuai dengan nomor nota masuk.
Nama Tabel                       : Rincimsk      
Kunci Utama                     : -
Kunci Tamu                      : Notamsk,Kodespl,Kodeptgs
Ukuran Record     : 55 Byte

g.      Tabel Keluar
Table keluar digunakan untuk mencatat data transaksi, nomor nota masuk
Nama Tabel                       : Keluar          
Kunci Utama                     : Notaklr
Kunci Tamu                      : kodeptgs
Ukuran Record     : 23 Byte


h.      Tabel Rinciklr
Table rinciklr digunakan untuk mencatat data rincian barang yang keluar sesuai dengan nomor nota masuk.
Nama Tabel                       : Rinciklr        
Kunci Utama                     : -
Kunci Tamu                      : Notaklr,,Kodeptgs
Ukuran Record     :55 Byte

RELASI ANTAR TABEL


*                   : Kunci Utama (primary key)

      #*                 : Kunci Tamu (foreign key)
 : Hubungan satu ke banyak   (one to many)
               

Penjelasan mengenai mysql

MENGENAL MySQL



1.1  Mengenal MySQL

MySQL pertama sekali diciptakan  yaitu pada tahun 1995, MyQSL ini dibuat oleh tiga pemikiran yaitu Widenius, David Axmark, dan Allan Larson yang diberi nama MyQL AB berkedudukan di Swedia. Tujuan utama ditulisya Database MyQSL yaitu untuk mengembangkan Aplikasi Web yang akan digunakan Oleh salah satu klien MySQL AB, pada salah satu perusahaan konsultan database dan pengembangan software. Nama perusahaanya adalah TcX Datakonsult AB.
MySQL pertama sekali yaitu versi 1.0 pada tahun 1996, versi 1.0 ini penggunaanya hanya terbatas di kalangan intern saja. Pada tahun yang sama juga  diciptakan versi 3.11.0, versi ini sudah dapat diiris kepada masyarakat luas namun dibawah lisensi, artinya  terbuka tapi penggunaannya terbatas, yaitu setiap yang menggunakannya harus membayar lisensi tersebut.  Pada tahan 2000 Mysql mengumumkan versi baru lagi versi 3.23.19 yang diterapkan sebagai General Public License (GPL). Dengan vesi ini maka siapapun boleh melihat program aslinya dan menggunakan program executablenya dengan cuma-cuma. Dan dari pengembangan selanjutnya saat ini sudah dapat menggunakan versi 5.0 yang open source yang dapat digunakan oleh siapapun tanpa membayar license.

1.2 Perbedaan MySQL dan SQL
Saat ini banyak orang mengira bahwa MySQL dan SQL adalah sama, namun akan tetapi sebenarnya sangat berbeda. Disini kita sedikit membahas perbedaan antara MySQL dengan SQL. SQL adalah sebuah bahasa permintaan database yang terstruktur, dan dibuat sebagai bahasa yang dapat merelasikan antar database. Bahasa SQL ditulis langsung  dalam sebuah program database sehingga seorang pengguna dapat melihat langsung permintaan yang di inginkan, sekaligus melihat hasilnya.
Sedangkan MySQL adalah sebuah program database server yang memerlukan sebuah bahasa permintaan dalam melayani permintaan user. Jadi SQl merupakan bahasa permintaan yang digunakan dalam MySQL. Dari pengertian diatas MySQL adalah program database server  dan SQL adalah bahasa yang digunakan didalamnya  SQL (structur query language) dibagi atas dua bentuk query yaitu :

1.2.1 Data Definition Language (DLL)
      Data Definition Language (DLL) adalah sebuah metode Query sql yang berguna untuk mendefinisikan data pada sebuah database, DLL sendiri memiliki beberapa query diantaranya adalah :
1.      Create
Create digunakan untuk melakukan pembuatan database dan melakukan pembuatan table.
2.      Drop
Drop digunakan    untuk melakukan penghapusan baik database maupun table-tabel.
3.      Alter
Alter digunakan untuk melakukan pengubahan struktur table yang dibuat, baik menambah field (add), menganti nama field (change) ataupun menamakannya kembali (rename) dan penghapusannya.



TIPE DATA PADA MySQL


4.1 Tipe Data
Tipe data adalah suatu bentuk pemodelan data yang dideklarasikan  pada saat merancang tabel. Tipe data sangat berpengaruh setiap data yang akan diinputkan kedalam sebuah table. Jenis tipe data dalam MySQL ada tiga bentuk tipe data yang secara umum, diantaranya

4.1.1        Tipe Data Numerik
Tipe data numerik yaitu bentuk tipe data yang berupa angka, bentuk tipe data ini dapat diagi lagi atas beberapa bentuk yang terkait dengan panjang data yang dapat ditampung. Untuk lebih jelaskan dapat dilijelaskan bentuk-bentuk dari tipe data numeric sebagai berikut :

4.1.1        Tipe data string
MySQL juga dapat mendukung data-data yang bersifat string atau karacter. Jenis tipe data ini dapat melakukan penyimpanan data yang bentuknya berbeda, bentuk data string adalah salah satu bentuk yang harus dimiliki dan didukung oleh setiap database. Data string dapat menyimpan semua data, baik itu berupa numeric maupun waktu dan tanggal. Dan juga bentuk character misalnya nama, alamat, email tapi semua data dalam bentuk abjad. Berikut ini beberapa tipe data yang berbentuk teks.


Namun disamping itu beberapa bentuk tipe data dengan kemampuan menanggani data teks besar seperti diatas, MySQL juga menanggani data yang sifatnya kecil atau string sederhana, biasanya hanya digunakan untuk menyimpan data seperti ama, alamat dan keterangan atau bentuk-bentuk string yang tidak memerlukan kapasitas besar dalam penyimpanan. Adapun bentuk tipe-tipe data tersebut dapat dilihat pada tabel 4.


Dalam bahasa data definition language (DDL) SQL mengenal  tiga buah query yang berkaitan dengan pendefinisian data yaitu create, drop dan alter, membuat, menghapus dan mengubah struktur table. Agar dapat membangun database maka kita dapat menciptakan beberapa hal yang  diantaranya :

5.1 Membangun database
      Sebuah media utama yang harus dibuat dalam membangun sebuah basis data, tujuanya  agar dapat diletakkan beberapa table dengan field-fielnya, pada MySQL database hanyalah semacam direktori saja. Pada MySQL Database akan disimpan dan dikumpulkan ke dalam sebuah direktori khusus yang bernama data. Dalam direktori data semua sub direktori yang ada didalamnya akan dianggap sebagi sebuah database. Dengan demikian, sebagi administrator database yang menggunakan MySQL. Tidak dibolehkan meletakkan database pada sembarangan tempat didalam hardisk. Untuk lebih jelasnya penempatan database dapat dilihat pada gambar 5.1 



Gamabar 5.1 Struktur database pada direktori MySQL
  pada Windows

Belajar coding mysql membuat database dan tabel




mysql> create database sispen;
Query OK, 1 row affected (0.01 sec)

mysql> use sispen
Database changed
mysql> create table kecamatan (kodekec char(2) not null, namakec char(40) not null);
Query OK, 0 rows affected (0.12 sec)

mysql> create table desa (kodekec char(2) not null, kodedes char(2) not null, namades char(40) not null);
Query OK, 0 rows affected (0.06 sec)

mysql> insert into kecamatan values(01,'Pidie');
Query OK, 1 row affected (0.05 sec)

mysql> insert into kecamatan values(02,'Simpang Tiga');
Query OK, 1 row affected (0.02 sec)

mysql> insert into desa values(02,01,'curucok');
Query OK, 1 row affected (0.02 sec)

mysql> insert into desa values(01,01,'Kunire');
Query OK, 1 row affected (0.01 sec)

mysql> insert into desa values(01,02,'Perumanas Rawa');
Query OK, 1 row affected (0.02 sec)

mysql> select * from desa;
+---------+---------+----------------+
| kodekec | kodedes | namades        |
+---------+---------+----------------+
| 2       | 1       | curucok        |
| 1       | 1       | Kunire         |
| 1       | 2       | Perumanas Rawa |
+---------+---------+----------------+
3 rows in set (0.02 sec)

mysql> select * from kecamatan;
+---------+--------------+
| kodekec | namakec      |
+---------+--------------+
| 1       | Pidie        |
| 2       | Simpang Tiga |
+---------+--------------+
2 rows in set (0.00 sec)

mysql> select * from kecamatan where kodedes=01;
ERROR 1054 (42S22): Unknown column 'kodedes' in 'where clause'
mysql> select * from kecamatan where kodekec=01;
+---------+---------+
| kodekec | namakec |
+---------+---------+
| 1       | Pidie   |
+---------+---------+
1 row in set (0.02 sec)

mysql> select * from desa where kodekec=01;
+---------+---------+----------------+
| kodekec | kodedes | namades        |
+---------+---------+----------------+
| 1       | 1       | Kunire         |
| 1       | 2       | Perumanas Rawa |
+---------+---------+----------------+
2 rows in set (0.02 sec)

mysql> select kecamatan.kodekec,kecamatan.namakec, a.* from kecamatan, desa a where kecamatan.kodekec=a.kodekec;
+---------+--------------+---------+---------+----------------+
| kodekec | namakec      | kodekec | kodedes | namades        |
+---------+--------------+---------+---------+----------------+
| 2       | Simpang Tiga | 2       | 1       | curucok        |
| 1       | Pidie        | 1       | 1       | Kunire         |
| 1       | Pidie        | 1       | 2       | Perumanas Rawa |
+---------+--------------+---------+---------+----------------+
3 rows in set (0.00 sec)

mysql> select * from desa where kodedes=01;
+---------+---------+---------+
| kodekec | kodedes | namades |
+---------+---------+---------+
| 2       | 1       | curucok |
| 1       | 1       | Kunire  |
+---------+---------+---------+
2 rows in set (0.00 sec)

mysql> select * from desa where kodedes=01 and kodekec=01;
+---------+---------+---------+
| kodekec | kodedes | namades |
+---------+---------+---------+
| 1       | 1       | Kunire  |
+---------+---------+---------+
1 row in set (0.00 sec)

mysql> select x.* b.* from desa x, kecamatan b;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the r
ight syntax to use near 'b.* from desa x, kecamatan b' at line 1
mysql> select x.*, b.* from desa x, kecamatan b;
+---------+---------+----------------+---------+--------------+
| kodekec | kodedes | namades        | kodekec | namakec      |
+---------+---------+----------------+---------+--------------+
| 2       | 1       | curucok        | 1       | Pidie        |
| 2       | 1       | curucok        | 2       | Simpang Tiga |
| 1       | 1       | Kunire         | 1       | Pidie        |
| 1       | 1       | Kunire         | 2       | Simpang Tiga |
| 1       | 2       | Perumanas Rawa | 1       | Pidie        |
| 1       | 2       | Perumanas Rawa | 2       | Simpang Tiga |
+---------+---------+----------------+---------+--------------+
6 rows in set (0.00 sec)

mysql> desc desa;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| kodekec | char(2)  | NO   |     | NULL    |       |
| kodedes | char(2)  | NO   |     | NULL    |       |
| namades | char(40) | NO   |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
3 rows in set (0.03 sec)

mysql> select * from desa where namades;
Empty set, 3 warnings (0.00 sec)

mysql> select namades from desa;
+----------------+
| namades        |
+----------------+
| curucok        |
| Kunire         |
| Perumanas Rawa |
+----------------+
3 rows in set (0.00 sec)

mysql> select namades from kodedes=02;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the r
ight syntax to use near '02' at line 1
mysql> select namades from desa where kodedes=02;
+----------------+
| namades        |
+----------------+
| Perumanas Rawa |
+----------------+
1 row in set (0.00 sec)

mysql> select namades from desa where kodedes=01;
+---------+
| namades |
+---------+
| curucok |
| Kunire  |
+---------+
2 rows in set (0.00 sec)

mysql> select namades from desa where kodedes=01 and kodekec=01;
+---------+
| namades |
+---------+
| Kunire  |
+---------+
1 row in set (0.00 sec)

mysql> select namades from desa where kodedes=01 and kodekec=02;
+---------+
| namades |
+---------+
| curucok |
+---------+

1 row in set (0.00 sec)

Struktur control pada c++

Struktur Kontrol (if / if – else )
Terdapat 3 macam struktur kontrol
·         Sequential structure / urut
Merupakan bentuk dasar dari urutan program
Program akan selalu berjalan dari atas ke bawah secara urut (sesuai bagaimana program ditulis)‏
·         Selection / Decision structure / Pemilihan
C++ memiliki bentuk à if, if-else, dan switch
·         Repetition / Looping structure / Perulangan
C++ memiliki bentuk à while, do-while, dan for
Pada materi ini akan dibahas tentang Selection / Decision structure
Digunakan untuk memilih salah satu dari pilihan yang ada

Bentuk umum (1)‏

if (kondisi)‏
   Statement ;
Statement pada bentuk di atas akan dijalankan jika kondisinya bernilai benar atau TRUE atau 1.
Jika kondisinya bernilai salah atau FALSE atau 0, tidak ada suatu statement khusus yang harus dijalankan, sehingga program akan meneruskan ke perintah sesuai urutan selanjutnya
Atau jika statemen yang dijalankan lebih dari satu baris (blok statement) maka statement dituliskan diantara dua tanda kurung kurawal {}

if (kondisi)‏
   {
                                Statement1 ;
                                Statement2 ;
   }

Catatan :
Perhatikan gaya penulisan program diatas, adanya indentasi akan memudahkan pembacaan program



Program :
#include <iostream.h>
main()‏
{
     int umur=70; // deklarasi variabel sekaligus assignment
     if (umur > 60)‏
           cout<<“Anda Sudah Tua…”;
}

Output hasil jadi program umur:


Permasalahan
Bagaimana OUTPUT yang dihasilkan jika assignment untuk umur diberikan nilai 20 :
int umur = 20
Ternyata pada OUTPUT tidak menghasilkan tulisan apapun, ini dikarenakan statement hanya diberikan jika kondisi umur > 60 terpenuhi
Contoh menggunakan blok statement
#include <iostream.h>
void main()‏{
       int umur=70;
  if (umur > 60)‏ {
           cout<<“Anda sudah berumur”<<umur<<“Tahun\n”;
           cout<<“Anda Sudah Tua…”;
       }
}


Permasalahan
Sama dengan sebelumnya, bagaimana jika
int umur = 20
Hasil output juga akan kosong
è  Anda tahu mengapa ?

Bagaimana output program berikut ini:
#include <iostream.h>
void main()‏ {
    int umur=20;
    if (umur > 60)‏
          cout<<“Anda sudah Tua…\n”;
    cout<<“Terima kasih telah mengisi form ini”;    
}


if – else

Apabila diinginkan untuk menjalankan suatu statement tertentu jika kondisi bernilai salah/FALSE/0, bisa diberikan alternatif menggunakan ELSE
Bentuk Umum (2):
if (kondisi)‏
        Statement1
else
        Statement2


Untuk Statement berbentuk blok / lebih dari satu baris :
if (kondisi)‏
{
         Statement1;
    Statement2;
         ………
}
else
{
    Statement1;
    Statement2;
         ………
}


Programnya :
#include <iostream.h>
void main()‏{
      
  int umur=20; // deklarasi variabel sekaligus assignment
  if (umur > 60)‏
           cout<<“Anda Sudah Tua…”;
       else
           cout<<“Anda Masih Muda…”;
}

Contoh lainnya:
#include <iostream.h>
void main()‏ {
   int nilai;
  
   cout<< “Masukkan Nilai : “;
   cin >> nilai;
   if (nilai >=55)‏ {
       cout<<“Anda mendapat nilai “<<nilai<<“\n”;
       cout<<“Anda dinyatakan Lulus”;
   } else  {
       cout<<“Nilai anda dibawah 55, anda harus mengulang!”;
   }
}


Bentuk if – else kompleks
Apabila tedapat lebih dari 2 kemungkinan pilihan maka dapat dikerjakan dengan bentuk if-else kompleks
Bentuk umum (3)‏
if (kondisi1)‏
       Statement1;
else if (kondisi2)‏
  Statement2;
else if (kondisi3)‏
       Statement3
  ...
  ...
else
       Statement;


Contoh :
#include <iostream.h>
void main()‏ {
       int angka;
       cout<<“Masukkan sebuah angka :”;
       cin>>angka;
       if (angka == 50) // operator == bukan = (asignment)‏
         cout<<“Angka yang anda masukkan adalah 50”;
       else if (angka > 50)‏
         cout<<“Angka yang anda masukkan lebih besar dari 50”;
       else
         cout<<“Angka yang anda masukkan lebih kecil dari 50”;
}



Penangganan String
Seperti diketahui bahwa string merupakan rangkaian karakter sehingga untuk melakukan operator relasional terhadap string membutuhkan fungsi khusus.
Perbandingan dua string dengan menuliskan :
if (nama == “totok”) à akan selalu menghasilkan nilai false / salah
Untuk membandingkan dua buah string digunakan fungsi :
strcmp(string1,string2)‏
è jika string1 isinya sama dengan string2 maka fungsi tersebut akan menghasilkan nilai 0

Contoh :
#include <iostream.h>
#include <conio.h>
void main()‏{
    char   user[20];
    cout<<“Isikan nama user : “;
    cin.get(user,21); // cara pengisian string dengan cin
    if (strcmp(user,”cosmas”)==0)‏
       cout<<“User terdaftar, silakan masuk!”;
    else
       cout<<“User “<<user<<“ tidak dikenal, akses ditolak!”;
    getch();
}

Dengan menggunakan fungsi strcmp, kedua string yang dibandingkan harus sama persis termasuk huruf besar kecilnya.
Apabila diinginkan untuk tidak membedakan huruf besar dan kecil maka digunakan fungsi strcmpi (string1, string2)‏

Ads Inside Post