• Tidak ada hasil yang ditemukan

STRUCT. TUJUAN UMUM Memahami tipe struct dan implementasi dalam program

N/A
N/A
Protected

Academic year: 2021

Membagikan "STRUCT. TUJUAN UMUM Memahami tipe struct dan implementasi dalam program"

Copied!
11
0
0

Teks penuh

(1)

STRUCT

STRUCT

TUJUAN UMUM

TUJUAN UMUM

Memahami

Memahami

tipe

tipe

struct

struct

dan

dan

implementasi

implementasi

dalam

(2)

TUJUAN KHUSUS

TUJUAN KHUSUS

„

„

Karakteristik

Karakteristik

„

„

Deklarasi

Deklarasi

Structure

Structure

„

„

Tipe

Tipe

Data

Data

Abstrak

Abstrak

pada

pada

Struct

Struct

„

„

Struktur

Struktur

Mapping Function

Mapping Function

„

„

Parameter mapping Function

Parameter mapping Function

„

„

Parameter Structure

Parameter Structure

„

„

Rumus

Rumus

Umum

Umum

SMF

SMF

„

„

Memori

Memori

yang

yang

digunakan

digunakan

oleh

oleh

struct

struct

„

(3)

STRUCTURE

STRUCTURE

Struct

Struct merupakanmerupakan tipetipe data terstrukturdata terstruktur yang yang digunakan

digunakan dalamdalam bahasabahasa C++ yang C++ yang serupaserupa dengan

dengan tipetipe data record data record dalamdalam bahasabahasa Pascal

Pascal

.

.

Karakteristik

Karakteristik

„

„ HubunganHubungan antaraantara elemenelemen linierlinier „

„ PenempatanPenempatan didi memorimemori secarasecara fisikfisik maupunmaupun

secara

secara logiklogik samasama

„

„ HubunganHubungan antaraantara Field Identifier Field Identifier dengandengan

komponen

komponen adalahadalah oneone--toto--oneone

„

„ TipeTipe heterogenheterogen „

„ Cara access RandomCara access Random

Deklarasi

Deklarasi

Structure

Structure

Struct

