Menanya Mencoba Aktivitas belajar siswa
{ menyimpan masukan user ke dalam variabel string}
new ……………;
{Mengalokasikan memori untuk pointer} ikata:=kata;
{Menginisiasi nilai awal yang ditunjuk pointer} { ……………………………………………………………………………………………….}
for i:=1 to lengthkata do ikata[i]:= kata [lengthkata+1-i];
{ ……………………………………………………………………………………………….} if kata= ikata then writelnKata : , kata
, adalah palindrom { ……………………………………………………………………………………………….}
else writelnKata : , kata, bukan palindrom
karena jika dibalik menjadi : , ikata; { ……………………………………………………………………………………………….}
disposeikata; { ……………………………………………………………………………………………….}
readln; end.
Hasil Percobaan Program PointerPalindrom1 :
Hasil Kompilasi beri tanda silang pada bagian yang sesuai Berhasil, tanpa kesalahan
Tidak berhasil, ada kesalahan
Output Program:
. program PointerPalindrom2;
uses crt; const max =25;
var arr: array [1..max] of String; n,i: byte;
spoin:String; ispalindrom:boolean;
begin clrscr;
writeMasukan banyaknya elemen palindrom : ; readlnn;
for i:=1 to n do begin writeMasukan elemen ke-,i, : ;
readlnArr[i]; end;
spoin:=arr[n]; ispalindrom:=true;
for i := 1 to n do begin if arr[i]=spoin then begin
ispalindrom:=ispalindrom and true; decspoin;
end else begin ispalindrom:=ispalindrom and false;
end; end;
if ispalindrom then writelnPalindrom
else writelnBukan palindrom;
readln; end.
Hasil Percobaan Program PointerPalindrom2 :
Hasil Kompilasi beri tanda silang pada bagian yang sesuai Berhasil, tanpa kesalahan
Tidak berhasil, ada kesalahan
Output Program:
Percobaan 2
Jika seorang pengusaha memiliki 10 buah perusahaan, dimana perusahaan pertama memperoleh laba 5.000.000, perusahaan kedua memperoleh laba 1.000.000, perusahaan ketiga
memperoleh laba 4.000.000, perusahaan keempat memperoleh laba 6.000.000, perusahaan kelima memperoleh laba 4.000.000, perusahaan keenam memperoleh laba 5.000.000,
perusahaan ketujuh memperoleh laba 10.000.000, perusahaan kedelapan memperoleh laba 7.000.000, perusahaan kesembilan memperoleh laba 3.000.000, perusahaan kesepuluh
memperoleh laba 8.000.000, berapakah laba total yang diperoleh pengusaha tersebut? Berapakah rata-rata laba pengusaha tersebut? Apakah ada perusahaan yang mempunyai laba sama dengan
rata-rata, lebih dari rata-rata, dan lebih dari rata-rata? Untuk mengetahui jawaban dari pertanyaan kedua, salin dan lengkapilah program berikut
ke dalam Freepascal, kemudian lakukan kompilasi Compile Alt+F9. Jika kompilasi menghasilkan pesan kesalahan maka perhatikan kesalahan yang terjadi. Jika kompilasi berhasil lanjutkan dengan
menjalankan program Ctrl+F9 dan amati hasilnya. program LabaPrshn;
uses crt; const max =20;
var arr: array [1..max] of integer; n,i: byte;
ipoin, temp:integer; begin
clrscr; writeMasukan banyaknya unit perusahaan : ;
readlnn; for i:=1 to n do begin
writeMasukan Laba Unit ke-,i, : ; readlnarr[i];
end; ipoin:=arr[1];
Newtemp; temp:=0;
for i := 1 to n do begin temp:=temp+ipoin;
{Menghitung Jumlahan setiap elemen array} incipoin;
{Pointer sekarang
menunjuk lokasi
tepat setelahnya dari lokasi semula}
end; WritelnTotal Laba dari setiap unit : , temp;
WritelnRata rata laba : , tempn:2:2; ipoin:=arr[1];
for i :=1 to n do if ipointempn then begin
writelnUnit ke ,i, di atas rata laba unit; incipoin;
end else if ipoin=tempn then begin
writelnUnit ke ,i, sama dengan rata laba unit;
incipoin; end else begin
writelnUnit ke ,i, di bawah rata laba unit;
incipoin; end;
readln; disposetemp;
end.
Hasil Percobaan Program LabaPrshn :
Hasil Kompilasi beri tanda silang pada bagian yang sesuai Berhasil, tanpa kesalahan
Tidak berhasil, ada kesalahan
Output Program:
Percobaan 3
Letak titik pada bidang XoY ditulis dalam bentuk pasangan bilangan x,y dimana x disebut absis dan y disebut ordinat. Format yang dipakai selalu x,y dengan urutan yang tidak dapat
dibalik. Pada bidang koordinat tersebut, titik A terletak pada koordinat 1,0, ditulis A1,0, titik B terletak pada koordinat 2,4, ditulis B2,4, titik C terletak pada koordinat 5,7, ditulis dengan
C5,7, dan titik D terletak pada koordinat 6,4 ditulis D6,4. Untuk mencari jarak antara dua titik dapat digunakan rumus
√
Keterangan: Jarak = jarak dua titik
= nilai x pada titik pertama = nilai x pada titik kedua
= nilai y pada titik pertama = nilai y pada titik kedua
Untuk mengetahui jawaban dari pertanyaan Apakah Pointer dapat memecahkan masalah terkait dengan jarak antara dua titik. Salin dan lengkapilah program berikut ke dalam Freepascal,
kemudian lakukan kompilasi Compile Alt+F9. Jika kompilasi menghasilkan pesan kesalahan maka perhatikan kesalahan yang terjadi. Jika kompilasi berhasil lanjutkan dengan menjalankan
program Ctrl+F9 dan amati hasilnya. program PointerJarak;
uses crt; var x1,y1,x2,y2:integer;
jarak:real; begin
clrscr; Newx1;
Newy1; Newx2;
Newy2; Newtemp;
writeMasukan nilai x1 : ; readlnx1;
writeMasukan nilai y1 : ; readlny1;
writeMasukan nilai x2 : ; readlnx2;
writeMasukan nilai y2 : ; readlny2;
writelnx1,y1,x2,y2; jarak:=sqrtx1-x2x1-x2+y1-y2y1-y2;
WritelnJarak dari
Dua titik
tersebut :
, jarak:0:2;
readln; disposex1;
disposey1; disposex2;
disposey2; disposejarak;
end.
Hasil Percobaan Program PointerJarak :
Hasil Kompilasi beri tanda silang pada bagian yang sesuai Berhasil, tanpa kesalahan
Tidak berhasil, ada kesalahan
Output Program: