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 :)