Translate to your languages

Selamat Datang . Suatu kehormatan bagi saya atas kunjungan ini. Saya sangat berharap kunjungan berikutnya.
Tampilkan postingan dengan label pascal. Tampilkan semua postingan
Tampilkan postingan dengan label pascal. Tampilkan semua postingan

21 Maret 2011

RECORD (REKAMAN)

RECORD
Pascal menyediakan tipe data terstruktur yang disebut record. Dengan tipe data record, dapat dikumpulkan beberapa item data yang masing-masing mempunyai tipe data berbeda-beda. Masing – masing item data disebut field. Record terdiri dari kumpulan field yang dapat berbeda tipe.
Deklarasi Record :

Tipe record : record
   Daftar field
    ---
    ---
    ---
   End;

Contoh :

Type
    Lgn = record ;
        Kode : integer ;
        Nama : string[35] ;
        Alamat : string[45] ;
        Piutang : real ;
    End ;
Var
    Langganan : Lgn;
Menggunakan Tipe Data Record

Tipe-tipe komponen field dari record dapat dipergunakan dengan cara menuliskan :
Pengenal-record.pengenal-field[.pengenal-field]
Contoh :
Langganan.Nama := ‘ Udin Jabrig ‘ ;

Statemen WithPenulisan pengenal-field seperti contoh diatas dapat ditulis lebih singkat, sehingga penulisannya menjadi :
Nama := ‘ Udin Jabrig ‘ ;
Ini dapat dilakukan dengan menggunakan statemen with yang menyebutkan pengenal-recordnya, sehingga penggunaan field-field selanjutnya sudah tidak perlu menyebutkan pengenal recordnya kembali.

Contoh :

Tipe Data Record Dengan Field Tipe Record
Tipe data record dapat juga mempunyai field berupa tipe data record yang lainnya. Misalkan seperti item-item ini :
1. Nama pegawai
2. Tanggal masuk
    a. hari
    b. bulan
    c. tahun
3. Alamat pegawai
    a. Jalan
    b. Kota

Contoh :
Record Bervariasi
Dapat dibuat suatu record yang mempunyai field yang tidak pasti atau bervariasi (variant record). Dalam variant record, dapat mengandung suatu field yang bervariasi tergantung dari suatu kondisi. Bila didalam suatu variant record terdapat field yang tetap, maka field yang bervariasi letaknya harus setelah field yang tetap.
Contoh :
Penjelasan contoh :
Field yang bervariasi dalam record tergantung dari suatu kondisi Case. Tipe field tag yang dipergunakan adalah suatu tipe data scalar Tipebacaan yang mempunyai2 nilai konstanta, yaitu : Bukuteks dan Majalah. Bila pengenal tipe bernilai Majalah, maka field variant yang akan digunakan adalam nomor. Bila pengenal tipe bernilai Bukuteks, maka field variant yang akan digunakan adalah Pengarang dan Edisi. Jadi field yang digunakan akan bervariasi tergantung dari suatu kondisi.

14 Maret 2011

ARRAY

Larik / array adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama.

1.1 Deklarasi Array
Array yang akan dipergunakan harus di deklarasikan terlebih dahulu. Deklarasi dari Array diawali dengan kata cadangan Array diikuti oleh tipe index yang diletakkan diantara tanda “ [ ] ” diikuti lagi oleh kata cadangan of dan tipe arraynya.
Array dapat bertipe sederhana byte, word, integer, real, boolean, char, string dan tipe scalar atau subrange.
Contoh:
Var
X : array [ 1..100 ] of integer ;
Larik X dideklarasikan sebagai larik tipe integer dengan jumlah elemen maksimum 100 elemen, dimana nilai elemen larik ini harus berisi nilai integer.
Misalkan :
X [1] : = 18 ;
X [2] : = 5 ;
Bila nilai elemen ke-1 dari larik X akan ditampilkan, dapat dipergunakan perintah :
Writeln ( x[1] ) ;

