STRUKTUR PROGRAM
1. Judul program (opsional)
Format : { judul program } atau program_nama program;
2. Deklarasi program:
Var {Variabel program}
Const {Constanta program}
Label {Label}
Funct {Function}
Procedure {Prosedur program}
Catatan :
Deklarasi program bersifat opsional khusus, artinya jika diperlukan maka harus ada dalam program dan apabila tidak diperlukan maka boleh tidak dicantumkan. Deklarasi program termasuk identifier (pengenal), yaitu kata-kata yang diciptakan oleh pemrogram untuk mengidentifikasi sesuatu.
Syarat identifier:
a) Harus diawali oleh alphabet
b) Huruf besar/ kecil yang digunakan dianggap sama
c) Penyusun dari sebuah identifier tidak boleh berupa: tanda baca, tanda relasi, symbol arithmatik, karakter khusus atau reserved word
d) Tidak boleh dipisahkan dengan spasi, apabila hendak dipisahkan maka menggunakan tanda ( _ )
e) Panjang identifier tidak dibatasi tetapi sebaiknya gunakan se-efektif mungkin.
3. Program Utama
Diawali dengan Begin dan diakhiri dengan End.
TIPE DATA DALAM TURBO PASCAL
Tipe data berfungsi membatasi jangkauan data ynag akan dilaksanakan.
Macam-macam tipe data:
a) Tipe data Standard, terdiri atas :
- Ordinal
- Non-ordinal
b) Tipe data Terstruktur
c) Tipe data Pointer
Tipe Data Standard
I. Tipe Ordinal
Pada tipe data ini akan berlaku operasi-operasi:
- Predesessor (Pred), berfungsi memberikan nilai kembalian berupa nilai predesessor (urutan sebelumnya) dari suatu nilai ordinal.
- Successor (Succ), berfungsi memberikan nilai successor (urutan berikutnya) dari suatu nilai ordinal.
a) Tipe Integer
Operator-operator yang berlaku pada tipe data integer, yaitu :
- Operator arithmatik : +, - , *, /, div, mod
- Operator logic : <, = , > , <= , >= , <>
Tipe data integer masih dibagi menjadi 5 tipe:
Shortint (1 byte bertanda) Byte (1 byte tak bertanda)
Integer (2 byte bertanda) Word (2 byte tak bertanda)
Longint (4 bytebertanda)
Catatan : Semua tipe integer adalah tipe Ordinal.
b) Tipe Real
Dibagi menjadi 5 macam, yaitu :
Real (6 byte) Extended (10 byte)
Single (4 byte) Comp (8 byte)
Double (8 byte)
c) Tipe Char (Karakter)
Char adalah semua tombol yang terdapat pada keyboard atau lebih lengkapnya semua karakter yang terdapat pada kode ASCII.
Catatan : Apabila char ingin dijadikan sebagai konstanta maka karakter yang dimasukkan harus diapit dengan tanda kutipsatu. Dan apabila karakter itu berupa tanda kutip satu maka harus diapit dengan dua tanda kutip satu.
d) Tipe Boolean
Mempunyai nilai benar /salah. Operator yang penghubung untuk tipe Boolean adalah : = , <> , > , < , >= , <= , IN
Boolean akan menghasilkan False jika nilai = 0 dan akan menghasilkan True jika nilai = 1.
e) Tipe Enumerated (terbilang)
Bentuk umum :
Type
Nama = (Pengenal 1, pengenal 2,…, pengenal n);
Contoh:
Type
Jawa Tengah = ( Semarang, Tegal, Kendal, Demak) ;
Sehingga dengan fungsi berikut :
Ord(Semarang) = 0
Ord(Tegal) = 1
Dan seterusnya…………………..
f) Tipe Subrange
Bentuk umum :
Constanta1..Constanta2
Contoh :
0..99 ;
-128..127 ;
II. Real
Ada beberapa macam tipe real
1. Single
2. Real
3. Double
4. Extended
STRUKTUR PEMROGRAMAN/ STRUKTUR KONTROL :
Ada tiga macam struktur pemrograman yaitu :
1. Runtutan/ Sequential
2. Seleksi/ Conditional
3. Perulangan/ Repetition/ Looping
1. SEQUENTIAL/ RUNTUTAN
Berfungsi mengontrol program sehingga berjalan secara berurutan. Program dibaca dari mulai perintah yang pertama dituliskan kemudian turun ke perintah selanjutnya demikian seterusnya sampai pada akhir perintah. Secara umum program akan dibaca oleh compailer secara terurut.
Contoh :
Program_Selisih_Jam;
Uses crt;
var j1,j2,m1,m2,d1,d2,B1,B2,J,M,S,Delta,sisa: integer;
begin
clrscr;
write('Baca jam mulai =');readln(j1,m1,d1);
writeln;
write('Baca jam selesai =');readln(j2,m2,d2);
B1:= 3600 * j1 + 60 * m1 + d1;
B2:= 3600 * j2 + 60 * m2 + d2;
Delta:= B2 - B1;
J:= Delta div 3600;
sisa:= Delta mod 3600;
M:= sisa div 60;
S:= sisa mod 60;
write('Selisih jam =',J);
writeln;
write('Selisih menit =',M);
writeln;
write('Selisih detik =',S);readln;
end.
Hasil Run program:
Baca jam mulai = 3 23 29
Baca jam selesai = 4 30 27
Selisih jam = 1
Selisih menit = 6
Selisih detik =58
Catatan : Tanda (:= ) disebut sebagai Operator Penugasan.
2. SELECTION/ CONDITION
Sistem kontrol ini memungkinkan programmer untuk membuat program yang dapat memilih satu langkah di antara sejumlah langkah untuk dikerjakan.
Dalam Turbo Pascal disediakan 2 buah struktur kontrol seleksi, yaitu:
a. Struktur IF……THEN…..
b. Struktur CASE…OF…
a). Struktur IF
Merupakan struktur kontrol di mana suatu aksi dilaksanakan berdasarkan kondisi logikanya (benar atau salah). Bentuk umum :
if (kondisi) then aksi ;
{Jika kondisi benar maka aksi akan dilaksanakan dan sebaliknya }
if (kondisi) then aksi1 else aksi2 ;
{Jika kodisi benar maka aksi1 diaksanakan, jika kondisi salah
maka aksi2 akan dilaksanakan}
if (kondisi1) then aksi1 else
if (kondisi2) then aksi2 else
……………………..
if (kondisi-n) then aksi-n ;
{Jika kondisi1 benar maka aksi1 dilaksanakan tanpa membaca
kondisi2 dan seterusnya. Jika kondisi1 salah maka aksi2 dilaksanakan tanpa membaca aksi3 dan selanjutnya. Demikian
seterusnya}
if (kondisi1) then aksi1 ;
if (kondisi2) then aksi2 ;
……………………….
if (kondisi-n) then aksi-n ;
{Masing-masing kondisi akan dibaca dan aksi akan tetap dilaksa-
kan. Jadi masing-masing struktur terpisah satu dengan yang lain}
Contoh program :
program_menghitung_akar_kwadrat:
uses crt;
var A,B,C:integer;
x1,x2,D:real;
begin
clrscr;
write('Baca koofisien:');readln(A,B,C);writeln;
writeln(A,'x*x + (',B,') x +',C);
if A=0 then writeln('Bukan persamaan kwadrat') else
begin
D:=(B*B) - (4*A*C);
writeln('Determinannya :',D:2:2);readln;
if D>0 then
begin
writeln('Persamaan kwadrat mempunyai 2 akar yang berbeda');
x1:= (-B + sqrt(D))/(2*A);
x2:= (-B - sqrt(D))/(2*A);
writeln('Akar-akarnya adalah:',x1:2:2,'dan',x2:2:2);
end else
if D=0 then
begin
writeln('Persamaan kwadrat mempunyai akar yang sama'
x1:= -B/(2*A);
x2:= -B/(2*A);
writeln('Akar-akanya adalah:',x1:2:2);
end else
writeln('Tidak memiliki akar riil');
end;
readln;
end.
Hasil Run Program :
-Baca koofisien: 1 -4 4
1x*x + (-4) x +4
Determinannya :0.00
Persamaan kwadrat mempunyai akar yang sama
Akar-akanya adalah:2.00
-Baca koofisien: 1 -5 6
1x*x + (-5) x +6
Determinannya :1.00
Persamaan kwadrat mempunyai 2 akar yang berbeda
Akar-akarnya adalah:3.00dan2.00
-Baca koofisien: 1 3 4
1x*x + (3) x +4
Determinannya :-7.00
Tidak memiliki akar riil
Program_Konversi_nilai:
Uses Crt;
var Nilai : Byte;
begin
clrscr;
write('Baca nilai :');readln(Nilai);
if nilai>=80 then write('Nilai = A') else
if nilai>=65 then write('Nilai = B') else
if nilai>=41 then write('Nilai = C') else
if nilai>=26 then write('Nilai = D') else
write('Nilai = E');
readln;
end.
Hasil Run Program :
Baca nilai : 90 Baca nilai :55
Nilai = A Nilai = C
Baca nilai :75 Baca nilai :25
Nilai = B Nilai = E
b). Struktur CASE…OF..
Merupakan peluasan dari struktur IF. Karena kalau dalam struktur IF hanya disediakan dua pilihan (berdasarkan kondisi logikanya) maka dalam struktur Case ..of dimungkinkan untuk memilih satu pilihan di antara banyak pilihan yang ada. Bentuk umumnya :
Case var.pilih of atau Case var.pilih of
Pilih1 : aksi1 ; pilih1 : aksi1 ;
Pilih2 : aksi2 ; pilih2 : aksi2 ;
……………. ; ……………. ;
pilih-n : aksi-n ; pilih-n : aksi n;
else aksi-n+1
end; end;
Catatan : Ekspresi yang digunakan dalam statemen Case adalah yang mempunyai tipe ordinal yaitu dengan batas antara (-32768 s/d 32767). Sehingga tipe lain seperti integer yang bertipe longint, tipe string atau word tidak boleh digunakan.
Contoh program :
Program_Konversi_nilai2;
Uses Crt;
Var Nilai : integer;
begin
Clrscr;
write('Baca nilai =');readln(Nilai);
Case Nilai of
0..25 : writeln('Nilainya = E');
26..39 : writeln('Nilainya = D');
40..64 : writeln('Nilainya = C');
65..79 : writeln('Nilainya = B');
80..100: writeln('Nilainya = A');
else
writeln('Tidak ada nilai yang dimaksud');
end;readln;
end.
Catatan : Program ini akan memberikan nilai yang sama persis dengan yang menggunakan struktur IF.
3. PERULANGAN/ LOOPING/ REPETITION
Dalam membuat suatu program kadang-kadang diinginkan agar program tersebut mampu memproses hal yang sama secara berulang-ulang sampai ditemukan suatu nilai tertentu yang diinginkan atau mencapai batas yang telah ditentukan. Untuk itu maka Turbo Pascal telah menyediakan suatu struktur perulangan yang memudahkan untuk melakukan proses tersebut, sehingga kode-kode dalam program menjadi lebih sederhana. Ada beberapa struktur perulangan, yaitu :
- Struktur FOR….DO….
- Struktur WHILE…DO……
- Struktur REPEAT…UNTIL….
a). Struktur FOR
Ada 2 jenis struktur FOR, yaitu :
- Ascendant (Naik)
- Descendant (Turun)
Naik
Format : For count := awal to akhir do aksi/ blok aksi ;
Catatan : - awal <= akhir
- Variabel count akan naik satu setelah menyelesaikan aksi
Turun
Format : For count := awal downto akhir do aksi1/ blok aksi ;
Catatan : - awal >= akhir
- Variabel count akan turun satu setelah menyelesaikan aksi
Struktur FOR hanya dpat digunakan pada cacah perulangan yang diketahui (berapa kali perulangan tersebut akan dilakukan).
Contoh program :
Program Latihan: Program Latihan 2:
uses Crt; uses Crt;
var N,i,j :integer; var N, I, j, data : integer;
begin begin
clrscr; clrscr;
write('Baca nilai : ');readln(N); write(‘Baca nilai:’);
for i:= 1 to N do readln(N);Data:=N;
begin for i:=1 to N do
for j:=1 to i do begin
write(i:3); for j:=1 to N do
writeln; write(data:3);
end; writeln;
readln; data := data -1;
end. end;
End.
Hasil Run Program : Hasi Run Program :
Baca nilai : 7 Baca nilai : 7
1 7
2 2 6 6
3 3 3 5 5 5
4 4 4 4 4 4 4 4
5 5 5 5 5 3 3 3 3 3
6 6 6 6 6 6 2 2 2 2 2 2
7 7 7 7 7 7 7 1 1 1 1 1 1 1
b). Struktur WHILE .. DO..
Format : While (kondisi) do Aksi/blok aksi
Kondisi: Ekspresi Boolean
Pengecekan untuk melakukan perulangan dilakukan pada awal proses dan perulangan akan dikerjakan selama kondisi benar. Oleh karena itu, perlu adanya suatu proses yang dapat mengontrol kondisi agar dapat menghentikan proses.
Contoh program :
uses crt;
var i:integer;
begin
clrscr;
write('Masukkan angka :');readln(i);
while i<5 do
begin
write('Matematika UGM');
i:=i+1;
end;
readln;
end.
Hasil Run program :
Masukkan angka :1
Matematika UGMMatematika UGMMatematika UGMMatematika UGM
Matematika UGM
Keterangan :
Program di atas akan dilaksanakan jika angka yang kita masukkan kurang dari atau sama dengan lima. Dan dalam program di atas yang bertugas menghentikan perulangan adalah proses i:= i+1; sebab jika tidak ada statement itu, apabila angka yang kita masukkan benar <= 5 maka program akan berulang sampai tak hingga banyak.
Catatan :
Struktur perulangan while..do dapat digunakan untuk melakukan perulangan baik yang diketahui maupun yang tidak diketahui jumlah perulangannya.
c). Struktur REPEAT..UNTIL..
Format : Repeat aksi/ blok aksi until (kondisi) ;
(kondisi) di sini berupa Boolean.
Perulangan dilakukan terus-menerus hingga diperoleh kondisi bernilai benar. Dalam hal inipun diperlukan adanya kondisi yang dapat mengontrol program agar program dapat berhenti namun berbeda dengan while do yang kontrolnya ditempatkan pada awal proses, maka repeat until kontrolnya diletakkan pada akhir proses.
Contoh program :
PROGRAM CONTOH_REPEAT;
Uses crt;
var
n,tot,x: integer;
Mean: real;
begin
clrscr;
tot:=0;
n:=0;
write ('Baca data :');readln(x);
repeat
tot:= tot + x;
n:= n + 1;
write('Data lagi :');readln(x);
until x=0;
end.
Hasil Run Program :
Baca data :12
Data lagi :3
Data lagi :4
Data lagi :5
Data lagi :0
{setelah dimasukkan nol maka pembacaan akan berhenti dan akan kembali ke menu awal}
TIPE DATA LARIK ( ARRAY )
Array atau larik terdiri atas bagian-bagian komponen yang memiliki tipe data sama. Dalam penyimpanannya array selalu mempunyai jumlah komponen yang tetap yang ditunjukkan oleh indeksnya. Dimana indeks ini harus merupada data dengan tipe ordinal artinya mempunyai urutan tertentu.
Ada 2 cara untuk mendeklarasikan larik yaitu :
1. Sebagai tipe data baru
Type
Larik=Array[1..n] of datatype ;
Var x : larik ;
2. Langsung sebagai variabel
Var x : Array[1..n] of datatype ;
Mengakses Data larik :
Cara mengakses data larik adalah dengan menunjukkan :
Nama_Larik[no.indeks] ;
Misal : x[1] berarti kita mengakses data larik x pada no.indeks ke-1.
Keuntungan :
Menggunakan data larik adalah bahwa kita tidak akan kehilangan nilai dari suatu data.
Kelemahan :
Saat ditentukan suatu variable bertipe data array maka ia akan langsung mengambil tempat pada memory penyimpanannya sesuai dengan tipe data yang digunakan pada array, baik nantinya semua komponen pada array itu digunakan ataupun tidak.
Dalam pemrograman kadang kita menghadapi masalah saat kita akan mendeklarasikan suatu matriks dengan adanya tipe data array maka masalah itu dapat diselesaikan, yaitu dengan menggunakan array dengan dimensi dua atau lebih yang kemudian dikenal dengan array dimensi banyak.
Pendeklarasian :
Type
Nama_Array = Array[tipe-indeks1,tipe-indeks2] of tipe data ;
Contoh :
Type
Matriks = Array[1..10, 1..10] of integer ;
Berarti matriks itu akan mempunyai dimensi (10x10), namun itu hanya batas atas dari indeks yang dipesan dalam memori penyimpanan (di atas itu tidak akan disimpan), sedangkan apabila nantinya kita hanya memasukkan jumlah baris missal 2 dan jumlah kolom 2 itu boleh saja selama tidak lebih dari 10.
Entry-entry dari matriks tersebut dapat kita panggil dengan mengetikkan
Nama_Array[indeks] ; dari contoh diatas berarti Matriks[2,3] yaitu entry dari matriks pada baris kedua kolom ketiga.
Contoh program :
Program Rata_rata;
Uses crt;
type
larik = array[1..10] of integer;
var
x : larik;
Tot, i, n : integer;
mean : real;
Begin
clrscr;
write('Masukkan jumlah data : '); readln(n);
writeln;
Tot := 0;
for i:= 1 to n do
begin
write('Masukkan Data ke-',i,' ', 'Anda : '); readln(x[i]);
Tot:= Tot + x[i];
end;
writeln;
mean:= Tot/n;
write('Dan hasil perhitungan meannya : ');
writeln(mean:8:2);
readln;
end.
Hasil Run Program :
Masukkan jumlah data : 5
Masukkan Data ke-1 Anda : 1
Masukkan Data ke-2 Anda : 2
Masukkan Data ke-3 Anda : 3
Masukkan Data ke-4 Anda : 4
Masukkan Data ke-5 Anda : 5
Dan hasil perhitungan meannya : 3.00
Program Matriks :
Program Baca_tulis_matriks ;
uses crt;
Var m,n,i,j : integer;
x: Array[1..100,1..100] of integer;
begin
clrscr;
write('Baca ukuran baris Matriks :',' ');readln(m);
write('Baca ukuran kolom matriks :',' ');readln(n);
writeln('Matriks anda berukuran',' ',m,'x',n,' ');
for i:=1 to m do
for j:=1 to n do
begin
write('Baca nilai :',' ');readln(x[i,j]);
end;
writeln;
writeln('Matriksnya :',' ');
for i:=1 to m do
begin
for j:=1 to n do
write(x[i,j]:3); writeln;
end;
writeln;writeln('Matriks tranposenya :',' ');
for j:= 1 to n do
begin
for i:=1 to m do
write(x[i,j]:3);writeln;
end;writeln;
writeln('Matriks anda berukuran',' ',n,'x',m,' ');
readln;
end.
Hasil Run Program :
Baca ukuran baris Matriks : 2
Baca ukuran kolom matriks : 2
Matriks anda berukuran 2x2
Baca nilai : 1
Baca nilai : 2
Baca nilai : 3
Baca nilai : 4
Matriksnya :
1 2
3 4
Matriks tranposenya :
1 3
2 4
Matriks anda berukuran 2x2
0 komentar:
Posting Komentar