Feb 072010
 

source code :

#include <iostream.h>
#include <conio.h>
int data[100];
int jml;

//Method Untuk mengosongkan data
void kosong(){
	for(int a = 0 ; a < 100 ; a++){
		data[a] = 0;
	}
	jml = 0;
	cout << "\nPengosongan data selesai\n";
}

//Method untuk mencetak data
void cetak(){
	cout << "================= Data Dalam Array =================\n";
	for(int a = 0 ; a < jml ; a++){
		cout << data[a] << "," ;
	}
	cout << "\n====================================================\n";
}

//Method untuk pengurutan data
void urut(){
	int temp;
    for(int i=0; i<jml ; i++){
        for(int j=0; j<(jml-i); j++){
            if(j+1<=jml-1){
                    if(data[j] > data[j+1]){
                        temp=data[j];
                        data[j]=data[j+1];
                        data[j+1]=temp;
                    }
            }
        }
    }
}

//Method untuk memasukkan data ke array
void inputdata(){
	cout << "Masukkan banyak data yang anda inginkan = ";
	cin >> jml;
	for(int a=0 ; a<jml ; a++){
		cout << "Masukkan data ke " << a << " = ";
		cin >> data[a];  //Simpan data ke array
	}
	//cetak();
}

void main(){
	int pilihan = 0;
	do{
		cout << endl;
		cout << "========================================\n";
		cout << " 1. Input data \n";
		cout << " 2. Pengurutan data \n";
		cout << " 3. Kosongkan data \n";
		cout << " 4. Keluar \n";
		cout << "========================================\n\n";
		cout << "Masukkan menu yang anda pilih = ";
		cin >> pilihan;
		if(pilihan > 0 && pilihan < 4){
			switch (pilihan){
				case 1:
					//Panggil fungsi untuk input data
					inputdata();
					break;
				case 2:
					//Urutkan data
					urut();
					//Cetak data
					cetak();
					break;
				case 3:
					//Kosongkan array
					kosong();
					break;
			}
		}else if(pilihan > 4){
			cout << "Data yang anda masukkan salah\n";
		}
	}while(pilihan != 4);
}
Sep 042009
 

Setelah kemaren kita belajar membuat trigger dan function di MySQL sekarang kita akan kembali pada Microsoft alias SQL Server, pada kali ini saya akan memberi contoh bagaimana membuat Trigger di SQL Server dan memanfaat trigger tersebut untuk membuat log pada table tersebut, ok mari kita mulai saja.

Pertama buat 4 Buat table pada SQL Server seperti pada source di bawah ini :

CREATE TABLE [Barang] (
 [kd_barang] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[nm_barang] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [stok] [int] NULL ,
 CONSTRAINT [PK_Barang] PRIMARY KEY  CLUSTERED
 (
 [kd_barang]
 )  ON [PRIMARY]
) ON [PRIMARY];

CREATE TABLE [pembelian] (
 [no_nota] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [tgl_beli] [smalldatetime] NULL ,
 [pembeli] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 CONSTRAINT [PK_pembelian] PRIMARY KEY  CLUSTERED
 (
 [no_nota]
 )  ON [PRIMARY]
) ON [PRIMARY];

CREATE TABLE [pembelian_detail] (
 [no_nota] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [kd_barang] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [jumlah] [int] NULL ,
 CONSTRAINT [PK_pembelian_detail] PRIMARY KEY  CLUSTERED
 (
 [no_nota],
 [kd_barang]
 )  ON [PRIMARY] ,
 CONSTRAINT [FK_pembelian_detail_Barang] FOREIGN KEY
 (
 [kd_barang]
 ) REFERENCES [Barang] (
 [kd_barang]
 ) ON UPDATE CASCADE ,
 CONSTRAINT [FK_pembelian_detail_pembelian] FOREIGN KEY
 (
 [no_nota]
 ) REFERENCES [pembelian] (
 [no_nota]
 ) ON DELETE CASCADE  ON UPDATE CASCADE
) ON [PRIMARY];

