Showing posts with label Pemrograman. Show all posts
Showing posts with label Pemrograman. Show all posts

Monday, 11 March 2013

Metode Sorting pada Pemrograman C++

Posted by Wawan On 09:26 | 1 comment


Pengertian Sorting
Dalam arti bahasa sorting adalah penyortiran atau memilih-milih. Pada struktur data Sorting adalah sebuah metode untuk pengurutan data, misalnya dari data yang terbesar ke data yang terkecil. Dengan cara program yang dibuat harus dapat membandingkan antar data yang di inputkan.
Artinya jika ada deretan data, maka data yang pertama akan membandingkan dengan data yang kedua. Jika data yang pertama lebih besar dari pada data yang kedua maka data yang pertama akan bertukar posisi dengan data yang kedua, begitu seterusnya sampai benar-benar data terurut dari yang terbesar hingga yang terkecil.
Metode sorting sangat banyak dan berkembang ada Bubble sort, Selection Sort, Insertion sort, Merge sort, Quick sort. Metode-metode ini menggunakan caranya sendiri untuk membandingkan, memeriksa dan menukar posisi data. Namun tidak semua metode sorting ini efektif. Karena metode sorting yang paling efektif adalah ketika metode tersebut dapat melakukan pengurutan data dengan cepat dan tidak memerlukan banyak memori.
Pengetian Metode Bubbel Sort dan Metode Selection Sort
1. Pengetian Metode Bubbel Sort
Bubble sort (metode gelembung) adalah metode atau algoritma pengurutan dengan cara melakukan penukaran data dengan tempat disebelahnya jika data sebelum lebih besar dari pada data sesudahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan, atau telah terurut dengan benar. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci atau data akan dengan lambat menggelembung atau membandingan data ke posisinya yang tepat.
Metode ini mudah dipahami dan diprogram, tetapi bila dibandingkan dengan metode lain yang kita pelajari, metode ini merupakan metode yang paling tidak efisien karena memiliki banyak pertukara sehingga memerlukan pengalokasian memori yang besar untuk menjalankan metode ini.
2. Pengertian Metode Selection Sort
Selection Sort berbeda dengan Bubble sort. Selection Sort pada dasarnya memilih data yang akan diurutkan menjadi dua bagian, yaitu bagaian yang sudah diurutkan dan bagian yang belum di urutkan.
Langkah pertama dicari data terkecil dari data pertama sampai data terakhir. Kemudian data terkecil ditukar dengan data pertama. Dengan demikian, data pertama sekarang mempunyai nilai paling kecil dibanding data yang lain. Langkah kedua, data terkecil kita cari mulai dari data kedua sampai terakhir. Data terkecil yang kita peroleh ditukar dengan data kedua dan demikian seterusnya sampai semua elemen dalam keadaan terurutkan. Metode ini lebih efektif dari pada metode bubble karena tidak memerlukan banyak pertukaran dan pengalokasian memori.
1.       Selection Sorting Ascending
case 1 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] < Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] > Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;

2.       Selection sorting descending
case 2 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] > Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] < Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;

3.       Bubble Sorting (Ascending)
case 3 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
for(j = 0; j < n - 1; j++) {
if(Arr[j] > Arr[j + 1]) {
Tmp = Arr[j];
Arr[j] = Arr[j + 1];
Arr[j + 1] = Tmp;
}
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}

getch();
break;

4.       Bubble Sorting (Descending)

case 4 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
for(j = 0; j < n - 1; j++) {
if(Arr[j] < Arr[j + 1]) {
Tmp = Arr[j];
Arr[j] = Arr[j + 1];
Arr[j + 1] = Tmp;
}
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;

5.        Insertion Sorting (Ascending)
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
Tmp = Arr[i];
j = i - 1;
while(Arr[j] >= Tmp && j > 0) {
Arr[j + 1] = Arr[j];
j = j - 1;
}
if(Tmp >= Arr[j]) {
Arr[j + 1] = Tmp;
} else {
Arr[j + 1] = Arr[j];
Arr[j] = Tmp;
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;

6.       Insertion Sorting (Descending)
case 6 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
Tmp = Arr[i];
j = i - 1;
while(Arr[j] <= Tmp && j > 0) {
Arr[j + 1] = Arr[j];
j = j - 1; }
if(Tmp <= Arr[j]) {
Arr[j + 1] = Tmp;
} else {
Arr[j + 1] = Arr[j];
Arr[j] = Tmp;   }}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]); }
getch();

Bahasa Basis Data

Posted by Wawan On 09:20 | No comments


Bahasa Basisdata
l  Definisi:
                        Bahasa yang dipakai untuk berkomunikasi dengan DBMS
l  Bentuk :
                        Structure Query Language (SQL)
l  Macam :
l  Data Definition Language (DDL)
l  Membuat/Menghapus Database
l  Membuat/Mengubah/Menghapus Tabel
l  Mendefinisikan Constraint (Primary key, Foreign Key, dll)
l  Data Manipulation Language (DML)
l  Menambah/Mengubah/Menghapus data
l  Menampilkan Data
Membuat database
l  Membuat otoritas membuat database
l  Buka Interprise Maneger
l  Klik Users pada Database Master
l  Klik Kanan – New Users
l  Pilih login Name : userxxx
l  Check semua list pada Permit in database role
l  Buka Query Analyzer dengan user Anda (userxxxx)
l  Tuliskan Script untuk membuat database
l  Jalankan dengan menekan tombol F5

