ABSTRACT DATA TYPE STRUCTURE UNION ENUMERATION Daniel Riano
ABSTRACT DATA TYPE (STRUCTURE, UNION, ENUMERATION) Daniel Riano Kaparang
ADT • ADT adalah tipe data yang dibuat oleh programmer sendiri yang memiliki suatu nama tertentu. • ADT dapat berupa tipe data dasar namun diberi nama baru atau berupa kumpulan tipe data berbeda yang diberi nama baru. • Untuk pembuatan ADT digunakan keyword typedef
Contoh ADT #include <stdio. h> #include <conio. h> printf("nmasukkan bilangan pecahan "); scanf("%f", &pecah); printf("Bilangan pecahan %f", pecah); typedef int angka; typedef float pecahan; typedef char huruf; printf("nmasukkan huruf : "); h=getche(); printf("n. Huruf anda %c", h); void main() { clrscr(); printf("nmasukkan nama : "); scanf("%s", nama); printf("Nama anda %s", nama); angka umur; pecahan pecah; huruf nama[10]; printf("masukkan umur anda : "); scanf("%d", &umur); printf("Umur anda adalah %d", umur); } getch();
Structure adalah pengelompokan dari variable- variabel yang bernaung dalam satu nama yang sama. Variabel-variabel yang membentuk suatu strukur disebut sebagai elemen atau anggota struktur. Suatu struktur dapat berisi dengan elemen data bertipe int, float, char dan lain-lain.
Deklarasi Struct • Pendeklarasian typedef struct Mahasiswa { char NIM[8]; char nama[50]; float ipk; }; • Penggunaan – Untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs 2 • Mahasiswa mhs, mhs 2; – Untuk menggunakan struct Mahasiswa dengan membuat variabel array m; • Mahasiswa m[100];
Struct • Ilustrasi Struct : – Struct bisa diumpamakan sebagai sebuah class, misalnya: Mahasiswa. – Struct Mahasiswa memiliki property atau atribut atau variabel yang melekat padanya: • NIM yaitu karakter sejumlah 8 • Nama yaitu karakter • IPK yaitu bilangan pecahan Struct hampir mirip dengan class pada Java, namun struct tidak memiliki method atau function. • Struct dapat digunakan dengan cara membuat variabel (analogikan dengan obyek pada Java). • – Misalnya : • obyek anton bertipe struct Mahasiswa • obyek erick bertipe struct Mahasiswa • Dengan demikian anton dan erick memiliki NIM, Nama, dan IPK masing-masing
Pengaksesan Elemen-Elemen Struct • • Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (. ) Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut: #include <stdio. h> #include <conio. h> typedef struct Mahasiswa{ char NIM[9]; char nama[30]; float ipk; }; void main() { Mahasiswa mhs; clrscr(); printf("NIM = "); scanf("%s", mhs. NIM); printf("Nama = "); scanf("%s", mhs. nama); printf("IPK = "); scanf("%f", &mhs. ipk); printf("Data Anda : n"); printf("NIM : %sn", mhs. NIM); printf("Nama : %sn", mhs. nama); printf("IPK : %fn", mhs. ipk); getch(); }
Pendeklarasian dan Penggunaan Struct • Pendeklarasian : – struct { char NIM[8]; char nama[50]; float ipk; } mhs; • Penggunaan : – Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.
Contoh #include <stdio. h> #include <conio. h> #define phi 3. 14 struct { float jari 2; float keliling; float luas; } lingkaran; void luas. Lingkaran() { lingkaran. luas = lingkaran. jari 2 *lingkaran. jari 2*phi; printf("n. Luas lingkaran = %f", lingkaran. luas); } float kel. Lingkaran(float j) { return 2*phi*lingkaran. jari 2; } int main() { clrscr(); printf("Jari-jari = "); scanf("%f", &lingkaran. jari 2); luas. Lingkaran(); lingkaran. keliling = kel. Lingkaran(lingkaran. jari 2); printf("n. Kelilingkaran =%f", lingkaran. keliling); getch(); }
Struct yang berisi struct #include <stdio. h> #include <conio. h> typedef struct Date { int dd; int mm; int yyyy; }; typedef struct Time { int h; int m; int s; }; typedef struct Login { int ID; Date tgl. Login; Time waktu. Login; }; int main() { Login user 1; printf("USER 1n"); printf("ID : "); scanf("%d", &user 1. ID); printf("Tanggal Loginn"); printf("Hari : "); scanf("%d", &user 1. tgl. Login. dd); printf("Bulan : "); scanf("%d", &user 1. tgl. Login. mm); printf("Tahun : "); scanf("%d", &user 1. tgl. Login. yyyy); printf("Jam : "); scanf("%d", &user 1. waktu. Login. h); printf("Menit : "); scanf("%d", &user 1. waktu. Login. m); printf("Detik : "); scanf("%d", &user 1. waktu. Login. s); printf("Terimakasihn"); printf("Data Anda : n"); printf("ID : %dn", user 1. ID); printf("Date : %d -%dn", user 1. tgl. Login. dd, user 1. tgl. Login. mm, user 1. tgl. Login. yyyy); printf("ID : %d: %dn", user 1. waktu. Login. h, user 1. waktu. Login. m, user 1. waktu. Login. s); getch(); }
Array of struct #include <stdio. h> #include <conio. h> typedef struct Date{int dd; int mm; int yyyy; }; typedef struct Time{int h; int m; int s; }; typedef struct Login{int ID; Date tgl. Login; Time waktu. Login; }; int main(){ Login user[3]; for(int i=0; i<3; i++){ printf("n. USER ke-%dn", i+1); printf("ID : "); scanf("%d", &user[i]. ID); printf("Tanggal Loginn"); printf("Hari : "); scanf("%d", &user[i]. tgl. Login. dd); printf("Bulan : "); scanf("%d", &user[i]. tgl. Login. mm); printf("Tahun : "); scanf("%d", &user[i]. tgl. Login. yyyy); printf("Waktu Loginn"); printf("Jam : "); scanf("%d", &user[i]. waktu. Login. h); printf("Menit : "); scanf("%d", &user[i]. waktu. Login. m); printf("Detik : "); scanf("%d", &user[i]. waktu. Login. s); printf("Terimakasih Atas Pengisiannyan"); printf("n. Data User ke-%d: n", i+1); printf("Login ID : %dn", user[i]. ID); printf("Login Date : %d - %d %dn", user[i]. tgl. Login. dd, user[i]. tgl. Login. mm, user [i]. tgl. Login. yyyy); printf("Login Time : %d: %dn", user[i]. waktu. Login. h, user[i]. waktu. L ogin. m, user[i]. waktu. Login. s); } getch(); }
- Slides: 11