Tuesday, February 25, 2014

Data Structure Class

Pointer, Array & Introduction to Date Structure

Array
  • kumpulan data
  • homogen (tipe data sama)
  • index .. start = 0
contoh : int angka[][] = 2 dimensi
             int angka[][][] = 3 dimensi

ada beberapa dimensi dalam array...

Array 1 dimensi
deklarasi :
int arr [5];

akses:
arr [0] = 7;
arr [1] = 2;

syntax :
type name [size]

Array 2 dimensi
deklarasi : 
int array [3] [6] ==> 3 baris 6 kolom ==> 3x6 = 18 ==> banyaknya data : elemen

akses :  arr[0][2] = 2;
     arr[2][1] = 9;

syntax :
type name [size1] [size2]

Array mulitidimensi
deklarasi :
int arr[3][4][7][10];

akses : arr[0][2][2][9] = 2
     arr[2][1][6][0] = 0

syntax:
type name[size1][size2][size3][size4][..]

Q : berapa batas dimensi dalam array?
A : Tidak terbatas

Storing array values

dalam menyimpan nilai atau value kedalam array kita dapa melakukan :
  • insiasi elemen
  • memasukan nilai untuk elemen, dan
  • menetapkan nilai untuk elemen
•Insiasi untuk array
  Ex:  int marks[4] = {92, 80, 87, 96};
•memasukan nilai
  Ex:  int i, marks[15];
  for (i=0; i<15; i++)
  scanf(“%d”, &marks[i]);
•menetapkan nilai
  Ex:  int i, arr1[20], arr2[20];
  for(i=0; i<20; i++)
  arr2[i] = arr1[i];

Operasi - operasi yang ada di dalam array
> Transversal 
int angka[3][2]={(1,2,3),(2,2,4),(4,5,6)};
for(i=0;i<3;i++){
  for(j=0;j<3;j++){
     printf("%d",angka[j][i]);
      }
    }
}
hasil :
1 2 3
2 2 4
4 5 6

>Insertion 
>Searching
found=-1;
for(i=0;i<index;i++){
if(strcmpi(nama,binus[i].nama)==0){
found=i;break;
}
}
>Deletion
int i,found;
char nama[30];
do{
printf("masukan nama [3..12];");
gets(nama);
}while(strlen(nama)<3||strlen(nama)>12);

found=-1;
for(i=0;i<index;i++){
if(strcmpi(nama,binus[i].nama)==0){
found=i;break;
}
}
if(found==-1){
printf("data not found\n");
}else{
for(i=found;i<index-1;i++){
binus[i]=binus[i+1];
}
index--;
}
}

>Merging
>Sorting
int i,j;
for(i=0;i<index-1;i++){
for(j=index-1;j>i;j--){
if(strcmpi(binus[j].nama,binus[j-1].nama)<0){
swap(&binus[j],&binus[j-1]);
}
}
}
}

Pointer
tipe data yang nilainya mengacu pada nilai lain disimpan di tempat lain dalam memori komputer dengan
menggunakan alamatnya.

& = alamat
* = isi

Struktur Data
pengaturan data baik dalam memori komputer maupun didalam penyimpanan disk
- Tipe-tipe struktur data
> array
kumpulan data (contohnya sudah ada di atas)

> Linked list 
dapat menambahkan juga menghapus elemen dari mana saja

> Queues
seperti orang yang sedang berbaris.. dia yang masuk pertama dan dia jg yg keluar pertama
[][][][] ... FIFO = first in first out

> Stacks
seperti menumpukan buku.. buku yang terakhir diletakan akan berada di paling atas lalu dia akan diambil pertama.
[]
[]
[].. LIFO = Last in first out

>binarry trees
kumpulan elemen yang dikatakan sebagai nodes atau titik yang saling berhubungan

> Hash Table 

Tipe Data
- int
- char
- float
- void

Abstract Data Typr
·           Secara umum, ADT adalah sebuah tipe data yang memenuhi kondisi berikut :
1.        Representasi, operasi, dan tupe objek didefinisikan dalam single syntatic unit.
2.        Representasi dari objek disembunyikan dari unit program yang menggunakan objek tersebut, sehingga operasi yang memungkinkan adalah operasi yang disediakan didalam type’s definition.
(ADT tidak bisa terlepas dari attribute)

Keuntungan ADT :
Program terorganisasi, dapat dimodifikasi, dan kompilasi terpisah.
Dapat diandalkan dengan menyembunyikan representasi data, pengguna (user) tidak dapat mengakses objek secara langsung.

Introduction to Linked List

Memory alocation dynamic
-dialokasikan saat runtime

Array VS Linked List
Array
  • koleksi liniear dari elemen data
  • menyimpan nilai dalam lokasi memori berturut - turut
  • bisa memasukan akses data random ==> langsung ke index
Linked list
  • koleksi linier dari titik atau nodes
  • tidak menyimpan titiknya secara berturut-turut dalam lokasi memori
  • kalau mau diakses harus berurutan

Nama : Angela Ekarizky Aprila N.
Nim : 1701289505
Kelas : 02PGT

:) Enjoy.. maaf kalo tidak lengkap :)






No comments:

Post a Comment