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:

4.3.2.4. Mengasosiasi menalar

Setelah siswa melakukan percobaan yang sesuai dengan pertanyaan yang ada, siswa diharapkan melakukan kegiatan menalar yang bisa dilakukan secara individu oleh masing-masing siswa atau bisa juga berkelompok. Beberapa hal yang bisa dijadikan arahan untuk menalar: 1. Perhatikan hasil kompilasi, apakah berhasil atau justru terjadi kesalahan. 2. Perhatikan urutan proses dari setiap program yang sudah dicoba. 3. Perhatikan letakposisi kesalahan, coba pikirkan mengapa terjadi kesalahan pada posisi tersebut. 4. Cobalah membuat kesimpulan dari percobaan yang telah dilakukan.

4.3.3. Rangkuman

1. Pointer dapat menyelesaikan dengan baik permasalahan mengenai polindrom, baik menggunakan pointer ke string ataupun pointer ke array 2. Pointer dapat menyelesaikan dengan baik masalah terkait laba dan rugi suatu perusahan. 3. Pointer juga dapat menyelesaikan masalah dengan baik mengenai jarak antara dua titik.

4.3.4. TugasPortofolio

1. Buatlah program persamaan linier yang menerima inputan x dan menghasilkan nilai y dengan persamaan y = 3x + 4 dimana x dan y adalah variabel pointer dan dealokasikan variabel x, dan y setelah selesai digunakan. Susun laporan yang terdiri atas kode program, penjelasan program, dan output dari program. 2. Buatlah program menggunakan pointer untuk menyelesaikan masalah berikut: Diketahui kota P terletak pada P2,7 dan kota Q terletak pada Q10,3 akan dibuat jalan tol yang menghubungkan antara kota P dan kota Q, jika biaya per satuan jarak jalan tol adalah Rp 100.000.000,00 maka berapakah dana minimal yang harus disiapkan? Susun laporan yang terdiri atas kode program, penjelasan program, dan output dari program. 3. Buatlah program menggunakan pointer untuk menghitung frekuensi huruf ”a” yang terdapat pada kalimat : ”ada apa dengan SMK”. Susun laporan yang terdiri atas kode program, penjelasan program, dan output dari program. 4. Buatlah program menggunakan pointer untuk mengubah derajat suhu dari celsius ke Fahrenhit, Reamur dan Kelfin. Susun laporan yang terdiri atas kode program, penjelasan program, dan output dari program. 5. Buatlah program menggunakan pointer untuk menyelesaikan masalah anagram huruf- hurufnya sama tetapi diacak. Program yang menerima masukan berupa dua buah kata, kemudian memeriksa apakah kedua kata tadi termasuk anagram atau tidak. Contoh: ”SEBAB” dan ”BEBAS” adalah anagram ”KAPAS” dan ”PASAK” adalah anagram Susun laporan yang terdiri atas kode program, penjelasan program, dan output dari program.