CREATE TABLE [pembelian_detail_log] (
 [nomor] [int] IDENTITY (1, 1) NOT NULL ,
 [no_nota] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [kd_barang] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [jumlah] [int] NULL ,
 [keterangan] [varchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [tgl] [datetime] NULL ,
 CONSTRAINT [PK_pembelian_detail_log] PRIMARY KEY  CLUSTERED
 (
 [nomor]
 )  ON [PRIMARY]
) ON [PRIMARY]

Setelah kita menyiapkan tiga buat table langsung saja kita buat triggernya, maaf penjelasan tetentang trigger mungkin akan saya jelaskan lain waktu saja, atau anda silakan buat pertanyaan di sini. Continue reading »

Sep 032009
 
Kelanjutan dari tutorial sebelumnya selain Trigger di MySQL yang baru juga terdapat procedure. Pertama buat sebuah tabel di MySQL kamu.
Code :
CREATE
TABLE tbl_stock (
kode char(2) NOT NULL,
nama varchar(20) default NULL,
jumlah int(11) NOT NULL default ‘0’,
harga double(15,3) NOT NULL default ‘0.000’,
total double(15,3) default NULL,
PRIMARY KEY
(kode)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
Pada kasus kali ini kita akan melakukan perhitungan di tbl_stock yaitu pada field total yang akan otomatis melakukan perkalian pada saat kita melakukan isi dan edit data. Pada procedure yang kita buat akan otomatis melakukan perhitungan dan mengetahui apakah data tersebut akan di Edit ada tambah data.
Code :
CREATE
PROCEDURE pr_isi_stock(IN kode_in char(2), IN nama_in VARCHAR(20), IN jumlah_in
INT, IN harga_in DOUBLE)
BEGIN
DECLARE ada INT;
SELECT COUNT(*) INTO ada from tbl_stock where kode=kode_in;
IF ada=0 then BEGIN
–Tambah baru
insert into tbl_stock values(kode_in,nama_in,jumlah_in,harga_in,(jumlah_in*harga_in));
END;
ELSE
–Edit data yang sudah ada
update tbl_stock set nama=nama_in, jumlah=jumlah_in,
harga=harga_in, total=jumlah_in*harga_in where kode=kode_in;
END IF;
END;
Untuk memanggil Procedure di atas dapat menggunakan perintah call nm_procedure

Kelanjutan dari tutorial sebelumnya selain Trigger di MySQL yang baru juga terdapat procedure. Pertama buat sebuah tabel di MySQL kamu.

Code :

CREATE
TABLE <code>tbl_stock</code> (
<code>kode</code> char(2) NOT NULL,
<code>nama</code> varchar(20) default NULL,
<code>jumlah</code> int(11) NOT NULL default '0',
<code>harga</code> double(15,3) NOT NULL default '0.000',
<code>total</code> double(15,3) default NULL,
PRIMARY KEY
(<code>kode</code>)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;

Pada kasus kali ini kita akan melakukan perhitungan di tbl_stock yaitu pada field total yang akan otomatis melakukan perkalian pada saat kita melakukan isi dan edit data. Pada procedure yang kita buat akan otomatis melakukan perhitungan dan mengetahui apakah data tersebut akan di Edit ada tambah data.

Code :

CREATE
PROCEDURE pr_isi_stock(IN kode_in char(2), IN nama_in VARCHAR(20), IN jumlah_in
INT, IN harga_in DOUBLE)
BEGIN
DECLARE ada INT;
SELECT COUNT(*) INTO ada from tbl_stock where kode=kode_in;
IF ada=0 then BEGIN
--Tambah baru
insert into tbl_stock values(kode_in,nama_in,jumlah_in,harga_in,(jumlah_in*harga_in));
END;
ELSE
--Edit data yang sudah ada
update tbl_stock set nama=nama_in, jumlah=jumlah_in,
harga=harga_in, total=jumlah_in*harga_in where kode=kode_in;
END IF;
END;

Untuk memanggil Procedure di atas dapat menggunakan perintah call nm_procedure

Hasil

Hasil

Jul 292009
 

Untuk membuat trigger di MySQL and harus mengaktifkan INODB pada MySQL. Setelah aktif barulah kita bisa menggunkan fasilitas trigger pada MySQL. Ok langsung pada tujuan mari kita mulai proyek kita, pertama – tama kita akan membuat 2 buah tabel untuk percobaan kita

Code :

CREATE TABLE <code>tbl_pertama</code> (
  <code>kode</code> char(2) NOT NULL,
  <code>nama</code> varchar(20) default NULL,
  PRIMARY KEY  (<code>kode</code>)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE <code>tbl_kedua</code> (
  <code>kode_kedua</code> char(2) NOT NULL,
  <code>nama_kedua</code> varchar(20) default NULL,
  PRIMARY KEY  (<code>kode_kedua</code>)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Pada dua buah table saya buat sama, agar kita mudah untuk memahami pada proses selanjutnya. Setelah selesai akan tercipta dua buah tabel seperti pada gambar di bawah ini Continue reading »

Jun 232009
 

Bilangan prima di SQL-SERVER

ini adalah contoh sederhana untuk melakukan pengecekan sebuah bilangan termasuk bilangan prima atau tidak berikut source nya :

DECLARE @BIL INT;
DECLARE @TMP INT;
DECLARE @ANGKA INT;
DECLARE @PEMBAGI INT;

//SET BILANGAN AWAL
SET @BIL=1;
SET @ANGKA=10;
SET @TMP=0;

//CEK BILANGAN DI BAWAH 9 ATAU DI ATAS SEMBILAN
IF @ANGKA<= 9
SET @PEMBAGI=@ANGKA-1;
ELSE
SET @PEMBAGI=9;

//LAKUKAN LOOPING UNTUK PENGECEKAN
WHILE (@BIL<=@PEMBAGI) BEGIN
IF @ANGKA%@BIL=0
SET @TMP=@TMP+1;
SET @BIL=@BIL+1;
END;

IF @TMP>1
PRINT ‘BUKAN PRIMA’;
ELSE
PRINT ‘PRIMA’;