Afdal, 2021
Tipe Data Sederhana
1) Integer
2) Real
3) Char
4) Boolean
Afdal, 2021
Masalah Tipe Data Sederhana?
Tipe data seperti ini hanya dapat memiliki satu nilai pada
satu saat.
Afdal, 2021
Ada kalanya diperlukan menggunakan banyak data sejenis
pada saat yang sama seperti dalam
pengolahan daftar nilai,
menghitung posisi pusat massa
distribusi temperatur pada permukaan laut, atau
distribusi tekanan pada suatu struktur.
menghitung gaya dan medan listrik total oleh distribusi
muatan titik.
Afdal, 2021
Ada kalanya diperlukan
menampilkan data tertentu saja (misalnya nilai
maksimum, nilai minimum)
menginput dan menampilkan data tidak berurutan
Afdal, 2021
Program hitung nilai rata-rata dengan tipe data sederhana:
Program DaftarNilai; No. Nama Nilai
Uses crt; 1 PUTRI 80
Var
2 ALKHAIRUNAS 75
Nilai, Rata, Jum : real;
i, N : integer; 3 NOVIA ULFA 85
Nama : string; 4 SRI NOFRIYANTI 60
Begin 5 HAMIDAH 90
Write('Jumlah Mahasiswa:'); Readln(N); Rata-Rata 78
Jum := 0;
For i := 1 to N do
begin Setelah seluruh data diinput, apa
Write( 'Nama -',i,'= '); Readln(nama); perintah untuk menampilkan dan
Write( 'Nilai -',i,'= '); Readln(nilai); dimana:
Jum := Jum + Nilai; • nilai ke-3?
end;
• menampilkan data dalam
rata := jum/N;
bentuk tabel ?
writeln(‘Nilai rata-rata =', rata :10:3); • membalik urutan data?
writeln(Nilai:5:2);
End.
Afdal, 2021
Masalah Tipe Data Sederhana?
var
n1, n2, n3, n4, n5: real;
total, average : real;
N : integer;
Begin
N := 5;
write(‘masukkan nilai mhs-1: ');
readln(n1);
Afdal, 2021
write(‘masukkan nilai mhs-2:'); readln(n2);
write(‘masukkan nilai mhs-3:'); readln(n3);
write('masukkan nilai mhs-4:'); readln(n4);
write('masukkan nilai mhs-5:'); readln(n5);
total := n1 + n2 + n3 + n4 + n5;
average := total /N;
writeln(‘Nilai rata-rata = ', average:6:2);
Afdal, 2021
Itulah beberapa masalah atau kelemahan membuat
program dengan tipe data sederhana.
Afdal, 2021
Tipe Data Terstruktur (Komposit)
1) Homogen
– Arrays
2) Heterogen
– Records
Afdal, 2021
Array 1 Dimensi
Anggota array
Indeks 1 2 3 ….
ARRAY
Afdal, 2021
Deklarasi Array
Array selalu memuat komponen penting, yaitu :
(a). nama array,
(b). indeks (yang bertipe ordinal), dan
(c). tipe data (sederhana) yang digunakan oleh array.
Var
Nama_array: array[n1..n2] of tipe_data;
Indeks 1 2 3 …. 7
(Nomor Urut)
Array Nilai
Afdal, 2021
Buat flowchart dan program untuk mengolah data nilai berikut.
Komponen Nilai (%)
No. No. BP Nama Prak UTS UAS Tugas NA NH
25 25 30 20
1 0910443077 PUTRI 65,0 37 32 78,5
2 1010443003 ALKHAIRUNAS 84,1 46 39 75,8
3 1010445001 NOVIA ULFA 84,7 71 54 75,0
4 1110441001 SRI NOFRIYANTI 80,4 47 58 76,5
5 1110441003 HAMIDAH 84,3 60 64 84,0
6 1110441005 RAHAYU FITRI 83,9 47 52 86,3
7 1110441009 DORA ANDRIS 88,4 77 74 75,0
8 1110441011 ARVA YOGI 75,3 38 21 70,0
9 1110441013 FARA DIBA 82,9 46 46 78,3
10 1110442001 DEVI YUNITA 59,5 27 24 78,8
Rata-Rata
Var
BP : array[1..10] of string;
Type
Nilai = Array [1..10] of Real;
Var
BP : array[1..10] of string;
Prak, UTS, UAS, Tugas : Nilai;
Afdal, 2021
Mengisi (Menginput) Data Array
Mengisi data Array dari dalam program
Prak[1] := 65.0;
{mengisi nilai praktikum mhs ke-1}
UTS[4] := 47;
{mengisi nilai UTS mhs ke-4}
Afdal, 2021
Mengisi Seluruh Data Array
For i:= 1 to N Do
Begin
Write(‘BP-’,i,’:‘); Readln(BP[i]);
Write(‘Nama-’,i,‘:‘); Readln(Nama[i]);
End;
Afdal, 2021
Operasi Data Array
For i := 1 to N do
Begin
NA[i] := 0.2*Prak[i] + 0.3*UTS[i] + 0.3*UAS[i] + 0.2*Tugas[i];
End;
Afdal, 2021
Operasi Data Array
Afdal, 2021
Memanggil atau Menampilkan Data Array
For i := 1 to N do
Begin
Writeln (UTS[i]):3:1;
End;
For i := 1 to N do
Begin
Writeln (Nama[i], BP[i], PRAK[i]:3:1) ;
End;
Afdal, 2021
Flowchart Data Array
Bentuk flowchart data array pada dasarnya sama saja dengan
flowchart secara umum, hanya untuk variabel yang bertipe array
ditambahkan indeks.
P[i] := Xp - X[i];
D[i] := Abs(P[i]);
Y[i] := D[i] * SQR(D[i] );
E[i] := k * Q[i] * P[i] /
Y[i];
Afdal, 2021
Contoh :
Buat flowchart dan program untuk menghitung nilai rata-rata dari N
buah data menggunakan tipe data array.
Afdal, 2021
Flowchart menghitung nilai rata-rata
Mulai
Jumlah := 0
For i := 1 to N
R:= Jumlah/N
Tampilkan Rata2, R
selesai
Afdal, 2021
Mulai
R := Jumlah/N
Tampilkan Rata2, R
selesai
Afdal, 2021
Program:
Program Rata_rata;
uses Crt;
var i, N : byte;
Jumlah, Rata : real;
X : array[1..100] of real;
Begin
Clrscr;
Write(‘banyaknya data (maksimum 100) ?’); Readln(N);
For i := 1 to N do
Begin
Write(‘Data ke- ‘, i, ‘ = ‘); readln(X[i]);
End;
Jumlah := 0;
For i := 1 to N do
Begin
Jumlah := Jumlah + X[i];
End;
Rata := Jumlah/N;
writeln(‘No Nilai‘);
For i := 1 to N do
Begin
writeln(i, x[i]:3:1);
End;
Writeln(‘Rata-rata = ‘, Rata:6:2);
end.
Afdal, 2021
Terdapat N buah muatan listrik yang berada pada sumbu-x. Buatlah
flowchart dan program menggunakan data array untuk menentukan:
• besar dan arah medan listrik di titik P oleh masing-masing muatan
• besar dan arah medan listrik total oleh seluruh muatan.
Medan listrik oleh satu muatan (Ei) dan medan listrik total (Et)
dinayakan oleh persamaan:
qi x p xi N qi x p xi
Ei k 3 Et k 3
x p xi i 1 x p xi
Dimana qi adalah besar muatan listrik ke-i, xi adalah posisi muatan
ke-i, dan k adalah tetapan Coulomb, xp adalah posisi titik tempat
medan dihitung.
Masukan program: jumlah muatan (N), besar dan posisi setiap
muatan, posisi titik tempat medan dihitung.
Keluaran program:
• Besar muatan, posisi muatan, besar medan listrik, dan arah medan
listrik oleh setiap muatan (dalam tabel).
• Besar dan arah medan listrik total oleh seluruh muatan. Afdal, 2021
Program Guess ;
Uses crt;
Const
k = 9E9;
Type
dat = array [1..100] of real;
Var
D, E, X, Q, Y, P : dat;
i, N : integer;
Xp, Et : real;
arah : string;
ket : array [1..100] of string;
Begin
clrscr;
Writeln(‘Jumlah muatan :’); Readln(N);
Writeln(‘Posisi medan dievaluasi:’); Readln(Xp);
For i := 1 to N do
Begin
Writeln(‘besar medan ke-’,i,’:’); Readln(Q[i]);
Writeln(‘posisi medan ke-’,i,’:’); Readln(X[i]);
End;
Writeln (' No Muatan Posisi Medan Arah');
Afdal, 2021
Et:= 0;
For i := 1 to N do
Begin
P[i] := Xp - X[i];
D[i] := Abs(P[i]);
Y[i] := D[i] * SQR(D[i] );
E[i] := k * Q[i] * P[i] / Y[i];
if E[i] > 0 then ket[i]:= 'medan postif'
else if E[i] < 0 then ket[i] := 'medan negatif'
else ket[i] := 'Tidak ada medan' ;
Et := Et + E[i];
End;
For i := 1 to N do
Begin
Writeln (i:3, Q[i]:8:1, R[i]:8:1, E[i]:17:1, ket[i]: 15);
End;
if Et > 0 then arah:= 'ke kanan'
else if Et < 0 then arah := 'ke kiri'
else Et := 'tidak ada medan' ;
Writeln (' -----------------------------------------');
Writeln(' Total Field = ' , Et :10:1);
Writeln(' Arah Total Medan = ' , arah:5);
End.
Afdal, 2021
Array Dimensi Ganda
Dalam beberapa kasus, terdapat variabel yang harus dikenali dengan
dua indeks sekaligus, yaitu indeks baris dan indeks kolom, seperti
distribusi nilai besaran pada grid dua dimensi, ataupun daftar nilai
dalam sebuah tabel. Matriks
baris
kolom
Afdal, 2021
Deklarasi Array Dimensi Ganda
Bentuk Umum:
Type
Nama_Array = array [indeks1] of Array [indeks2] of type;
Var
Var_Array : Nama_Array;
Type
vek = array [ 1..10, 1..3 ] of real;
Contoh:
Var
T: vek;
Afdal, 2021
Deklarasi Array Dimensi Ganda
Atau:
Bentuk Umum:
Var
Nama_Array : [indeks1, indeks1] of type;
Contoh:
Var
T : Array [1..10, 1..3 ] of Real ;
Indeks Indeks
Pertama kedua
i j
Afdal, 2021
Mengoperasikan Array Dimensi Ganda
Mengisi Array Dimensi Ganda
T[2,3] := 7000 ;
Readln(T[2,3]);
{mengisi elemen array Temperatur pada baris ke-2 dan kolom
ke-3 dengan nilai 7000}
Array T 7000
Writeln(T[2,3]);
Afdal, 2021
Memanggil dan Menugaskan Array Dimensi Ganda
A:= T[2,3];
Afdal, 2021
Flowchart input matriks A berdimensi mxn
For i 1 to M
For j 1 to N
Input: A[i,j]
Afdal, 2021
Contoh program :
{Program menginput dan menampilkan matriks A}
uses crt;
var i, j ,m,n : byte;
A : array[1..255, 1..255] of real;
Begin
Clrscr;
Write(‘MATRIKS’);
Write(‘Banyaknya baris matriks ? ‘);readln(m);
Write(‘banyaknya kolom matriks ? ‘);readln(n);
{proses memasukkan data matriks A}
writeln(‘Data-data matriks A’);
for i := 1 to M do
begin
for j := 1 to n do
begin
write(‘A(‘ ,i, ’ , ’ ,j, ‘) ?‘); readln(A[i,j]);
end;
writeln;
end;
Afdal, 2021
{proses menampilkan matriks A}
writeln(‘matriks A = ’);
writeln;
for i := 1 to M do
begin
for j := 1 to n do
begin
write(A[i,j]);
end;
writeln;
end;
readln;
end.
Afdal, 2021
Penjumlahan Matriks
Ci , j Ai , j Bi , j
for i := 1 to M do
begin
for j := 1 to n do
begin
C[i,j]:= A[i,j]+ B[i,j];
end;
end;
Afdal, 2021
Perkalian Matriks
Buatlah flowchart dan program untuk menentukan hasil perkalian
anatara dua buah matriks.
Afdal, 2021
Perkalian Matriks
Afdal, 2021
Mengurutkan Data (Data Sorting)
(1) input N
(2) for i := 1 to N,
input X[i]
(3) for i := 1 to N-1
for j := 1 to N-1
if X[j] > X[j+1]
Tukar X[j] dengan X[j+1])
(4) for i := 1 to N, output X[i]
Jika data ingin diurutkan dari besar ke kecil, langkah (3) diganti :
If X[j] < X[j + 1]
Afdal, 2021