Anda di halaman 1dari 24

Algoritma dan Pemrograman

Pertemuan 12&13 : ADT


Download soal di temporary sesuaikan kode ganjil dan
genap dengan nomer kompi masing-masing.

Upload PAP-nya nanti setelah Pemahaman yaa~ :D


Algoritma dan Pemrograman

Part 1 : ADT (Struktur) Dasar


Struktur dalam bahasa C
 Sekumpulan tipe data bervariasi yang dibungkus menjadi satu kesatuan.
 Tipe data tersebut bisa int , float , char ,string maupun struktur yang lain.
 Ilustrasi sederhana struktur seperti sebuah objek yang mempunyai atribut , contoh :

Struktur “Mahasiswa” Struktur “Mobil”

1. Merk Mobil (String)


1. Nama. (String) 2. Nomer Plat (String)
2. Nim. (String) 3. Tahun (int)
3. Jurusan. (String) 4. Ukuran (float)
4. Nilai UAS. (int)
5. Nilai UTS (int)
6. Nilai Tugas (int)
7. IPK (float)
Array vs Struktur
 Jika array hanya dapat menyimpan sejumlah data yang bertipe sama.
 Maka struktur dapat menyimpan sejumlah data yang berbeda-beda tipe datanya.

Ilustrasi Struktur of “Mahasiswa” Ilustrasi Array of “Mahasiswa[6]”

Mhs[0] Mhs[1] Mhs[2]


1. Nama. (String)
2. Nim. (String)
3. Jurusan. (String)
4. Nilai UAS. (int)
5. Nilai UTS (int)
6. Nilai Tugas (int) Mhs[5]
Mhs[3] Mhs[4]
7. IPK (float)
Implementasi Struktur Dalam Kehidupan
Struktur of “HERO” Struktur of “LAGU”

Struktur of “ALAMAT” Struktur of “SMARTPHONE”


Perbedaan Deklarasi antara tipe data dasar
dan tipe data bentukan.
Perhatikan perbedaan pada
pembuatan prototype tipe data
bentukan antara dengan typedef
dan tanpa typedef

Jika pada prototype


menggunakan typedef, Deklarasi pada program
maka saat deklarasi pada utama (struktur)
program utama tida perlu
ada keyword struct
Variabel biasa
Format Penulisan dalam C
“Tanpa Typedef”
Keyword-nya
Deklarasikan seperti variabel
biasa
Tipe (int,float,char dll) ,
diikuti nama variabelnya

Kurung kurawal

Jangan lupa namanya ,


aturannya sama.
Penggunaan Struktur
Nama struktur
saat deklarasi
Deklarasi strukturnya dengan 2 buah elemen
bertipe data integer
jangan lupa keyword structnya ya..

Tanda titik (dot) digunakan sebagai


penguhubung antara struktur induk
dengan isi elemen dari struktur.

Pada gambar di samping elemen X diisi


angka 10, dan elemen Y diisi angka 32. dan
kemudian ditampilkan pada console, jangan
lupa untuk mengakses elemen dalam struct
gunakan tanda penghubung titik (dot)
Format Penulisan dalam C
“Dengan Typedef”
Keyword-nya Deklarasikan seperti variabel
biasa
Tipe (int,float,char dll) ,
diikuti nama variabelnya

Kurung kurawal

Jangan lupa namanya ,


aturannya sama.
Refrensi – 1
“Struktur Laptop”
Implementasi Input dan Output pada Array of Struct
Algoritma dan Pemrograman

Part 2 : ADT (Struktur) Pointer


Pengantar Struktur dengan Pointer
 Selain tipe data primitif (int,float,char), alokasi dinamis juga dapat diterapkan pada tipe data bentukan
berupa struktur (ADT).
 Pada variabel ADT berupa pointer, alamat yang ditunjuk oleh variabel pointer tersebut merupakan
alamat variabel pertama yang ada dalam struktur yang ditunjuk.
 Masing-masing elemen dari struktur mempunyai alamat sendiri-sendiri. Variabel Pointer
 Sebagai contoh dapat digambarkan pada ilustrasi dibawah.

Variabel Biasa

Ilustrasi sederhana
Struct Biasa vs Struct Pointer – Alternatif 1
 Dibawah ini akan diberikan contoh perbedaan untuk penggunaan struktur biasa dengan pointer

Struct Biasa Struct Pointer


 Pada struktur biasa, untuk mengakses tiap  Pada struktur dengan pointer untuk dapat mengakses
elemennya dapat menggunakan tanda penghubung elemen dari struktur dapat menggunakan tanda titik “.” ,
titik “.” namun karena jenisnya adalah pointer, maka harus
memberikan atribut * sebelum nama variabel sebagai
refrensi nilainya.
Struct Biasa vs Struct Pointer – Alternatif 2
 Dibawah ini akan diberikan contoh perbedaan untuk penggunaan struktur biasa dengan pointer

