Saya disini akan mengulas materi yang sudah diajarkan oleh Ibu Detty Purnamasari. Yang pertama, Saya mau menjelaskan sistem pembelajaan Ibu Detty Purnamasari. Pertama kali, dosen SOD 2 saya bukan Ibu Detty, tapi karna dosen yang itu (Maaf, saya lupa nama) bentrok sama jadwal kelas lain, akhirnya dosen SOD 2 saya digantikan oleh Ibu Detty Purnamasari. Pas tau dan bu Detty masuk ke kelas 2KA12, alamak!! tegangnya bukan main, bu Detty itu dosen yang sangat idealis, perfeksionis, konsisten, dan displin. Dan cara pembelajarannya pun berbeda dengan dosen yang lain (yang saya tau). Mungkin bu Detty ingin melihat seberapa besar mahasiswa mau belajar. hehehehe :)
Mulai mengulas materi Ibu Detty :)
Mulai mengulas materi Ibu Detty :)
1. STRUKTUR DATA
Struktur Data : kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang dapat didefinisikan.
Algorithma : Langkah untuk menyelesaikan sebuah program. Inputnya data. Algorithma harus bisa diimplementasikan ke sebuah program.
Tipe data secara umum :
1. Tipe data sederhana
- Tunggal : Integer, Real, Boolean, Karakter.
- Majemuk : String.
2. Struktur Data
- Sederhana : Array Record.
- Majemuk:
~ Linier : Linier Linked List, Stack, Queue.
~ Non Linier : Binary Tree, Binary Search Tree, General Tree, Tree, Graf.
- INTEGER
Suatu integer adalah anggota dari himpunan bilangan :
{..., -(n+1), -n, ..., -2, -1, 0, 1, 2, ..., n, n+1, ...}
{..., -(n+1), -n, ..., -2, -1, 0, 1, 2, ..., n, n+1, ...}
Operasi dasar yang ada dalam integer yaitu : +, -, *, /, ^
-Pembagian Integer (DIV) : Sebuah integer (menghilangkan bagian pecahan dari hasil pembagian). Contoh : 17 DIV 3 = 5
-Operasi MOD (Modulo) : Sisa dari pembagian. Contoh : 17 MOD 3 = 2
~Binary Operator adalah Operator yang bekerja terhadap sepasang integer (operand).
Contoh dari Binary : 2 + 2.
~Unary Operator adalah Operator yang hanya bekerja terhadap satu operand saja.
Contoh dari Unary : Negasi.
- REAL
Tipe data ini jenis datanya Real. Jenis data menggunakan titik desimal (atau koma desimal). Bilangan real dimasukkan ke dalam memori komputer memakai sistem floating point.
- BOOLEAN
Jenis data ini disebut juga jenis Data Logika. Elemen dari jenis data ini mempunyai nilai true atau false.
- KARAKTER
Jenis data merupakan suatu himpunan yang terdiri atas bilangan, abjad dan simbol khusus. (0,1,...,8,9, A, B, ..., Y,Z, +, -,*,√, ...}
- STRING
Barisan hingga karakter
yang dibentuk oleh suatu kumpulan dari karakter. Karakter yang digunakan
untuk membentuk suatu string disebut alfabet.
Operasi & Operator :
1. Jumlah karakter dalam string disebut LENGTH
2. Gabungan 2 buah string disebut CONCAT
3. Sub bagian dari string disebut SUBSTR
4. Menyisipkan string kedalam string yang lain disebut INSERT
5. Menghapus karakter dalam string disebut DELETE
Operasi & Operator :
1. Jumlah karakter dalam string disebut LENGTH
2. Gabungan 2 buah string disebut CONCAT
3. Sub bagian dari string disebut SUBSTR
4. Menyisipkan string kedalam string yang lain disebut INSERT
5. Menghapus karakter dalam string disebut DELETE
2. ARRAY
Array : Suatu himpunan hingga elemen, terurut dan homogen.
Terurut : Elemen dapat diidentifikasikan sebagai elemen pertama, kedua, sampai dengan elemen ke-n.
Homogen : Setiap elemen dari sebuah array haruslah mempunyai tipe data yang sama.
- ARRAY DIMENSI SATU
Vektor adalah bentuk yang sederhana dari array, yang merupakan array dimensi satu.
Banyak elemen : U - L + 1
- ARRAY DIMENSI DUA
Suatu array yang setiap elemennya merupakan tipe data array pula.
Banyak elemen adalah : (U1 - L1 +1) * (U2 - L2 +1)
- ARRAY DIMENSI TIGA
Suatu array yang elemennya merupakan tipe data array dimensi dua.
PEMETAAN KE STORAGE :
- ARRAY DIMENSI SATU
Alamat awal dari array dinyatakan dengan B (Base Location), dan setiap elemen dari array menduduki S byte. Alamat awal dari array dengan elemen ke-I adalah : B + (I -L) * S
- ARRAY DIMENSI DUA
Pelinieran array dimensi banyak dengan cara :
1. ROW-MAJOR ORDER = B + (I - L1) * (U2 - L2 + 1) * S + (J - L2) * S
2. COLUMN-MAJOR ORDER = B + (J - L2) * (U1 - L1 + 1) * S + (I - L1) * S
TRIANGULAR ARRAY (ARRAY SEGITIGA)
Triangular array dapat berupa :
1. Upper Triangular : Semua elemen di bawah diagonal utama = 0
2. Lower Triangular : Semua elemen di atas diagonal utama = 0
SPARSE ARRAY : Suatu array yang sangat banyak elemen nol-nya dikenal sebagai sparse array.
1. ROW-MAJOR ORDER = B + (I - L1) * (U2 - L2 + 1) * S + (J - L2) * S
2. COLUMN-MAJOR ORDER = B + (J - L2) * (U1 - L1 + 1) * S + (I - L1) * S
TRIANGULAR ARRAY (ARRAY SEGITIGA)
Triangular array dapat berupa :
1. Upper Triangular : Semua elemen di bawah diagonal utama = 0
2. Lower Triangular : Semua elemen di atas diagonal utama = 0
SPARSE ARRAY : Suatu array yang sangat banyak elemen nol-nya dikenal sebagai sparse array.
3. STACK
- LINIER LIST
Suatu struktur data umum yang berisi
suatu kumpulan terurut dari
elemen jumlah elemen di dalam list dapat berubah-ubah.
- NULL LIST
Suatu elemen dapat dihilangkan/dihapus dari sembarang posisi dalam linier list,
dan dapat pula dimasukkan elemen baru sebagai anggota list.
Contoh :
1. File, dengan elemennya berupa record
2. Buku telepon
3. Stack
4. Queue
5. Linear link list
- STACK
Stack adalah suatu bentuk khusus dari linier list, dengan operasi penyisipan dan
penghapusan dibatasi hanya pada satu sisinya,
yaitu puncak stack (TOP).
Elemen teratas dari stack dinotasikan sebagai
TOP(S).
Untuk stack S, dengan S = [S1, S2, S3, ..., ST] maka TOP(S) = ST.
Jumlah elemen di dalam stack
kita
notasikan dengan NOEL(S). NOEL(S) menghasilkan nilai integer.
Untuk stack S = [S1, S2, S3, ..., ST] maka NOEL (S) =
T.
Operator penyisipan (insertion) : PUSH
Operator penghapusan (deletion) : POP
Operasi/Cara Kerja Stack : LIFO (Last
In
First
Out),
yaitu
:
yang
terakhir
masuk
yang
pertama keluar.
Contoh stack : Tumpukan baki dalam cafetaria
Empat operasi dasar yang berlaku pada stack :
1. CREATE(stack)
2. ISEMPTY(stack)
3. PUSH(elemen, stack)
4. POP(stack)
CREATE
Operator yang menunjukkan suatu stack kosong dengan nama S.
Jadi : NOEL(CREATE(S)) = 0
TOP(CREATE(S)) adalah TIDAK TERDEFINISI.
ISEMPTY
Operator yang menentukan apakah stack S
kosong.
Operandnya terdiri dari type data stack.
Hasilnya merupakan type data Boolean.
PUSH
Operator yang menambahkan elemen E pada puncak stack S.
Hasilnya merupakan stack yang lebih
besar.
PUSH(E,S). E ditempatkan sebagai
TOP(S).
POP(stack)
Operator yang menghapus sebuah elemen dari puncak stack S.
Hasilnya merupakan stack yang lebih kecil.
4. ANTREAN (Queue)
Operasi penyisipan (insertion) hanya diperbolehkan pada salah
satu sisi, yang disebut REAR, dan operasi penghapusan (deletion) hanya diperbolehkan pada sisi yang lainnya, yang disebut FRONT dari list.
Operasi/Cara Kerja Antrean : FIFO (First In First Out)
Elemen yang pertama masuk merupakan elemen yang pertama keluar.
Penyisipan : Insert
Penghapusan : Remove
Empat operasi dasar antrean, yaitu :
Penghapusan : Remove
Empat operasi dasar antrean, yaitu :
1. CREATE
2. ISEMPTY
3. INSERT
4. REMOVE
1. CREATE (Q)
Operator yang menunjukkan suatu antrean hampa Q.
Berarti : Noel (Q) = 0
Front (Q) & Rear (Q) = tidak terdefinisi
2. ISEMPTY (Q)
Operator yang menunjukkan apakah antrean Q hampa.
Operand : tipe data antrean
Hasil : tipe data boolean
ISEMPTY (CREATE (Q)) = True
3. INSERT (E, Q)
Operator yang menginsert elemen E ke dalam antrean Q.
E ditempatkan di bagian belakang antrean.
Hasil : antrean yang lebih besar.
REAR (INSERT (E, Q)) = E
ISEMPTY (INSERT (E, Q)) = False
4. REMOVE (Q)
Operator yang menghapus elemen bagian depan dari antrean Q.
Hasil : antrean yang lebih pendek.
Pada setiap operasi, Noel (Q) berkurang 1 dan elemen ke-2
menjadi elemen terdepan.
Jika Noel (Q) = 0 maka Q = hampa
Remove (Q) = kondisi error (underflow condition)
Remove (Create (Q)) = kondisi error (underflow condition)
2. ISEMPTY
3. INSERT
4. REMOVE
1. CREATE (Q)
Operator yang menunjukkan suatu antrean hampa Q.
Berarti : Noel (Q) = 0
Front (Q) & Rear (Q) = tidak terdefinisi
2. ISEMPTY (Q)
Operator yang menunjukkan apakah antrean Q hampa.
Operand : tipe data antrean
Hasil : tipe data boolean
ISEMPTY (CREATE (Q)) = True
3. INSERT (E, Q)
Operator yang menginsert elemen E ke dalam antrean Q.
E ditempatkan di bagian belakang antrean.
Hasil : antrean yang lebih besar.
REAR (INSERT (E, Q)) = E
ISEMPTY (INSERT (E, Q)) = False
4. REMOVE (Q)
Operator yang menghapus elemen bagian depan dari antrean Q.
Hasil : antrean yang lebih pendek.
Pada setiap operasi, Noel (Q) berkurang 1 dan elemen ke-2
menjadi elemen terdepan.
Jika Noel (Q) = 0 maka Q = hampa
Remove (Q) = kondisi error (underflow condition)
Remove (Create (Q)) = kondisi error (underflow condition)
5. GRAPH
Graf adalah :
♦ Himpunan V (Vertex) yang elemennya disebut simpul (atau point atau node atau titik)
♦ Himpunan E (Edge) yang merupakan pasangan tak urut dari simpul, anggotanya disebut ruas (rusuk atau sisi)
Notasi : G(V,E)
♦ Himpunan V (Vertex) yang elemennya disebut simpul (atau point atau node atau titik)
♦ Himpunan E (Edge) yang merupakan pasangan tak urut dari simpul, anggotanya disebut ruas (rusuk atau sisi)
Notasi : G(V,E)
~ Simpul u dan v disebut berdampingan bila terdapat ruas (u,v).
~ Graf dapat pula disajikan secara geometrik, simpul disajikan sebagai sebuah titik. Sedangkan ruas disajikan sebagai sebuah garis yang menghubungkan 2 simpul.
~ Banyak simpul disebut ORDER, banyak ruas disebut SIZE dari
graf.
graf.
~ Suatu graf yang tidak mengandung ruas sejajar ataupun self-loop
disebut Graf Sederhana atau Simple Graf.
disebut Graf Sederhana atau Simple Graf.
- G R A P H B E R L A B E L
- DERAJAT GRAF
6. Pohon Binar (Binary Tree)
Pohon (Tree) adalah graf terhubung yang tidak mengandung sirkuit. Karena merupakan graf terhubung maka pada pohon selalu terdapat path atau jalur yang menghubungkan kedua simpul di dalam pohon. Pohon dilengkapi dengan Root (akar).
Sifat utama pohon berakar :
1. Jika pohon mempunyai simpul sebanyak n, maka banyaknya ruas adalah (n-1).
2. Mempunyai simpul khusus yang disebut Root (Akar), jika simpul tersebut memiliki derajat keluar ≥ 0 dan derajat masuk = 0. Simpul P merupakan root.
3. Mempunyai simpul yang disebut Leaf (Daun), jika simpul tersebut memiliki derajat keluar = 0 dan derajat masuk = 1.
4. Setiap simpul mempunyai tingkatan (level), dimulai dari root dengan level 0 sampai dengan level n pada daun yang paling bawah.
Pada contoh :
P mempunyai level 0
Q, T mempunyai level 1
R, S, U mempunyai level 2
V, W mempunyai level 3
Simpul yang mempunyai level yang sama disebut Bersaudara (Brother /Stribling)
5. Pohon mempunyai ketinggian (kedalaman / height) yaitu level tertinggi +1.
6. Pohon mempunyai berat (bobot / weight) yaitu banyaknya daun pada pohon.
1. Jika pohon mempunyai simpul sebanyak n, maka banyaknya ruas adalah (n-1).
2. Mempunyai simpul khusus yang disebut Root (Akar), jika simpul tersebut memiliki derajat keluar ≥ 0 dan derajat masuk = 0. Simpul P merupakan root.
3. Mempunyai simpul yang disebut Leaf (Daun), jika simpul tersebut memiliki derajat keluar = 0 dan derajat masuk = 1.
4. Setiap simpul mempunyai tingkatan (level), dimulai dari root dengan level 0 sampai dengan level n pada daun yang paling bawah.
Pada contoh :
P mempunyai level 0
Q, T mempunyai level 1
R, S, U mempunyai level 2
V, W mempunyai level 3
Simpul yang mempunyai level yang sama disebut Bersaudara (Brother /Stribling)
5. Pohon mempunyai ketinggian (kedalaman / height) yaitu level tertinggi +1.
6. Pohon mempunyai berat (bobot / weight) yaitu banyaknya daun pada pohon.
Ini materi mengenai Struktur Organisasi Data 2. Dan ternyata mata kuliah Struktur Organisasi Data 2 mendapatkan Virtual Class (V-Class). Ini adalah tugas VClass Minggu ke 3 dengan format PDF. Silahkan di download
Saya juga masih mempunyai tugas kelompok membuat Video tentang Materi Algortima Djikstra. Walaupun hasil video ini tidak terlalu memusakan, tapi kelompok saya mau berusaha untuk membuat video tersebut. Dan, alhamdulillah Bu Detty menghargai hasil kerja kelompok saya. Terimakasih banyak Bu :) Silahkan dilihat, jika berminat.
NB: Terimakasih bu Detty, sudah sabar mengajar kelas kami. Kedisplinan dan Ketegasan Ibu pasti kita kenang hehehe :)
Tidak ada komentar:
Posting Komentar