1.2 Deklarasi Tipe Index Subrange Integer
Tipe index subrange integer sebagai berikut :
Var NilaiHuruf : array [1..5] of char ;
Nilai [1..5] inilah yang dimaksud dengan index subrange integer.
Index dari larik diatas dapat dideklarasikan terlebih dahulu di bagian deklarasi tipe :

Type
Jangkauan = 1..5 ; {tipe subrange integer}
Var
NilaiHuruf : array [Jangkauan] of char ;
Begin
…
…
end.

1.3 Deklarasi Tipe Index Subrange Byte
Kalau index dari larik tidak sampai dengan 255, maka index dari larik ini dapat dideklarasikan dengan tipe byte.
Var
X : array [0..255] of real ;
Karen anilai 0 sampai 255 merupakan nilai subrange byte, maka deklarasi ini dapat ditulis :
Var
X : array [byte] of real ;

1.4 Deklarasi Tipe Index Subrange Word
Jika jangkauan index dari 0 sampai 65525, maka index dari larik dapat dideklarasikan dengan tipe word.
Var
X : array [byte] of word ;

1.5 Deklarasi Tipe Index Subrange Boolean
Index larik yang bertipe Boolean, hanya mempunyai maksimum 2 buah elemen saja.
Type
Keterangan = string [11] ;
Var
X : array [Boolean] of keterangan ;

1.6 Deklarasi Tipe Index Subrange Char
Tipe char adalah tipe subrange yang mempunyai nilai sebanyak 256 buah ( 0 – 255 )sesuai dengan urutan kode ASCII.
Var
X : array [char] of integer ;

1.7 Deklarasi Tipe Index Skalar
Index dari larik dapat berupa tipe scalar atau enumerated.
Contoh program:

Var
Jumlah : array [(Jan, Peb, Mar)] of integer ;
Begin
Jumlah[Jan] : = 125 ;
Jumlah{Peb] : = 75 ;
Jumlah[Mar] : = 18 ;
Writeln ( ‘Jumlah untuk bulan maret = ‘, Jumlah{Mar});
End.
Output program :
Jumlah untuk bulan Maret = 18
Contoh diatas dapat ditulis :
Type
Bulan = (Jan, Peb, Mar) ;
Var
Jumlah : array [Bulan] of integer ;

1.8 Deklarasi konstanta Larik
Larik tidak hanya dapat berupa suatu variable yang dideklarasikan di bagian deklarasi variable, tetapi juga dapat berupa suatu konstanta yang dideklarasikan dibagian deklarasi konstanta.
Contoh program :

Const
X : array [1..5] of integer = (6, 25, 375, 5, 2) ;
Var
I : word ;
Begin
For I : = 1 to 5 do
Writeln ( ‘Nilai konstanta larik ke ‘, I, ‘=’, X[I] ) ;
End.
Output program :
Nilai Konstanta larik ke 1 = 6
Nilai Konstanta larik ke 2 = 25
Nilai Konstanta larik ke 3 = 375
Nilai Konstanta larik ke 4 = 5
Nilai Konstanta larik ke 5 = 2

1.9 String Sebagai Larik Tipe Char
String dapat dianggap sebagai suatu larik tipe char dengan index dari 0 sampai dengan panjang dari string yang di definisikan.
Contoh program :

Var
I : word ;
Nama : string [255] ;
Begin
Write ( ‘Nama Anda ?’ ) ; readln ( Nama ) ;
Writeln ;
Writeln ( ‘Nama Anda kalau dibaca terbalik adalah : ‘ ) ;
For I : = ord (Nama [0] ) down to 1 do
Write (Nama [I] ) ;
End.

Output program :
Nama Anda ? Dita
Nama Anda kalau dibaca terbalik adalah :
atid

1.10 Larik Dimensi Banyak
Larik dapat juga berdimensi lebih dari satu yang disebut dengan larik dimensi banyak, yang dapat berdimensi dua, dimensi tiga dan seterusnya.
Larik dimensi 2 mewakili suatu bentuk table atau matrik, yaitu index yang pertama dapat menunjukkan baris dan index kedua dapat menunjukkan kolom dari table atau metric.
Bentuk Umum :
Nama_larik = array [tipe index1] of array [tipe index2] of tipe larik
Atau
Nama_larik = array [tipe index1, tipe index2] of tipe larik
Contoh program :

Var
Tabel : array [1..3, 1..2] of byte ;
I, J : byte ;
Begin
Tabel[1,1] : = 5 ;
Tabel[1,2] : = 25 ;
Tabel[2,1] : = 200 ;
Tabel[2,2] : = 22 ;
Tabel[3,1] : = 75 ;
Tabel[3,2] : = 50 ;
For I : = 1 to 3 do
Begin
For J : = 1 to 2 do
Write ( table [I,J] : 10 ) ;
Writeln ;
End ;
End.

Output program :
5 25
200 22
75 50

1.11 Parameter Larik
Larik dapat digunakan sebagai parameter yang dikirimkan baik secara nilai atau secara acuan ke prosedur atau ke fungsi. Prosedur yang menggunakan parameter berupa larik harus dideklarasikan didalam judul prosedur yang menyebutkan parameternya bertipe larik.
Contoh program :

Type
Larik = array [1..50, 1..50] of real ;
Var
I, J, K : byte ;
Procedure inverse (Var X : Larik ; N : byte ) ;
….
….
Begin
….
…
end.

07 Januari 2009

file

Coba dulu yang sebelumnya Klik di bawah ini !!!

Lanjutan Record : [SORTING]

FILE

1. Komposisi dari File Teks
File Teks disusun sebagai runtunan beberapa baris .
• Tiap baris terdiri dari runtunan karakter.
• Tiap baris diakhiri oleh karakter khusus, yaitu END-OF-LINE (EOLN)
• Karakter yang terakhir dari file teks adalah END-OF-FILE (EOF)
Contoh.



- EOF : menerima argumen nama file dan menghasilkan nilai true jika sudah tidak ada data yang bisa dibaca lagi.
- EOLN : menerima argumen nama file dan menghasilkan nilai true jika sudah tidak ada lagi data yang bisa lagi dalam satu baris.

2. Operasi pada file teks
Untuk melakukan operasi pada file teks, kita perlu mendeklarasikan suatu variabel dengan tipe teks seperti berikut:

var
F : text;

F adalah sembarang variabel file teks dan readme adalah nama file teks yang akan dibaca, pertama kita harus memanggilnya dengan fungsi :
assign(F,'README');

3. Membaca File dan Menampilkannya di Layar
Sebelum kita bisa membaca kita harus membuka file tersebut.

reset(F);

kita bisa membaca file baris demi baris, misalkan dengan menyatakan suatu variabel s sebagai string:

readln(F, s);

setelah selesai membaca keseluruhan teks kita harus menutupnya dengan:

close(F);

Contoh. (misal kita punya suatu file dengan path 'D:\file1.txt')













4. Menulis File Baru
Kita membuat suatu file teks dengan mengubah kata kunci :

reset(F); menjadi rewrite(F);

Kemudian: Gunakan readln(F,s) untuk membaca file yang akan dikopi dan writeln(F,s) untuk menulis ke file tujuan
Contoh 1.. (misal kita punya suatu file dengan path 'D:\file1.txt') dan kita akan memgkopinya ke file dengan path 'D:\file1.txt')













Contoh 2. membuat file baru













Catatan: statemen rewrite(variabel_teks) apabila diterapkan pada file yang sudah ada akan menyebabkan isi file terhapus dan mulai membuat yang baru, maka untuk menambahkan teks pada file yang sudah ada digunakan kata kunci append (variabel_teks).

5. Error pada Pembacaan File
Untuk mengatasi error pada pembacaan file teks digunakan error-handling. yaitu :

{$I-} --> membuat Pascal stabil
: --> proses pada file
{$I+} --> deteksi terhadap error

error dapat di deteksi dengan memanggil fungsi IOResult. jika IOresult adalah 0, maka tidak terjadi error.
Contoh :














6. Jenis Error pada Pembacaan File
IO result dapat menghasilkan jenis kesalahan pada pembacaan file, seperti contoh.

SORTING

LANJUTAN RECORD

5. Sorting

