SlideShare a Scribd company logo
1 of 11
BAB VII
RECORD
Record (rekaman) tersusun atas beberapa medan (field). Setiap field mempunyai
tipe sendiri, baik tipe dasar yang sudah ada atau tipe bentukan. Setiap record merupakan
satu kesatuan yang mempunyai pengertian yang utuh.
A. Mendefinisikan Record
Selain merupakan satu pengertian yang utuh, record dapat pula merepresentasikan
sebuah table.
Algoritmik
Pascal C
Type
titik=record<
x,y:integer
>
type titik=record
x,y:integer,
end;
Typedef struct
int x,y;
} titik;
Untuk table, nama field record di ambil dari kepala kabel. Misalnya diberikan table
seperti berikut ini:
No. NIM Nama Alamat Tanggal lahir
Defenisi record yang sesuai adalah:
Algoritmik Pascal C
type tanggal=record <
dd : integer
mm : integer
yy : integer
>
type tanggal=record
dd : integer;
mm : integer;
yy : integer:
end;
typedef struct {
int dd, mm, yy;
} tanggal;
type data=record<
no : byte
NIM : string[8]
Nama :
string[30]
Alamat :
string[30]
Tgl_Lahir :
tanggal
>
type data=record
no : byte;
NIM : string[8];
Nama :
string[30];
Alamat :
string[30];
Tgl_Lahir :
tanggal;
end;
typedef struct {
int no;
char NIM[8];
char Nama[30];
char Alamat[30];
tanggal
Tgl_Lahir,
} data;
B. Cara Mengakses Elemen Record
Cara mengakses elemen record adalah dengan menggunakan operator titik (.).
aturannya nama variabel bertipe record di ikuti tanda titik kemudian baru field yang
dikehendaki. Misalnya akan diinisialisasikan titik A sebagai titik asal (0,0) :
Algoritma Pascal C
Deklarasi
A :
titik
var
A : titik;
Struct titik
A;
Deskripsi
A.x ←
0
A.x ←
0
A.x:=0;
A.y:=0;
A.x=0;
A.y=0;
Contoh 7.1.
Buatlah algoritma untuk menentukan jarak dari 2 titik, a(x1, y2) dan (x2, y2).
Analisis:
Posisi titik A(x1, y1) dan B(x2, y2) secara umum dapat digambarkan sebagai berikut :
r B(x2, y2)
A((𝑥1 − 𝑦1) (y2-y1)
(𝑥2 − 𝑥1)
Dengan rumus Phytagoras, maka diperoleh rumus jarak dua titik adalah :
𝑟 = √ (𝑥2 − 𝑥1)2 + (𝑦2 – 𝑦1)2
Algoritma 7.1.
Algoritma menentukan jarak 2 titik
{diketahui koordinat A(x1, y1) dan B(x2, y2), dicari jarak r dari A
ke B }
Deklarasi
type titik = record<
x,y : integer;
>
A,B : titik
jarak : real
Deskripsi
read(A.x, A.y)
read(B.x, B.y)
jarak ← sqrt((sqr(A.x-B.x)+(sqr(A.y-B.y))))
write(jarak)
Translasi 7.1.
Bahasa Pascal Bahasa C
program Panjang_Garis;
uses wincrt;
type titik=record
x, y : integer;
end;
var A,B : titik;
jarak: real;
begin
writeln (‘Masukkan koordinat titik A’);
write (Nilai absis x1 :’); readln(A.x);
write (Nilai ordinat y1 : ‘); readln(A.y);
writeln (‘Masukan koordinat titik B’);
write (Nilai absis x2 : ‘); readln(B.x);
write (Nilai ordinat y2 : ‘) readln(B.y);
jarak := sqrt((sqr(A.x-B.x)+(sqr(A.y-
B.y))));
write (Panjang Garis AB = ‘jarak:4:2);
end.
#include <stdio.h>
#include <math.h>
typedef struct {
int x, y;
} titik;
main() {
titik A,B;
float jarak;
printf(“Masukkan koordinat titik An”);
printf(“Nilai absis x1 :”);
scanf(“%d”,&A.x);
printf(“Nilai ordinat y1 :”);
scanf(“%d”,&A.y);
printf(“Masukkan koordinat titik Bn);
printf(Nilai absis x2 :”);
scanf(“%d”,&B.x);
printf(Nilai ordinat y2 :”);
scanf(“%d”,&B.y);
jarak = sqrt((pow((A.x – B.x),2) +
(pow((A.y – B.y),2))));
printf(“Panjang Garis AB = %4.2f”
jarak);
return 0;
}
Contoh 7.2.
Buatlah algoritma untuk menjumlah 2 bilangan kompleks.
Analisis :
Bilangan kompleks tersusun atas bagian realmdan bagian imajiner berbentuk a + b
bi, di mana i = √−1 . Misalnya bilangan pertama adalah bil1 = a1 + b1.i Dan bil2 = a2 +
b2.i maka hasil jumlah bil1 dan bilangan 2 adalah :
bil1 + bil2=(a1+a2) + (b1+b2)i
Algoritma 7.2.
procedure jumlah_bilangan_kompleks(input x, y : kompleks ; output jumlah : kompleks)
Deklarasi
type kompleks =record < ,a, b : real >
Deskripsi
jumlah.a ← x.a + y.a
jumlah.b ← x.b + y.b
Translasi 7.2.
Bahasa pascal Bahasa C
program
Penjumlahan_Bilangan_Kompleks;
user wincrt;
type kompleks = record
a, b : real;
end,
var bil1, bil2 : kompleks;
total : kompleks;
proceure jumlah_bilangan_kompleks
(x,y: kompleks ;var jumlah :
kompleks);
begin
jumlah.a := x.a + y.a;
jumlah.b := x.b + y.b;
end;
begin
writeln (‘Bilangan kompleks bil1‘);
write (‘Nilai bagian real bil1 : ‘_;
readln(bil1.a);
write (‘Nilai bagian imajiner bil1 : ‘);
readln(bil1.b);
writeln (‘Bilangan kompleks bil2’);
write (‘Nilai bagian real bil2 : ‘);
readln(bil2.a);
write (‘Nilai bagian imajiner bil2 : ‘);
readln(bil2.b);
jumlah_bilangan_kompleks(bil1, bil2,
total);
if (total.b < 0) then
write (‘Hasil =’,total.a:4:2,’ i’)
else
write
(‘Hasil=’,total.a:4:2,’+’,total.b:4:2,’I’);
end.
#include <stdio.h>
typedef struct {
float a, b;
} kompleks;
void jumlah_bilangan_kompleks
(kompleks x,kompleks y,kompleks
*jumlah)
{ jumlah- >a = x.a + y.a;
Jumlah- > = x.b + y.b;
}
main() {
kompleks bil1, bil2;
kompleks total;
printf(“Bilangan kompleks bil1n”);
printf(“Nilai bagian real bil1 :”);
scanf(“%f”,&bil1.a);
printf(“Nilai bagian imajiner bil1 : “);
scanf(“%f”,&bil1.a);
printf(“Bilangan kompleks bil2n”);
printf(“Nilai bagian real bil2 : “);
scanf(“f”,&bil2.a);
printf(“Nilai bagian imajiner bil2 : “);
scanf(“%f”,&bil2.b);
jumlah_bilangan_kompleks(bil1,bil2,&total);
if ((total.b < 0))
printf(“Hasil = %4.2f%4.2f
i”,total.a,total.b);
else
printf(“Hasil= %4.2 + %4.2f
i”,total.a,total.b);
return 0;
}
Catatan :
Untuk passing parameter dalam bahasa C yang menggunakan call by refference
(yaitu menggunakan pointer *), cara mengakses fieldnya tidak menggunakan operator titik
(.) tetapi menggunakan operator panah (->).
Contoh 7.3.
Buatlah daftar nilai mahasiswa didasarkan pada table berikut ini.
No. NIM Nama
Ujian Nilai
Mid Akhir Akhir Huruf
1. 990510001 Khoirul anam 80 95 90 A
2. 990510002 Siti julaiha 45 30 35 D
3. 990510003 Nur rohmah 50 50 50 C
4. 990510004 Agus
Muhammad
90 60 70 B
5. 990510005 Nur Iskandar 40 10 20 E
Dengan ketentuan :
1. Nilai akhir diperoleh dari rumus (Ujian Mid + 2xUjian Akhir)3.
2. Nilai huruf di peroleh dengan :
Range
Nilai
Nilai Huruf
0..20 E
21..40 D
41..60 C
61..80 B
81..100 A
Analisis :
Masalah di atas perlu dipecah menjadi beberapa subprogram untuk mempermudah
penyelesaian. Tahapannya adalah sebagai berikut :
1. Dibuat struktur data yang sesuai dengan tabel tersebut.
2. Dibuat procedure masuk_data, di mana di dalamnya terdapat rumus
untuk mengisi field nilai akhir dan pemanggilan fungsi konversi ke nilai
huruf.
3. Dibuat frocedure cetak_data.
4. Dibuat fungsi untuk memperoleh nilai huruf.
Algoritma 7.3.a
function konversi_ke_huruf(input angka : real) : char
Deskripsi
if (angka<=20) then konversi_ke_huruf ← ‘E’
else if ((angka>20)and (angka <= 40)) then konversi_ke_huruf ← ‘D’
else if ((angka>40) and (angka <=60)) then konversi_ke_huruf ← ‘C’
else if ((angka>60) and (angka <=80)) then konversi_ke_huruf ← ‘B’
else konversi_ke_huruf ← ‘A’
endif
Algoritma 7.3.b.
procedure masuk_data(output mhs : mhs : array [1..20] of data; input n : integer)
Deklarasi
type data = record <
no : byte
NIM : string[8]
Nama : string[30]
Alamat : string[30]
Tgl_Lahir : tanggal >
i : integer
Deskripsi
for ← 1 to n do
with mhs[i] do
read(no)
read(nim)
read(nama)
read(ujian_mid)
read(ujian_akhir)
nilai_akhir ← (ujian_mid + ujian_akhir*2)3
nilai_huruf ← konversi_ke_huruf(nilai-akhir)
endwith
endfor
Translasi 7.3.
Bahasa Pascal
program data_mahasiswa;
uses wincrt;
type data = record
no : byte;
NIM : string[8]
Nama: string[20]
ujian_mid, ujian_akhir : integer
nilai_akhir : real;
nilai_huruf : char;
end;
mahasiswa = array [1..20] of data;
var data_mhs : mahasiswa;
n : integer,
function konversi_ke_huruf(angka : real) : char ;
begin
if(angka<=20) then konversi_ke_huruf : = ‘E’
else if ((angka>20) and (angka <= 40)) then konversi_ke_huruf := ‘D’
else if ((angka>40) and (angka <= 60)) then konversi_ke_huruf :=’C’
else if ((angka>60) and (angka <=80)) then konversi_ke_huruf :=’B’
else konversi_ke_huruf := ‘A’;
end;
procedure masuk_data(var mhs : mahasiswa; n ; integer);
var i : integer;
begin
for i: to n do
with mhs[i] do begin
write(‘No : ‘); readln(no);
wrire(‘Nim : ‘); readln(nim);
write(‘Nama : ‘); readln(nama);
write(‘Nama ujian mid : ‘); readln(ujian_mid);
write(‘Nilai ujian akhir : ‘); readln(ujian_akhir);
nilai_akhir := (ujian_mid + ujian_akhir*2)3;
nilai_huruf := konversi_ke_huruf(nilai_akhir);
end;
end;
procedure cetak_data(mhs ; mahasisiwa; n : integer);
var i : integer;
begin
for i:=1 to ndo
withmhs[i] do begin
writeln(‘No :’, no);
writeln(‘Nim :’, nim);
writeln(‘Nama :’, nama);
writeln(‘Nilai ujian mid :’, ujian_mid);
writeln(‘Nilai ujian akhir :’, ujian_akhir);
writeln(Nilai Akhir :’, nilai_akhir:4:2);
writeln(‘Nilai Huruf :’, nilai_huruf);
writeln(‘Tekan sepasi untuk melanjutkan … ‘);
writeln;
repeat until keypressed;
end;
end;
begin
write(‘Banyak data mahasisiwa : ‘); readln(n);
masuk_data(data-mhs, n);
cetak_data(data_mhs, n);
end.
Bahasa C
#include <stdio.h>
typedef struct {
int no;
char nim[8];
char nama[20];
int ujian_mid, ujian_akhir;
float nilai_akhir;
char nilai_huruf;
} data;
typedef data mahasiswa[20];
char konversi_ke_huruf(float angka)
{ if ((angka <= 20)) return ‘E’;
else if (((angka > 20) && (angka <= 40))) return ‘D’;
else if (((angka > 40) && (angka <= 60))) return ‘C’;
else if (((angka > 60) && (angka <= 80))) return ‘B’;
else return ‘A’;
}
void masuk_data(mahasiswa *mhs, int n)
{ int i;
for (i =0; i < n; i + +)
{ printf(“No : “); scanf(“%d”,&mhs[i]->no);
printf(“Nim : “);scanf(“%s”,mhs[i]->nim);
printf(“Nama : “);scanf(“%s”,mhs[i]->nama);
printf(“Nilai ujian mid : “);scan(“%d”,mhs[i]->ujian_mid);
printf(“Nilai ujian akhir : “);scan(“%d”,mhs[i]->ujian_akhir);
mhs[i]->nilai_akhir = (mhs[i]->ujian_mi + mhs[i]->ujian_akhir *2) 3.0;
mhs[i]->nilai_huruf = konversi_ke_huruf(mhs[i]->nilai_akhir);
void cetak_data(mahasiswa mhs, int n)
{ int i;
for (i = 0; < n; i + +)
{ printf(“No : %dn”,mhs[i].no);
printf(“Nim : %sn”,mhs[i].nim);
printf(“Nama : %sn”,mhs[i].nama);
printf(“Nilai ujian mid : %dn”,mhs[i].ujian_mid);
printf(“Nilai ujian akhir : %dn”,mhs[i].ujian_akhir);
Printf(“Nilai Akhir : %4.2fn”,mhs[i].nilai_akhir);
Printf(“Nilai Huruf :%cn”,mhs[i].nilai_huruf);
Printf(“n’);
}
}
main() {
mahasiswa data_mhs;
Int n;
printf(“Banyak data mahasiswa : “); scanf(“%d”,&n);
masuk_data(&data_mhs, n);
cetak_data(data_mhs, n);
return 0;
}
Contoh 7.4.
Buatlah algoritma untuk menghitung selisih dua waktu yang masing-masing
berformat jam:menit:detik.
Analisis :
Diasumsikan bahwa waktu yang terakhir lebih besar dari waktu awal.
Langkah :
1. Dibaca waktu awal dan waktu akhir
2. Konverensikan masing-masing waktu tersebut ke detik
3. Hitung selisih dari langkah 2
4. Konverensikan langkah 3 ke format jam:menit:detik
Algoritma 7.4.a
procedure konversi_ke_waktu(input det : integer,output d : waktu)
Deklarasi
type waktu = record
jam,menit,detik : integer;
end;
jam2 : integer;
Deskripsi
with d do
jam <- det div (60*60) { mendapatkan jam }
jam2 det mod (60*60)
menit <- jam2 div 60 { mendapatkan menit }
detik <- jam2 mod 60 { mendapatkan detik }
endwith
Algoritma 7.4.b.
function konversi_ke_detik(input d : waktu) : integer
Dekripsi
with d do
konversi_ke_detik ← jam*60*60 + menit*60 + detik
endwith
Algoritma 7.4.c
procedure selisih_waktu(input a, b : waktu; output selisih : waktu)
Deklarasi
temp1, temp2, beda : integer;
Deskripsi
temp1 ← konversi_ke_detik(a)
temp2 ← konversi_ke-detik(b)
beda ← temp2 - temp1
Konversi_ke_waktu(beda,selisih)
Translasi 7.4.
Bahasa Pascal Bahasa C
program selisih_dua_waktu;
uses wincrt;
type waktu = record
jam, menit, detik :
integer;
end;
var waktu1, waktu2 : waktu;
Beda_waktu : waktu;
#include <stdio.h>
typedef struct {
int jam, menit, detik;
} waktu;
void konversi_ke-waktu(int det, waktu
*d)
{ int jam2;
Contoh 7.5.
Buatlah algoritma untuk mengkonversikan koordinat polar menjadi koordinat
cartesius.
Analisis :
Konversi dari koordinat polar menjadi koordinat cartesius menggunakan rumus :
X = r*cos ( 𝜃)
Y = r*sin( 𝜃 )
Algoritma 7.5.
procedure konversi_ke_kartesius(input a : polar; output b : kartesius)
Deklarasi
type kartesius = record , x, y : real >
polar = record < r, teta : real >
Deskripsi
with a do
b.x <- r*cos(teta)
b.y <_ r*sin(teta)
endwith
Translasi 7.5.
Bahasa Pascal Bahasa C
program konversi_koordinat;
uses wincr;
type kartesius = recor
x, y : real;
end;
polar = record
r, teta : real;
end;
var asal : polar;
tujuan : kartesius;
derajat: real;
procedure konversi_ke_kartesius(a : polar;
var b : kartesius);
begin
#include <stdio.h>
#include <math.h>
typedef struct {
float x, y;
} kartesius;
typedef struct {
float r, teta;
} polar;
#define pi 3.14
void konversi_ke_kartesius(polar a, kartesius
*b)
{
b- >x = a.r *cos(a.teta);
with a do begin
b.x := r*cos(teta);
b.y := r*sin(teta);
end;
end;
b- >y = a.r*sin(a.teta);
}
main() {
polar asal;
kartesius tujuan;
float derajat;
begin
with asal do begin
write(‘nilai r : ‘); readln(r);
write(‘sudut : ‘); readln9derajat);
teta : = derajat*180pi;
end;
konversi_ke_kartesius(asal, tujuan);
with tujuan do begin
writeln(‘absis = ‘, x:4:2);
write(‘ordinat = ‘, y:4:2);
end;
end.
printf(“nilai r : “); scanf(“%f”,&asal.r);
printf(“sudut : “); scanf(“%f”,&derajat);
asal.teta = derajat * 180  pi ;
konversi_ke_kartesius(asal,&tujuan);
printf(“absis = %4.2fn”,tujuan.x);
printf(‘ordinat = %4.2f”,tujuan.y);
return 0;
}

More Related Content

What's hot

4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)Kelinci Coklat
 
TUGAS BAHASA C
TUGAS BAHASA CTUGAS BAHASA C
TUGAS BAHASA CHastih Leo
 
Matematika Diskrit - 01 pengantar matematika diskrit
Matematika Diskrit - 01 pengantar matematika diskrit Matematika Diskrit - 01 pengantar matematika diskrit
Matematika Diskrit - 01 pengantar matematika diskrit KuliahKita
 
Contoh Soal Huffman Code
Contoh Soal Huffman CodeContoh Soal Huffman Code
Contoh Soal Huffman CodeAlbertus H.
 
1. logika matematika_Konvers, Invers & Kontraposisi
1. logika matematika_Konvers, Invers & Kontraposisi1. logika matematika_Konvers, Invers & Kontraposisi
1. logika matematika_Konvers, Invers & KontraposisiAnha Anha
 
Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15doudomblogspot
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )istiqlal
 
Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08KuliahKita
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)Kelinci Coklat
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03KuliahKita
 
struktur pengulangan di pascal bagian 2
struktur pengulangan di pascal bagian 2struktur pengulangan di pascal bagian 2
struktur pengulangan di pascal bagian 2Alfian Syamsurizal
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritmacasnadi
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskritsaid zulhelmi
 

What's hot (20)

4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
 
TUGAS BAHASA C
TUGAS BAHASA CTUGAS BAHASA C
TUGAS BAHASA C
 
Matematika Diskrit - 01 pengantar matematika diskrit
Matematika Diskrit - 01 pengantar matematika diskrit Matematika Diskrit - 01 pengantar matematika diskrit
Matematika Diskrit - 01 pengantar matematika diskrit
 
Contoh Soal Huffman Code
Contoh Soal Huffman CodeContoh Soal Huffman Code
Contoh Soal Huffman Code
 
Teknik Counting 2
Teknik Counting 2Teknik Counting 2
Teknik Counting 2
 
1. logika matematika_Konvers, Invers & Kontraposisi
1. logika matematika_Konvers, Invers & Kontraposisi1. logika matematika_Konvers, Invers & Kontraposisi
1. logika matematika_Konvers, Invers & Kontraposisi
 
8 logika predikat
8  logika predikat8  logika predikat
8 logika predikat
 
Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
Ppt graph
Ppt graphPpt graph
Ppt graph
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
struktur pengulangan di pascal bagian 2
struktur pengulangan di pascal bagian 2struktur pengulangan di pascal bagian 2
struktur pengulangan di pascal bagian 2
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritma
 
Himpunan matematika diskrit
Himpunan matematika diskritHimpunan matematika diskrit
Himpunan matematika diskrit
 
Graf
GrafGraf
Graf
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskrit
 

Viewers also liked

Algoritma dan pemrograman; teori dan praktik dalam pascal edisi kedua normal ...
Algoritma dan pemrograman; teori dan praktik dalam pascal edisi kedua normal ...Algoritma dan pemrograman; teori dan praktik dalam pascal edisi kedua normal ...
Algoritma dan pemrograman; teori dan praktik dalam pascal edisi kedua normal ...Bay Cliquers
 
Bahan ajar algo
Bahan ajar algoBahan ajar algo
Bahan ajar algosuep_x
 
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasicPenyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasicPutri Arini
 
makalah tentang algoritma lengkap
makalah tentang algoritma lengkapmakalah tentang algoritma lengkap
makalah tentang algoritma lengkapLela Warni
 
Buku tutorial pemprograman c
Buku tutorial pemprograman cBuku tutorial pemprograman c
Buku tutorial pemprograman cismailtelkom
 
Materi halogen kimia unsur
Materi halogen kimia unsurMateri halogen kimia unsur
Materi halogen kimia unsurAnnur Anisa
 
Productos
ProductosProductos
Productosprimos2
 
Ulticon builders donates bunkhouse to yolanda victims
Ulticon builders donates bunkhouse to yolanda victimsUlticon builders donates bunkhouse to yolanda victims
Ulticon builders donates bunkhouse to yolanda victimsgianroces61
 
Cue 15 transformative leadership preso
Cue 15 transformative leadership presoCue 15 transformative leadership preso
Cue 15 transformative leadership presoMichael Niehoff
 
Sim ci Simulating Critical Infrastructures
Sim ci Simulating Critical InfrastructuresSim ci Simulating Critical Infrastructures
Sim ci Simulating Critical InfrastructuresIgor van Gemert
 
NGỌC TRINH VỪA SỞ HỮU 2 CĂN SUNVIEW TOWN. BẠN CÓ MUỐN LÀM HÀNG XÓM VỚI CÔ ẤY ...
NGỌC TRINH VỪA SỞ HỮU 2 CĂN SUNVIEW TOWN. BẠN CÓ MUỐN LÀM HÀNG XÓM VỚI CÔ ẤY ...NGỌC TRINH VỪA SỞ HỮU 2 CĂN SUNVIEW TOWN. BẠN CÓ MUỐN LÀM HÀNG XÓM VỚI CÔ ẤY ...
NGỌC TRINH VỪA SỞ HỮU 2 CĂN SUNVIEW TOWN. BẠN CÓ MUỐN LÀM HÀNG XÓM VỚI CÔ ẤY ...Khoaairblade
 
Origin of Life: by Chance or by Design?
Origin of Life: by Chance or by Design?Origin of Life: by Chance or by Design?
Origin of Life: by Chance or by Design?Tauqeer Ahmad
 
Islam Banjar Islam Nusantara
Islam Banjar Islam NusantaraIslam Banjar Islam Nusantara
Islam Banjar Islam NusantaraPindai Media
 

Viewers also liked (19)

modul algoritma Bab 3
modul algoritma Bab 3modul algoritma Bab 3
modul algoritma Bab 3
 
Konsep algoritma pemograman
Konsep algoritma pemogramanKonsep algoritma pemograman
Konsep algoritma pemograman
 
4 fungsi if
4  fungsi   if4  fungsi   if
4 fungsi if
 
Algoritma dan pemrograman; teori dan praktik dalam pascal edisi kedua normal ...
Algoritma dan pemrograman; teori dan praktik dalam pascal edisi kedua normal ...Algoritma dan pemrograman; teori dan praktik dalam pascal edisi kedua normal ...
Algoritma dan pemrograman; teori dan praktik dalam pascal edisi kedua normal ...
 
Bahan ajar algo
Bahan ajar algoBahan ajar algo
Bahan ajar algo
 
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasicPenyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
 
makalah tentang algoritma lengkap
makalah tentang algoritma lengkapmakalah tentang algoritma lengkap
makalah tentang algoritma lengkap
 
Buku tutorial pemprograman c
Buku tutorial pemprograman cBuku tutorial pemprograman c
Buku tutorial pemprograman c
 
Materi halogen kimia unsur
Materi halogen kimia unsurMateri halogen kimia unsur
Materi halogen kimia unsur
 
Productos
ProductosProductos
Productos
 
Nagesh_G
Nagesh_GNagesh_G
Nagesh_G
 
111111
111111111111
111111
 
Ulticon builders donates bunkhouse to yolanda victims
Ulticon builders donates bunkhouse to yolanda victimsUlticon builders donates bunkhouse to yolanda victims
Ulticon builders donates bunkhouse to yolanda victims
 
Cue 15 transformative leadership preso
Cue 15 transformative leadership presoCue 15 transformative leadership preso
Cue 15 transformative leadership preso
 
Sim ci Simulating Critical Infrastructures
Sim ci Simulating Critical InfrastructuresSim ci Simulating Critical Infrastructures
Sim ci Simulating Critical Infrastructures
 
NGỌC TRINH VỪA SỞ HỮU 2 CĂN SUNVIEW TOWN. BẠN CÓ MUỐN LÀM HÀNG XÓM VỚI CÔ ẤY ...
NGỌC TRINH VỪA SỞ HỮU 2 CĂN SUNVIEW TOWN. BẠN CÓ MUỐN LÀM HÀNG XÓM VỚI CÔ ẤY ...NGỌC TRINH VỪA SỞ HỮU 2 CĂN SUNVIEW TOWN. BẠN CÓ MUỐN LÀM HÀNG XÓM VỚI CÔ ẤY ...
NGỌC TRINH VỪA SỞ HỮU 2 CĂN SUNVIEW TOWN. BẠN CÓ MUỐN LÀM HÀNG XÓM VỚI CÔ ẤY ...
 
Origin of Life: by Chance or by Design?
Origin of Life: by Chance or by Design?Origin of Life: by Chance or by Design?
Origin of Life: by Chance or by Design?
 
Firenze liceoscientifico gramsci
Firenze liceoscientifico gramsciFirenze liceoscientifico gramsci
Firenze liceoscientifico gramsci
 
Islam Banjar Islam Nusantara
Islam Banjar Islam NusantaraIslam Banjar Islam Nusantara
Islam Banjar Islam Nusantara
 

Similar to modul algoritma Bab 7 record

Similar to modul algoritma Bab 7 record (20)

modul algoritma Bab 2
modul algoritma Bab 2modul algoritma Bab 2
modul algoritma Bab 2
 
Program Pascal
Program PascalProgram Pascal
Program Pascal
 
modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
 
modul algoritma Bab 6
modul algoritma Bab  6modul algoritma Bab  6
modul algoritma Bab 6
 
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascallistiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
 
Modul pascal lengkap
Modul pascal lengkapModul pascal lengkap
Modul pascal lengkap
 
Manipulasi string
Manipulasi stringManipulasi string
Manipulasi string
 
03 i-o
03 i-o03 i-o
03 i-o
 
Pascal - Pendahuluan2.txt - Notepad.pdf
Pascal - Pendahuluan2.txt - Notepad.pdfPascal - Pendahuluan2.txt - Notepad.pdf
Pascal - Pendahuluan2.txt - Notepad.pdf
 
Struktur data chapter_04
Struktur data chapter_04Struktur data chapter_04
Struktur data chapter_04
 
Penyelesaian persamaan non linier
Penyelesaian persamaan non linierPenyelesaian persamaan non linier
Penyelesaian persamaan non linier
 
Uts alpro ii
Uts alpro iiUts alpro ii
Uts alpro ii
 
Tipe data
Tipe dataTipe data
Tipe data
 
Alpro referensi
Alpro referensiAlpro referensi
Alpro referensi
 
Laporan hasil praktikum modul ii tipe data
Laporan hasil praktikum modul ii tipe dataLaporan hasil praktikum modul ii tipe data
Laporan hasil praktikum modul ii tipe data
 
Materi Pelajaran Program Pascal
Materi Pelajaran Program PascalMateri Pelajaran Program Pascal
Materi Pelajaran Program Pascal
 
Function
FunctionFunction
Function
 
Pascal - Array.txt - Notepad.pdf
Pascal - Array.txt - Notepad.pdfPascal - Array.txt - Notepad.pdf
Pascal - Array.txt - Notepad.pdf
 
Alwin pascal-02
Alwin pascal-02Alwin pascal-02
Alwin pascal-02
 
Alwin pascal-02
Alwin pascal-02Alwin pascal-02
Alwin pascal-02
 

More from Eko Widyanto Napitupulu (11)

klasifikasi-komputer
klasifikasi-komputerklasifikasi-komputer
klasifikasi-komputer
 
Soal un paket b 2009
Soal un paket b 2009Soal un paket b 2009
Soal un paket b 2009
 
Indonesian edition
Indonesian editionIndonesian edition
Indonesian edition
 
modul algoritma Bab 4
modul algoritma Bab 4modul algoritma Bab 4
modul algoritma Bab 4
 
modul algoritma Bab 1
modul algoritma Bab 1modul algoritma Bab 1
modul algoritma Bab 1
 
Presentasi pkn "HAM"
Presentasi pkn "HAM"Presentasi pkn "HAM"
Presentasi pkn "HAM"
 
Resistor paralel
Resistor paralelResistor paralel
Resistor paralel
 
pengertian ihsan dan masalah ihsan
pengertian ihsan dan masalah ihsanpengertian ihsan dan masalah ihsan
pengertian ihsan dan masalah ihsan
 
perangkat-keras
perangkat-kerasperangkat-keras
perangkat-keras
 
perangkat-lunak
perangkat-lunakperangkat-lunak
perangkat-lunak
 
Fungsi otak manusia
Fungsi otak manusiaFungsi otak manusia
Fungsi otak manusia
 

Recently uploaded

KISI KISI PSAJ IPS KLS IX 2324.docskskkks
KISI KISI PSAJ IPS KLS IX 2324.docskskkksKISI KISI PSAJ IPS KLS IX 2324.docskskkks
KISI KISI PSAJ IPS KLS IX 2324.docskskkksdanzztzy405
 
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Shary Armonitha
 
KONSEP DASAR ADVOKASI GIZI KEBIJAKAN PEMERINTAHAN
KONSEP DASAR ADVOKASI GIZI KEBIJAKAN PEMERINTAHANKONSEP DASAR ADVOKASI GIZI KEBIJAKAN PEMERINTAHAN
KONSEP DASAR ADVOKASI GIZI KEBIJAKAN PEMERINTAHANDevonneDillaElFachri
 
Contoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningContoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningSamFChaerul
 
Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfAuliaAulia63
 
Perlindungan Anak Dalam Hukum Perdata (2).pdf
Perlindungan Anak Dalam Hukum Perdata (2).pdfPerlindungan Anak Dalam Hukum Perdata (2).pdf
Perlindungan Anak Dalam Hukum Perdata (2).pdfjeffrisovana999
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxzidanlbs25
 

Recently uploaded (8)

KISI KISI PSAJ IPS KLS IX 2324.docskskkks
KISI KISI PSAJ IPS KLS IX 2324.docskskkksKISI KISI PSAJ IPS KLS IX 2324.docskskkks
KISI KISI PSAJ IPS KLS IX 2324.docskskkks
 
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
 
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
 
KONSEP DASAR ADVOKASI GIZI KEBIJAKAN PEMERINTAHAN
KONSEP DASAR ADVOKASI GIZI KEBIJAKAN PEMERINTAHANKONSEP DASAR ADVOKASI GIZI KEBIJAKAN PEMERINTAHAN
KONSEP DASAR ADVOKASI GIZI KEBIJAKAN PEMERINTAHAN
 
Contoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningContoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data mining
 
Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdf
 
Perlindungan Anak Dalam Hukum Perdata (2).pdf
Perlindungan Anak Dalam Hukum Perdata (2).pdfPerlindungan Anak Dalam Hukum Perdata (2).pdf
Perlindungan Anak Dalam Hukum Perdata (2).pdf
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
 

modul algoritma Bab 7 record

  • 1. BAB VII RECORD Record (rekaman) tersusun atas beberapa medan (field). Setiap field mempunyai tipe sendiri, baik tipe dasar yang sudah ada atau tipe bentukan. Setiap record merupakan satu kesatuan yang mempunyai pengertian yang utuh. A. Mendefinisikan Record Selain merupakan satu pengertian yang utuh, record dapat pula merepresentasikan sebuah table. Algoritmik Pascal C Type titik=record< x,y:integer > type titik=record x,y:integer, end; Typedef struct int x,y; } titik; Untuk table, nama field record di ambil dari kepala kabel. Misalnya diberikan table seperti berikut ini: No. NIM Nama Alamat Tanggal lahir Defenisi record yang sesuai adalah: Algoritmik Pascal C type tanggal=record < dd : integer mm : integer yy : integer > type tanggal=record dd : integer; mm : integer; yy : integer: end; typedef struct { int dd, mm, yy; } tanggal; type data=record< no : byte NIM : string[8] Nama : string[30] Alamat : string[30] Tgl_Lahir : tanggal > type data=record no : byte; NIM : string[8]; Nama : string[30]; Alamat : string[30]; Tgl_Lahir : tanggal; end; typedef struct { int no; char NIM[8]; char Nama[30]; char Alamat[30]; tanggal Tgl_Lahir, } data;
  • 2. B. Cara Mengakses Elemen Record Cara mengakses elemen record adalah dengan menggunakan operator titik (.). aturannya nama variabel bertipe record di ikuti tanda titik kemudian baru field yang dikehendaki. Misalnya akan diinisialisasikan titik A sebagai titik asal (0,0) : Algoritma Pascal C Deklarasi A : titik var A : titik; Struct titik A; Deskripsi A.x ← 0 A.x ← 0 A.x:=0; A.y:=0; A.x=0; A.y=0; Contoh 7.1. Buatlah algoritma untuk menentukan jarak dari 2 titik, a(x1, y2) dan (x2, y2). Analisis: Posisi titik A(x1, y1) dan B(x2, y2) secara umum dapat digambarkan sebagai berikut : r B(x2, y2) A((𝑥1 − 𝑦1) (y2-y1) (𝑥2 − 𝑥1) Dengan rumus Phytagoras, maka diperoleh rumus jarak dua titik adalah : 𝑟 = √ (𝑥2 − 𝑥1)2 + (𝑦2 – 𝑦1)2 Algoritma 7.1. Algoritma menentukan jarak 2 titik {diketahui koordinat A(x1, y1) dan B(x2, y2), dicari jarak r dari A ke B } Deklarasi type titik = record< x,y : integer; > A,B : titik jarak : real Deskripsi read(A.x, A.y) read(B.x, B.y) jarak ← sqrt((sqr(A.x-B.x)+(sqr(A.y-B.y)))) write(jarak)
  • 3. Translasi 7.1. Bahasa Pascal Bahasa C program Panjang_Garis; uses wincrt; type titik=record x, y : integer; end; var A,B : titik; jarak: real; begin writeln (‘Masukkan koordinat titik A’); write (Nilai absis x1 :’); readln(A.x); write (Nilai ordinat y1 : ‘); readln(A.y); writeln (‘Masukan koordinat titik B’); write (Nilai absis x2 : ‘); readln(B.x); write (Nilai ordinat y2 : ‘) readln(B.y); jarak := sqrt((sqr(A.x-B.x)+(sqr(A.y- B.y)))); write (Panjang Garis AB = ‘jarak:4:2); end. #include <stdio.h> #include <math.h> typedef struct { int x, y; } titik; main() { titik A,B; float jarak; printf(“Masukkan koordinat titik An”); printf(“Nilai absis x1 :”); scanf(“%d”,&A.x); printf(“Nilai ordinat y1 :”); scanf(“%d”,&A.y); printf(“Masukkan koordinat titik Bn); printf(Nilai absis x2 :”); scanf(“%d”,&B.x); printf(Nilai ordinat y2 :”); scanf(“%d”,&B.y); jarak = sqrt((pow((A.x – B.x),2) + (pow((A.y – B.y),2)))); printf(“Panjang Garis AB = %4.2f” jarak); return 0; } Contoh 7.2. Buatlah algoritma untuk menjumlah 2 bilangan kompleks. Analisis : Bilangan kompleks tersusun atas bagian realmdan bagian imajiner berbentuk a + b bi, di mana i = √−1 . Misalnya bilangan pertama adalah bil1 = a1 + b1.i Dan bil2 = a2 + b2.i maka hasil jumlah bil1 dan bilangan 2 adalah : bil1 + bil2=(a1+a2) + (b1+b2)i Algoritma 7.2. procedure jumlah_bilangan_kompleks(input x, y : kompleks ; output jumlah : kompleks) Deklarasi type kompleks =record < ,a, b : real > Deskripsi jumlah.a ← x.a + y.a jumlah.b ← x.b + y.b
  • 4. Translasi 7.2. Bahasa pascal Bahasa C program Penjumlahan_Bilangan_Kompleks; user wincrt; type kompleks = record a, b : real; end, var bil1, bil2 : kompleks; total : kompleks; proceure jumlah_bilangan_kompleks (x,y: kompleks ;var jumlah : kompleks); begin jumlah.a := x.a + y.a; jumlah.b := x.b + y.b; end; begin writeln (‘Bilangan kompleks bil1‘); write (‘Nilai bagian real bil1 : ‘_; readln(bil1.a); write (‘Nilai bagian imajiner bil1 : ‘); readln(bil1.b); writeln (‘Bilangan kompleks bil2’); write (‘Nilai bagian real bil2 : ‘); readln(bil2.a); write (‘Nilai bagian imajiner bil2 : ‘); readln(bil2.b); jumlah_bilangan_kompleks(bil1, bil2, total); if (total.b < 0) then write (‘Hasil =’,total.a:4:2,’ i’) else write (‘Hasil=’,total.a:4:2,’+’,total.b:4:2,’I’); end. #include <stdio.h> typedef struct { float a, b; } kompleks; void jumlah_bilangan_kompleks (kompleks x,kompleks y,kompleks *jumlah) { jumlah- >a = x.a + y.a; Jumlah- > = x.b + y.b; } main() { kompleks bil1, bil2; kompleks total; printf(“Bilangan kompleks bil1n”); printf(“Nilai bagian real bil1 :”); scanf(“%f”,&bil1.a); printf(“Nilai bagian imajiner bil1 : “); scanf(“%f”,&bil1.a); printf(“Bilangan kompleks bil2n”); printf(“Nilai bagian real bil2 : “); scanf(“f”,&bil2.a); printf(“Nilai bagian imajiner bil2 : “); scanf(“%f”,&bil2.b); jumlah_bilangan_kompleks(bil1,bil2,&total); if ((total.b < 0)) printf(“Hasil = %4.2f%4.2f i”,total.a,total.b); else printf(“Hasil= %4.2 + %4.2f i”,total.a,total.b); return 0; } Catatan : Untuk passing parameter dalam bahasa C yang menggunakan call by refference (yaitu menggunakan pointer *), cara mengakses fieldnya tidak menggunakan operator titik (.) tetapi menggunakan operator panah (->).
  • 5. Contoh 7.3. Buatlah daftar nilai mahasiswa didasarkan pada table berikut ini. No. NIM Nama Ujian Nilai Mid Akhir Akhir Huruf 1. 990510001 Khoirul anam 80 95 90 A 2. 990510002 Siti julaiha 45 30 35 D 3. 990510003 Nur rohmah 50 50 50 C 4. 990510004 Agus Muhammad 90 60 70 B 5. 990510005 Nur Iskandar 40 10 20 E Dengan ketentuan : 1. Nilai akhir diperoleh dari rumus (Ujian Mid + 2xUjian Akhir)3. 2. Nilai huruf di peroleh dengan : Range Nilai Nilai Huruf 0..20 E 21..40 D 41..60 C 61..80 B 81..100 A Analisis : Masalah di atas perlu dipecah menjadi beberapa subprogram untuk mempermudah penyelesaian. Tahapannya adalah sebagai berikut : 1. Dibuat struktur data yang sesuai dengan tabel tersebut. 2. Dibuat procedure masuk_data, di mana di dalamnya terdapat rumus untuk mengisi field nilai akhir dan pemanggilan fungsi konversi ke nilai huruf. 3. Dibuat frocedure cetak_data. 4. Dibuat fungsi untuk memperoleh nilai huruf. Algoritma 7.3.a function konversi_ke_huruf(input angka : real) : char Deskripsi if (angka<=20) then konversi_ke_huruf ← ‘E’ else if ((angka>20)and (angka <= 40)) then konversi_ke_huruf ← ‘D’ else if ((angka>40) and (angka <=60)) then konversi_ke_huruf ← ‘C’ else if ((angka>60) and (angka <=80)) then konversi_ke_huruf ← ‘B’ else konversi_ke_huruf ← ‘A’ endif
  • 6. Algoritma 7.3.b. procedure masuk_data(output mhs : mhs : array [1..20] of data; input n : integer) Deklarasi type data = record < no : byte NIM : string[8] Nama : string[30] Alamat : string[30] Tgl_Lahir : tanggal > i : integer Deskripsi for ← 1 to n do with mhs[i] do read(no) read(nim) read(nama) read(ujian_mid) read(ujian_akhir) nilai_akhir ← (ujian_mid + ujian_akhir*2)3 nilai_huruf ← konversi_ke_huruf(nilai-akhir) endwith endfor Translasi 7.3. Bahasa Pascal program data_mahasiswa; uses wincrt; type data = record no : byte; NIM : string[8] Nama: string[20] ujian_mid, ujian_akhir : integer nilai_akhir : real; nilai_huruf : char; end; mahasiswa = array [1..20] of data; var data_mhs : mahasiswa; n : integer, function konversi_ke_huruf(angka : real) : char ; begin if(angka<=20) then konversi_ke_huruf : = ‘E’ else if ((angka>20) and (angka <= 40)) then konversi_ke_huruf := ‘D’ else if ((angka>40) and (angka <= 60)) then konversi_ke_huruf :=’C’ else if ((angka>60) and (angka <=80)) then konversi_ke_huruf :=’B’ else konversi_ke_huruf := ‘A’; end; procedure masuk_data(var mhs : mahasiswa; n ; integer); var i : integer;
  • 7. begin for i: to n do with mhs[i] do begin write(‘No : ‘); readln(no); wrire(‘Nim : ‘); readln(nim); write(‘Nama : ‘); readln(nama); write(‘Nama ujian mid : ‘); readln(ujian_mid); write(‘Nilai ujian akhir : ‘); readln(ujian_akhir); nilai_akhir := (ujian_mid + ujian_akhir*2)3; nilai_huruf := konversi_ke_huruf(nilai_akhir); end; end; procedure cetak_data(mhs ; mahasisiwa; n : integer); var i : integer; begin for i:=1 to ndo withmhs[i] do begin writeln(‘No :’, no); writeln(‘Nim :’, nim); writeln(‘Nama :’, nama); writeln(‘Nilai ujian mid :’, ujian_mid); writeln(‘Nilai ujian akhir :’, ujian_akhir); writeln(Nilai Akhir :’, nilai_akhir:4:2); writeln(‘Nilai Huruf :’, nilai_huruf); writeln(‘Tekan sepasi untuk melanjutkan … ‘); writeln; repeat until keypressed; end; end; begin write(‘Banyak data mahasisiwa : ‘); readln(n); masuk_data(data-mhs, n); cetak_data(data_mhs, n); end. Bahasa C #include <stdio.h> typedef struct { int no; char nim[8]; char nama[20]; int ujian_mid, ujian_akhir; float nilai_akhir; char nilai_huruf; } data; typedef data mahasiswa[20];
  • 8. char konversi_ke_huruf(float angka) { if ((angka <= 20)) return ‘E’; else if (((angka > 20) && (angka <= 40))) return ‘D’; else if (((angka > 40) && (angka <= 60))) return ‘C’; else if (((angka > 60) && (angka <= 80))) return ‘B’; else return ‘A’; } void masuk_data(mahasiswa *mhs, int n) { int i; for (i =0; i < n; i + +) { printf(“No : “); scanf(“%d”,&mhs[i]->no); printf(“Nim : “);scanf(“%s”,mhs[i]->nim); printf(“Nama : “);scanf(“%s”,mhs[i]->nama); printf(“Nilai ujian mid : “);scan(“%d”,mhs[i]->ujian_mid); printf(“Nilai ujian akhir : “);scan(“%d”,mhs[i]->ujian_akhir); mhs[i]->nilai_akhir = (mhs[i]->ujian_mi + mhs[i]->ujian_akhir *2) 3.0; mhs[i]->nilai_huruf = konversi_ke_huruf(mhs[i]->nilai_akhir); void cetak_data(mahasiswa mhs, int n) { int i; for (i = 0; < n; i + +) { printf(“No : %dn”,mhs[i].no); printf(“Nim : %sn”,mhs[i].nim); printf(“Nama : %sn”,mhs[i].nama); printf(“Nilai ujian mid : %dn”,mhs[i].ujian_mid); printf(“Nilai ujian akhir : %dn”,mhs[i].ujian_akhir); Printf(“Nilai Akhir : %4.2fn”,mhs[i].nilai_akhir); Printf(“Nilai Huruf :%cn”,mhs[i].nilai_huruf); Printf(“n’); } } main() { mahasiswa data_mhs; Int n; printf(“Banyak data mahasiswa : “); scanf(“%d”,&n); masuk_data(&data_mhs, n); cetak_data(data_mhs, n); return 0; }
  • 9. Contoh 7.4. Buatlah algoritma untuk menghitung selisih dua waktu yang masing-masing berformat jam:menit:detik. Analisis : Diasumsikan bahwa waktu yang terakhir lebih besar dari waktu awal. Langkah : 1. Dibaca waktu awal dan waktu akhir 2. Konverensikan masing-masing waktu tersebut ke detik 3. Hitung selisih dari langkah 2 4. Konverensikan langkah 3 ke format jam:menit:detik Algoritma 7.4.a procedure konversi_ke_waktu(input det : integer,output d : waktu) Deklarasi type waktu = record jam,menit,detik : integer; end; jam2 : integer; Deskripsi with d do jam <- det div (60*60) { mendapatkan jam } jam2 det mod (60*60) menit <- jam2 div 60 { mendapatkan menit } detik <- jam2 mod 60 { mendapatkan detik } endwith Algoritma 7.4.b. function konversi_ke_detik(input d : waktu) : integer Dekripsi with d do konversi_ke_detik ← jam*60*60 + menit*60 + detik endwith Algoritma 7.4.c procedure selisih_waktu(input a, b : waktu; output selisih : waktu) Deklarasi temp1, temp2, beda : integer; Deskripsi temp1 ← konversi_ke_detik(a) temp2 ← konversi_ke-detik(b) beda ← temp2 - temp1 Konversi_ke_waktu(beda,selisih)
  • 10. Translasi 7.4. Bahasa Pascal Bahasa C program selisih_dua_waktu; uses wincrt; type waktu = record jam, menit, detik : integer; end; var waktu1, waktu2 : waktu; Beda_waktu : waktu; #include <stdio.h> typedef struct { int jam, menit, detik; } waktu; void konversi_ke-waktu(int det, waktu *d) { int jam2; Contoh 7.5. Buatlah algoritma untuk mengkonversikan koordinat polar menjadi koordinat cartesius. Analisis : Konversi dari koordinat polar menjadi koordinat cartesius menggunakan rumus : X = r*cos ( 𝜃) Y = r*sin( 𝜃 ) Algoritma 7.5. procedure konversi_ke_kartesius(input a : polar; output b : kartesius) Deklarasi type kartesius = record , x, y : real > polar = record < r, teta : real > Deskripsi with a do b.x <- r*cos(teta) b.y <_ r*sin(teta) endwith Translasi 7.5. Bahasa Pascal Bahasa C program konversi_koordinat; uses wincr; type kartesius = recor x, y : real; end; polar = record r, teta : real; end; var asal : polar; tujuan : kartesius; derajat: real; procedure konversi_ke_kartesius(a : polar; var b : kartesius); begin #include <stdio.h> #include <math.h> typedef struct { float x, y; } kartesius; typedef struct { float r, teta; } polar; #define pi 3.14 void konversi_ke_kartesius(polar a, kartesius *b) { b- >x = a.r *cos(a.teta);
  • 11. with a do begin b.x := r*cos(teta); b.y := r*sin(teta); end; end; b- >y = a.r*sin(a.teta); } main() { polar asal; kartesius tujuan; float derajat; begin with asal do begin write(‘nilai r : ‘); readln(r); write(‘sudut : ‘); readln9derajat); teta : = derajat*180pi; end; konversi_ke_kartesius(asal, tujuan); with tujuan do begin writeln(‘absis = ‘, x:4:2); write(‘ordinat = ‘, y:4:2); end; end. printf(“nilai r : “); scanf(“%f”,&asal.r); printf(“sudut : “); scanf(“%f”,&derajat); asal.teta = derajat * 180 pi ; konversi_ke_kartesius(asal,&tujuan); printf(“absis = %4.2fn”,tujuan.x); printf(‘ordinat = %4.2f”,tujuan.y); return 0; }