Struktur data selain array : Structure, Union, Enumeration

Slides:



Advertisements
Presentasi serupa
Pemrograman Berorientasi Objek
Advertisements

STRUKTUR DATA Struct Atau Record.
Algoritma dan Struktur Data
Fungsi (2) Dr. Anto Satriyo Nugroho, M.Eng Web:
ARRAY STATIS DAN DINAMIS
FUNGSI Deklarasi dan Definisi fungsi Void dan Non-void Fungsi main.
ARRAY ??.
STRUKTUR DATA (5) Pointer dan Function
STRUKTUR Konsep Pemrograman.
Pointer Konsep Pemrograman.
Algoritma dan Pemrograman Modular Programming (Bagian 1)
Tipe Data Bentukan Pertemuan ke-5.
Fungsi, Parameter, Rekursi Daniel Riano Kaparang Book reference: Jogiyanto. Konsep Dasar Pemrograman Bahasa C. Andi Star. Yogyakarta Kristanto Andri.
Abstract data type (Structure, Union, Enumeration)
Struct By : Hendri Sopryadi
Struktur Sugeng Supriyadi, M.Kom.
Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
Parameter formal adalah variabel yang ada pada daftar parameter dalam
Modul 11 – Hendi Hermawan - 1
PERTEMUAN VIII STRUKTUR LANJUT JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
STRUKTUR DATA.
Function: Lanjutan Pertemuan ke 9..
Struktur.
Function.
ARRAY Dr. Lily Wulandari.
Konsep Pemrograman Function.
ARRAY 2 Dimensi.
ARRAY.
1 Pointer wijanarto. 2 Topik Introduction to Pointers Pointers dan Parameter Fungsi.
Praktikum Struktur Data
Review-Dasar Pemrograman Komputer
Person 10Person Variabel Lokal dan Global Suatu variabel lokal dideklarasikan di dalam fungsi ‘a’, dan tidak dapat diakses di luar fungsi (a)
ARRAY OF STRUCT Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
Array dan String Array dan String.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA
STRUKTUR DATA (5) Pointer dan Function
Alokasi Memori Yuliana Setiowati.
Pointer Yuliana Setiowati.
STRUKTUR DATA (1).
Algoritma & Struktur Data Abstract Data Type Evangs Mailoa.
STRUKTUR DATA Pointer dan Function
Algoritma dan Struktur Data
Algoritma dan Struktur Data
STRUKTUR DATA Structure.
Fungsi Fungsi.
Bab 8 Pointer Riyanto Sigit Konsep Dasar Pointer  Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek lain  Variabel.
Function User Function.
STRUCT OF ARRAY Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
Fungsi Fungsi (Sub Program) :
STRUKTUR Struktur merupakan kumpulan elemen data yang digabungkan menjadi satu kesatuan data. Masing-masing elemen data tersebut dinamakan field atau elemen.
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
PERTEMUAN KE-9 IFII SAINTEC UIN SGD. FUNCTION (FUNGSI) Function (fungsi) adalah kumpulan pernyataan/statement yang diberi nama, dimana nama tersebut dapat.
STRUKTUR Struktur merupakan kumpulan elemen data yang digabungkan menjadi satu kesatuan data. Masing-masing elemen data tersebut dinamakan field atau elemen.
Teknik Pemrog. Terstruktur 2
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
1. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Mendemonstrasikan penggunaan fungsi serta pengiriman parameter 2.
Pertemuan ke 3 Algoritma dan struktur data
Struct 2nd Part.
Fungsi, Array dan String
Umi Sa’adah Konsep Pemrograman PENS-ITS Bab 14. Struktur 1 Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006.
STRUKTUR.
FUNGSI.
Materi-8 STRUCTURE (RECORD).
STRUKTUR DATA.
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
STRUCT OF ARRAY.
Struktur Data Khoiriya Latifa, M.Kom.
FUNCTION 6.3 & 7.3 NESTED LOOP.
QUIS Algoritma Pemrograman I
STRUCTURE Struktur (Structure = struct) merupakan suatu struktur data yang terdiri dari satu atau lebih variabel yang bertipe data.
Transcript presentasi:

Struktur data selain array : Structure, Union, Enumeration Pertemuan ke 12.

Structure: definition Struct(ure) adalah suatu struktur data yang menggabungkan beberapa data yang berbeda (heterogen) tapi saling berkaitan. Contoh: struct penduduk memiliki nama , alamat, usia. nama : bisa didefinisikan sebagai char nama[30]; alamat : bisa didefinisikan sebagai char alamat[50]; usia : bisa didefinisikan sebagai int usia; Ketiga data diatas memiliki tipe data yang berbeda tetapi saling berkaitan

Structure: declaration struct [type_name] { data_type mvar_name[,mvar_name,…]; [data_type mvar_name[,mvar_name,…];] } [svar_name]; type_name = nama tipe struct. mvar_name = nama variabel member dari struct atau field. svar_name = nama variabel struct. Deklarasi variable struct (svar_name) bisa dilakukan pada saat deklarasi tipe struct seperti diatas ATAU secara terpisah seperti dibawah ini (ingat local variable dan global variable): struct type_name svar_name[,svar_name,…];

Structure: Sample struct declaration Variasi ke 1 struct penduduk { char nama[30]; char alamat[50]; int usia; }; Pendefinisian variabelnya: struct penduduk wni, wna; Variasi ke 2 struct { char nama[30]; char alamat[50]; int usia; } wni, wna; Pendefinisian variabelnya: Sudah langsung didefinisikan diatas Variasi ke 3 struct datapenduduk{ char nama[30]; char alamat[50]; int usia; } wni, wna; Pendefinisian variabelnya: Sudah langsung didefinisikan diatas

Structure: inisialisasi dan akses variabel struct #include <stdio.h> #include <conio2.h> struct penduduk { char nama[30]; char alamat[50]; int usia; }; int main() { // inisialisasi struct penduduk wni={"danny","gading serpong",28}; // Akses variable dengan namavariablestruct dot field printf("Nama : %s \n", wni.nama); printf("Alamat : %s \n", wni.alamat); printf("Usia : %d \n", wni.usia); getch(); return 0; }

Structure: scope variable struct Lingkup variable struct maupun tipe data struct seperti jenis variable lainnya yaitu bisa didefinisikan sebagal GLOBAL variable atau LOCAL variable (didalam suatu function). struct bisa didefinisikan bertingkat, artinya didalam field struct bisa berisi struct yang lain.

Structure: scope variable struct (samples) Definisi tipe data struct secara lokal: struct penduduk{ char nama[30]; char alamat[50]; int usia; }; int main() { struct penduduk wni,wna; ... } Definisi tipe data struct secara global dan lokal char nama[30]; char alamat[50]; int usia; struct penduduk wni; //wni global struct variable int main(){ struct penduduk wna; //wna local struct variable

Structure: Structure as parameter to function struct bisa dikirim ke function dengan call by value dan call by reference. Function bisa melakukan return dengan type data struct. // Menghitung jarak dua titik secara modular #include <stdio.h> #include <conio2.h> #include <math.h> struct t_koord { int x, y; }; struct t_koord isikoord(char ch){ struct t_koord t; printf("\nTitik %c:\n“,ch); printf("posisi x dan y ? "); scanf("%d %d“,&t.x,&t.y); return t; } float hjarak(struct t_koord t1,struct t_koord t2){ float jarak; jarak = sqrt(pow((t1.x-t2.x),2)+pow((t1.y-t2.y),2)); return jarak; int main(){ struct t_koord tA, tB; float jarak; tA = isikoord('A'); tB = isikoord('B'); jarak = hjarak(tA,tB); printf("\nJarak A dan B = “); printf(“%.2f unit“,jarak); getch(); return 0; }

Structure: array of structure struct merupakan suatu tipe data, seperti int, char, float maka struct juga bisa digabungkan dengan struktur data array (variable array yang memiliki tipe data struct)  array of struct. #include <stdio.h> #include <conio2.h> struct mhs { char nama[30]; float nilai; }; int main() { struct mhs ar_mhs[10], datamhs={"Dian", 5.5}; int i; printf("Nama : "); gets(ar_mhs[0].nama); printf("Nilai : "); scanf("%4.2f",&ar_mhs[0].nilai); ar_mhs[1] = datamhs; for(i=0;i<2;i++) { printf("nama : %s “,ar_mhs[i].nama); printf("nilai : %4.2f\n”,ar_mhs[i].nilai); } getch(); return 1;

Structure: struct within struct (multi level struct) Didalam struct bisa berisi struct yang lain seperti contoh dibawah ini: #include <stdio.h> #include <conio2.h> struct ip { float ips; float ipk; }; struct mhs { char nama[30]; struct ip ipmhs; int main() { struct mhs datamhs; gets(datamhs.nama); scanf("%f",&datamhs.ipmhs.ips); scanf(“%f",&datamhs.ipmhs.ipk); printf(“nama : %s ",datamhs.nama); printf(“ips: %4.2f ",datamhs.ipmhs.ips); printf(“ipk: %4.2f ",datamhs.ipmhs.ipk); getch(); return 0; }

