Home / Programming
Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts
Record & Pointer Dalam Pascal
Programming
Kembali bersama kami dengan pembagi ilmu untuk kamu yang ingin belajar di dunia IT. Disini kami akan memberikan penjelasan tentang Program lagi nih, yaitu RECORD & POINTER. Mari baca penjelasan dari kami yaaa
a. Record
Record adalah jenis tipe data terstruktur yang berisi beberapa data, yang masing-masing dapat berlainan tipe. Suatu tipe Record dideklarasikan dengan bentuk sebagai berikut :
Type Identifier = Record
Nama_field1 : tipe1;
Nama_field2 : tipe2;
Nama_field3 : tipe3;
...
Nama_fieldn : tipe4;
end;
Masing-masing data field dapat berupa satu atau beberapa nama pengenal dan masing-masing dinamakan field.
Contoh Penggunaan Record dalam Pascal :
uses crt;
type recbio = record
nama : string[25];
alamat : string[35];
nohp : string[12];
end;
var
bio1,bio2 : recbio;
begin
clrscr;
with bio1 do
begin
nama :='Namaku';
alamat :='Alamatku';
nohp:='No Hpku';
end;
bio2:=bio1;
with bio2 do
begin
writeln('Nama :',nama);
writeln('Alamat :',alamat);
writeln('No Hp :',nohp);
end;
readkey;
end.
type recbio = record
nama : string[25];
alamat : string[35];
nohp : string[12];
end;
var
bio1,bio2 : recbio;
begin
clrscr;
with bio1 do
begin
nama :='Namaku';
alamat :='Alamatku';
nohp:='No Hpku';
end;
bio2:=bio1;
with bio2 do
begin
writeln('Nama :',nama);
writeln('Alamat :',alamat);
writeln('No Hp :',nohp);
end;
readkey;
end.
program recordn;
uses crt;
type biodata = record
nama : string[25];
nim : string[10];
umur : integer;
end;
var
data : array[1..10] of biodata;
n,i : integer;
begin
clrscr;
write('Masukkan Banyak Data :');
readln(n);
clrscr;
for i:= 1 to n do
begin
writeln('Masukkan Data ke ',i);
with data[i] do
begin
write('Masukkan Nama Anda :');
readln(nama);
write('Masukkan NIM Anda :');
readln(nim);
write('Masukkan Umur Anda :');
readln(umur);
end;
end;
clrscr;
for i:= 1 to n do
begin
writeln('Data ke ',i);
with data[i] do
begin
writeln('Nama Anda :',nama);
writeln('NIM Anda :',NIM);
writeln('Umur Anda :',umur);
end;
writeln;
end;
readkey;
end.
uses crt;
type biodata = record
nama : string[25];
nim : string[10];
umur : integer;
end;
var
data : array[1..10] of biodata;
n,i : integer;
begin
clrscr;
write('Masukkan Banyak Data :');
readln(n);
clrscr;
for i:= 1 to n do
begin
writeln('Masukkan Data ke ',i);
with data[i] do
begin
write('Masukkan Nama Anda :');
readln(nama);
write('Masukkan NIM Anda :');
readln(nim);
write('Masukkan Umur Anda :');
readln(umur);
end;
end;
clrscr;
for i:= 1 to n do
begin
writeln('Data ke ',i);
with data[i] do
begin
writeln('Nama Anda :',nama);
writeln('NIM Anda :',NIM);
writeln('Umur Anda :',umur);
end;
writeln;
end;
readkey;
end.
b. Record Dalam Record (Nested Record)
Record di dalam record adalah record yang mempunyai tipe record lain.
Contoh Penulisan :
program recordinrecord;
uses crt;
type alamat = record
jalan : string;
no : integer;
kota : string[25];
end;
identitas = record
nama : string[25];
nim : string[10];
alamatku : alamat;
end;
var
data : identitas;
begin
clrscr;
with data do
begin
write('Masukkan Nama Anda :');
readln(nama);
write('Masukkan NIM Anda :');
readln(nim);
writeln('Masukkan Alamat Anda:');
with alamatku do
begin
write(' Jalan :');
readln(jalan);
write(' Nomor :');
readln(no);
write(' Kota :');
readln(kota);
end;
end;
clrscr;
writeln('Data Yang Anda Masukkan');
with data do
begin
writeln('Nama :',nama);
writeln('NIM :',nim);
writeln('Alamat :');
with alamatku do
begin
writeln(' Jalan :',jalan);
writeln(' No :',no);
writeln(' Kota ;',kota);
end;
end;
readkey;
end.
uses crt;
type alamat = record
jalan : string;
no : integer;
kota : string[25];
end;
identitas = record
nama : string[25];
nim : string[10];
alamatku : alamat;
end;
var
data : identitas;
begin
clrscr;
with data do
begin
write('Masukkan Nama Anda :');
readln(nama);
write('Masukkan NIM Anda :');
readln(nim);
writeln('Masukkan Alamat Anda:');
with alamatku do
begin
write(' Jalan :');
readln(jalan);
write(' Nomor :');
readln(no);
write(' Kota :');
readln(kota);
end;
end;
clrscr;
writeln('Data Yang Anda Masukkan');
with data do
begin
writeln('Nama :',nama);
writeln('NIM :',nim);
writeln('Alamat :');
with alamatku do
begin
writeln(' Jalan :',jalan);
writeln(' No :',no);
writeln(' Kota ;',kota);
end;
end;
readkey;
end.
c. Pointer
Tipe Data Pointer adalah tipe data yang berisi alamat memori dari sebuah variabel. Pointer merupakan jenis perintah yang disediakan oleh bahasa pemrograman untuk melakukan operasi terhadap suatu alamat memori seperti penunjukan alamat, pengaksesan alamat dan sebagainya. Tipe data pointer bersifat dinamis, variabel akan dialokasikan hanya pada saat dibutuhkan dan sesudah tidak dibutuhkan lagi dapat dialokasikan kembali.Pendeklarasian variabel pointer tidak berbeda jauh dengan pendeklarasian variabel biasa, hanya perlu menambahkan simbol "^" sebelum tipe datanya.
Bentuk umum deklarasi pointer :
Nama_var : ^tipe_data;
Contoh Penulisan Pointer :
program tipe_pointer;
uses crt;
var
kata : string;
ptr : ^string;
begin
clrscr;
kata:='Mimi';
writeln('Variabel Kata Berisi :',kata);
ptr:=@kata;
writeln('Variabel ptr merujuk ke nilai :',ptr^);
readkey;
end.
uses crt;
var
kata : string;
ptr : ^string;
begin
clrscr;
kata:='Mimi';
writeln('Variabel Kata Berisi :',kata);
ptr:=@kata;
writeln('Variabel ptr merujuk ke nilai :',ptr^);
readkey;
end.
program tipe_pointer;
uses crt;
var
angka : integer;
pointer_angka : ^integer;
begin
clrscr;
angka:=99;
writeln('Variabel Angka Berisi :',angka);
pointer_angka:=@angka;
writeln('Variabel pointer merujuk ke nilai :',pointer_angka^);
angka:=74;
writeln('Variabel pointer merujuk ke nilai :',pointer_angka^);
readkey;
end.
uses crt;
var
angka : integer;
pointer_angka : ^integer;
begin
clrscr;
angka:=99;
writeln('Variabel Angka Berisi :',angka);
pointer_angka:=@angka;
writeln('Variabel pointer merujuk ke nilai :',pointer_angka^);
angka:=74;
writeln('Variabel pointer merujuk ke nilai :',pointer_angka^);
readkey;
end.
Sekian artikel yang dapat kami sampaikan mengenai Record & Pointer. Semoga bermanfaat untuk kita semua. Sering baca-baca artikel dari kami yaaa...
See you....
Baca Juga : Asah Kemampuanmu Dengan Pascal
Asah Kemampuanmu Dengan Pascal
Programming
Baca Juga :Yuk Belajar Bahasa Pascal
Hallo Sahabat Viyovi , disini saya memberikan beberapa
soal beserta jawaban dalam pascal. Agar kamu lebih mahir dalam pascal .
Alangkah baiknya jika kamu mengerjakan soal tersebut tanpa melihat
kunci jawabannya terlebih dahulu.Selamat mencoba..
1.
Buatlah program untuk menyelesaikan masalah :
a.
Menentukan tahun kabisat !
b.
Mencari akar-akar sebuah persamaan kuadrat !
c.
Mencari nilai terbesar dari 3 buah bilangan yang
diinputkan oleh user !
d.
Menentukan sebuah bilangan yang diinputkan
adalah bilangan ganjil, genap, atau nol !
2.
Buatlah sebuah program menerima inputan berupa
biodata anda kemudian tampilkan hasilnya kelayar monitor , dengan menggunakan
record !
3.
Buatlah program perkalian matriks, dengan jumlah
kolom dan baris ditentukan oleh user untuk matriks- 1 dan matriks- 2. Dan
program dapat menentukan apakah operasi perkalian dapat dilanjutkan atau tidak,
dengan menggunakan array !
4.
Buat program untuk menentukan matriks transpose,
untuk jumlah baris dan kolom di tentukan oleh user, dengan menggunakan array !
5. Buatlah program penjumlahan matriks, dengan
jumlah kolom dan baris ditentukan oleh user untuk matriks 1 dan matriks 2 . Dan
program dapat menentukan apakah kedua matriks tersebut dapat dijalankan atau
tidak.
6. Buatlah program menghitung luas segitiga dengan
menggunakan fungsi!
7. Buat program dari n! Secara rekusi !
8. Buat program menghitung rata – rata dari
sejumlah bilangan yang diinputkan user dengan fungsi !
9. Buatlah sebuah program untuk membuat tampilan
seperti berikut :
10.
Buatlah sebuah program untuk membuat tampilan
sebagai berikut :
Kunci Jawaban :
1.
A.
uses crt;
var
tahun :
longint;
begin
clrscr;
write('Masukkan Tahun :');
readln(tahun);
if (tahun
mod 4=0) then
begin
write(tahun,' Merupakan Tahun Kabisat');
end
else
begin
write(tahun,' Bukan Merupakan Tahun Kabisat');
end;
readkey;
end.
B.
uses crt;
function pk1 (a,b,c : integer) : real;
begin
pk1
:=(-b+(sqrt(sqr(b)-4*a*c)))/2*a;
end;
function pk2 (a,b,c : integer) : real;
begin
pk2
:=(-b-(sqrt(sqr(b)-4*a*c)))/2*a;
end;
var
a,b,c :
integer;
begin
clrscr;
write('Masukkan Nilai A :');
readln(a);
write('Masukkan Nilai B :');
readln(b);
write('Masukkan Nilai C :');
readln(c);
writeln('Hasil 1
:',pk1(a,b,c):0:2);
writeln('Hasil 2
:',pk2(a,b,c):0:2);
readkey;
end.
C.
uses crt;
var
a,b,c :
longint;
begin
clrscr;
write('Masukkan Nilai Pertama :');
readln(a);
write('Masukkan
Nilai Kedua :');
readln(b);
write('Masukkan Nilai Ketiga :');
readln(c);
if
(a>b) and (a>c) and (b>c) then
begin
write('Nilai Terbesar - Terkecil = ',a,' ',b,' ',c);
end
else
if
(a>b) and (a>c) and (b<c) then
begin
write('Nilai Terbesar - Terkecil = ',a,' ',c,' ',b);
end
else
if (a>b) and (a<c) and (b<c) then
begin
write('Nilai Terbesar - Terkecil = ',c,' ',a,' ',b);
end
else
if (a<b) and
(a>c) and (b>c) then
begin
write('Nilai Terbesar
- Terkecil = ',b,' ',a,' ',c);
end
else
if (a<b) and
(a<c) and (b<c) then
begin
write('Nilai
Terbesar - Terkecil = ',c,' ',b,' ',a);
end
else
if
(a<b) and (a<c) and (b>c) then
begin
write('Nilai Terbesar - Terkecil = ',b,' ',c,' ',a);
end;
readkey;
end.
D.
uses crt;
var
n :
integer;
begin
clrscr;
write('Masukkan Nilai :');
readln(n);
if (n =0)
then
begin
write('Nol');
end
else
if
(n mod 2=1) then
begin
write('Bilangan Ganjil');
end
else
if (n mod 2=0) then
begin
write('Bilangan Genap');
end;
readkey;
end.
2.
uses crt;
type
biodata = record
nama
: string;
nim : string;
kom : char;
fakultas
: string;
universitas : string;
end;
var
data : biodata ;
begin
clrscr;
with data do
begin
write('Masukkan Nama Anda :');
readln(nama);
write('Masukkan NIM Anda :');
readln(nim);
write('Masukkan Kom Anda :');
readln(kom);
write('Masukkan Fakultas Anda :');
readln(fakultas);
write('Masukkan Universitas Anda :');
readln(universitas);
end;
clrscr;
with data do
begin
writeln('Nama :',nama);
writeln('NIM :',nim);
writeln('Kom :',kom);
writeln('Fakultas :',fakultas);
writeln('Universitas :',universitas);
end;
readkey;
end.
3. uses
crt;
type
larik = array[1..25,1..25] of integer;
var
matriks1,matriks2,hasil2 : larik;
i,j,k : integer;
bar1,kol1,bar2,kol2 : integer;
begin
clrscr;
write('Baris Matriks 1 :');
read(bar1);
write('Kolom Matriks 1 :');
read(kol1);
writeln;
write('Baris Matriks 2 :');
read(bar2);
write('Kolom Matriks 2 :');
read(kol2);
writeln;
for i:= 1 to bar1 do
begin
for j:= 1 to kol1 do
begin
write('Matriks 1 ',i,',',j,':');
read(matriks1[i,j]);
end;
end;
writeln;
for i:= 1 to bar2 do
begin
for j:= 1 to kol2 do
begin
write('Matriks 2 ',i,',',j,':');
read(matriks2[i,j]);
end;
end;
writeln;
if (kol1=bar2) then
begin
writeln('Dapat Dikalikan');
writeln;
for i:= 1 to bar1 do
begin
for j:= 1 to kol2 do
begin
for k:= 1 to kol1 do
begin
hasil2[i,j]:=hasil2[i,j]+ matriks1[i,k]*matriks2[k,j];
end;
end;
end;
writeln('Hasil Perkalian');
for i:= 1 to bar1 do
begin
for j:= 1 to kol2 do
begin
write(hasil2[i,j],' ');
end;
writeln;
end;
end
else
begin
writeln('Tidak Dapat Dikalikan');
end;
readkey;
end.
4.
uses crt;
type
larik = array[1..10,1..10] of integer;
var
matriks1,matrik2 : larik;
i,j,bar,kol,a,b: integer;
begin
clrscr;
write('Masukkan Jumlah Baris:');
read(bar);
write('Masukkan Jumlah Kolom:');
read(kol);
for i:= 1 to bar do
begin
for j:= 1 to kol do
begin
write('Matriks 1 ',i,',',j,':');
read(matriks1[i,j]);
end;
writeln;
end;
for i:= 1 to kol do
begin
for j:= 1 to bar do
begin
write(matriks1[j,i],' ');
end;
writeln;
end;
readkey;
end.
5.
uses crt;
type
larik = array[1..25,1..25] of integer;
var
matriks1,matriks2,hasil : larik;
i,j : integer;
bar1,kol1,bar2,kol2 : integer;
begin
clrscr;
write('Baris Matriks 1 :');
read(bar1);
write('Kolom Matriks 1 :');
read(kol1);
writeln;
write('Baris Matriks 2 :');
read(bar2);
write('Kolom Matriks 2 :');
read(kol2);
writeln;
for i:= 1 to bar1 do
begin
for j:= 1 to kol1 do
begin
write('Matriks 1 ',i,',',j,':');
read(matriks1[i,j]);
end;
end;
writeln;
for i:= 1 to bar1 do
begin
for j:= 1 to kol2 do
begin
write('Matriks 2 ',i,',',j,':');
read(matriks2[i,j]);
end;
end;
writeln;
if (bar1=bar2) and (kol1=kol2) then
begin
writeln('Dapat Dijumlahkan');
writeln;
for i:= 1 to bar1 do
begin
for j:= 1 to kol1 do
begin
hasil[i,j]:=
matriks1[i,j]+matriks2[i,j];
write(hasil[i,j],' ');
end;
writeln;
end;
end
else
begin
writeln('Tidak Dapat Dijumlahkan');
end;
readkey;
end.
6. uses
crt;
function luas(a,t :real):real;
begin
luas :=a*t/2;
end;
var
a,t : real;
begin
clrscr;
write('Masukkan Nilai Alas :');
readln(a);
write('Masukkan Nilai Tinggi :');
readln(t);
writeln('Hasil Luas Segitiga :',luas(a,t):0:2);
readkey;
end.
7. uses
crt;
var
n, m, hasil : integer;
procedure faktorial(n : integer;
var hasil : integer);
begin
if n=1 then
hasil := 1
else
begin
faktorial(n-1, hasil);
hasil := n*hasil;
end;
end;
begin
clrscr;
write('Berapa faktorial ? ');readln(n);
faktorial(n, m);
writeln(n ,' Faktorial = ', m);
readkey;
end.
8.
uses crt;
function Rata(jumlah,x:
real;i,n:integer):real;
begin
jumlah:=0;
for i:= 1 to n do
begin
write('Nilai x :');
readln(x);
jumlah:=jumlah+x;
end;
Rata:=jumlah/n;
end;
var
jumlah,x,hasil : real;
i,n : integer;
begin
clrscr;
writeln('Menghitung Rata - Rata');
write('Banyak Data :');
readln(n);
hasil:=Rata(jumlah,x,i,n);
write('Rata-Rata:',hasil:0:2);
readkey;
end.
9.
uses crt;
var
i,j,n : integer;
begin
clrscr;
write('Masukkan Bilangan :');
readln(n);
for i:= 1 to n do
begin
for j:= 1 to i do
begin
if (i mod 2 = 0 ) then
write('*')
else
write(i)
end;
writeln;
end;
readkey;
end.
10. uses
crt;
var
i,j,x,n : integer;
begin
clrscr;
write('Masukkan Nilai :');
read(n);
for i:= 1 to n do
begin
x:=0;
for j:= 1 to i do
begin
x:=x+j;
write(j);
if i=j then
write('=',x)
end;
writeln;
end;
readkey;
end.
Inilah
soal beserta kunci jawaban yang telah saya buat. Semoga sahabat viyovi
semakin mahir dalam belajar bahasa pascal . Sekian artikel dari saya .
Semoga bermanfaat untuk kita semua . Dan jangan lupa untuk membaca
artikel dari saya selanjutnya. Thank you ....
Subscribe to:
Posts (Atom)
Anti Copas
Labels
- Game (24)
- My Story (1)
- News (120)
- Programming (30)
- Tips n Trick (76)