Course Description
Kursus ini memberi siswa konsep dasar struktur data yang akan sering digunakan dalam praktik rekayasa perangkat lunak dan pemrograman, konsep array, struktur, tumpukan, antrian, grafik, dan trees.
Sub
Topics
Pointer,
Array and Introduction to Data Structure
• Array Review
• Pointer Review
• Types of Data Structures
• Abstract Data Type
Array
• Kumpulan elemen data yang serupa
• Elemen data ini memiliki tipe data yang sama (homogen)
• Elemen array disimpan di lokasi memori berturut-turut dan direferensikan oleh indeks
• Indeks Array dimulai dari nol
• Elemen data ini memiliki tipe data yang sama (homogen)
• Elemen array disimpan di lokasi memori berturut-turut dan direferensikan oleh indeks
• Indeks Array dimulai dari nol
Array
Declaration & Accessing Array
•One Dimensional Array
•Declaration:
•int
arr[5];
Syntax:
type name[size];
An
array of size N have indexes from 0 to N-1.
•Accessing:
-arr[0]
= 7;
-arr[1]
= 2;
-arr[2]
= 13;
-arr[3]
= 13;
-arr[4] = 13;
• Two Dimensional Array
• Declaration:
• int
arr[3][6];
Syntax:
type name[size1][size2];
•The first index of array ranged from 0 to
size1 – 1.
•The second index of array ranged from 0
to size2 – 1.
• Accessing:
-arr[0][2]
= 2;
- arr[2][1]
= 9;
-arr[1][5]
= 13;
-arr[2][4] = 10;
•Multi Dimensional Array
•Declaration:
•int
arr[4][3][7][10];
•Accessing:
-arr[0][2][2][9]=
2;
-arr[2][1][6][0]=
9;
-arr[3][0][0][6]=
13;
-arr[2][1][3][8]= 10;
Storing
Array Values
•Initialization of Arrays
Example: int
marks[5] = {90, 82, 78, 95, 88};
•Inputting Values
Example:
int i, marks[10];
for
(i=0; i<10; i++)
scanf(“%d”,
&marks[i]);
•Assigning Values
Example:
int i, arr1[10], arr2[10];
for(i=0;
i<10; i++)
arr2[i]
= arr1[i];
Operations
in Array
Ada sejumlah operasi yang bisa dilakukan
pada array ialah:
pada array ialah:
-Traversal
-Insertion
-Searching
-Deletion
-Merging
-Sorting
Pointer
Pointer adalah tipe data yang nilainya mengacu pada nilai lain yang tersimpan
Di tempat lain dalam memori komputer menggunakan alamatnya.
Dua operator terpenting yang digunakan dengan tipe pointer adalah:
• & operator alamat
• operator dereferencing
Di tempat lain dalam memori komputer menggunakan alamatnya.
Dua operator terpenting yang digunakan dengan tipe pointer adalah:
• & operator alamat
• operator dereferencing
If we have the declaration:
int
x;
int
*px;
then x is an
integer and px is a
pointer to an integer. If we say:
px = &x;
then &x returns
the address of x and
assigns it as the value of px.
To assign a value of x we
can say
x =
10;
or
*pi = 10;
What is the output of this program?
int a = 10;
int *p = &a;
printf( “%d\n”, *p );
a
= 17;
*p = 20;
printf( “%d\n”, a );
Data
Structure
• Struktur data adalah susunan data, baik dalam memori komputer maupun pada penyimpanan disk.
• Beberapa contoh umum dari struktur data meliputi:
• Struktur data adalah susunan data, baik dalam memori komputer maupun pada penyimpanan disk.
• Beberapa contoh umum dari struktur data meliputi:
–Arrays
–Linked
lists
–Queues
–Stacks
–Binary
trees
–Hash
tables
Types
of Data Structure
•Arrays
- Kumpulan elemen data yang serupa
-Data elemen memiliki tipe data yang sama
- Kumpulan elemen data yang serupa
-Data elemen memiliki tipe data yang sama
•Linked Lists
-Sebuah struktur data yang sangat dinamis dimana elemen dapat ditambahkan ke atau dihapus dari mana saja sesuka hati
-Setiap elemen disebut node
-Sebuah struktur data yang sangat dinamis dimana elemen dapat ditambahkan ke atau dihapus dari mana saja sesuka hati
-Setiap elemen disebut node
•Queue
- Unsur yang disisipkan pertama adalah yang pertama dibawa keluar
- Elemen dalam antrian ditambahkan pada salah satu ujungnya yang disebut bagian belakang dan dilepas dari ujung yang disebut front
- Unsur yang disisipkan pertama adalah yang pertama dibawa keluar
- Elemen dalam antrian ditambahkan pada salah satu ujungnya yang disebut bagian belakang dan dilepas dari ujung yang disebut front
•Stack
-Stack dapat direpresentasikan sebagai array linier
-Setiap stack memiliki variabel TOP yang terkait dengannya
-LIFO (Last In First Out) / FILO (Pertama di Last Out)
-Stack dapat direpresentasikan sebagai array linier
-Setiap stack memiliki variabel TOP yang terkait dengannya
-LIFO (Last In First Out) / FILO (Pertama di Last Out)
•Binary Trees
-Sebuah struktur data yang didefinisikan sebagai kumpulan elemen yang disebut node
-Setiap node berisi pointer kiri, pointer kanan, dan elemen data
-Sebuah struktur data yang didefinisikan sebagai kumpulan elemen yang disebut node
-Setiap node berisi pointer kiri, pointer kanan, dan elemen data
Data
Type
•Data Type adalah kumpulan objek dan sekumpulan operasi yang bekerja pada objek tersebut.
• Misalnya, tipe data int terdiri dari:
• objek: 0, +1, -1, +2, -2, dll
• operasi: +, -, *, /,%, dll
• Contoh tipe data yang telah ditentukan adalah int, char, float.
• Misalnya, tipe data int terdiri dari:
• objek: 0, +1, -1, +2, -2, dll
• operasi: +, -, *, /,%, dll
• Contoh tipe data yang telah ditentukan adalah int, char, float.
Abstract
Data Type
•Abstract
Data Type adalah tipe data yang disusun sedemikian rupa sehingga spesifikasi objek dan spesifikasi operasi pada objek dipisahkan dari representasi objek dan pelaksanaan operasi.
• C / C ++ memiliki konsep yang disebut class dan struct yang membantu programmer dalam mengimplementasikan tipe data abstrak.
• C / C ++ memiliki konsep yang disebut class dan struct yang membantu programmer dalam mengimplementasikan tipe data abstrak.
Example
of ADT
• Seharusnya kita ingin membuat ADT bilangan natural yang memiliki bilangan bulat sebagai objek dan beberapa fungsinya sebagai operasi.
• Struktur Nomor adalah
• Seharusnya kita ingin membuat ADT bilangan natural yang memiliki bilangan bulat sebagai objek dan beberapa fungsinya sebagai operasi.
• Struktur Nomor adalah
objects :
an integer x
functions :
bool
is_zero() if ( x == 0 ) return TRUE else
return FALSE
bool
equal(y) if ( x == y ) return TRUE else
return FALSE
void
set(y) x = y
void
add(y) x = x + y int
get () return
x
Introduction to Linked List
Sub
Topics
-Structure Declaration
-Structure Assignments
-Nested Structure
-Array of Structure
-Memory Allocation
-Linked List Introduction
-Linked List versus Array
Structure
•Structure pada dasarnya adalah tipe data yang ditentukan pengguna yang dapat menyimpan informasi terkait (bahkan dari tipe data yang berbeda) bersama-sama, sementara array hanya dapat menyimpan entitas dari tipe data yang sama.
• Ini adalah kumpulan variabel dengan satu nama.
• Variabel dalam struktur memiliki tipe data yang berbeda dan masing-masing memiliki nama yang digunakan untuk memilihnya dari struktur.
• Ini adalah kumpulan variabel dengan satu nama.
• Variabel dalam struktur memiliki tipe data yang berbeda dan masing-masing memiliki nama yang digunakan untuk memilihnya dari struktur.
Structure
Declaration
struct tdata {
int age;
char name[100];
float score;
•The
code above defines
a structure named tdata
which has three members: age (int),
name (char[])
and score (float).
•Creating a variable of structure is
similar to create a variable of primitive data type.
tdata
x; // a
variable of tdata
tdata
arr[100]; // an array of tdata
You
also can define a structure as well as declare variables.
struct
tdata {
int
age;
char
name[100];
float score;
}
a, b;
The
code on the left is equal to:
struct
tdata {
int
age;
char
name[100];
float score;
};
tdata
a;
tdata
b;
Structure
Assignments
tdata
x;
You
can use operator . (dot) to access member of x
x.age = 17;
strcpy(x.name, “andi”);
x.score = 82.5;
Nested
Structure
You
also can have a structure as a member of another structure
struct
profile {
int
age;
char
name[100];
};
struct
student {
struct profile p;
int
score;
char grade;
};
Array
of Structure
You
also can have an array of structure.
struct
profile {
int
age;
char
name[100];
};
struct
student {
struct profile p;
int
score;
char grade;
};
Memory
Allocation: Dynamic
If you need to allocate memory
dynamically (in runtime), you can
use malloc in
C/C++. To de-allocate you can use free.
int *px = (int *) malloc(sizeof(int));
char
*pc = (char *) malloc(sizeof(char));
*px =
205;
*pc =
‘A’;
printf(
“%d %c\n”, *px, *pc );
free(px);
free(pc);
Linked
List Introduction
Linked
list adalah struktur data yang terdiri dari urutan data
catatan seperti itu setiap record ada field yang berisi a
mengacu pada rekaman berikutnya dalam urutan.
catatan seperti itu setiap record ada field yang berisi a
mengacu pada rekaman berikutnya dalam urutan.
Linked
List versus Array
Array:
• Kumpulan data elemen linier
• Simpan nilai di lokasi memori berturut-turut
• Dapat acak dalam mengakses data
• Kumpulan data elemen linier
• Simpan nilai di lokasi memori berturut-turut
• Dapat acak dalam mengakses data
Linked
List:
•Kumpulan node linier
•Tidak menyimpan simpulnya di lokasi memori berturut-turut
•Tidak menyimpan simpulnya di lokasi memori berturut-turut
•Dapat diakses hanya secara berurutan

Komentar
Posting Komentar