Struct Biasa Struct Pointer


 Pada struktur biasa, untuk mengakses tiap  Pada struktur dengan pointer untuk dapat mengakses
elemennya dapat menggunakan tanda penghubung elemen dari struktur dengan alternative ke 2,
titik “.” menggunakan tanda penghubung berbentuk panah yaitu
“->” , karena tanda tersebut sudah mewakili tanda “*”
untuk merefrensi nilai sehingga tidak perlu atribut *
Format Penulisan Malloc Pada ADT
 Dibawah ini akan diberikan format penulisan fungsi malloc (memory allocation) dengan stuktur ADT

Variabel pointernya Jumlah bloknya Sesuaikan dengan tipe struknya

Typecasting, sesuai tipe strucnya

 Ukuran byte dari struktur dapat diketahui dengan menggunakan sizeof

 Apabila djalankan akan menghasilkan nilai 36 byte dengan komposisi :


 Int nilai : 4 byte
 Float ipk : 4 byte
 Char nama : 28 byte, karena untuk variabel array of char, ukuran byte dihitung kelipatan 4 sehingga jika
ukuran yang dipesan adalah 25, maka byte yang dipesan adalah 28.
Implementasi Array of Struct dengan Pointer - Input
 Dibawah ini diberikan contoh prosedur untuk melakukan input pada struktur dengan pointer.

 Perhatikan bahwa pada saat pemanggilan


prosedur, pada parameter mahasiswa tidak
perlu menggunakan atribut * maupun &,
karena isi dari variabel tersebut sudah
langsung merefrensi alamat pertama blok
array akibat dari inisialisasi malloc.

 Untuk proses input menggunakan scanf


pada struktur pointer harus memberikan
tanda & untuk memberikan refrensi
alamat untuk pengisian nilai.
Implementasi Array of Struct dengan Pointer - Output
 Dibawah ini diberikan contoh proedur untuk melakukan input pada struktur dengan pointer.

 Perhatikan bahwa pada saat pemanggilan


prosedur, pada parameter mahasiswa tidak
perlu menggunakan atribut * maupun &,
karena isi dari variabel tersebut sudah
langsung merefrensi alamat pertama blok
array akibat dari inisialisasi malloc.

 Untuk proses output, tidak perlu menggunakan


atribut & maupun *, karena variabel pada
parameter sudah langsung merefrensi nilai pada
masing-masing elemennya
Algoritma dan Pemrograman

Bonus Part : Road to Struktur Data


For Your Information
 Pada bagian ini akan diberikan berbagai contoh alternatif dari prosedur untuk kasus input
dan output dengan teknik yang berbeda.
 Hal ini ditujukan supaya teman-teman dapat lebih memahami penggunaan pointer terkait
implementasinya pada tipe data bentukan (ADT).
 Silahkan dicoba dirumah dan dipahami baik-baik untuk penggunaan atribut & , * dan juga
-> ,karena masing-masing mempunyai cara penulisan yang berbeda-beda.
 Lakukan eksperimen sesering mungkin supaya teman-tema dapat lebih memahami
materi yang diberikan, karena salah satu cara supaya memahami materi adalah dengan
sering melakukan eksperimen koding sebanyak mungkin.

Good Luck!!~
Alternatif Prosedur Input dan Output
 Dibawah ini diberikan contoh prosedur input tanpa menggunakan tanda penghubung “->” namun
menggunakan tanda “.” untuk mengakses elemen dari struktur

 Pada saat pemanggilan tidak perlu


menambahkan atribut & karena, variabel
pointer mhs, sudah berisi alamat variabel
yang ditunjuk.
Alternatif Prosedur Input - 1
 Dibawah ini diberikan contoh prosedur input tanpa menggunakan tanda penghubung “->” namun
menggunakan tanda “.” untuk mengakses elemen dari struktur.
 Untuk proses alokasi dilakukan dalam prosedur input itu sendiri, sehingga di sini untuk
parameter variabel mahasiswa membutuhkan 2 pointer, untuk menunjuk alamat dari variabel
pointer yang ada di main.c pada saat pemanggilan

 Gunakan tanda & untuk memberi refrensi


alamatnya.
 Perhatikan pada fungsi main, tidak perlu ada
alokasi (malloc), karena hal tersebut sudah
dilakukan di prosedur input.
Alternatif Prosedur Input - 2
 Dibawah ini diberikan contoh prosedur input menggunakan tanda penghubung “->” untuk
mengakses elemen dari struktur.
 Untuk proses alokasi dilakukan dalam prosedur input itu sendiri, sehingga di sini untuk
parameter variabel mahasiswa membutuhkan 2 pointer, untuk menunjuk alamat dari variabel
pointer yang ada di main.c pada saat pemanggilan

 Gunakan tanda & untuk memberi refrensi


alamatnya.
 Perhatikan pada fungsi main, tidak perlu ada
alokasi (malloc), karena hal tersebut sudah
dilakukan di prosedur input.
Sekian, Terima Kasih

Anda mungkin juga menyukai