Pointer

Pointer adalah suatu variabel yang menunjuk kealamat memory variabel yang lainnya. Suatu pointer bukan berisi dengan suatu nilai data seperti halnya padavariabel biasa, variabel pointer berisi dengan suatu alamat. Untuk mendeklarasikan variabel pointer kita menggunakan tanda asterik / bintang (*) didepan variabel yang dideklarasikan pada tipe data tertentu. Tanda ini juga dapat dipakaiuntuk mengakses nilai dari variabel yang telah ditunjuk. Untuk mendapatkan alamat dari variabel pointer kita menggunakan tanda (&).Dalam pembahasan ini variabel yang berisi alamat.

Deklarasi& Isi

Deklarasivariabel pointer sepertihalnyadeklarasivariabellainnyahanyaditambahkantanda * padadepannamavariabel.
int *b
Untukmendapatkanalamatmemori pointer (address of) makaperintah yang digunakanadalahmenambahkantanda&didepanvariabel
&b
Untukmendapatan Isi ataunilaidarivariabel pointer makaperintah yang digunakancukupnamavariabelnyasaja.
b
Untukmendapatkanisiataunilaidarialamat yang terdapatpadaisi pointer (value pointed by) makaperintah yang digunakanadalahmenambahkantanda * didepanvariabel
*b

Contoh :
capture

Notasi Type Bentukan

Liem (2007 : 36) menjelaskan “Type bentukan adalah suatu TYPE yang dirancang/dibentuk (dan diberi nama) dari beberapa komponen bertype tertentu, jadi merupakan sekumpulan elemen bertype dasar atau bertype yang sudah dikenal. Type bentukan dibuat/didefinisikan karena perancang program memutuskan bahwa keseluruhan (hasil komposisi) komponen type tersebut mempunyai sebuah makna semantik ada relasi yang persis antara satu elemen dengan yang lain. Operasi terhadap komponen (elemen) bertipe dasar dilakukan seperti yang didefinisikan pada tipe dasar. Operasi terhadap keseluruhan tipe mungkin didefinisikan atau tidak. Type bentukan seringkali disebut sebagai type komposisi, agregat. Implementasinya dalam suatu bahasa sangat bervariasi satu sama lain. Dalam notasi algoritmik, sebuah type bentukan berupa agregasi elemen dituliskan dengan notasi :
type bentukan :”
Contoh :
Type SIM
{Type SIM menyatakan representasi “Surat Ijin Mengemudi” dalam notasi}
type SIM :
Jika dideklarasi NAMA variable S sebagai berikut :
S : SIM {artinya S adalah sebuah SIM}
Maka cara mengacu/mengakses karakter dan nilai elemen yang tersimpan pada S yang telah terdefinisi adalah :
S.nama {menghasilkan karakter nama bertype string [1..100]}
S.alamat (menghasilkan karakter alamat bertype string [1..100}]
S.tempat tgl lahir {menghasilkan karakter tempat tanggal lahir bertype string [1..100]}
S.tinggi {menghasilkan nilai tinggi badan bertype integer [0…250]}
S.pekerjaan {menghasilkan karakter pekerjaan bertype string [1..100]}
S.berlaku s/d {menghasilkan karakter masa berlaku SIM bertype string [1..100]}
Domain :
Konstanta :

Operator :
• Operator terhadap SIM harus dibuat
• Operator string terhadap nama, alamat, tempat tgl lahir, pekerjaan, berlaku s/d dan integer terhadap tinggi

Notasi Algoritmik Search Maks, Min, Jumlah Genap, Jumlah Ganjil

Function minmaks( data ← Array of integer, bats ← integer, minim ← integer, maks ← integer)
{ Spesifikasi program : Menentukan nilai maksimal dan minimal dari sekumpulan data }
Kamus lokal :
{
Q ← integer
}
Algoritma :
{
repeat( q ← 0)

if(minim>data[q])
minim=data[q]
else if(maks<data[q])
maks=data[q]
end if
q+=1
until q < bats
}
Procedure jumgenap( bil ← Array of integer, bts ← integer )
{ Spesifikasi prosedur : Menentukan jumlah angka genap dari sekumpulan data }
Kamus lokal :
{
I ← integer
Jum ← integer
Jum ← 0
}
Algoritma :
{
Repeat ( I ← 0 )
If( bil mod 2 ← 0 ) then
Jum+=1
I+=1
Until I < bts
}

Procedure jumganjil( bil ← Array of integer, bts ← integer )
{ Spesifikasi prosedur : Menentukan jumlah angka ganjil dari sekumpulan data }
Kamus lokal :
{
I ← integer
Jum ← integer
Jum ← 0
}
Algoritma :
{
Repeat ( I ← 0 )
If( bil mod 2 ≠ 0 ) then
Jum+=1
I+=1
Until I < bts
}

