Algoritma Dan Struktur Data II

Array dan Matriks

!
1. ditulis dengan notasi khusus
2. notasi mudah dimengerti
3. notasi dapat diterjemahkan menjadi
sintaks suatu bahasa pemrograman

!

!
!

"

!

"#

$ !


!

%
&

&
!

'
"#

'
'
%()

** %()

&

)


'




(
(

) : mengunjungi setiap elemen SD
) : menemukan elemen/lokasi pad

(

) : menambah elemen baru pada SD

SD




(

) : menghapus elemen dari SD

!"

#

• KELEBIHAN
) Struktur Data paling mudah
) Memori ekonomis, bila semua elemen terisi
) Waktu akses sama ke setiap elemen

KEKURANGAN
) Boros memori jika banyak elemen yang tidak

digunakan
) Struktur Data Statis

$ %$ &"$


0

0

0

0

0

0

0

0

&!%

'

?1
?3
?5

1

3

5

7

2

9

4

7


%

'

2
7
4
9
7
5
13

1

3

5

7


2

9

4

7

(




)

Array : penampung sejumlah data sejenis (yang
memiliki type data yang sama) dengan
menggunakan satu identifier
Elemen array dapat diakses dengan
menggunakan index, dari nol sampai n)1 (n:

jumlah elemen array)
Contoh :
int x[5];
printf(“%d”,x[3]);

(




)

Struct: struktur data yang menggabungkan
beberapa data dengan tipe yang berbeda, tetapi
berkaitan
Elemen struct dapat diakses dengan
menggunakan dot operator dan arrow operator.

)
Gabungan beberapa variable dengan tipe yang

berbeda
学籍番号
学籍番号
名前学籍番号
名前
生年月日
名前
生年月日
nama
体重生年月日
体重
Nilai math
身長体重 Nilai biology
身長
身長 Nilai geography
Nilai English
Nilai Bhs.Indonesia
Nilai rata)rata

struct NILAI {

char nama[100];
float math;
float biology;
float geography;
float english;
float bi;
float ratarata;
};
struct NILAI p[10];
Deklarasi struct

Gabungan beberapa variable dengan tipe yang
berbeda
)
学籍番号
学籍番号
名前学籍番号
名前学籍番号
生年月日
名前学籍番号

生年月日
名前nama
体重生年月日
名前
体重生年月日
Nilai math
身長体重 Nilai biology
生年月日
身長体重
Nilai geography
身長体重
身長Nilai English
身長
Nilai Bhs.Indonesia
Nilai rata)rata

struct NILAI {
char nama[100];
float math;
float biology;
float geography;
float english;
float bi;
float ratarata;
} p[10];

*+*
1.

,*

Array
1. Linear List
2. Stack
3. Queue

2. List
1. Connected List
2. Circular List
3. Doubly)linked List
4. Multi list structure
3. Tree Structure

*

*

• Sekumpulan elemen yang diatur secara terurut


+

• Linear List tidak sama dengan Connected)List

$ *

-

*

+

(&
! "#
"

% $

!

'

$

!% "$

% $ $
$(

$# &#

#

"$

!% "$

$

!% "$
!

$# &#
$#

!%

" %

! % $

$# &#

$

*

$

$! !

#

$
$

%
$

) ($

$# $! !

%

$!% "

(

!% "

.

)

/ * *

• Tidak semua operasi list diperlukan pada setiap program
▫ Penentuan struktur data didasarkan pada operasi yang
diperlukan saja agar bisa berjalan dengan efisien
• Pada sebuah Linear List, penyisipan dan penghapusan
elemen dapat dijalankan di sebarang posisi
• Bentuk khusus linear list:
Penambahan elemen dan penghapusannya
dilakukan di posisi terdepan atau
posisi terbelakang saja
, -

.

'

&

+

#

,% %

.

)

/ * *

• Pada sebuah Linear List, penyisipan dan penghapusan
elemen dapat dijalankan di sebarang posisi
• Penambahan dan penghapusan elemen pada stack/queue
dilakukan di posisi terdepan atau posisi terbelakang saja

+

#

,% %

)

)

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menambahkan elemen pada sebuah
stack
)/,0

* ..$!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menambahkan elemen pada sebuah
stack
)/,0

*
!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menambahkan elemen pada sebuah
stack
*

)/,0

!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menambahkan elemen pada sebuah
stack
*

)/,0

!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menambahkan elemen pada sebuah
stack
*
)/,0

!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menambahkan elemen pada sebuah
stack
*
)/,0

!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menghapus sebuah elemen dari sebuah
stack
*
)()

!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menghapus sebuah elemen dari sebuah
stack
*
)()

!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menghapus sebuah elemen dari sebuah
stack
)()

*

!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menghapus sebuah elemen dari sebuah
stack
*
)()
!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain
lain: LIFO (Last In First Out)
• Operasi
: Menghapus sebuah elemen dari sebuah
stack

)()

*
!* *

)
• Penambahan dan penghapusan elemen dilakukan pada
elemen list yang terletak di paling depan
• Yang dihapus adalah elemen yang paling terakhir
ditambahkan
• Nama lain: LIFO (Last In First Out)
• Operasi
: Menghapus sebuah elemen dari sebuah
stack

)()
* ..!* *

)

)/,0

)()

) $(* 0 1

) ! -* 0 1

• Stack Overflow
Menambahkan data pada sebuah stack yang telah penuh
• Stack Underflow
Menghapus data dari sebuah stack yang sudah kosong

/ * *

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi
: menambahkan data pada sebuah
list
1+./1/1

/ * ..

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi
: menambahkan data pada sebuah
list
1+./1/1
/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi
: menambahkan data pada sebuah
list
1+./1/1

/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi
: menambahkan data pada sebuah
list
1+./1/1

/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi
: menambahkan data pada sebuah
list
1+./1/1

/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi
: menambahkan data pada sebuah
list
1+./1/1
/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi !
: menghapus data pada sebuah list
21./1/1

/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi !
: menghapus data pada sebuah list
21./1/1

/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi !
: menghapus data pada sebuah list
21./1/1

/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi !
: menghapus data pada sebuah list
21./1/1

/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi !
: menghapus data pada sebuah list
21./1/1

/*

/ * *
• Penambahan data dilakukan pada sebuah ujung sebuah
list, sedangkan penghapusan data dilakukan pada ujung
yang lain
• Data yang dihapus adalah data yang paling awal
ditambahkan
• Nama lain: FIFO (First In First Out)
• Operasi !
: menghapus data pada sebuah list
21./1/1

/ * ..

/ * *

1+./1/1

21./1/1

• Gambarkan kondisi stack setelah dilakukan operasi
berikut:

2

% "0

12

% "0 12
* 012
% "0

12

* 012
% "0

12

% "0 12

• Gambarkan kondisi queue setelah dilakukan operasi
berikut:

3

3% % 0

12

3% % 0

12

3% % 0 12
( 3% % 012
3% % 0
( 3% % 012
( 3% % 012

12