1.PERKENALAN DENGAN PASCAL
1.1 Struktur Program Pascal
Strukturnya terdiri dari judul program dan blok program, Blok Program terbagi dua lagi,yaitu bagian deklarasi dan bagian pernyataan
1.2 Contoh Progam Pascal
Program contoh;
Var a, b, c : integer;
Begin
c := a + b :
writeln (‘Jumlah = ’,c);
End.
Keterangan:
1.Baris pertama adalah judul (nama) program, judul program ini tidak
harus dibuat, karena tidak dibaca oleh computer.
2.Baris kedua adalah bagian deklarasi
a, b, atau c adalah variabel, boleh dengan huruf besar atau huruf kecil
jadi variabel-variabel ini harus di umumkan lebih dulu, bahwa dia
bertype integer (bilangan bulat).
3.Baris-baris yang berada di antara Begin dan End. adalah pernyatan
Pernyataan (statemen)
c := a + b; artinya : variabel c diberi nilai sebesar hasil penjumlahan n nilai variable a dan nilai variable b
writeln (‘Jumlah = ’, c); artinya: pertama-tama ditampilkan tulisan
Jumlah = ,karena yang diapit tanda petik tunggal akan
langsung dicetak sama seperti itu aslinya. Sedangkan c yang tidak ada pe ngapitnya akan dicetak nilainya
1.3.Deklarasi Konstanta
Pada program diatas yang di deklarasikan adalah variabel, sedangkan pada program di bawah ini yang di deklarasikan adalah konstanta .
Program konstanta
Conts pot = 0,2;
gaji = 2500;
nama = ’Ketut Jiwa’;
Begin
Writeln(‘potongan = ‘,pot);
Writeln(‘gaji = ‘,gaji);
Writeln(‘nama peg. = ‘,nama);
End.
1.4.Type variabel
Variabel mempunyai beberapa type (jenis) yang harus di deklarasikan antara lain adalah type : real, integer, boolean, string, char dll
Contoh programsederhana
:
Program contoh_type;
Var total, gaji, tunjangan : real;
menikah : boolean ;
anak : integer;
ket : string;
Begin
gaji := 5500;
menikah := true;
anak:= 3 ;
tunjangan := 0,25 * gaji * anak;
total := gaji + tunjangan ;
ket := ’pegawai rajin ‘;
writeln (‘Gaji Bulanan = ‘,gaji ) ;
writeln (‘Tunjangan =;tunjangan );
writeln (‘Gaji total = ‘,total) ;
writeln (‘Sudah menikan = ‘,menikah);
writeln (‘Jumlah Anak = ‘,anak);
writeln (‘Predikatnya = ‘,ket);
End.
Keterangan :
1.tanda (:=) adalah pemberian nilai kepada variable.
2.Pencetakan nilai variabel bertype real sebaiknya di format sebagai berikut: writeln (‘Gaji Bulanan = ‘,gaji :7:2);
gaji :7:2 artinya nilai dari variable gaji diberi tempat 7 digit dan dua tempat di belakang koma. Sedangkan untuk type integer (bilangan bulat) caranya memformat adalah c:7 artinya nilai variable c diberikan tujuh tempat atau 7 digit. tidak perlu ada tempat di belakang koma, karena type integer adalah bilangan bulat.
1.5.Deklarasi type
Type- type seperti real, integer, boolean dan lain- lainnya kadang-kadang sebelum dideklarasikan pada variabel, terlebih dulu di berti nama dengan memakai kata cadangan type. Untuk lebih jelasnya cobalah program berikut ini:.
Program nama_tipe;
Type pecahan = real;
bulat = integer;
logika = boolean;
aksara = string
Var total, gaji, tunj : pecahan;
menikah : logika ;
anak : bulat;
ket : aksara;
Begin
gaji := 5500;
menikah := true;
anak:= 3;
tunjangan := 0,25 * gaji * anak ;
total := gaji + tunjangan ;
ket := ’pegawai rajin ‘;
writeln (‘Gaji Bulanan = ‘,gaji ) ;
writeln (‘Tunjangan =;tunjangan );
writeln (‘Gaji total = ‘,total) ;
writeln (‘Sudah menikan = ‘,menikah);
writeln (‘Jumlah Anak = ‘,anak);
writeln (‘Predikatnya = ‘,ket);
readln ;
End.
Keterangan :
1. Tipe-tipe variabelnya diberi nama dulu kemudian barulah digunakan pada var
2. Mengenai pertanyaan readln, adalah digunakan untuk menyetopj agar penampilan di layar setelah program dijalankan dapat kita lihat .
2. PERINTRAH PADA TARBO PASCAL .
2.1 Menjalankan program Tarbo Pascal .
Untuk menjalankan program ,sebaiknya di periksa lebih dulu programnya , apakah ada kesalahan atau sudah betul cara pengetikannya ? Untuk itu sebaiknya diperiksa dengan menekan F9, lalu diadakan perbaikan.
Untuk menjalankan tekan Ctrl+ F9 atau klik RUN , lalu klik lagi RUN.
2.2 Menyimpan program .
Klik File, Save As, lalu tentukan drive dan folder, lalu ketik nama file-nya misalnya CONTOH1. PAS, kemudian klik save
Catatan : 1.Extension PAS, bebas, boleh tidak diketik.
2.Cara lain :Tekan F2, sebagai pengganti klik File, Save As .
3 KOMPONEN TURBO PASCAL
3,1.Pernyataan (Statemen) Jamak
Statemen jamak adalah lebih dari sebuah statemen yang harus dikerjakan oleh pernyataan yang ada di atasnya. Statemen jamak biasanya ditulis di antara begin........end.
Dalam contoh program berikut ini akan mempergunakan statemen If-then
Bentuknya: If kondisi Then pernyataan1, artinya: Jika kondisi benar, maka yang
dikerjakan adalah pernyataan1, dan jika kondisi bernilai salah maka yang akan dikerjakan adalah pernyataan berikutnya ( pernyataan yang di bawahnya).
Contoh program sederhana:
Program pernyataan_jamak;
Var nilai :real;
ket, komen : string [25];
Begin
Nilai := 55.5;
Ket := ’Tidak Lulus’;
If nilai > 60 Then
Begin
Ket := ’Lulus’;
Komen := ’Memuaskan’;
End;
Writeln(’Keterangan : ‘,Ket);
Writeln (’Predikat : ’,Komen);
Readln;
End.
Keterangan :
1.Ket := ’Lulus’; dan Komen := ’Memuaskan’; adalah statemen jamak . dan jika Begin - End; dihapus maka hasilnya akan berbeda ..
2.Pernyataan If……Then……disebut juga penyeleksian kondisi.
4.MEMASUKKAN DATA
4.1 Penangkapan data ada 2 macam, yaitu Read dan Readln.
Prosedur Readln untuk memasukkan data perbaris, artinya setelah Anda menekan enter, maka akan berganti baris, sedangkan prosedur Read tidak berganti baris.
Contoh program:sederhana:
Program Celcius_Fahrenheit ;
( *program ini untuk mengkonversikan dari derajat Celcius menjadi Fahrenheit * )
Var c, f :real;
Begin
Write (‘Ketik berapa derajat celcius ? ‘) ;
Readln( c) ;
F := 1.8 * c + 32 ;
Writeln ;
Writeln (c,’derajat celcius adalah ‘,F,’ derajat fahrenheit);
Readln ;
End .
Keterangan :
1.readln(c) ; artinya memasukkan nilai ke variabel c , yaitu nilai yang anda ketik melalui key board.
2.readln ;adalah pernyataan untuk menyetop agar penampilan di layer setelah program dijalankan dapat di lihat
3.Tulisan yang diapit oleh tanda (*…….*) adalah suatu komentar yang tidak akan di baca (diproses) oleh computer. Dan tanda (*…….*) dapat diganti dengan tanda kurung kurawal { }.
4.2. Cara memasukkan data type Boolean.
Data type boolean tidak dapat di masukkan seperti data input, tetapi hal itu kita atasi dengan cara memasukkan data type char,lalu dibandingkan, apakah sama atau lain. Kalau sama berarti true sebaliknya kalau lain berarti False
Contoh program sederhana:
Program masuk –boolean :
Var a : char ;
B : boolean ;
begin
write (‘Silakan dijawab, Benar atau Salah (B/S) ?’);
readln(a);
b := (a = ’B’);
writeln (‘Yang Anda maksudkan: ‘,b);
readln ;
end.
Keterangan:
Setelah program ini dijalankan maka akan muncul: Silakan dijawab, Benar atau Salah (B/S) ? misalnya Anda menekan B, maka nilai variabel a =’B’ lalu dibawahnya ada pernyataan b := (a = ’B’); berarti è b :=(‘B’=’B’), maka hasilnya b := True, sebaliknya jika Anda menekan S, maka nilai variabel a =’S’ lalu dimasukkan dalam pernyataan b := (a = ’B’); berarti è b :=(‘S’=’B’), maka hasilnya b := False.
4.3 Memformat tampilan type integer, real , string
Integer diformat dengan X:12
Real diformat dengan X:12:2
String diformat dengan X:12
Contoh program
Program format_tampilan ;
Var bulat : integer ;
Pecah : real ;
Aks : string ;
Begin
Bulat := 25;
Pecah : = 2.57 ;
Aks : = ‘TURBO PASCAL’ ;
Writeln(bulat :12 );
Writeln(pecah :12:2);
Writeln(aks :12);
Readln;
End.
Hasilnya setelah di RUN .
|
4.4 Beberapa presedur standar yang harus melibatkan Uses crt; yaitu :
1. Clrscr = menghapus /membersihkan layar
2. Gotoxy(10,15) =memindahkan kursor ke kolom 10 dan baris 15 (layar terdiri dari 80 kolom, dan 25 baris).
3. ClrEOL = menghapus semua karakter di sebelah kanan kursor
4. Delline = menghapus semua karakter diposisi kursor dan baris-baris berikutnya bergeser ke atas.
5. Insline =menambah 1 baris kosong pada posisi kursor dan baris-baris berikutnya bergeser ke bawah.
6. Delay = untuk memperlambat proses program selama seperseribu detik. delay(5000) = memperlambat 1/1000 x 5000 = 5 detik.
5. PENGULANGAN
5.1 Pengulangan dengan For .....Do
Misalnya: For i:=1 to 5 Do Pernyataan1; Berarti: Pernyataan1 akan diulang 5 kali, dengan nilai I bergerak dari 1, 2, 3, 4, 5 Pergerakan nilai seperti ini disebut naik atau positif..
Bentuk lainnya adalah: For i:=5 downto 1 Do Statemen1; Berarti; Statemen1 akan diulang 5 kali, tetapi dengan hitungan turun atau negatif, yaitu: 5, 4, 3, 2, 1.
Contoh program sederhana:
Var x : integer ;
Begin
Writeln(‘--------------------------‘);
Writeln(‘x x*x x*x*x 1/x ‘);
For x:= 1 to 10 do
Writeln(x:3, x*x :8, x*x*x:8, 1/x :12:3);
Writeln(‘---------------------------‘);
readln ;
End .
Keterangan: Pernyataan yang ada di bawah For …Do, akan diulang 10 kali
Jika For x:= 1 to 10 do diganti dengan For x:= 10 downto 1 do ,maka pengulangan tetap terjadi 10 kali, hanya pergerakan nilai x mulai dari 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
5.2 Pengulangan bersarang, yaitu For ....do ada di dalam For ... do
Contoh pogram sederhana:
Var I, j : integer;
Begin
For i:=1 to 5 do
begin
For j:= 1 to 3 do
Write (i:8, j:4);
end ;
readln;
End.
Hasilnya: 1 1 1 2 1 3
2 1 2 2 2 3
3 1 3 2 3 3
4 1 4 2 4 3
5 1 5 2 5 3
5.3 Pengulangan dengan While –Do
Statemen While –Do digunakan untuk mengulang suatu statemen atau blok statemen terus-menerus selama kondisi bernilai true
Contoh program sederhana :
Var i : integer;
Begin
i := 0;
While i < 5 do
Begin
Writeln(i);
i := i +1;
End ;
readln ;
End.
Contoh lain ,yaitu program untuk mencari rata-rata
Uses crt ;
Var nilai, Total, rata : real;
n, i : integer ;
Begin
Clrscr;
Write(‘Berapa banyaknya data ?’); readln(n);
i := 0; total := 0 ;
While i < n do
Begin
i := i + 1;
Write(‘Berapa data ke ‘, i,’?’); readln(nilai);
Total := total + nilai ;
End ;
Rata := total / n ;
Writeln(‘Total nilai ‘,total:8:2);
Writeln(‘Rata-rata ‘,rata :8:2);
Readln ;
End .
Contoh program untuk menghetikan proses dengan data sentinel, data sentinel adalah bilangan untuk pemberitahukan bahwa pemasukan data telah selesai. Dalam program berikut ini data sentinelnya adalah 99999..
Uses Crt ;
Var
Nilai, Total, Rata : Real ;
I : Interger ;
BEGIN
Clrscr ;
I := 0 ; Total := 0 ; Nilai := 0 ;
While nilai <> 99999 do
Begin
I := I + 1 ;
Write(‘Berapa nilai ke ‘, I , ‘? ‘ ) ; Readln ( nilai ) ;
Total := Total + Nilai ;
End ;
Total := Total – 99999 ;
I := I – 1 ;
Rata : = Total / I
Writeln ( ‘ Total Nilai = ‘ , Total : 8 : 2) ;
Writeln ( ‘ Banyak Data = ‘ , I : 3) ;
Writeln ( ‘Rata – rata = ‘ , Rata : 8 : 2) ;
Readln ;
END .
Ket : Jika sudah di ketik 99999, maka While – Do akan berhenti .
Contoh memberhentikan program dengan Y/T
Uses Crt ;
Var
Nilai, Total, Rata : Real ;
i : Integer ;
Lagi : Char ;
BEGIN
Clrscr ;
i := 0 ; Total := 0 ; Lagi := ‘ Y ‘ ;
While lagi = ‘Y‘ do
Begin ;
i := 0 + 1 ;
Write ( ‘ Berapa Nilai ke ‘ , i , ‘ ? ‘ ) ; Readln ( Nilai ) ;
Total : = Total + Nilai ;
Write ( ‘ Ada Data Lagi ( Y / T ) ? ‘ ); Readln ( Lagi ) ;
End ;
Writeln ( ‘ Total Nilai = ‘ , Total : 8 : 2 ) ;
Writeln ( ‘ Banyak Data = ‘ , i : 3 ) ;
Writeln ( ‘ Rata – ratanya = ‘ , rata : 8 : 2 ) ;
Readln ;
END .
5.4 WHILE – DO YANG BERSARANG
Contoh Programnya :
Uses Crt ;
Var
Nilai, Total, Rata : Real ;
I , N : Integer ;
Lagi : Char ;
Begin
Lagi : = ‘Y‘ ;
While Lagi = ‘Y‘ Do
Begin
Clrscr ;
Write(‘ Berapa Banyak Data ? ‘) ; Readln(N) ;
I := 0; Total := 0;
While I < N Do
Begin
I := I + 1 ;
Write(‘Ketik Nilai Ke ‘ ,I) ; Readln(Nilai) ;
Total := Total + Nilai ;
End ;
Rata := Total / I ;
Writeln(‘ Jumlah Nilai = ‘, Total : 8 : 2 ) ;
Writeln(‘ Banyak Data = ‘, I) ;
Writeln(‘ Rata – rata = ‘, Rata : 8 : 2 ) ;
Writeln(‘ Akan menghitung lagi ( Y/T ) ? ‘) ; Readln (Lagi);
End ;
End .
5.5 Pengulangan dengan Repeat…Until
Repeat… Until digunakan untuk mengulang Statemen atau Blok Statemen sampai (Until) kondisi yang ditentukan terpenuhi.
Var i : Integer Keterangan :1.Dua statemen, yaitu i := i + 1 dan
Begin Writeln (i); akan diulang terus sampai terpenuhi
i : = 0 ; i = 5. Menurut program ini, nilai i yang pertama
Repeat tama adalah 0, kemudian ditambah 1 terus - me
i : = i + 1 ; nerus, sehingga nilainya 0. 1, 2, 3, 4, 5.
Writeln ( i ) ; Bila sudah mencapai maka program berhenti.
Until i = 5; 2.Repeat until, tidak memerlukan pembatas
End. Begin …End tetapi boleh diisi kalau mau.
5.6. Refeat … Until bersarang
Contoh sederhana:
Var A, B, C :Real;
Begin
Writeln(‘================‘);
Writeln(‘sisi A sisi B sisi C ’);
Writeln(‘----------------------------‘);
A :=1 ;
Repeat
B := 0 ;
Repeat
C := Sqrt(A*A + B*B);
Writeln(A:6:2, B:9:2, C:9:2);
B := B + 5;
Until B >25 ;
A := A + 1;
Until A > 3 ;
Writeln (‘================’);
End.
Keterangan :1. Pertama-tama yang diulang adalah repeat-until yang ada di dalam , sampai B > 25.
2. Repeat - until yang diluar akan melakukan pengulangan, setelah refeat –until dalam berhenti.
3. Agar lebih mengerti sebaiknya program di atas dicoba
6 MENYELEKSI KONDISI DENGAN IF .. Then …
6.1 Statemen If … then …
Bentuknya: If a >5 then writeln(‘Selamat‘);
Writeln(‘Sudah makan‘);
Penjelasan: 1.Jika kondisi telah menunjukan a>5, maka yang dikerjakan adalah pernyataan writeln(‘Selamat‘); lalu dilanjutkan dengan statemen dibawahnya.
2.Jika kondisi menentukan a ≤ 5, maka yang dikerjakan adalah langsung statemen yg dibawahnya: Writeln (‘Sudah makan ‘);
Contoh sederhana:
Var nilai: real ;
Ket : string [11];
Begin
Ket := ’Tidak Lulus’;
Write(‘Berapa nilai yang diperoleh ?’); readln(nilai);
If nilai > 60 then ket := ’Lulus‘;
Writeln(‘dinyatakan’, ket );
Readln;
End.
Contoh program menggunakan If- then, Gotoxy (lihat pasal 4.4), byte
Uses Crt ;
Var pilihan :byte ;
R, L, T, luas :real ;
Begin
Clrscr;
Gotoxy(10,2); Writeln (‘Pilihan’);
Gotoxy(10,4); Writeln (‘11. Menghitung luas lingkaran‘);
Gotoxy(10,5); Writeln (’12. Menghitung luas segi tiga’);
Gotoxy(10,8); Writeln (‘13, Menghitung luas segi- empat’);
Gotoxy(10,10); Writeln(‘0. Selesai .’);
Pilihan:=9;
While (pilihan < 0) Or (pilihan > 3) Do
Begin
Gotoxy(10,20); Writeln(‘pilih nomor (0-3) ?’);
Readln(pilihan);
End;
If pilihan =1 then
Begin
Write(‘Jari-jari lingkaran? ’); Read( R );
Luas := Pi * R * R;
Writeln(‘Luas lingkaran = ’,luas:9:2);
End;
If pilihan =2 then
Begin
Write(‘Panjang sisi alas ? ’) ; readln(L);
Write(‘Tinggi segitiga ? ’); readln (T);
Luas := 0.5 * L * T;
Writeln(‘Luas segitiga = ‘,luas:9:2);
End;
If Pilihan = 3 Then
Begin
Write(‘Panjang segi-empat ? ’) ;Readln (T) ;
Write(‘Lebar segi-empat ? ‘); Readln(L);
Luas := T * L ;
Write(‘Luas segi-empat = ’, Luas:9:2);
End;
End.
Keterangan : pi = π =13,14…
Rumus Luas Lingkaran = πR2
Luas Segitiga = ½.(tinggi . alas)
Luas Segi-empat = panjang x lebar
6.2. Statemen; lF……..Them…….Else
Bentuknya; lF a>5 then Pernyataan satu
Else Pernyataan dua ;
Pernyataan tiga;
Keterangan: 1. Jika a bernilai kurang dari 5, maka Pernyataan satu yang diproses, kemudian dilanjutkan dengan Pernyataan tiga .
2. Jika a bernilai lebih dari 5, maka yang diprotes adalah pernyataan dua , kemudian dilanjutkan dengan pernyataan tiga.
Contoh sederhana
Var nilai : real;
Begin
Write(‘Berapa memperoleh nilai ? ’); readln,(nilai);
If nilai >= 60 then writeln (‘LULUS’);
Else writeln(‘Tidak Lulus’);
Writeln(‘Itulah kenyataan………………!’);
Readln;
End
6.3 Statemen lF---then ---Else yang bersarang
Ada beberapa bentuk bersarang ;
lf Kondisi1 Then
Begin If Kondisi1 Then
If Kondisi2 Then lF Kondisi2 Then
Statemen1 Statemen1
Else Else
Statemen2 Statemen2
Statemen3 Else
End. Statemen3
Statemen4
Bentuk lain yang lebih komplek
lf Kondisi1 Then
Begin
lf Kondisi2 Then
Begin
If Kondisi3 Then
Begin
lf Kondiusi4 Then
Statemen1
Else
Statemen2
End;
End;
End.
Contoh progam mencari penyelesaian persamaan kuadrat
program IF_then_else_utk_mencari_akar_persamaan_kuadrat;
uses crt;
var A,B,C,D,Z1,Z2,X1,X2:real; {tidak boleh memakai var nil}
lagi:char;
label ulang;
begin
ulang:
clrscr;
writeln('Brp nilai A B C ? '); readln(a,b,c);
IF a=0 THEN
begin
writeln('Coba ulang, sebab nilai A tidak boleh nol,(enter)');readln;
goto ulang;
end {jangan diisi titik koma ;}
ELSE
D:=b*b-4*a*c;
If D=0 then
writeln('Mempunyai akar kembar, yaitu: X1 = X2 = ',-b/2*a:5:2)
Else {jangan diisi titik koma ; }
if D>0 then
begin
writeln('Punya 2 akar berlainan, yaitu: X1 = ',(-b+sqrt(D))/2*a:5:2);
writeln('dan X2 = ',(-b-sqrt(D))/2*a:5:2);
end {janagan diisi titik koma ;}
else
begin
write('Punya 2 akar imaginer, yaitu: X1 = ',-b/2*a:5:2,' + ');
writeln(sqrt(-D)/2*a:5:2,' i');
write(' X2 = ',-b/2*a:5:2,' - ');
writeln(sqrt(-D)/2*a:5:2,' i');
end;
writeln('Tekan enter untuk kembai ke program '); readln;
End.
Stateman Case Of.
Bentuk Case – Of
|
|
Beberapa contoh program yang sederhana;
1. Mengkonversikan huruf ke predikat.
var nilai:char;
begin
writeln('Nilai huruf yang didapat ?'); readln(nilai);
nilai:=upcase(nilai);
case nilai of
'A':writeln('Sangat Baik');
'B':writeln('Baik');
'C':writeln('Cukup'); var nilai:integer;
'D':writeln('Kurang');
'E':writeln('Gagal');
end;
readln;
end.
2. Mengkonversikan angka ke string
var nilai:integer;
begin
writeln('Nilai/angka 0 - 10 yang didapat ?'); readln(nilai);
case nilai of
10:writeln('Sangat Baik');
9,8:writeln('Baik');
7..5:writeln('Cukup');
4:writeln('Kurang');
3..0:writeln('Gagal');
end;
readln;
end.
3. Tanda-tanda bke bilangan.
program case_Of;
uses crt;
var nilai1, nilai2, hasil:real;
operasi:char;
begin
clrscr;
hasil:=0;
lowvideo;
gotoxy(10,5); writeln('[ ]');
gotoxy(29,5); writeln('[ ]');
gotoxy(33,5); writeln('[ ]');
gotoxy(52,5); writeln('=');
gotoxy(55,5); writeln('[ ]');
highvideo;
gotoxy(11,5); readln(nilai1);
gotoxy(30,5); readln(operasi);
gotoxy(34,5); readln(nilai2);
case operasi of
'+':hasil:=nilai1 + nilai2;
'-':hasil:=nilai1 - nilai2;
'*':hasil:=nilai1 * nilai2;
'/':hasil:=nilai1 / nilai2;
end;
gotoxy(56,5); Writeln(hasil:15:2);
readln;
end.
4.Konversi dari suatu interval bilangan ke suatu statemen.
program case_Of;
uses crt;
var beli, pot:integer;
begin
clrscr;
lowvideo;
gotoxy(10,5); write('Brp total pembelian ?'); readln(beli);
case beli of
0..1000:pot:=100;
1001..10000:pot:=500;
10001..30000:pot:=2000;
end;
writeln;
gotoxy(10,7); Writeln('Jumlah Pembelian = Rp ',beli:6);
gotoxy(10,8); Writeln('Potongan = Rp ',pot:6);
gotoxy(10,9); Writeln('------------------------------- -');
gotoxy(10,10);Writeln('Pembayaran = Rp ',beli-pot:6);
readln;
end.
7. TENTANG TIPE STRING.
7.1 Merangkai String..
Panjang Sting yang diperkenankan oleh Pascal adalah 255 karakter, Operator yang dimiliki oleh String adalah tanda +, yang artinya penggabungan .
Contoh program sederhana;
program Operasi_string;
uses crt;
const bhs='Bahasa'; nama='Turbo Pascal';
begin
writeln('Pelajaran '+nama+' adalah ',bhs,' Programan');
readln;
end.
Keterangan
Bila dijalankan, hasilnya:
Pelajaran Turbo Pascal adalah Bahasa Programan
7.2 Dua string adalah sama, jika isi dan panjangnya sama
Contoh: program sederhana:
program Syarat_v_Kondisi_berupa_string;
uses crt;
var bhs, nama:string;
begin
writeln('Pemrograman apa yg dipelajari ? ');readln(nama);
writeln('Bahasa apa yg dipelajari ? ');readln(bhs);
if nama=bhs then
writeln('Benar....!!!')
else
writeln('Salah......???');
readln;
end.
(
7.3 Perbandingan dua buah string .
Urutan karakter dari string adalah menurut kode ASCII, dimana A < B < C < D < E dan seterusnya, di bawah ini disampaikan sebagian dari tabel kode ASCII
Huruf | A | B | C | D | E | F | G | H | I | J | K | L | M | N |
Kode | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 |
Contoh sederhananya :
program Syarat_v_dgn_membandingkan_string;
uses crt;
var namaAnda, namaTeman:string;
begin
writeln('Ketik nama Anda ! ');readln(namaAnda);
writeln('Ketik nama Teman Anda ! ');readln(namaTeman);
if namaAnda=namaTeman then
writeln('Namanya sama....!!!');
if namaAnda<namaTeman then
writeln('Nama Anda urutannya lebih kecil')
else
writeln('Nama Anda urutannya lebih besar......???');
readln;
end.
7.4 Procedure Standar.
7.4.1 Delete
Misalnya Bahasa:= ‘TURBO PASCAL’;
Delete (Bahasa, 4, 3) ;
Aslinya : Nilai dari variabel Bahasa adalah TURBO PASCAL .
Delete = mengapus, maka yang dihapus adalah mulai dari posisi ke 4, ke kanan sebanyak 3 karakter, sehingga yang masih adalah TURPASCAL, yang terhapus adalah hurup B, hurup O dan Spasi .
Contoh program sederhana
Var bahasa := string[16] ;
urutan, posisi : integer;
Begin
Bahasa := ‘BORLAND DELPHI 7’;
For urutan := 1 to 16 Do
Begin
Posisi := 16 - urutan ;
Delete (bahasa, posisi, I);
Whiteln(Bahasa);
End;
Readln
End.
Bila program ini dinyalakan
BORLAND DELPHI
BORLAND DELPH
BORLAND DELP
BORLAND DEL dan seterusnya.
7.4.2Insert = menyisipkan
Bentuknya : Insert (‘*’, tulisan, 5);
Artinya :misalnya variabel tulisan = ‘SELAMAT’ , berarti kedalan teks TULISAN akan disisipkan suatu karakter yaitu karakter * dan penyisipan dilakukan pada posisi ke 5.
Hasilnya : Variabel tulisan akan bernilai SELA*MAT
Contoh program sederhana :
program Penyisipan_string_dgn_Insert;
uses crt;
const n=1;
var namaAnda, tampung,namaTeman:string;
begin
writeln('Ketik nama Anda ! ');readln(namaAnda);
writeln('Ketik nama Teman Anda ! ');readln(namaTeman);
Insert('XYZ',namaTeman,4); {artinya: namaTeman disisipi mulai no 4}
Insert('Drs.',namaAnda,n); {dgn huruf XYZ }
tampung:=namaAnda; writeln(tampung);
tampung:=namaTeman; writeln(tampung); {tampung type nya hrs string}
readln; {tdk boleh Char walaupun 1 huruf}
end.
7.4.3 Str berfungsi untuk merubah status data dari bilangan menjadi string
|
Artinya: Bilangan 21475 diformal :7 menjadi .Diubah statusny
Dan diubah statusnya menjadi string .
Dan disimpan kedalam variabel Sp
Cotoh programnya:
program merubah_status_bilangan_menjadi_string_dgn_Str;
var nilai1,nilai2:integer;
bil1, bil2:real;
x1,x2:string;
Begin
nilai1:=1234; {integer}
nilai2:=567;
write('Nilai1 + Nilai2 = ');
writeln(nilai1+nilai2);
str(nilai1:4,x1);
str(nilai2:4,x2);
write('Operasi string =');
writeln(x1+x2);
bil1:=1234.5; {real}
bil2:=567.56;
write('bil1 + bil2 = ');
writeln(bil1+bil2:9:2);
str(bil1:9:2,x1);
str(bil2:9:3,x2);
write('Operasi string =');
writeln(x1+x2);
readln;
end.
7.4.4. Val = mengkonversikan nilai string menjadi numeric
Bentuknya val(string, nilai, kesalahan );
Artinya 1.String = suatu variable atau constanta yang bertype string
Misalnya: Nama, 1247, 5, 147, A5, dll
2 Nilai string tersebut akan diubah menjadi bilangan (numerik), hingga bisa dijumlah, dikalikan atau dikurangkan. Dan setelah menjadi bilangan akan disimpan ke dalam variabel Nilai
3 Kesalahan adalah bilangan untuk menentukan letak kesalahannya
Contoh program :
program merubah_status_String_menjadi_bilangan_integer_real;
uses crt;
var posisiSalah:integer;
NilaiReal:real;
NilaiString:string[6];
Begin
clrscr;
{--Tidak ada kesalahan pd nilai String --------------------}
nilaiString:='123.476'; {string}
val(nilaiString,NilaiReal,PosisiSalah);
writeln('-----------------------------------------');
writeln('nilaiString = ',nilaiString);
writeln('nilaiString + nilaiString = ',nilaiString+nilaiString);
writeln('nilaiReal+ 100:9:2 = ',nilaiReal+100:9:2);
writeln('PosisiSalah = ',posisiSalah);
{--Lihat ada kesalahan----huruf A --------------------------}
nilaiString:='1A23.476'; {string ada kesalahan pd posisi 2}
val(nilaiString,NilaiReal,PosisiSalah);
writeln('------------------------------------------');
writeln('nilaiString = ',nilaiString);
writeln('nilaiString + nilaiString = ',nilaiString+nilaiString);
writeln('nilaiReal+ 100:9:2 = ',nilaiReal+100:9:2);
write('PosisiSalah = ',posisiSalah,' dari depan ada huruf A');
readln;
end.
l
7,4,5 Copy berfungsi untuk mengcopy sejumlah karakter
Bentuknya: Copy(kar, 5, 3);
Artinya : kar = adalah sejumlah karakter, misalnya TURBO PASCAL
yang akan di Copy.
Angka 5 = menunjukan mulai posisi 5 ke kanan akan dicopy
Angka 3 = menunjukan banyaknya karakter yang akan dicopy
Berarti hasilnya O P atau O, spasi, P
Contoh program:
program mengcopy_String;
uses crt;
var nilaiString:string[16];
huruf:string;
i,j:integer;
Begin
clrscr;
nilaiString:='ABCDEFGHIJKL'; {string}
For i:=1 to 12 do
begin
huruf:=Copy(nilaiString,i,1); {type dp huruf harus string,}
write(huruf,huruf);
For j:=35 downto 16+i do{79 downto 33+i do {tidak boleh CHAR }
begin
gotoxy(j*2,10);
writeln(huruf)
end;
end;
readln;
End.
7.4.6. Concat yang berfungsi untuk menggabungkan beberapa string. Jadi fungsinya sama persis dengan operator string +(plus).
Contoh program sederhana:
Const nama =: ‘Pascal’;
dk = ’dan keluarga’;
Begin
Writeln (contat(‘Bahasa’,Nama,’untuk Anda ‘, dk));
Readln;
End.
Jika dijalankan hasilnya: Bahasa Pascal untuk Anda dan keluarga
7.4.7 Pos gunanya untuk menentukan posisi suatu skring dalam string yang lain .
Contoh program sederhana
Const Abjad = ’ABCDEFGHIJKLMNOPQRSTUVWXYZ’ ;
Kar1 = ’ FGHI’;
Kar2 = ’F’ ;
Kar3 = ’JUGA’;
Kar4 = ’DCB’;
Kar5 = ’PQRST’;
Begin
Writeln (Pos(Kar1, abjad));
Writeln (Kar2; ada di ,Pos(kar2, abjad));
Writeln (Kar3; ada di,Pos(kar3 abjad));
Writeln (Kar3; ada di,Pos(kar3 abjad));
Writeln (kar4; ada di,Pos (kar4 adjad));
Writeln (kar5; ada di, Pos (kar5 adjad));
Readln;
End.
Jika di jalankan didapat:
6
F ada di 6
JUGA ada di 0, karena ‘JUGA’ tidak beraturan letak hurufnya
DCB ada di 0, karena ‘DCB ,tidak sesuai dgn abjad urutannya .
PQRST ada di 16.
Contoh penggunaan POS pada program yang lebih kompleks:
program kaki;
var feet,meter:real;
lagi:char;
begin
lagi:='Y';
while (lagi='Y') or (lagi='y') do
begin
write('Brp Feet ? '); readln(feet);
meter :=feet*3.281;
writeln(feet:7:2,' feet = ',meter:7:2,' meter');
lagi:=' ';
while pos(lagi,'YyNn')=0 do
begin
write('menghitung lagi ? '); readln(lagi);
writeln('Untuk mengecek pos',pos(lagi,'YyNn'));
end;
end;
readln;
end.
7,4,8 Length digunakan untuk menghitung banyaknya karakter di dalam suatu string .
Contoh program sederhana:
Var nama : string[50] ;
Begin
Writeln(‘Siapa nama Anda ?’); readln (nama);
Writeln(‘Panjang nama Anda adalah ‘, length(nama);
Readln ;
End.
Jika dijalankan :
Siapa nama Anda? I WAYAN GEDE
Panjang nama Anda adalah 12
Ket :Spasi, titik, koma, juga dihitung oleh .Length
Contoh lain, yaitu cara untuk meletakan teks supaya di tengah-tengah layer secara horizontal, dengan memanfaafkan Length
program Membuat_tulisan_simetris;
uses crt;
var NamaAnda:string[50];
huruf:string; {tidak mau type char}
i,j,panjang,tengah:integer;
Begin
write('Ketik nama Anda ! '); readln(namaAnda);
panjang :=Length(namaAnda);
tengah:=40-panjang div 2;
clrscr;
For i:=1 to 24 do begin gotoxy(1,i);write('||');end;
For i:=1 to 24 do begin gotoxy(79,i);write('||');end;
For i:=1 to 79 do begin gotoxy(i,1);write('=');end;
For i:=1 to 79 do begin gotoxy(i,24);write('=');end;
i:=1;
For j:=tengah to Tengah+panjang do
begin
huruf:= copy(NamaAnda,i,1);
gotoxy(j,10);
write(huruf,' ');
i:=i+1;
end;
readln;
End.
8. MEMASUKAN DATA
8.1 Menunggu penekanan tombol, sehingga tampilan setelah dijalankan dapat dilihat lebih lama.
8.1.1 Dengan Readln, untuk menunggu penekanan Enter.
Contoh program sederhan:
Uses Crt;
Begin
Writeln(‘Tekan tombol Enter….’); readln;
Clrscr ;
Writeln(‘Apa chabar….?’); readln;
End.
8.1.2 Menunggu penekanan sembarang tombol dengan fungsi Keypressed Keypressed akan bernilai boolean True bila pemakai sudah menekan sembarang tombol. Keypressed bernilai boolean False, Jika pemakai belum menekan sembarang tombol. Keypressed harus melibatkan Uses Crt;
Contoh program sederhana
User Crt;
Begin
While not keypressed do
Writeln(‘Ulang lagi selama tidak menekan tombol’);
End.
Penjelasan : 1 Program jalan terus selama tidak menekan sembarang tombol
2 ika menekan tombol, maka keypressed akan bernilai True, dan not Keypressed akan bernilai False
Untuk mengetahui nilai boolean dari pada keypressed dan not keypressed cobalah jalankan program berikut ini:
Uses Crt ; {Statemen ini harus dilibatkan dlm penggunaan Keypressed}
Var I : integer;
Begin
I ;= 0;
While I < 10 do
Begin
Writeln(‘Nilai Not Keypressed ‘, not keypressed);
Writeln(‘Nilai Keypressed ‘, keypressed );
I := I + l;
delay(50000); {untuk memperlambat proses program}
End;
End.
8.1.3 Readkey mempunyai 3macam kegunaan, yaitu:
1. Menunggu penekanan tombol sembarang, hampir sama dengan fungsi Readln
2. Untuk memasukan sebuah nilai karakter dari tombol yang di tekan misalnya tombol A - Z, 0 - 9, ^ , ? dan yang lain.
Contoh progaram
Uses Crt ;
Var Tbl: Char;
Begin
Tbl := readkey; {Tbl bernilai char dari apa yang ditekan}
Writeln(‘Hasilnya ‘,Tbl); { nilai Tbl dapat dicetak}
End.
3. Untuk menangkap nilai null dan nilai extended code dari tombol khusus , yaitu tombol F1, F2, F3, …….10
Contoh programnya :
Uses Crt;
Var tombol : Char;
Begin tombol := Readkey ; {untuk menangkap nilai null}
if tombol = #0 then
Begin
tombol := readkey;
if tombol = #59 then
writeln(‘Tombol F1 yang Anda tekan’)
else
begin
writeln(‘Anda menekan tombol extended code’);
writeln(‘yang lain dari pada F1’);
end;
End;
Else writeln(‘Tombol yang ditekan adalah ‘,tombol);
END.
DAFTAR PUSTAKA
Jogiyanto Prof. Dr., (2005). Turbo Pascal Versi 5.0 Jilid 1, Penerbit ANDI yogyakarta, Yogyakarta..
Jogiyanto Prof. Dr., (2004). Bahasa Turbo Pascal Teori dan Aplikasi Program Komputer Jilid 2, Penerbit ANDI yogyakarta, Yogyakarta..
Abdul Kadir,(1999),Pemrograman Pascal Buku I, Andi Offset, Yogyakarta.
Abdul Kadir,(2002),Pemrograman Pascal Buku II, Andi Offset, Yogyakarta.
Tidak ada komentar:
Posting Komentar