Sabtu, 22 Mei 2010

TEORI STRUKTUR DATA

Nama Kampus : PKN LPKIA
Konsentrasi : Teknik Informatika (TI)
Tingkat : 1
Kelas : 1 TI-6
Nama Mahasiswa : MUHAMAD RIDWAN AZIZ SOFYAN
Mata Kuliah : Teori Struktur Data
Nama Dosen : DADAN NURDIN BAGENDA, ST
Judul Tugas : Rangkuman Bahasan Materi Sebelum UTS


POINTER
Pointer (variable penunjuk)adalah suatu variable yang berisi alamat memori dari suatu variable lain. Alamat ini merupakan alokasi dari objek lain(biasanya variable lain) didalam memori. Contoh, jika sebuah variable alamt dari variable lain, variable pertama dikatakan menunjuk ke variable kedua
Operator pointer ada dua, yaitu:
Operasi “&”
Operator & bersifat unary(hanya memrlukan satu operand saja).
Operator &menghasilkan alamat dari operandnya.
Deklarasi pointer
Seperti halnya variable yang lain, variable pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan.
Bentuk umum:
Tipe_data*nama_pointer;
Tipe data pointer mendefinisikan tipe dari objek yang ditunjuk oleh pointer. Secara teknis, tipe apapun dari pointer dapat menunjukan lokasi(dimanapun) dalam memori. Bahkan operasi pointer dapat dilaksanakan relative terhadap tipe dasar apapun yang ditunjuk. Contoh, ketika kita mendeklarasikan pointer dengan tipe int*, compiler akan menganggap alamat yang ditunjuk menyimpan nilai integer – walaupun sebenarnya bukan(sebuah pointer int* selalu menganggap bahwa ia menunjuk ke sebuah objek bertipe integer, tidak peduli isi sebenarnya). Karenanya, sebelum mendeklarasikan sebuah pointer, pastikan tipenya sesuai dengan tipe objek yang akan ditunjuk.
Contoh :
Menentukan alamat memori
#include"conio.h"
#include"iostream.h"
void main()
{
clrscr();
int a;
int b;
cout<<"Masukan Nilai a: ";
cin>>a;
cout<<"Masukan Nilai b: ";
cin>>b;
cout<<"Alamat Memori Nilai a: "<<&a<cout<<"Alamat Memori Nilai b: "<<&b<getch();
}

Menentukan alamat memori dan isi
#include"constream.h"
void main()
{
clrscr();
int a;
int *b;

b=&a;

cout<<"Masukan nilai a : ";
cin>>a;
cout<<"Alamat memori dari a : "<cout<<"Isi dari nilai a : "<<*b;
getch();
}



STRUCT
Struktur merupakan suatu pengelompokan data-data didalam satu atau beberapa objek yang diciptakan
Objek bertugas menampung dari pada anggota-anggota data struct(variable), termasuk fungsi yang ada didalam struct.. Penciptaan suatu object ada dua cara, yakni dapat diciptakan lansung setelah proses deklarasi struct berakhir (setelah kurung kurawal tutup) atau diciptakan dengan format:
Nama_struct (spasi) Nama_objek ;
Hal ini bermanfaat untuk penciptaan beberapa objek.Struct dapat dideklarasikan didalam void main ataupun diluar void main(sebelum void main), karena DEFAULT dari pada struct adalah public, artinya dapat diakses secara langsung didalam void main tanpa authorisasi.
Contoh pedeklarasian struct:
Struct data
{
Int tahun;
Int bulan;
Int tanggal;
}lahir;
Apabila hendak mendefinisakan anggota diluar struct, maka menggunakan pernyataaan:
Nama_objek.nama_anggota=nilai tertentu;
Contoh Program Struct:
#include"conio.h"
#include"iostream.h"

struct keluarga
{
char suami[15];
char istri[15];
int jml_anak;
};

void main ()
{
clrscr();
keluarga data;

cout<<"Masukan nama Suami : ";cin>>data.suami;
cout<<"Masukan nama Istri : ";cin>>data.istri;
cout<<"Masukan jumlah anak: ";cin>>data.jml_anak;
cout<cout<<"*******************************"<cout<<"Nama Suami : "<cout<<"Nama Istri : "<cout<<"Jumlah anak: "<cout<<"*******************************"<
getch();
}




CLASS
Class merupakan struktur data dari objek. Class layaknya struct, namun class memiliki method. Class terdiri dari dua bagian, yaitu class anggota dan fungsi anggota. Default dari class adalah private, sehingga tidak dapat “dikenal” pada fungsi main, kecuali apabila dideklarasikan dengan public.
Fungsi dari pada class dapat didefinisikan didalam class atau diluar class. Apabila pendefinisian fungsi panjang, disarankan un tuk didefinisikan diluar class, agar pengeksekusian dapat berjalan cepat. Untuk pendefinisian diluar class, harus dideklarasikan terlebih dhulu nama fungsi didalam class. Pendefinisian diluar class dapat dilakukan dengan cara format berikut:
Void (spasi) nama_kelas::nama_fungsi(agumen)
{
//definisi
}
Artinya dengan menambahkan operator resolusi lingkup( :: )
Contoh Program Yang Menggunakan Class:
#include"constream.h"

class hitung
{
private:
int p;
int l;
int a;
int t;
int luas;

public:
void persegi();
void segitiga();
}data;