Beberapa metode sorting mengurutkan data yang dikenal antara lain adalah:
1. Bubble Sort (sederhana tetapi lambat)
2. Quick Sort (cepat tetapi rumit)
3. Shell Sort (agak cepat dan tidak terlalu rumit)

5.1. Bubble Sort
Teknik ini menyusun data yang diinginkan secara berurutan dengan membandingkan elemen data yang ada, misalkan kita akan meyusun data secara (ascending) cacah naik. Maka lagoritma utamanya adalah seperti ini.

SYNTAX

for i:=1 to Jumlah_data-1 do
for j:=i+1 to Jumlah_data do
if Data[i]>Data[j] then
begin
t:=Data[i];
Data[i]:=Data[j];
Data[j]:=t;
end;

Contoh.
Misal kita punya data : 5 3 8 4 1 7 6 2 , dalam program
program mengurutkandata;

uses WinCrt;
type urutkan=array [1..8] of integer;
var i,j,t:integer;
anu:urutkan;
begin
anu[1]:=5; anu[2]:= 3;
anu[3]:= 8; anu[4]:= 4;
anu[5]:= 1; anu[6]:= 7 ;
anu[7]:=6 ; anu[8]:=2 ;
for i:=1 to 7 to
begin
for j:=i+1 to 8 to
begin
if anu[i]>anu[j] then
begin
t:=anu[i];
anu[i]:=anu[j];
anu[j]:=t;
end;
end;
end;
for i:=1 to 8 do
write (anu[i], ' ')
end.

5.2. Shell sort
Prinsipnya hampir sama dengan bubble sort tetapi dioptmisisasi sehingga lebih cepat. Ditemukan oleh Donald Shell. prinsipnya adalah membandingkan data dengan jarak tertentu dalam array.
SYNTAX

for jarak:= (Jumlah_data div 2) down to 1 do
for i:=1 to Jumlah_data-jarak do
if Data[i]>Data[i+jarak] then
begin
t:=Data[i];
Data[i]:=Data[i+jarak];
Data[i+jarak]:=t;
end;

Misalkan kita punya 8 data. Langkah pertama adalah membandingkan data pertama dengan ke lima, dsb. Jarak antara data adalah (8 div 2 :=4).
Langkah iterasi:
pertama, jarak adalah 4.
5 3 8 4 1 7 6 2
ke-1 perbandingan : ^ ^ (salah urutan, tukar)
1 3 8 4 5 7 6 2
ke-2 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-3 perbandingan : ^ ^ (salah urutan, tukar)
1 3 6 4 5 7 8 2
ke-4 perbandingan : ^ ^ (salah urutan, tukar)
1 3 6 2 5 7 8 4 ----> Jarak 3.
ke-5 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-6 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-7 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-8 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-9 perbandingan : ^ ^ (salah urutan, tukar)
1 3 6 2 4 7 8 5 ----> Jarak 2.
ke-10 perbandingan :^ ^ ( urutan benar, no tukar)
ke-11 perbandingan : ^ ^ (salah urutan, tukar)
1 2 6 3 4 7 8 5
ke-12 perbandingan : ^ ^ (salah urutan, tukar)
1 2 4 3 6 7 8 5
ke-13 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-14 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-15 perbandingan : ^ ^ (salah urutan, tukar)
1 2 4 3 6 5 8 7 ----> Jarak 1.
ke-16 perbandingan :^ ^ ( urutan benar, no tukar)
ke-17 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-18 perbandingan : ^ ^ (salah urutan, tukar)
1 2 3 4 6 5 8 7
ke-19 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-20 perbandingan : ^ ^ (salah urutan, tukar)
1 2 3 4 5 6 8 7
ke-21 perbandingan : ^ ^ ( urutan benar, no tukar)
ke-22 perbandingan : ^ ^ (salah urutan, tukar)
1 2 3 4 5 6 7 8

5.3. quick sort
diketemukan oleh E. Hoare. Dengan menggunakan metode rekursi samapi habis. Prinsipnya membagi data menjadi dua bagian yang sama (kiri dan kanan). Dimana data tengah menjadi pivot (pusat operasi). Kumpulkan data dengan nilai lebih kecil dari pivot disebelah kiri pivot, dan di kanan untuk yang lebih besar. Dimungkinkan bagian kiri dan kanan pivot tidak sama besarnya. Untuk itu tiap bagin di bagi menjadi dua lagi dan mempuyi pivot yang baru. Contoh misal kita mempunyai data array integer.

