• Tidak ada hasil yang ditemukan

Tipe Data Record dan Array of Record

N/A
N/A
Siti Nurjanah

Academic year: 2024

Membagikan "Tipe Data Record dan Array of Record"

Copied!
14
0
0

Teks penuh

(1)

S-1 Teknik Informatika

RECORD & ARRAY OF RECORD

(2)

Tujuan

• Mahasiswa mampu memahami tentang tipe data record / structure

• Mampu membuat program yang terstruktur dan modular

menggunakan fungsi dengan melewatkan data berupa record /

structure.

(3)

Pokok Bahasan

• Record

• Array of Record

(4)

Record / Structure

• Record adalah suatu tipe data bentukan yang merupakan kumpulan dari atribut-atribut suatu objek.

• Pada record tipe elemen bisa berbeda-beda tidak seperti array yang mengharuskan mempunyai tipe elemen yang sama.

• Deklarasi record / structure

struct namaRecord {

<tipe Atribut 1> Atribut1;

<tipe Atribut 2> Atribut2;

. . .

<tipe Atribut n> Atributn;

};

• Cara mengakses variabel di dalam record/struct adalah dengan operator dot (.).

Atribut 1 Atribut 2 Atribut 3 . . . Atribut N

(5)

Contoh:

• Akan dibuat sebuah program untuk mengelola koordinat kartesius yang memiliki koordinat (absis, ordinat).

• Program akan dipecah menjadi input, proses dan output.

• Struktur data yang digunakan adalah tipe record.

• A, B, C, D, T adalah titik-titik yang ada dalam koordinat kartesian

• T merupakan titik tengah dari 2 titik A dan B,

• C merupakan titik hasil dari pencerminan titik A terhadap sumbu X

• D merupakan titik hasil dari pencerminan titik A terhadap sumbu Y

1 2 3 4 5 6

- 1 - 3 - 2

1 2 3 4 5

- 1 - 2 - 3

A ( 2 , 1 )

T ( 4 , 2 )

B ( 6 , 3 )

C ( 2 , - 1 ) D ( - 2 , 1 )

X ( A b s is ) Y ( O r d in a t )

(6)

struct koordinat { float absis;

float ordinat;

};

void getPoint( koordinat& ttk){

cout<<"Masukkan absis = ";cin >> ttk.absis;

cout<<"Masukkan ordinat = ";cin >> ttk.ordinat;

}

void printPoint( koordinat ttk){

cout<< "("<<ttk.absis<<","<< ttk.ordinat<<")"<<endl;

}

main(){

koordinat a,b;

cout << "Input Titik a "<<endl; getPoint(a);

cout << "Input Titik b "<<endl; getPoint(b);

cout << "Titik a = "; printPoint(a);

cout << "Titik b = "; printPoint(b);

}

(7)

Waktu : konversi waktu

struct waktu { int jam;

int menit;

int detik;

};

void getWaktu(waktu& wkt) {

cout<<"Masukkan jam = ";cin >> wkt.jam;

cout<<"Masukkan menit = ";cin >> wkt.menit;

cout<<"Masukkan detik = ";cin >> wkt.detik;

}

void printWaktu( waktu wkt) {

cout << wkt.jam << ":"<< wkt.menit << ":" << wkt.detik ; }

int cariJumlahDetik(waktu wkt){ // Jadikan void ??

return (wkt.jam * 3600 + wkt.menit*60 + wkt.detik);

}

void konversiWaktu(int jDetik, waktu& wkt){ // Jadikan fungsi??

int sisa;

wkt.jam = jDetik / 3600;

sisa = jDetik % 3600;

wkt.menit = sisa / 60;

wkt.detik = sisa % 60;

}

(8)

Array of Record

• Elemen array dapat juga digunakan untuk data yang bertipe terstruktur (record).

Caranya :

1. membuat tipe nama record / structure 2. membuat nama alias tipe array yang elemennya record/struct

3. deklarasikan variable-variabel yang

mengacu pada nama tipe alias array.

(9)

Contoh deklarasi array of record

• Misalkan akan dibuat 3 buah fungsi untuk menentukan ukuran dari array, input data dan pencetakan data dengan header sbb :

void banyakData(int& n);

void inputMahasiswa (LarikMhs& Mhs, int n);

void cetakMahasiswa (LarikMhs Mhs, int n);

struct mahasiswa { char NPM[8] ; char nama[20];

int nilai;

};

typedef mahasiswa LarikMhs[10];

LarikMhs mhs;

(10)

#include <iostream>

using namespace std;

struct mahasiswa { char NPM[8] ; char nama[20];

int nilai;

};

typedef mahasiswa LarikMhs[10];

LarikMhs mhs;

void banyakData(int& n);

void inputMahasiswa (LarikMhs& Mhs, int n);

void cetakMahasiswa(LarikMhs Mhs, int n);

main(){

LarikMhs mhs;

int n;

banyakData(n);

inputMahasiswa(mhs,n);

cetakMahasiswa(mhs,n);

}

void banyakData(int& n){ // Input banyak data cout<<"Banyak data : "; cin>>n;

}