Notasi Algoritmik Sorting ASC dan DSC

Procedure bubsort_asc( data ← Array of integer, bts ← integer )
{ Spesifikasi prosedur : Mengurutkan data mulai dari terkecil }
Kamus lokal :
{
a ← integer
b ← integer
temp ← integer
}
Algoritma
{
repeat ( a ← bts-2 )
repeat ( b ← 0 )
temp ← data[b]
data[b] ← data[b+1]
data [b+1] ← temp
until b ≤ a
a-=1
until a ≥ 0
}

Procedure bubsort_dsc( data ← Array of integer, bts ← integer )
{ Spesifikasi prosedur : Mengurutkan data mulai dari terbesar }
Kamus local :
{
a ← integer
b ← integer
temp ← integer
}
Algoritma
{
repeat ( a ← 0 )
repeat ( b ← 0 )
if ( data[b+1] > data[b] ) then
do temp ← data[b]
data[b] ← data[b+1]
data [b+1] ← temp
end if
b+=1
until b ← bts-1
a+=1
until bts-1
}

Notasi Algoritmik Menentukan Huruf Vokal atau Konsonan

Procedure vocal_konsonan( teks ← string )
{ Spesifikasi prosedur : Menentukan karakter berupa huruf vokal atau konsonan }
Kamus lokal : {}
Algoritma :
{
If ( teks ← ‘a’ OR teks ← ‘i’ OR teks ← ‘u’ OR teks ← ‘e’ OR teks ← ‘o’ ) then
do output “ Huruf vokal ”
else if ( teks ← ‘A’ OR teks ← ‘I’ OR teks ← ‘U’ OR teks ← ‘E’ OR teks ← ‘O’ ) then
do output “ Huruf vokal ”
else
do output “ Huruf konsonan ”
end if
end if
}

Notasi Algoritmik Menentukan Bilangan Prima, Genap, Ganjil dan Tahun Kabisat

Procedure prima( num ← integer )
{ Spesifikasi prosedur : Menentukan angka inputan apakah bilangan prima }
Kamus lokal :
{
x ← integer
Stat ← integer
}
Algoritma
{
If ( num ≤ 1 ) then
Do output “ Bilangan Prima ”
Else
If (num ← 2 ) then
Do output “ Bilangan Prima ”
Else
Repeat ( x ← 2 )
If ( num mod x ← 0 ) then
Stat ← 0
Break
Else
Stat ← 1
End if
x+=1
Until x < num
If ( stat ← 0 ) then
Do output “ Bukan Bilangan Prima ”
Else
Do output “ Bilangan Prima”
End if
End if
End if
}

Procedure ganjilgenap( bil ← integer )
{ Spesifikasi prosedur : Menentukan angka inputan apakah bilangan ganjil atau genap }
Kamus lokal :{}
Algoritma :
{
If( bil mod 2 ← 0 ) then
Do output “Bilangan genap”
Else
Do output “Bilangan ganjil”
End if
}

Procedure kabisat ( tahun ← integer )
{ Spesifikasi prosedur : Menentukan tahun yang diinput apakah tahun kabisat }
Kamus local : {}
Algoritma :
{
If ( tahun mod 4 ← 0 ) then
Do output “ Tahun Kabisat”
Else if ( tahun mod 100 ← 0 AND tahun mod 400 ← 0 ) then
Do output “ Tahun kabisat ”
Else if ( tahun mod 100 ← 0 AND tahun mod 400 ≠ 0 ) then
Do output “ Bukan tahun kabisat ”
Else
Do output “ Bukan tahun kabisat ”
End if
End if
End if
}

Notasi Algoritmik Konversi Nilai ke Huruf

Function nilaihuruf( tgsP, utsP, uasP, tgsT, utsT, uasT ← integer ) → string
{ Spesifikasi fungsi : Input nilai tugas, uts, uas menghasilkan nilai akhir yang dikonversi ke karakter }
Kamus lokal :
{
NA ← real
NH ← char
}
Algoritma :
{
NA ← 0.1*tgsP + 0.2*utsP + 0.2*uasP + 0.05*tgsT + 0.2*utsT + 0.25*uasT
If ( NA > 85 ) then
do NH ← ‘A’
else if (NA 75 ) then
do NH ← ‘B’
else if (NA 60 ) then
do NH ← ‘C
else if (NA 50 ) then
do NH ← ‘D’
else
do NH ← ‘E’
end if
end if
end if
end if
return NH
}