procedure qsort(bawah, atas : integer)
var kiri, kanan, pivot : integer;
begin
pivot:=Data[(bawah+atas) div 2];
kiri:=bawah;
kanan:=atas;
while kiri<=kanan do
begin
while Data[kiri] < pivot do kiri:=kiri+1; { memisahkan ke kiri }
while Data[kanan]>pivot do kanan:=kanan-1;{Memisahkan ke kanan}
if kiri<=kanan then { chek perubahan }
begin
swap Data[kiri] with Data[kanan];
kiri:=kiri+1;
kanan:=kanan-1;
end;
end;
if kanan>bawah then qsort(bawah,kanan);{ urutkan bagian KIRI }
if atas>kiri then qsort(kiri ,atas);{ urutkan bagian KANAN}
end;

Pemangilan dalam program utama : qsort(1,NumberOfData);

24 Desember 2008

record

REKAMAN (RECORD)


 

Untuk merepresentasikan objek, dibuat tipe bentukan (user-defined type) yg merupakan gabungan dari beberapa tipe dasar(integer, real, boolean, character) dan tipe bentukan lainnya. Salah satu tipe bentukan terstruktur adalah record.


 

Sebuah rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan sekumpulan elemen data yang berbeda-beda tipenya.


 

Contoh , sebuah record dengan empat buah field.

  

  

  

  

Field 1 

Field 2  

Field 3  

Field 4  


 

Cara pendeklarasian dari record adalah sbb:

  • Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
  • Mendefinisikan variabel untuk dilakukan operasi.


 

BENTUK UMUM :

type nama_record = record

identifier_1 : tipe_data_1;

:

:

identifier_n : tipe_data_n;

end;

var

nama_variabel : nama_record;


 

Contoh :

type Data_mahasiswa = record

Nama     : string;

Umur     : integer;

Kota     : String;

Kodepos     : integer;

end;

Var

x : Data_mahasiswa;         <------------ Penggunaan record menjadi variabel-variabel


 


 

Pengacuan tiap field pada record(record selector) pada contoh di atas adalah sbb :

x.Nama
x.Umur
x.Kota
x.Kodepos


 

Contoh Program 1:

program CONTOH_RECORD_1;

uses wincrt;

type tanggal = record

hari, bulan, tahun : integer;

end;

var

waktu : tanggal;

begin

waktu.hari := 17;

waktu.bulan := 07;

waktu.tahun := 2007;

writeln( 'Tanggal Lahir : ', waktu.hari, ':', waktu.bulan, ':', waktu.tahun )

end.


 

Pengunaan With … do :

Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record.

Misalkan pernyataan :

x.Nama
x.Umur
x.Kota

x.Kodepos

Menjadi :

with x do

Begin

Nama
Umur
Kota
Kodepos

end

Contoh Program 2:

program CONTOH_RECORD_2;
uses wincrt;

type tanggal = record

hari, bulan, tahun : integer;

end;

var waktu : tanggal;
begin {program utama}

with waktu do {mulai with}

begin

hari := 17;
bulan := 07;
tahun := 2007;

writeln ('Tanggal Lahir : ',hari,':',bulan,':', tahun)

end {akhir with}

end.

Record di dalam Record

Record bisa berisi record lain sebagai field.

Seperti contoh record tanggal dan jam dikombinasikan menjadi sebuah record saat ini,


 

type tanggal = record

bulan, hari, tahun : integer;

end;

type waktu = record

jam, menit, detik : integer;

end;

type waktu_ini = record

tanggal_ini : tanggal;
waktu_ini : waktu

end;

Kemudian kita perlu membuat variabel kerja :

var saat_ini : waktu_ini;


 

Pemberian nilai akan terjadi seperti di bawah ini:

saat_ini.tanggal.bulan:= 01;
saat_ini.tanggal.hari:= 07;
saat_ini.tanggal.tahun:= 2008;
saat_ini.waktu.jam:= 14;
saat_ini.waktu.menit:= 30;
saat_ini.waktu.detik:= 33;


 

LATIHAN :

Buatlah Program untuk mendapatkan tampilan dari penjelasan di atas !!!


 

STUDI KASUS :

Diketahui : Tipe bentukan record waktu yg terdiri field jam dan menit yg bertipe integer.

Buat program u/ membaca waktu : t1, t2 dan menghitung selisih jam dan menit.

Asumsi :

  • t2 selalu akhir dari t1,
  • nilai terbesar t1 dan t2 = 23:59 dan nilai terkecilnya =00:00,
  • nilai tidak melewati 23:59

Analisis :

  • Membaca waktu pertama(t1).
  • Membaca waktu kedua(t2).
  • Menghitung selisih antara waktu pertama dan waktu kedua, dengan :
    • Menghitung selisih menit.
    • Menghitung selisih jam.
  • Menampilkan selisih waktu di layar.


 

Contoh Program :

Program selisih_waktu;

Uses wincrt;

type waktu = record

        jam, menit : integer;

    end;

var

    t1,t2    : waktu;

    selisih    : waktu;

begin

writeln('Isikan Time pertama (t1)');

write('t1.jam     = '); readln(t1.jam);

write('t1.menit = '); readln(t1.menit);


 

writeln('Isikan Time kedua (t2)');

write('t2.jam     = '); readln(t2.jam);

write('t2.menit = '); readln(t2.menit);


 

if t2.menit < t1.menit then

begin

selisih.menit := (t2.menit+60)-t1.menit;

t2.jam := t2.jam – 1;

end

else

selisih.menit := t2.menit-t1.menit;

selisih.jam := t2.jam-t1.jam;


 

writeln ('Selisih t1 dan t2 adalah : ', selisih.jam, 'jam', selisih.menit, 'menit');

end.


 

TUGAS :

Buatlah program yg dapat membaca dua tanggal (tanggal, bulan, dan tahun), menghitung selisih kedua tanggal tersebut dalam hari, bulan, dan tahun serta menampilkannya di layar.


 

Asumsi : Satu bulan = 30 hari


 

************** GOOD LUCK **************

17 Desember 2008

Fungsi Pascal

Fungsi Matematik Standar dalam PASCAL



Beberapa fungsi matematik standar yang disediakan oleh PASCAL:

Nama Fungsi

Deskripsi

Tipe Argumen

Tipe Hasil Operasi

abs

absolute value

real/integer

real/integer

arctan

arctan (radian)

Real/integer

real

cos

cosine (radian)

real/integer

real

sin

sin (radian)

real/integer

real

exp

fungsi Perpangkatan e

real/integer

real

ln

ln

real/integer

real

round

Pembulatan terdekat

real

integer

sqr

kuadrat

real/integer

real/integer

sqrt

Akar kuadrat

real/integer

real

trunc

Pembulatan ke bawah

real/integer

integer


Contoh :
Abs(-11) (hasil: 11)
Round(10.6) (hasil: 11)
Trunc(10.6) (hasil: 10)
Sqrt(4) (hasil: 2)
Sqr(4) (hasil: 16)
Untuk fungsi trigonometri:
x = sin phi menjadi x:=sin (3.1416);

1. Statemen-statemen yang digunakan untuk input/output.

# ReadKey [fungsi].

Untuk pembacaan sebuah karakter dari keyboard. Tipe data yang dihasilkan adalah char.

Sintaks: ReadKey;

2. Statemen yang digunakan untuk memanipulasi string.

# ConCat[fungsi].

Untuk menggabungkan 2 atau beberapa variabel string.

Sintaks: ConCat (s1 [,s2,...,sn]: String) : String;

contoh: ConCat ('ABC','DEF') { ABCDEF }

# Copy [fungsi].

Mengambil satu atau beberapa karakter dari sebuah string.

Sintaks: Copy (S,Index,Count) : String;

Keterangan :

S = sebuah string (string).

Index = posisi awal kita akan mengambil beberapa

