Pointer

27 Januari 2010

Setelah mengikuti pelatihan dalam modul ini Anda diharapkan telah memiliki kemampuan :
– memahami konsep pointer
– mendeklarasikan tipe data pointer
– memanfaatkan pointer dalam pemecahan masalah

Pengantar
Tipe data primitive (integer, string, boolean) termasuk tipe data statis artinya bahwa tipe data tersebut memiliki keterbatasan cakupan (range) nilai. Sebagai contoh bahwa tipe data integer hanya memiliki nilai antara -32786 s.d 32767. Keterbatasan cakupan nilai pada tipe data statis dapat diatasi dengan menggunakan tipe data pointer.
Jika pada tipe data statis suatu pengenal langsung menyimpan data yang ada di memory maka tipe pointer akan menunjuk ke suatu alamat di memory dan alamat memory tersebut yang menunjuk nilai tertentu di memory. Pengenal yang bertipe pointer selanjutnya dapat menunjuk pengenal bertipe pointer lainnya tanpa batas sehingga akan membentuk suatu pengenal yang dapat menunjuk pengenal lainnya hingga tak terhingga. Keterbatasan hubungan (link) antar pengenal hanya karena kapasitas memory.

Deklarasi Tipe Data Pointer
Setiap pengenal yang bertipe pointer harus terlebih dahulu dideklarasikan/dikenalkan. Misalkan diinginkan suatu pengenal bertipe pointer Integer maka deklarasinya dapat seperti berikut ini:

var
luas : ^integer;
begin
luas^:=50;
writeln(luas^);
end.

Mengalokasikan Memory di Heap
Heap merupakan tempat di memory di komputer yang digunakan sebagai tempat pengalokasian pengenal pointer. Untuk mengalokasikan pengenal pointer digunakan prosedur New.

var
luas : ^integer;
begin
new(luas);
luas^:=50;
writeln(luas^);
end.

Mendealokasikan Memory di Heap
Heap merupakan tempat di memory di komputer yang digunakan sebagai tempat pengalokasian pengenal pointer. Untuk mengalokasikan pengenal pointer digunakan prosedur Dispose.

var
luas : ^integer;
begin
new(luas);
luas^:=50;
writeln(luas^);
dispose(luas);
end.

Latihan 1. Menjumlahkan dua buah bilangan integer dengan pengenal pointer

Program Jumlah(A,B);
Uses Crt;
Var
A,B,C : ^integer;
Begin
Clrscr;
New(A);
New(B);
New(C);
write(‘Nilai A = ‘);readln(A^);
write(‘Nilai B = ‘);readln(B^);
C^:=A^+B^;
writeln(‘ A + B = ‘,C^);
dispose(A);
dispose(B);
dispose(C);
readln;
end.

Pointer Berantai
Suatu pengenal pointer dapat menunjuk ke pengenal pointer lainnya sehingga membentuk hubungan (link) yang berantai sehingga sering disebut dengan link list.
Misalkan diinginkan untuk menyimpan data mahasiswa dengan rekord seperti berikut ini:
Nim : string[8];
Nama : string[30];
maka deklarasi pengenal pointer rekord mahasiswa tersebut dapat didefenisikan sebagai berikut:

 Type Simpul = ^Data
         Data = Record
         Nim : String[8];
         Nama : String[30];
         Berikut : Simpul;
        End;

Var
  Mahasiswa : Simpul;

Dalam deklarasi Type didefenisikan suatu pengenal baru yang bernama simpul. Pengenal simpul menunjuk ke suatu pengenal ^Data yang bertipe rekord. Rekord terdiri atas 3 field yaitu nim, nama dan berikut. Field berikut merupakan field yang digunakan untuk menunjuk (link) ke pengenal simpul yang lainnya.

Latihan 2. Buat program untuk menyimpan data mahasiswa dengan menggunakan pengenal pointer berkait

Program Data_Mahasiswa;
Uses Crt;
Type Simpul = ^Data
         Data = Record
         Nim : String[8];
         Nama : String[30];
         Berikut : Simpul;
        End;
Var
  MahasiswaA,MahasiswaB : Simpul;
  Bantu : Simpul;
Begin
 Clrscr;
 New(MahasiswaA);
 MahasiswaA^.Nim:='10010001';
 MahasiswaA^.Nama:='Irvan Aginta Ginting';
 MahasiswaA^.Berikut:=Nil;
 New(MahasiswaB);
 MahasiswaB^.Nim:='10010002';
 MahasiswaB^.Nama:='Irvan Aginta Ginting';
 MahasiswaB^.Berikut:=MahasiswaA;

 Bantu:=MahasiswaB;
 While (Bantu^.Berikut<Ni>l) Do
 Begin
   Writeln(Bantu^.Nim, Bantu^.Nama);
   Bantu:=Bantu^.Berikut;
 End;

Readln;
End.
Iklan

Pemrograman Grafis

6 Januari 2010

Setelah mengikuti pelatihan pada Modul XI, Anda diharapkan telah memilki kemampuan untuk :
– memahami konsep gambar
– menciptakan obyek grafis di form
– mengenali control grafis di toolbox
– memanipulasi obyek grafis