Union Union digunakan untuk sharing memory location. Hal ini memungkinkan satu memory location ditempati oleh dua atau lebih variabel dengan tipe data yang berbeda Jumlah memory yang digunakan adalah size dari data type yang terbesar Kegunaan : menghemat pemakaian system memory. juga berguna untuk low level programming(ie.: direct access to hardware components).

Union: notasi union [type_name] { data_type mvar_name; } [uvar_name]; type_name = nama tipe union. mvar_name = nama-nama variabel yang di-share memorinya, minimal 2 variabel. uvar_name = variabel union.

Union: notasi Memory yang dipakai ditentukan oleh field yang terbesar. Contoh definisi union int dan char union tbil { unsigned int di; unsigned char dc[2]; } bil_x; /* variabel union*/ int = 4 byte dan char = 1 byte ; dalam hal ini yang disediakan 4 byte memory. Akses elemen union dengan format : variabel_union.nama_elemen Contoh : bil_x.di bill_x.dc[0] Addr Isi Var FFEA ? dc[0] di FFEB dc[1] FFEC FFED

Union: sample program di = 321 dc[0] = 65 dc[1] = 1 alamat di = 22FF44 Hasil: di = 321 dc[0] = 65 dc[1] = 1 alamat di = 22FF44 alamat dc[0] = 22FF44 alamat dc[1] = 22FF45 Karena union di = 4 byte (int) sedangkan dc=1 byte (char). Maka memory yang disediakan sebanyak 4 byte = 32 bit. 321 secara binari = 00000001 01000001 di menempati 4 byte dc[0] menempati byte ke 1 dc[1] menempati byte ke 2 Union: sample program #include <stdio.h> #include <conio2.h> int main() { union tbil { unsigned int di; unsigned char dc[2]; } bil_x; /* variabel union*/ bil_x.di = 321; printf("di = %d\n“,bil_x.di); printf("dc[0] = %d\n“,bil_x.dc[0]); printf("dc[1] = %d\n“,bil_x.dc[1]); printf("alamat di = %X\n",&bil_x.di); printf("alamat dc[0] = %X\n",&bil_x.dc[0]); printf("alamat dc[1] = %X\n",&bil_x.dc[1]); getch(); return 0; } [15] [14] [13] [12] [11] [10] [9] [8]   [7] [6] [5] [4] [3] [2] [1] [0] 1 Binari 256 64 desimal

Enumeration enum nama_enumerasi {nilai0, nilai1, nilai2,…, nilain}; Enumerasi adalah suatu tipe data yang nilainya telah didefinisikan secara pasti pada saat pembentukan tipe tersebut. Tipe data ini digunakan untuk menyatakan sesuatu yang nilainya sudah pasti seperti nama hari, nama bulan, jenis kelamin, dll. Notasi: enum nama_enumerasi {nilai0, nilai1, nilai2,…, nilain}; Indeks enumerasi normalnya berawal dari 0, tapi bisa didefinisikan sesuai keperluan dengan notasi dibawah ini: enum nama_enumerasi { nilai0 = n, nilai2=n+10,….,nilain = x}; Contoh definisi enumerasi: enum jeniskelamin { pria , wanita }; enum boolean { false, true }; enum namahari { senin, selasa, rabu, kamis, jumat, sabtu, minggu };

Enumeration: sample program #include <stdio.h> #include <conio2.h> #include <string.h> enum jeniskelamin {pria,wanita}; /* indeks pria = 0, wanita = 1; */ int main() { char nama[25]; enum jeniskelamin gender; // definisi variabel gender dengan tipe data jenis kelamin strcpy(nama,"TASYA"); gender = wanita; printf( "Nama : %s \n",nama); printf( "Jenis Kelamin : %d", gender); getch(); return 0; }

Enumeration: sample program(2) Indek dari enum tidak selalu mulai dari 0; bisa dimulai dari indeks tertentu seperti di contoh dibawah ini #include <stdio.h> #include <conio2.h> #include <string.h> enum jeniskelamin {pria = 10,wanita = 20}; /* indeks pria = 10, wanita = 20; */ int main() { char nama[25]; enum jeniskelamin gender; // definisi variabel gender dengan tipe data jenis kelamin strcpy(nama,"TASYA"); gender = wanita; printf( "Nama : %s \n",nama); printf( "Jenis Kelamin : %d", gender); getch(); return 0; }

References : Thompson SN, 2009, Algoritma dan Struktur Data dengan C. Deitel, PJ, HM.Deitel, 2007, C How to Program, 5th Edition.