void hitung::persegi()
{
cout<<"***MENGHITUNG LUAS PERSEGI PANJANG***"<cout<<"Masukan panjang : ";cin>>p;
cout<<"Masukan lebar : ";cin>>l;
luas=p*l;
cout<<"Luasnya adalah : "<cout<}
void hitung::segitiga()
{
cout<<"***MENGHITUNG LUAS SEGITIGA***"<cout<<"Masukan alas : ";cin>>a;
cout<<"Masukan tinggi: ";cin>>t;
luas=a*t/2;
cout<<"Luasnya adalah: "<}

void main()
{
clrscr();
data.persegi();
data.segitiga();
getch();
}


SISTEM MENU
Sistem menu sangatlah penting untuk sebuah program. Dengan adanya sistem menu, user akan dapat berinteraksi lebih dengan program, sesuai dengan minat user. Sistem menu layaknya sebuah link bagi user untuk dapat memilih bgian program yang ingin digunakan.
Sistem menu pada program c++ dapat dilakukan dengan tiga cara, yakni menggunakan while-do, switch-case dan menggunakan goto.
Sistem menu menggunakan do-while dapat dilakukan dengan format:
do
{
block of code
}
while(test condition);
Sistem menu menggunakan switch-case dapat dilakukan dengan format:
Switch(kondisi)
Case 1 to n:
Break;
Default:
Sedangkan sistem menu menggunakan goto :
Sistem menu menggunakan goto merupakan suatu “pelemparan” kondisi, termasuk kondisi didalam looping, ke suatu “portal” yang telah kita tentukan letaknya.
Contoh program Sistem Menu Menggunakan do-while:
#include"conio.h"
#include"iostream.h"

struct keluarga
{
char suami[15];
char istri[15];
int jml_anak;
};

void main ()
{
clrscr();
char answer;
keluarga data;
do
{

cout<<"Masukan nama Suami : ";cin>>data.suami;
cout<<"Masukan nama Istri : ";cin>>data.istri;
cout<<"Masukan jumlah anak: ";cin>>data.jml_anak;
cout<cout<<"*******************************"<cout<<"Nama Suami : "<cout<<"Nama Istri : "<cout<<"Jumlah anak: "<cout<<"*******************************"<
getch();
cout<<"Mau Melakukan Program ini Lagi?? [Y/T]"; cin>>answer;
}
while ((answer == 'y') || (answer == 'Y'));
}




SEARCHING
Searching atau pencarian pada program sangatlah bermanfaat. Apabila kita hendak mencari suatu data tertentu, dengan kosep searching, maka sangatlah membantu, cepat dan akurat. Searching juga dpat digunkan untuk pencarian suatu nilai maksimal atau nilai minimal dari daftar dengan kondisi tertentu.
Konsep searching pada C++ adalah dengan menyamakan suatu data yang dicari dengan isi dari index-index suatu data menggunakan looping, hingga ditemukan kesamaan dan di ambil index dari data yang sama tersebut. Kegunaan index dari isi data yang telah ditemukan digunakan apabila kita hendak mencari data lain yang ada pada index yang sama, seperti misalnya data nama, data pendidikan, dan lain sebagainya.
Contoh Program Searching:
#include"conio.h"
#include"iostream.h"


void main()
{
clrscr();

long double nrp[10], max;
char nama[6][20];
int x,y,index,nrpcari;


cout<<"ÚÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂ"<cout<<"³ NO ³ NRP ³ NAMA ³"<cout<<"ÃÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅ"<cout<<"³ 1 ³ ³ ³"<cout<<"³ 2 ³ ³ ³"<cout<<"³ 3 ³ ³ ³"<cout<<"³ 4 ³ ³ ³"<cout<<"³ 5 ³ ³ ³"<cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁ"<

for(y=1;y<=5;y++)
for(x=1;x<=2;x++)
{gotoxy(x*11,y+3);
if(x==1)
cin>>nrp[y];
else
cin>>nama[y];
}
cout<cout<<"Masukan NRP yang dicari : ";
cin>>nrpcari;
for(x=1;x<=5;x++)
if(nrpcari==nrp[x])
{nrpcari=nrp[x];
index=x;
}

gotoxy(1,11);

cout<<"NRP yang di cari adalah :" <cout<<"Di Index ke :" <cout<<"Namanya :" <
getch();
}




SORTING
Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan tertentu. Sorting dapat dibedakan menjadi dua jenis yaitu ascending dan descending.Ascending adalah pengurutan data dari kecil ke besar, sedangkandescending adalah pengurutan data dari besar ke kecil. Nah, ada banyak program sorting dalam C++, seperti bubble sort, selection sort, insertion sort, exchange sort, merge sort, quick sort, dan lain sebagainya.
Contoh program bubble sort :
#include "iostream.h"
#include "conio.h"

int data[10],data2[10];
int n,i;

void tukar(int a, int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}

void bubble_sort()
{
for(int i=1;i<=n;i++)
{
for(int j=n; j>=i; j--)
{
if(data[j] < data[j-1]) tukar(j,j-1);
}
}
}
void main()
{
clrscr();
cout<<"===PROGRAM BUBBLE SORT==="<
//Input Data
cout<<"Masukkan Jumlah Data : ";
cin>>n;
cout<<"Data yang dimasukan adalah angka"<for(int i=1;i<=n;i++)
{
cout<<"Masukkan data ke "<cin>>data[i];
data2[i]=data[i];
}

bubble_sort();
cout<<"\n\n";
//tampilkan data
cout<<"Data Setelah di Sort : ";
for(i=1; i<=n; i++)
{
cout<<" "<}
cout<<"\n\nSorting Selesai";
getch();
}


TEKOMC SIAP!!!!!!!!!!!!!!!!