Pengantar

Kiasan “Satu Gambar Memiliki Sejuta Arti” merupakan ungakapan yang banyak diutarakan orang. Peminat seni gambar memandang suatu gamar dari beragam segi mulai dari ukuran, bentuk, warna, pencahayaan gambar, kondisi serta waktu pembuatan gambar, serta segi-segi yang lainnya. Para penikmat seni gambar akan mampu menjelaskan elemen gambar yang terkecil hingga yang terbesar. Tentu saja bagi orang yang bukan peminat seni memandang perilaku seniman (spt : seniman gambar) kadang-kadang mememperlihatkan perilaku yang aneh dalam menikmati suatu gambar. Yah.. begitulah seorang seniman. Ha.ha.ha.ha.ha.ha….

Gambar di komputer terbentuk dari himpunan titik-titik gambar. Titik disebut dengan pixel (picture element). Pixel merupakan element terkecil dari suatu gambar. Pixel dapat diberi warna tertentu. Dari himpunan titik dapat dibentuk obyek-obyek gambar seperti garis, lingkaran, segitiga, persegi, balok, ellips, dan sebagainya. Banyak teknik pemrograman yang telah diciptakan untuk menciptakan obyek-obyek gambar.

Semakin banyak titik pembentuk gambar maka kualitas gambar akan semakin baik. Bila layar komputer Anda memiliki resolusi 800 x 600 px menandakan bahwa sepanjang sumbu X dapat diletakkan 800 pixel dan sepanjang sumbu Y dapat ditempatkan 600 pixel. Tentu saja gambar tampilan gambar akan lebih baik bila resolusi layar monitor Anda 1024 X 768, 1024 X 800 atau bahkan lebih.

Di toolbox Visual Basic terdapat dua kontrol yang dapat digunakan untuk memanipulasi gambar yaitu control Picture dan Image. Selain itu control Form juga dapat digunakan sebagai area gambar

a. Menciptakan titik di form
Visual Basic telah menyediakan fungsi Pset untuk menciptakan titik. Format penulisan dari Pset:

Pset (X,Y),Warna

dimana X : adalah posis titik di sumbu X; Y : posisi titik di sumbu Y; Warna adalah warna dari titik.

a. Menciptakan titik di Form
1. Buka Proyek Standar.Exe
2. Simpan Proyek dengan nama PTitik
3. Simpan Form dengan nama FTitik
4. Ganti properti form
– Name : FrmTitik
– Caption : Titik
5. Tuliskan kode berikut di Event Form_Paint

Private Sub Form_Paint()
Pset (1000,1000),yellow
End Sub

6. Eksekusi Proyek dengan menekan tombol F5 di keyboard

Mungkin saja titik di Form sulih melihatnya. Bagian berikut akan dicetak himpunan titik-titik dengan memanfaatkan pernyataan perulangan (looping statement).

7. Tekan simbol Close (X) untuk kembali ke perancangan

b. Menciptakan Garis di Form
1. Ubah kode program di event Form_Paint

Private Sub Form_Pain()
Dim I As Integer
For I=1000 To 2000 Step 1
Pset (I,1000),Yellow
Next I
End Sub

2. Simpan Form dan Proyek dengan mengklik menu File –> Save Project
3. Eksekusi Proyek dengan menekan F5 di keyboard

4. Kembali ke perancangan dengan menekan simbol Close (X)

c. Menciptakan Grafik Sinus di Form
1. Ubah properti Form
-WindowState : Maximized
2. Ubah kode program di Form_Paint

Private Sub Form_Paint()
Dim I,TengahLayar As Integer
Dim Y,Radian As Single
TengahLayar = Screen.Height / 2
For I = 0 To Screen.Width Step 1
Radian = 3.14 / 180 * I
Y = Sin(Radian)
PSet (I, TengahLayar + Y * 1000), yellow
Next I
End Sub

3. Simpan kode dengan menekan tombol Ctrl + S di keyboard
4. Eksekusi Proyek dengan menekan F5 di keyboard

5.Tekan simbol Close (X) untuk mentup Jendela Eksekusi

c. Menciptakan Jaring Laba-Laba di Form
1. Ciptakan Proyek Standard.Exe
2. Simpan Proyek dengan nama PLingkaran
3. Simpan Form dengan nama FLingkaran
4. Ganti properti Form
– Name : FrmLingkaran
– Caption : Lingkaran
– WindowState : Maximized
5. Masukkan control Timer ke Form
– Name : TmrLingkaran
– Interval : 1000 (dalam satuan milisecond. 1 detik = 1000 milisecond)
3. Ketikkan Kode Program Berikut di Jendela Kode.

Dim JariJari As Integer
Dim XTengah, YTengah As Single

4. Tambahkan Event Form_Load

Private Form_Load()
JariJari=0
XTengah=Screen.Width/2
YTengah=Screen.Height/2
Randomize(10)
End Sub

5.Ubah kode program di Form_Paint seperti di bawah ini:

Private Sub Form_Paint()
Circle (XTengah, YTengah), JariJari, RGB(Rnd() * 255, Rnd() * 255, Rnd(255) * 255)
End Sub

6. Tambahkan Event TmrLingkaran_Timer()

Private Sub TmrLingkaran_Timer()
JariJari = JariJari + 100
If (JariJari > YTengah) Then
JariJari = 100
Cls
End If
Form_Paint
End Sub

7. Simpan Kode Program dengan menekan Tombol Ctrl + S
8. Eksekusi Proyek dengan menekan F5

9. Tutup Jendela Eksekusi dengan menekan simbol Close (X)

Jalanya program bekerja dapat dijelaskan seperti berikut:
1. Pada saat Anda menekan F5 maka Event Form_Load akan dikerjakan.
JariJari=0
XTengah=Screen.Width/2
YTengah=Screen.Height/2
Randomize(10);

ctt : Randomize(10) dapat saja Anda tuliskan menjadi Randomize(1), Randomize(2). Angka berapa saja bisa dituliskan. Fungsi Prosedur ini agar Visual Basic setiap memanggil fungsi Rnd akan membangkitkan bilangan acak yang berbeda. Jika Anda tidak menggunakan fungsi Randomize maka bilangan acak yang dibangkitkan dari fungsi Rnd akan tetap sama.

2. Event Form_Paint dikerjakan.
Circle (XTengah,YTengah),JariJari,RGB(Rnd()*255,Rnd()*255,Rnd()*255)

ctt : RGB merupakan fungsi menuliskan warna. R = Red, G=Green, B=Blue. Kalau Anda perhatikan pada fungsi RGB terdapat tiga parameter. Nilai ketiga parameternya akan dirandom mulai dari angka 0 hingga 254. Percampuran antara nilai Red, Green dan Blue tentu akan diberikan sebagai nilai akhir.

Pada tahap ini tentu saja penciptaan lingkaran telah dilakukan, namun karena jari-jari lingkaran masih 0 maka lingkaran tidak terlihat di Form.

3. 50 milisecond ( 1/20 detik) kemudian dikerjakan Event TmrLingkaran_Timer()
JariJari=JariJari+100
IF (JariJari>YTengah) Then
JariJari=100
Cls
End IF
Form_Paint

JariJari ditambah 100. Kemudian diuji apakah JariJari lebih besar dari YTengah. Hal ini dilakukan agar jari-jari lingkaran tidak melebihi layar. Jika JariJari lebih besar dari Y Tengah maka kembalikan nilai JariJari menjadi 100, kemudian form dibersihkan dari obyek grafis. Selanjutnya prosedur Form_Pain dipanggil.

4. Setiap 50 second akan dipanggil kembali Prosedur Form_Paint

b. Menciptakan titik di Control Picture
Control Picture menyediakan beragam fungsi untuk memanipulasi grafis.


Modul I

5 Mei 2009

Setelah mengikuti pelatihan dalam Modul I ini, Anda diharapkan memiliki kemampuan:
– menjelaskan tentang Bahasa C
– mengenali lingkungan terpadu Bahasa C
– menjalankan kode program sederhana

Pendahuluan


Modul I

2 Mei 2009

Tujuan

  • Mengenali bahasa pemrograman pascal
  • Memiliki kemampuan mengenali struktur bahasa Pascal
  • Mampu membuat kode Pascal sederhana

Pendahuluan
Bahasa diciptakan oleh Prof. Niklaus Wirth pada tahun 1971 di Universitas Zurich. Tujuan dari penciptaannya adalah untuk membantu para mahasiswanya menuliskan kode program secara terstruktur.
Dalam perkembangannya, bahasa pemrograman Pascal banyak digunakan di sekolah-sekolah sebagai bahasa pemrograman dasar dengan harapan pola pikir anak didik akan terpola secara sistematis.
Disamping itu terdapat bahasa pemrograman yang dikembangkan dari keunggulan-keunggulan bahasa pemrograman Pascal seperti Delphi, C#, dll.

1.1 Menjalankan Program Pascal
Bila Anda menjalankan sistem operasi windows, maka untuk mengaktifkan program Pascal dapat dilakukan dengan menjalankan file exexutabel (exe) Turbo.Exe. Bila sudah dilakukan maka akan muncul lingkungan pengembangan terpadu Pascal (pascal integrated development environtment – IDE) seperti gambar 1.1. Di jendela IDE Anda dimungkinkan untuk membuat, mengedit, menyimpan, mengatur kode program maupun penterjemah (compiler) sehingga program kita dapat berjalan dengan baik dan benar.

1.2 Menuliskan kode program
Ketikkan kode program berikut:

Begin
   Wrilten("Hallo Pascal");
End.

1.3 Mengeksekusi kode program
Tekan tombol Ctrl + F9

1.4 Menyimpan kode program
Tekan tombol Alt + F
Tekan huruf s
Simpan kode program dengan nama modul1

1.5 Menutup Program
-Tekan tombol Alt + F
-Tekan huru x

Kesimpulan

Pendapatan Anda

Referensi