void inputMahasiswa (LarikMhs& Mhs, int n) { for (int i=0;i<n;i++) {

cout<<"masukan data mahasiswa ke- "<<(i+1)<<endl;

cout<<"NPM : "; cin>>Mhs[i].NPM;

cout<<"Nama : "; cin>>Mhs[i].nama;

cout<<"Nilai : "; cin>>Mhs[i].nilai;

} }

void cetakMahasiswa(LarikMhs Mhs, int n){

cout<<"PENCETAKAN DATA MAHASISWA "<<endl;

for (int i=0;i<n;i++) {

cout<<Mhs[i].NPM<<"|"<<Mhs[i].nama<<"|"<<Mhs[i].nilai<<endl;

} }

(11)

1. Buatlah program modular untuk menghitung rata-rata gaji, gaji tertinggi, gaji terendah dan mengurutkan daftar pegawai berdasarkan NIP secara ascending dari suatu kumpulan data record pegawai yang memiliki atribut (NIP : string, nama : string dan gol : int). Aturan gaji adalah :

Golongan Gaji

1 2.000.000

2 3.000.000

3 5.000.000

4 8.000.000

Fungsi yang diperlukan antara lain : main, inputPegawai, cetakDaftar, cariGaji, rataRataGaji, gajiTerendah, gajiTertinggi, sorting , dll Bentuk tampilan daftar pegawai adalah sebagai berikut :

DAFTAR GAJI PEGAWAI PT. INGIN SUKSES

- - - - - - - - - - - - - - - --- --- No NIP NAMA Gol Gaji

- - - - - - - - - - - - - - - ---

1 120001 Ali Sukiman 2 3.000.000

2. 120005 Iman Wardiman 3 5.000.000

N ... ………... …….. ………

- - - - - - - - - - - - - - - --- Gaji Tertinggi : 5.000.000

Gaji Terendah : 3.000.000 Rata-rata Gaji : 4.000.000

(12)

• Kerjakan tugas-tugas dibawah ini sesuai dengan petunjuk dan ketentuan pengerjaan yang telah diberikan :

2.. Buatlah program untuk menghitung nilai Hasil dari nilai UTS, UAS dan menampilkan nilai huruf yang akan didapat.

• Ketentuan : _ Masukan banyak data yang diinginkan untuk menentukan banyak data yang akan diproses. _

• Buatlah program secara modular untuk menghitung nilai Hasil

• Nilai Hasil = (Nilai UAS * 40%) + (Nilai UTS * 60%)

• Jika Nilai Huruf = A, maka Nilai Hasil >= 80

• Jika Nilai Huruf = B, maka Nilai Hasil >= 70

• Jika Nilai Huruf = C, maka Nilai Hasil >= 56

• Jika Nilai Huruf = D, maka Nilai Hasil >= 47

• Jika Nilai Huruf = E, maka Nilai Hasil < 47

• Tampilan akhir adalah sebuah tabel, seperti dibawah ini :

• Daftar Nilai Mata Kuliah C++

• No Nama Nilai Mahasiswa UTS UAS Nilai akhir Huruf mutu

• ... ... ... ... ... ... ...

• …. ... ... ... …... ... ...

• Output Diurutkan berdasarkan nilai terakhir secara ascending

(13)

3. Buatlah fungsi untuk :

a. Mencari titik tengah (T) dari 2 buah koordinat A dan B.

Diketahui rumus untuk titik tengah adalah:

T.absis = (A.absis + B.ordinat) / 2 T.ordina t= (A.ordinat + B.ordinat) / 2 Berbentuk function dan void

b. Mencari koordinat hasil pencerminan terhadap sumbu X dan terhadap sumbu Y Berbentuk function dan void

4.. Buatlah program untuk mencari jumlah biaya parkir mobil dari selisih 2 waktu (datang dan pulang) dengan aturan 1 jam pertama = Rp.

3000 dan per jam berikutnya = Rp. 3000.

Contoh tampilan yang diinginkan:

Jam Datang = 10 : 10 : 10

Jam Pulang = 11 : 13 : 25

Lama Parkir = 1 : 3 : 15

Bayar = Rp. 6000

(14)

• Sesi Berakhir

• TERIMA KASIH

Referensi

Dokumen terkait

Dapat menyelesaikan suatu masalah dengan membuat algoritma yang menggunakan tipe data array dan mengimplementasikannya ke dalam bentuk program.. Dasar

Dapat menyelesaikan suatu masalah dengan membuat algoritma yang menggunakan tipe data record dan mengimplementasikannya ke dalam bentuk program.. Dasar

Dalam Pascal String dapat dianggap sebagai tipe data dasar, namun dalam kebanyakan bahasa String hanyalah tipe data array of character. String dapat menampung serangkaian huruf

Array/Larik adalah struktur data yang mengacu pada sebuah/sekumpulan elemen yang diakses melalui indeks dan merupakan tipe terstruktur yang mempunyai komponen

Perbedaannya adalah bahwa dalam array semua elemennya harus bertipe sama, sedangkan pada record setiap elemen bisa mempunyai tipe data yang berbeda satu

Caranya adalah mendefinisikan record terlebih dahulu yang kemudian akan digunakan sebagai tipe data pada saat pendeklarasiaan

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

Dokumen ini menjelaskan dasar-dasar pemrograman Java, termasuk tipe data, variabel, dan