karakter (integer)

Count = banyaknya karakter yang akan diambil (integer).

# Length [fungsi].

Memberikan nilai panjang dari suatu string (jumlah karakter dalam string).

Sintaks: Length (S);

Keterangan : S = string

Length(S) menghasilkan nilai integer.

# Pos [fungsi].

Mencari posisi sebuah bagian string (substring) didalam sebuah string.

Sintaks: Pos (Substr,S); {menghasilkan nilai Byte}

Keterangan : Substr = substring yang akan dicari posisinya di dalam sebuah string S.

Bila bernilai 0 berarti nilai string yang dicari tidak ada.

# UpCase [fungsi].

Memberikan huruf kapital dari argumen.

Sintaks: UpCase (S);

Keterangan :

S = variabel bertipe karakter.

Contoh :

Program Man_String;

Uses Crt;

Var s : String;

1 : Integer;

h : String;

Const a='Dinda';

b='Bayi ';

c='Sehatku';

Begin

ClrScr;

s:= ConCat (a,b,c);

Writeln (s);

Insert (' & ',s,6);

Writeln(s);

Delete (s,7,7);

Writeln (s);

h:=Copy (s,1,5);

Writeln (h);

l:= Length(s);

Writeln ('Panjangnya string S : ',l);

Writeln ('Posisi "Sehat" pada nilai S : ',POS('Sehat',s));

END.

Hasilnya adalah :

DindaBayiSehatku

Dinda & Bayi Sehatku

Dinda Sehatku

Dinda

Panjangnya string S : 16

Posisi "Sehat" pada nilai S : 7

3. Statemen-statemen untuk perhitungan aritmatik.

# Abs [fungsi].

Memberikan nilai mutlak dari suatu argumen.

Sintaks: ABS(x);

# ArcTan[fungsi].

Memberikan nilai dari fungsi arctangent dari perhitungan goniometri.

Sintaks: ArcTan (x);

dimana x dapat bertipe real atau integer dan akan menghasilkan nilai bertipe real.

# Cos [fungsi].

Memberikan nilai dari fungsi Cosinus.

Sintaks: Cos (x);

# Exp [fungsi].

Menghitung nilai pangkat dari bilangan e (bilangan alam), yaitu sebesar x.

Sintaks: Exp (x);

x dapat bertipe real atau integer dan akan menghasilkan nilai bertipe real.

# Frac [fungsi].

Untuk mendapatkan nilai pecahan dari suatu bilangan.

Sintaks: Frac (x);

Tipe dari x sama seperti yang diatas.

# Int [fungsi].

Memberikan nilai integer (bilangan bulat) dari suatu variabel dengan membuang bilangan di belakang koma.

Sintaks: Int (X);

# Ln [fungsi].

Digunakan untuk menghitung nilai logaritma alam (natural logarithm) dari nilai x.

Sintaks: Ln (x);

# Sin [fungsi].

Memberikan nilai dari fungsi Sinus.

Sintaks: Sin (x);

# Sqr [fungsi].

Digunakan untuk menghitung nilai pangkat kuadrat dari suatu bilangan.

Sintaks: Sqr (x);

Tipe dari x bisa berupa real maupun integer. Dan hasilnya akan sama dengan tipe dari x.

# Sqrt (fungsi).

Digunakan untuk menghitung nilai akar dari suatu bilangan.

Sintaks: Sqrt (x);

Contoh :

Program Aritmatik;

Uses Crt;

Var x : Real;

Begin

Clrscr;

Write('Masukkan nilai dari X = ');

Readln (x);

If x <0>

Writeln('Nilai X = ',x:5:2);

Writeln ('Nilai eksponentialnya = ',EXP(x):9:3);

Writeln ('Nilai logaritma alamnya = ',LN(x):9:3);

Writeln ('Nilai integernya = ',INT(x):5:2);

Writeln ('Nilai fraksionalnya = ',FRAC(x):5:2);

Writeln ('Nilai X dipangkatkan = ',SQRT(x):9:3);

Writeln ('Nilai X diakarkan = ',SQRT(x):9:3);

