1. Pengertian Struktur data
Struktur data adalah cara menyimpan data didalam komputer agar bisa dipakai secara efisien. Sedangkan data adalah Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol.
2. GAMBAR PEMETAAN matakuliah Struktur Data
Struktur data linear
3. Array dan Pointer
Array
merupakan kumpulan fariable memakai nama dan tipe data yang sama serta setiap
elemen diakses dengan membedakan indeks array-nya.
Arayy ada 2:
- · Satu dimeni
- · Dua dimensi
Arayy Satau dimen adalah struktur data yang
statis yang mempunyai 1 nama tetapi memiliki banyak tempat. Setiap tempat harus
dibedakan, untuk membedakannya dibutuhkan penunjuk, pentunjuk dapat berupa
karakter(char) atau integer. Sekali disimpan dalam penunjuk yang sama(berbentuk
indeks), maka isinya tidak akan hilang kecuali indeksnya diisi oleh nilai yang
lain.
Contoh
Porgram:
#include<constream.h>
void
main()
{
clrscr();
int
*a;
for(int x=0;x<=10;x++)
a[x]=x;
for(x=0;x<10;x++)
cout<<a[x]<<endl;
getch();
}
Array
dua dimensi adalah array yang memiliki dua buah subskrip, yaitu baris dan kolom.Untuk mendeklarasikan array dua dimensi.
Contoh Program:
#include<constream.h>
void main()
{
clrscr();
int
a[6][6];
gotoxy(10,10);cout<<"No Nilai1 Nilai2 Nilai3 Nilai4
nilai5";
for(int y=1;y<5;y++)
for(int x =1;x<=5;x++)
{
gotoxy(x*7+8,y+10);
cin>>a[x][y];
}
getch();
}
Pointer
PointerèPembacaan
Diluar deklarasi
& dibaca
dengan -Ã Alamat dari
* dibaca denganà isi yang di tunjukan oleh
= dibaca
denganà di isi
-> dibaca denganà nya
Dobel pointer=
pointer yang di gunakan urntuk menbaca pointer pointer lain.
Contoh program:
//Mencari
Huruf
#include<constream.h>
void main()
{ clrscr();
char *nama =
"UNIVERSITAS";
char cari =
'S', tmp;
cout<<"Kata
= "<<nama;
cout<<"\nHuruf
yang dicari adalah = "<<cari<<endl<<endl;
for(int i=0;
i<11; i++){
if(nama[i]==cari)
tmp=nama[i];
//cout<<nama[i]<<"
TRUE\n";
//else
cout<<nama[i]<<" FALSE\n";
}
if(tmp==cari)
cout<<"Huruf
Ditemukan";
else
cout<<"Huruf
tidak Ditemukan";
getch();
}
4. Struktur data linear
a) Double linked list Circular
b) Double linked list Non Circular
c) Single linked list Circular
d) Single linked list Non Circular
b) Double linked list Non Circular
c) Single linked list Circular
d) Single linked list Non Circular
- Tambah list:depan(lifo),belakang(fifo),tengah.
- Hapus list:depan,tengah,belakang,semua.
- Hapus list:depan,tengah,belakang,semua.
Tambah
list:depan(lifo)
Potongan program
tambah list depan
void tambah_depan(){
clrscr();
simpul *baru;
baru = new simpul;
cout << "Masukkan merk HP : ";
cin >> baru-> HP;
cout << "Masukkan Type : ";
cin >> baru-> type;
cout << "Masukkan Harga : ";
cin >> baru-> harga;
baru->berikut = NULL;
clrscr();
if(kosong()==1){
awal=baru;
awal->berikut = NULL;
}else {
baru->berikut = awal;
awal = baru;
}
getch();
}
Tambah
list Belakang(Fifo)
Contoh program Tambah list belakang
#include<stdio.h>
#include<constream.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
struct siswa
{
char nrp[8],nama[20];
};
struct simpul
{
char nrp[8],nama[20];
struct simpul*berikut;
};
struct simpul*awal=NULL,*akhir=NULL;
struct siswa mhs;
void tambah_list_dibelakang(struct siswa info);
void isi_list();
void tampil_list();
void hapus_list();
void main()
{
clrscr();
isi_list();
clrscr();
tampil_list();
hapus_list();
getch();
}
void
tambah_list_dibelakang(struct siswa info)
{
struct simpul*baru;
baru=(struct
simpul*)malloc(sizeof(struct simpul));
strcpy(baru->nrp,info.nrp);
strcpy(baru->nama,info.nama);
if(awal==NULL)
{
awal=baru;
}
else
{
akhir->berikut=baru;
}
akhir=baru;
akhir->berikut=NULL;
}
void isi_list()
{
char jawab;
do
{
clrscr();
cout<<"\nNRP :";gets(mhs.nrp);
cout<<"\nNama :";gets(mhs.nama);
tambah_list_dibelakang(mhs);
cout<<"\nTambah Data
Y/T:";
cin>>jawab;
}
while(toupper(jawab)!='T');
}
void tampil_list()
{
struct simpul*baca;
int i;
baca=awal;
i=1;
while(baca!=NULL)
{
cout<<"\nData ke
:"<<i;
cout<<"\nNRP :"<<baca->nrp;
cout<<"\nNama :"<<baca->nama;
cout<<"\n";
i++;
baca=baca->berikut;
}
}
void hapus_list()
{
struct simpul*hapus;
hapus=awal;
while(hapus!=NULL)
{
awal=hapus->berikut;
free(hapus);
hapus=awal;
}
}
Tambah list tengah.
contoh potongan program Tambah list tengah :
void tambah_ditengah(){
clrscr();
simpul *baru, *bantu;
int posisi;
if(kosong()== 0){
cout<<"Akan disisip setelah Data Ke ? : ";
cin>>posisi;
bantu=awal;
baru=new simpul;
for(int i=1;i<posisi;i++){
if(bantu->berikut!=NULL)
bantu=bantu->berikut;
else break;
}
cout << "Masukkan Merk HP
: ";
cin >> baru-> HP;
cout << "Masukkan Type
: ";
cin >> baru-> type;
cout << "Masukkan Harga
: ";
cin >> baru-> harga;
baru->berikut=bantu->berikut;
bantu->berikut=baru;
clrscr();
}
else cout<<"Silahkan masukkan Data terlebih dahulu";
}
5. Struktur data Non linear
Struktur data Non linear yaitu kumpulan komponen-komponen yang
tersusun membentuk satu garis linear.
Ada 3 yaitu
a)
tree, binary
tre
b)
Graph
a) Tree
PENGERTIAN
Tree merupakan struktur data non linear. Struktur data dalam
bentuk tree (pohon) merupakan sebuah struktur data yang secara bentuk menyerupai sebuah pohon, yang terdiri dari
serangkaian simpul yang saling berhubungan.
contoh program:
contoh program:
#include
"iostream.h"
#include "string.h"
#include "conio.h"
struct simpulpohon
{
simpulpohon *induk;
simpulpohon *kiri;
simpulpohon *kanan;
char data;
};
class pohonbiner
{
private:
simpulpohon *akar;
int tambah(simpulpohon *orangtua, simpulpohon
*baru);
void tampil(simpulpohon *simpul);
public:
pohonbiner();
int tambah(char data);
void tampil();
};
void main()
{
clrscr();
char data[] = "CARKDUPBENXZS";
pohonbiner pohon;
for (int i = 0; i < strlen(data); i++)
pohon.tambah(data[i]);
cout<<"Data ke Pohon Biner :
"<<endl;
for (int x = 0; x < strlen(data); x++)
cout<<data[x];
cout<<endl;
cout<<endl;
cout<<"Hasil Pohon Biner
:"<<endl;
pohon.tampil();
getch();
}
pohonbiner::pohonbiner()
{
akar = NULL;
}
int pohonbiner::tambah(char
data)
{
simpulpohon *simpul;
simpul= new simpulpohon;
simpul->kiri = NULL;
simpul->kanan = NULL;
simpul->induk = NULL;
simpul->data = data;
if (akar == NULL)
{
akar = simpul;
return(1);
}
else
return(tambah(akar,simpul));
}
int
pohonbiner::tambah(simpulpohon *orangtua, simpulpohon *baru)
{
if (baru->data ==orangtua->data)
{
delete baru;
return(0);
}
else if (baru->data <
orangtua->data)
{
if (!orangtua->kiri)
{
orangtua->kiri = baru;
baru->induk = orangtua;
}
else
return(tambah(orangtua->kiri,baru));
}
else
{
if (!orangtua->kanan)
{
orangtua->kanan = baru;
baru->induk = orangtua;
}
else
return(tambah(orangtua->kanan,baru));
}
return(1);
}
void pohonbiner::tampil()
{
tampil(akar);
cout<<endl;
}
void
pohonbiner::tampil(simpulpohon *simpul)
{
if (simpul)
{
if (simpul->kiri)
tampil(simpul->kiri);
cout<<simpul->data;
if (simpul->kanan)
tampil(simpul->kanan);
}
}
b. Binary tre
Binery
tree merupakan bagian simpul terbatas diman asalah
satu simpul bisa kosong atau berisi
dua pohon yang terpisah yangdisebut subtree di kiri dan kanannya.
C.Graph
Graf atau
istilah aslinya Graph merupakan struktur data yang tersusun atas simpul-simpul
atau titik-titik (Node) yang terhubung satu sama lain dengan garis-garis.
1. Nama Mahasiswa : MUNGALIM
2. Nim : 6311079
3. Alamat : Sidadadi Sidanegara, kedungreja, Cilacap
4. Kelas saat ini : 1 Ti 8
5. Nama Matakuliah : T. Struktur Data
6. Nama Dosen : Dadan Nurdin Bangenda, ST
7. Nama Kampus : LPKIA
1. Nama Mahasiswa : MUNGALIM
2. Nim : 6311079
3. Alamat : Sidadadi Sidanegara, kedungreja, Cilacap
4. Kelas saat ini : 1 Ti 8
5. Nama Matakuliah : T. Struktur Data
6. Nama Dosen : Dadan Nurdin Bangenda, ST
7. Nama Kampus : LPKIA