Minggu, 15 Juli 2012

Rangkuman Mata Muliah Struktur Data di kelas



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
 - Tambah list:depan(lifo),belakang(fifo),tengah.
             - 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: 
#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