Write('Nilai X jika dimasukkan dalam ');

Writeln('fungsi Sin,Cos,Tangen: ');

Writeln('- Sinus = ',Sin(x):9:3);

Writeln('- Cosinus = ',Cos(x):9:3);

Writeln('- Tangen = ',ArcTan(x):9:3);

End.

Hasilnya :

masukkan nilai dari X = -2.5

Nilai X = 2.50

Nilai eksponensialnya = 12,182

Nilai logarima alamnya = 0,196

Nilai integernya = 2.00

Nilai fraksionalnya = 0.50

Nilai X dipangkatkan = 6.250

Nilai X diakarkan = 1.581

Nilai X jika dimasukkan dalam fungsi Sin,Cos,Tangen:

- Sinus = 0.598

- Cosinus = -0.801

- Tangen = 1.190

4. Statemen-statemen untuk transfer nilai dari suatu variabel.

# Chr [fungsi].

Merubah nilai dari byte ke bentuk karakter yang sesuai dengan

kode ASCII.

Sintaks: Chr (x);

Keterangan : x bertipe byte

contoh : Writeln (Chr (61));

hasilnya : a

# Ord [fungsi].

Merubah nilai suatu variabel dari bentuk karakter ke bentuk longint.

Sintaks: Ord (x);

Keteranagn : x bertipe char

contoh : Writeln(Ord ('B'));

hasilnya : 42

# Round [fungsi].

Membulatkan data tipe real ke data tipe longint.

Sintaks: Round (x);

Keterangan : Jika nilai pecahan <>

Jika nilai pecahan > 0,5 maka dibulatkan keatas.

contoh : Writeln('10/3 dibulatkan = ',Round(10/3));

hasilnya : 10/3 dibulatkan = 3

# TRUNC [fungsi].

Membulatkan kebawah data tipe real ke data tipe longint.

Sintaks: Trunc (x);

contoh :

Writeln('20/3 dibulatkan kebawah = ',Trunc (20/3));

hasilnya : 20/3 dibulatkan kebawah = 6

5. Statemen-statemen untuk memanipulasi data.

# Pred [fungsi].

Memberikan nilai sebelum nilai argumen dalam urutannya dalam

ASCII.

Sintaks: Pred (x);

# Succ [fungsi].

Memberikan nilai sesudah nilai argumen dalam urutannya dalam ASCII.

Sintaks: Succ (x);

# Inc[fungsi].

Menambah (increments) nilai suatu variabel.

Sintaks: Inc (x,i); {i >= 1}

# Dec [fungsi].

Mengurangi (decrements) nilai suatu variabel.

Sintaks: DEC(x,i); {i >=1}

Contoh :

Progam Man_Data;

Uses Crt;

Type

hari = (hr0,hr1,hr2,hr3,hr4,hr5,hr6,hr7)

Var

urutanhr : hari;

Const

namahr : Array [hr1..hr7] of String [6]= ('Senin','Selasa','Rabu','Kamis', 'Jumat','Sabtu','Minggu');

Begin

Writeln('Daftar Nama Hari);

urutanhr := hr0;

While Urutanhr <>

Begin

urutanhr := Succ(urutanhr);

Write('hari ke ',Ord(Urutanhr):2,' adalah ');

Writeln(namahr[urutanhr]);

End;

End.

Hasilnya adalah :

Daftar Nama Hari

hari ke 1 adalah Senin

hari ke 2 adalah Selasa

hari ke 3 adalah Rabu

hari ke 4 adalah Kamis

hari ke 5 adalah Jumat

hari ke 6 adalah Sabtu

hari ke 7 adalah Minggu


Soal Latihan

{Buatlah program untuk permasalahan berikut ini}

1. Mencari nilai Sinus, Cosinus, dan Tangen dengan sudut diinput.

2. Mencari akar dan kuadrat dari suatu nilai (nilai diinput).

3. Mencari nilai bulat dan pecahan dari suatu nilai yang dimasukkan melalui keyboard (diinput). Nilai pecahan tersebut dibulatkan sampai 3 angka dibelakang koma (,).


============== SELAMAT BERLATIH ==============