Struct <structure name> {<structure name> { <

<tipetipe data 1> <field identifier 1>;data 1> <field identifier 1>; <

<tipetipe data 2> <field identifier 2>;data 2> <field identifier 2>; <

<tipetipe data 3> <field identifier 3>;data 3> <field identifier 3>;

….. <

<tipetipe data n><field identifier n>;data n><field identifier n>; }; <structure variable>;

(4)

Contoh Contoh:: struct

struct PegawaiPegawai {{ char Nama[30]; char Nama[30];

int

int umur;umur; char status; char status;

float

float gaji;gaji;

char jabatan[20]; char jabatan[20];

}; }; Struct

Struct PegawaiPegawai P1, P2, P3;P1, P2, P3; Tipe

Tipe Data AbstrakData Abstrak StructStruct

„

„ Retrieve(S, v, id);Retrieve(S, v, id);

Mengambil

Mengambil data daridata dari structstruct S S padapada field field identifier id

identifier id untukuntuk disimpandisimpan didi variabelvariabel v.v. Implementasi

Implementasi dengandengan bahasabahasa C++:C++: v = S.id;

v = S.id;

„

„ Update(S, v, id)Update(S, v, id)

Mengubah

Mengubah nilainilai data daridata dari structstruct S padaS pada filed filed identifierid

identifierid, , dengandengan nilainilai daridari variabelvariabel v.v. Implementasi

Implementasi dengandengan bahasabahasa C:C: S.id = v

(5)

Contoh

Contoh

Aplikasi

Aplikasi

Struct

Struct

struct

struct products { products { char name [30]; char name [30]; float price; } float price; }

apple, orange, melon; apple, orange, melon; apple.name apple.name apple.price apple.price orange.name orange.name orange.price orange.price melon.name melon.name melon.price melon.price

// example about structures // example about structures #include <

#include <iostream.h> iostream.h> #include <

#include <string.h> string.h> #include <

#include <stdlib.h> stdlib.h> struct

struct movies_tmovies_t { { char title [50]; char title [50];

int

int year; } year; } mine, yours; mine, yours; void

void printmovieprintmovie (movies_t(movies_t movie);movie); int

int main () main () {

{ char buffer [50]; char buffer [50];

strcpy

strcpy ((mine.title, "2001 A Space Odyssey"); mine.title, "2001 A Space Odyssey"); mine.year

mine.year = 1968; = 1968; cout

cout << "Enter title: "; << "Enter title: "; cin.getline

cin.getline (yours.title,50); (yours.title,50); cout

cout << "Enter year: "; << "Enter year: "; cin.getline

cin.getline (buffer,50); (buffer,50); yours.year

yours.year = atoi= atoi (buffer); (buffer); cout

cout << "My favourite<< "My favourite movie is:\movie is:\n "; n "; printmovie

printmovie (mine); (mine); cout

cout << "And yours:\<< "And yours:\n "; n "; printmovieprintmovie (yours); (yours); return 0;

return 0; } }

void

void printmovieprintmovie ((movies_tmovies_t movie) movie) {

{

cout

cout << movie.title<< movie.title; ; coutcout << " (" << << " (" << movie.year

movie.year << ")\<< ")\n"; n"; }

(6)

Contoh

Contoh algoritmaalgoritma yang menggunakanyang menggunakan keduakedua operator

operator RetriveRetrive( ) ( ) dandan Update( ) Update( ) yaituyaitu: : Menyalin

Menyalin isiisi structstruct A A keke structstruct BB Structure Mapping Function

Structure Mapping Function Fungsi

Fungsi untukuntuk memetakanmemetakan komponenkomponen structstruct pada

pada field identifier i field identifier i keke alamatdialamatdi memorimemori Perhitungan

Perhitungan SMF SMF memerlukanmemerlukan parameter parameter structure.

structure.

Parameter Structure Parameter Structure

1.

1. AlamatAlamat awalawal/Base /Base Lokation(bLokation(b))

Alamat

Alamat komponenkomponen pertamapertama array array didi memorimemori.. Pada

Pada dasarnyadasarnya alamatalamat iniini tidaktidak diketahuidiketahui oleholeh pemrogram

pemrogram, , sehinggasehingga nilainilai b b selaluselalu dimisalkandimisalkan..

2.

2. DaftarDaftar Field/Field ListField/Field List 3.

3. PanjangPanjang KomponenKomponen Field/Field Length (FL)Field/Field Length (FL)

Ukuran

Ukuran tipetipe data (data (dalamdalam byte) yang byte) yang digunakan

digunakan, , sepertiseperti: :

integer: FL = 2, char: FL = 1

(7)

Rumus

Rumus

Umum

Umum

SMF

SMF

Addr(Field

Addr(Field

) = b + offset

) = b + offset

Memori

Memori

yang

yang

digunakan

digunakan

oleh

oleh

struct

struct

MS = FL

MS = FL

11

+ FL

+ FL

22

+ FL

+ FL

33

+

+

..

..

FL

FL

nn

Contoh

Contoh

:

:

struct

struct

tgl

tgl

{

{

int

int

Tanggal

Tanggal

;

;

int

int

Bulan

Bulan

;

;

int

int

Tahun

Tahun

;

;

};

};

Struct

Struct

Peg {

Peg {

int

int

NIP;

NIP;

tgl

tgl

MK;/*

MK;/*

Mulai

Mulai

Bekerja

Bekerja

*/

*/

tgl

tgl

BK; /*

BK; /*

Berhenti

Berhenti

Bekerja

Bekerja

*/

*/

};

};

Struct

(8)

Bila

Bila dimisalkandimisalkan b = 1000b = 1000 Addr(Yacob.BK.Tanggal

Addr(Yacob.BK.Tanggal) = b + offset) = b + offset

= 1000 + 8 = 1008 = 1000 + 8 = 1008

Array of Structure Array of Structure

struct

struct PegawaiPegawai {{ char Nama[30]; char Nama[30];

int

int umur;umur; char status; char status;

float

float gajigaji;;

char jabatan[20]; char jabatan[20];

}; }; Struct

Struct PegawaiPegawai P[50]; /* Array of Structure*/P[50]; /* Array of Structure*/ Nama

Nama KomponenKomponen TipeTipe Field

Field LL OffsetOffset Yacob.NIP

Yacob.NIP IntInt 22 00 Yacob.MK.Bulan

Yacob.MK.Bulan IntInt 22 44 Yacob.BK.Tanggal

Yacob.BK.Tanggal IntInt 22 88 Yacob.BK.Tahun

Yacob.BK.Tahun IntInt 22 1212 Yacob.MK.Tanggal

Yacob.MK.Tanggal IntInt 22 22 Yacob.MK.Tahun

Yacob.MK.Tahun IntInt 22 66 Yacob.BK.Bulan

(9)

Rumus

Rumus PerhitunganPerhitungan besarnyabesarnya memorimemori yang yang digunakan

digunakan oleholeh array of array of structstruct..

M = MS x (U

M = MS x (U11 + 1 ) = FL+ 1 ) = FL11 + FL+ FL22 + FL+ FL33 +…+…. . FLFLnnx (Ux (U11 + 1 )

+ 1 )

Untuk

Untuk array of array of structstruct PegawaiPegawai P[50], P[50], diperlukandiperlukan :: M

M = (30+2+1+4+20) x (49 +1)= (30+2+1+4+20) x (49 +1) = 2850 byte

= 2850 byte

Akses

Akses KomponenKomponen:: 1

1 PerkalianPerkalian + 2 + 2 PenambahanPenambahan Apabila

Apabila daftardaftar pegawaipegawai disimpandisimpan dalamdalam array2 array2 dimensi

dimensi, P[50][5] , P[50][5] diperluakandiperluakan ::

M = L x (U

M = L x (U11 + 1 ) x (U+ 1 ) x (U22 + 1 ) = 30 x 50 x 5 = 7500 + 1 ) = 30 x 50 x 5 = 7500 byte

byte

Akses

Akses komponenkomponen:: 2

2 perkalianperkalian + 2 + 2 penambahanpenambahan

30 30 byte

byte 2 byte2 byte 1 byte1 byte 4 byte4 byte 20 byte20 byte Nama

Nama UmurUmur statusstatus GajiGaji JabatanJabatan P[1] P[1] P[3] P[3] P[49 P[49 ] ] P[0] P[0] …… …… P[2] P[2]

(10)

Contoh

Contoh

Aplikasi

Aplikasi

Array of

Array of

Struct

Struct

// array of structures

// array of structures #include <

#include <iostream.hiostream.h>> #include <

#include <stdlib.hstdlib.h> > #define N_MOVIES 5 #define N_MOVIES 5 struct

struct movies_tmovies_t {

{

char title [50]; char title [50]; int

int year; } year; }

films [N_MOVIES]; films [N_MOVIES]; void

void printmovieprintmovie ((movies_tmovies_t movie); movie); int

int main () main () { { char buffer [50]; char buffer [50]; int int n; n; for (n=0; n<N_MOVIES; n++) for (n=0; n<N_MOVIES; n++) { { cout

cout << "Enter title: "; << "Enter title: "; cin.getline

cin.getline (films[n].title,50); (films[n].title,50); cout

cout << "Enter year: "; << "Enter year: "; cin.getline

cin.getline (buffer,50); (buffer,50); films[n].year

films[n].year = atoi= atoi (buffer); (buffer);

} } cout

cout << "<< "\\nYounYou have entered these have entered these movies:

movies:\\n"; n";

for (n=0; n<N_MOVIES; n++) for (n=0; n<N_MOVIES; n++) printmovie

printmovie ((films[nfilms[n]); return 0; ]); return 0; }

} void

void printmovieprintmovie ((movies_tmovies_t movie) movie) {

{ cout

cout << << movie.titlemovie.title; ; cout

cout << " (" << << " (" << movie.yearmovie.year << ")<< ")\\n"; n"; }

(11)

Latihan Latihan

1.

1. BuatBuat array of array of structstruct untukuntuk 76 76 mahasiswamahasiswa

dengan

dengan daftardaftar field field sebagaisebagai berikutberikut:: Nama

Nama string 40 string 40 karakterkarakter,, Nim

Nim string 10 karakterstring 10 karakter,, Alamat

Alamat string 50 karakterstring 50 karakter,, IPS float

IPS float IPK float IPK float Berapa

Berapa byte memoribyte memori dibutuhkandibutuhkan untukuntuk menampung

menampung daftardaftar mahasiswamahasiswa tersebuttersebut?? 2.

2. BilaBila daftardaftar mahasiswamahasiswa padapada soalsoal no. 1 no. 1 ditampung

ditampung dalamdalam array 2 array 2 dimensidimensi, , berapaberapa byte

byte memorimemori yang dibuthkanyang dibuthkan? ? MisalMisal M[76][4]

M[76][4] 3.

3. BuatBuat modulmodul yang yang berfungsiberfungsi untukuntuk memasukkan

memasukkan data data semuasemua pegawaipegawai?? 4.

4. BuatBuat modulmodul yanyan gberfungsigberfungsi untukuntuk mencarimencari data

data pegawaipegawai dengan:dengan: a.

a. gajigaji terbesarterbesar b.

b. gajigaji terkecilterkecil c.

Referensi

Dokumen terkait

Record adalah elemen larik yang bertipe terstruktur Dengan menggunakan tipe data record , beberapa item data yang masing-masing dapat mempunyai tipe data berbeda-beda

Sintaks record dalam bahasa C ini adalah : Struct merupakan suatu struktur data yang menggabungkan beberapa data dengan berbagai tipe data yang memiliki ukuran yang

Yang dimaksud array yaitu tipe data berindeks yang terdiri dari satu atau lebih elemen/komponen yang memiliki tipe data yang sama... Record (Pascal) atau struct

• Menjelaskan prosedur pembuatan dokumen cetak gabung yang meliputi cara membuat file data, file non dokumen serta mengetik file data pada file non dokumen dengan benar6. •

Tipe data terstruktur yang mempunyai komponen dalam jumlah tetap dan setiap komponen mempunyai tipe data yang sama. Posisi masing-masing data dalam array

Sama seperti struct, union juga merupakan tipe data yang dibangkitkan, dimana anggotanya menggunakan secara bersama ruang penyimpanan memori yang sama, berbeda

Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai dalam bentuk bilangan atau angka. Semua bahasa pemrograman menyediakan tipe

Mengidentifikasi berbagai jenis kesalahan umum yang mungkin terjadi saat menggunakan variabel, tipe data, operator, dan fungsi input-output dalam bahasa C#.. Menhubungkan pemahaman