Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehYuliana Darmali Telah diubah "6 tahun yang lalu
1
STRUKTUR DATA – TEKNIK INFORMATIKA S1
ADT STACK STRUKTUR DATA – TEKNIK INFORMATIKA S1
2
Struct Seorang mahasiswa memiliki atribut data berupa Nim, Nama, dan IPS Nim Nama IPS Tentukan tipe data tiap atribut data? Dan tipe data bentukan yang tepat?
3
Struct - Lanjut Seorang mahasiswa memiliki atribut data berupa Nim, Nama, dan IPS Nim (char) Nama (char) IPS (float) mahasiswa struct mahasiswa { char nim[13]; char nama[25]; float ips; }; NIM terdiri dari Kode Jurusan/Prodi Tahun Angkatan Nomor Urut (5 digit)
4
Struct - Lanjut Kode_jur (char) Thn_masuk (int) NIM terdiri dari
Kode Jurusan/Prodi Tahun Angkatan Nomor Urut (5 digit) Kode_jur (char) Thn_masuk (int) No_urut (int) Nim struct Nim { char kode_jur[3]; int thn_masuk; int no_urut; };
5
Struct Bertingkat (Nested Struct)
mahasiswa Nama (char) IPK (float) Nim (char) Nama (char) IPK (float) Kode_jur Thn_masuk No_urut Nim mahasiswa struct mahasiswa { struct Nim nim; char nama[25]; float ips; };
6
Cara Akses Member Nested Struct
struct Nim { char kode_jur[3]; int thn_masuk; int no_urut; }; Cara Akses Member:: kode_jur mhs.nim.kode_jur Cara Akses Member:: thn_masuk mhs.nim.thn_masuk Cara Akses Member:: no_urut mhs.nim.no_urut struct mahasiswa { struct Nim nim; char nama[25]; float ips; }; Jika variabel pointer operator (.) diganti dengan anak panah (->)
7
Cara Akses Member Nested Struct
struct mahasiswa mhs; printf("Masukkan Kode Jurusan : "); scanf("%s",&mhs.nim.kode_jur); printf("Masukkan Tahun Masuk : "); scanf("%d",&mhs.nim.thn_masuk); printf("Masukkan No Urut (5 digit) : "); scanf("%d",&mhs.nim.no_urut); printf("Masukkan Nama Lengkap : "); scanf("%s",&mhs.nama); printf("Masukkan IPS : "); scanf("%f",&mhs.ips); printf("Data Mahasiswa\n"); printf("NIM : %s.%d.%d \n",mhs.nim.kode_jur,mhs.nim.thn_masuk,mhs.nim.no_urut); printf("Nama Lengkap : %s \n",mhs.nama); printf("IPS : %f \n",mhs.ips);
8
ADT Suatu data jam dapat dibentuk menjadi suatu tipe data abstrak, dimana jam memiliki elemen-elemen pendukung seperti detik, menit dan jam itu sendiri. Serta dapat memuat fungsi-fungsi operasi dasar yang mendukung operasional data jam.
9
Header ADT Jam (jam.h) #include <stdio.h>
#include <stdlib.h> typedef int time; typedef struct { time HH,MM,SS; }jam; void resetJam(jam *J); void tulisJam(jam *J,time hours,time minutes,time seconds);
10
Realisasi (Body) dari jam.h (jam.c)
#include "jam.h" void resetJam(jam *J){ J->HH=0; J->MM=0; J->SS=0; } void tulisJam(jam *J,time hours,time minutes,time seconds){ J->HH=hours; J->MM=minutes; J->SS=seconds;
11
Main Program ADT Jam (main.c)
#include "jam.h" int main() { jam WIB,WIT,WITA; tulisJam(&WIB,20,50,10); printf("Jam Waktu Indonesia Barat: %.2d:%.2d:%.2d \n",WIB.HH,WIB.MM,WIB.SS); resetJam(&WIB); printf("Reset Jam WIB %.2d:%.2d:%.2d",WIB.HH,WIB.MM,WIB.SS); return 0; }
12
Penggunaan Nested Struct (jam.h)
typedef int time; typedef char * String; struct daerah{ String kota[20]; String provinsi[20]; }; typedef struct { struct daerah area; time HH,MM,SS; }jam;
13
Penggunaan Nested Struct (mjam.c)
void tulisJamDaerah(jam *J,time hours,time minutes,time seconds,String k,String p) { J->HH=hours; J->MM=minutes; J->SS=seconds; strcpy(J->area.kota,k); strcpy(J->area.provinsi,p); }
14
Penggunaan Nested Struct (mjam.c)
int main() { jam WIB,WITA,WIT; tulisJamDaerah(&WIB,20,50,1,"Semarang","Jawa Tengah"); printf("Jam WIB area %s provinsi %s %.2d:%.2d:%.2d \n",WIB.area.kota,WIB.area.provinsi,WIB.HH,WIB.MM,WIB.SS); resetJam(&WIB); printf("Reset Jam WIB %.2d:%.2d:%.2d \n",WIB.HH,WIB.MM,WIB.SS); return 0; }
15
ADT STACK
16
Pengertian STACK STACK berarti tumpukan.
Konsep STACK digunakan dalam struktur data. A B C D TOP IN OUT Berlaku prinsip LIFO (Last In First Out)
17
Stack Stack dapat direpresentasikan menggunakan array satu dimensi. 25
12 1 17 2 15 33 3 4 5 6 7 8 9 S[10] TOP X
18
Kondisi Stack Kondisi Stack ditentukan oleh posisi atau isi TOP. Jika n adalah jumlah data array Kondisi Stack Posisi TOP KOSONG Top = -1 PENUH Top = n-1 BISA DIISI Top < n-1 ADA ISINYA Top > -1
19
Pembuatan Stack dengan Array of Struct
Definisikan STACK dengan struct Definisikan konstanta (ex: MAX_STACK) untuk menyimpan maksimum isi elemen stack Menentukan elemen Struct Stack meliputi data array untuk menampung data stack dan top untuk menandakan posisi data teratas Buat variabel dari Struct Stack Tentukan operasi – operasi / function diatas
20
Program Stack #define MAX_STACK 10 Typedef struct { int top; char data[10][10]; } stack; stack tumpuk;
21
Operasi-operasi Dasar Stack
Digunakan untuk menambah item pada stack pada tumpukan paling atas Push Digunakan untuk mengambil item pada stack pada tumpukan paling atas Pop Fungsi untuk mengecek apakah stack kosong IsEmpty Fungsi untuk mengecek apakah stack penuh IsFull
22
Inisialisasi Stack Top diisi dengan -1, karena array (dalam bahasa C) dimulai dari 0, yang berarti bahwa data stack kosong Top adalah variabel penanda dalam stack yang menunjukkan elemen teratas data stack (Top Of Stack)
23
Memeriksa Stack Penuh Fungsi isFull Apakah stack penuh ?
Dengan cara memeriksa ToS, jika sudah sama dengan MAX_STACK–1 maka stack full, Jika masih kurang dari MAX_STACK–1 maka belum full
24
Memeriksa Stack Kosong
Fungsi IsEmpty Apakah stack kosong ? Memeriksa ToS, jika masih -1 maka stack masih kosong
25
Menambah Data Stack Fungsi Push Memasukkan data ke stack
Data yang diinput menjadi data teratas dari stack (ditunjuk oleh ToS) Jika data belum penuh, tambah satu (increment) nilai ToS lebih dahulu setiap kali ada penambahan ke dalam array data stack Isikan data baru ke stack berdasarkan index ToS yang telah di-increment
27
Mengambil Data Stack Fungsi Pop Mengambil data stack yang terletak paling atas (data yang ditunjuk ToS) Tampilkan terlebih dahulu nilai elemen teratas dengan mengakses index sesuai dengan ToS Decrement nilai ToS sehingga elemen stack berkurang
29
Terima Kasih
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.