Script Membuat database
CREATE DATABASE SBDxxxx
ON PRIMARY
( NAME = sbdxxxx,
 FILENAME = 'D:\Data\xxxx\sbd.mdf',
   SIZE = 1,
   MAXSIZE = 10,
   FILEGROWTH = 2 )
LOG ON
( NAME = ‘sbdxxxxlog',
   FILENAME = 'D:\Data\xxxx\sbdlog.ldf',
   SIZE = 1MB,
   MAXSIZE = 10MB,
   FILEGROWTH = 1MB );

Script Menghapus database
DROP DATABASE PBD;

Meng aktifkan database
USE PBD;






Membuat Tabel
l  Syntax
                       
                        CREATE TABLE MAHASISWA(
                                                THANG INTEGER,
                                                NIM INTEGER,
                                                NAMA VARCHAR (30),
                                                ALAMAT VARCHAR (80));
Mendefinisikan Not nul
CREATE TABLE MAHASISWA(
                                                THANG INTEGER not null,
                                                NIM INTEGER not null,
                                                NAMA VARCHAR (30) not null,
                                                ALAMAT VARCHAR (80));
Mendefinisikan Default
CREATE TABLE MAHASISWA(
                                                THANG INTEGER not null,
                                                NIM INTEGER not null,
                                                NAMA VARCHAR (30) not null,
                                                ALAMAT VARCHAR (80) default 'YOGYA');
Mendefinisikan Auto Increment
l  MEMBUAT
CREATE TABLE CONTOH(
                        IDCONTOH INTEGER IDENTITY (0,1) PRIMARY KEY,
                        KODE CHAR(2) NOT NULL,
                        NOMOR INTEGER NOT NULL);
l  MERESET
                        DBCC CHECKIDENT (CONTOH, RESEED, 5)

Mendefinisikan Primary Key
1.        DROP  TABLE MAHASISWA;
CREATE TABLE MAHASISWA(
                                                THANG INTEGER not null,
                                                NIM INTEGER not null primary key,
                                                NAMA VARCHAR (30) not null,
                                                ALAMAT VARCHAR (80) default 'YOGYA');

2.        DROP  TABLE MAHASISWA;
CREATE TABLE MAHASISWA(
                                                THANG INTEGER not null,
                                                NIM INTEGER not null,
                                                NAMA VARCHAR (30) not null,
                                                ALAMAT VARCHAR (80) default 'YOGYA',
PRIMARY KEY (NIM));

3.        DROP  TABLE MAHASISWA;
CREATE TABLE MAHASISWA(
                                                THANG INTEGER not null,
                                                NIM INTEGER not null,
                                                NAMA VARCHAR (30) not null,
                                                ALAMAT VARCHAR (80) default 'YOGYA');
ALTER TABLE MAHASISWA ADD CONSTRAINT PK_MHS PRIMARY KEY (NIM);                



Foreignt Key
CREATE TABEL MENGAJAR(
                        NIP CHAR(10) NOT NULL
                                               REFERENCES DOSEN (NIP)
                                                                        ON UPDATE CASCADE
                                                                        ON DELETE NO ACTION,
                        KODE CHAR(10) NOT NULL
                                               REFERENCES MATAKULIAH (KODE)
                                                                        ON UPDATE CASCADE
                                                                        ON DELETE NO ACTION);

Foreign Key 2
l  ALTER TABLE MENGAJAR
                        ADD CONSTRAINT  FK_MENGAJAR1
                                                FOREIGN KEY (NIP)
                                               REFERENCES DOSEN (NIP)
                                                                        ON UPDATE CASCADE
                                                                        ON DELETE NO ACTION;
l  ALTER TABLE MENGAJAR
                        ADD CONSTRAINT
                                               FK_MENGAJAR2 FOREIGN KEY (KODE)
                                               REFERENCES MATAKULIAH (KODE)
                                                                        ON UPDATE CASCADE
                                                                        ON DELETE NO ACTION;

Aturan
l  Tabel induk harus dibuat terlebih dahulu
l  Tipe field harus sama dengan tipe file yang dirujuk
Menghapus Constraint
l  ALTER TABLE MENGAJAR DROP CONSTRAINT FK_MENGAJAR2;
Mengubah Tabel
l  MENAMBAH KOLOM
                        ALTER TABLE DOSEN
                                                ADD JABATAN VARCHAR (30);
l  MENGHAPUS KOLOM
                        ALTER TABLE DOSEN DROP JABATAN;
l  MENGUBAH TIPE KOLOM
                        ALTER TABLE DOSEN ALTER COLUMN NAMA VARCHAR (40);

Membuat Diagram
l  Dari Interprise Manager
l  Pada Database anda  - Diagrams
l  Klik Kanan – New Database Diagrams
l  Next
l  Pilih Tabel yang akan dilihat dalam diagram
l  Tekan Add>
l  Next - Finish












Blog Archive

Powered by Blogger.

Contributors

Followers