A. Pointer
1. Jelaskan
apa yang anda ketahui tentang pointer!
2. Apa
tujuan dari pengunaan pointer!
3. Jelaskan
bagaimana cara deklarasi pointer!
4. Buatlah
program Sederhana yang mengimplementasikan pointer! Berikan penjelasan anda
tentang program tersebut
B. Function
1. Jelaskan Apa yang anda ketahui tentang
Function!
2. Apa
itu parameter formal dan apa itu parameter aktual!
3. Sebut
dan jelaskan cara melewatkan parameter! Jelaskan dengan contoh program
sederhana!
4. Apa
yang dimaksud dengan variabel global, lokal, statis dan register!
5. Apa
yang anda ketahui tentang fungsi rekursif, jelaskan!
C. Operasi
File
1. Buatlah
program sederhana berkaitan tentang write dan read dalam operasi file!
Jawab :
A. 1.
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori
dari suatu variabel lain. Alamat ini
merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori.
2.
Tujuan dari penggunaan pointer adalah untuk menyimpan alamat memori dari sebuah
variabel (data type atau object dari class), serta untuk menyimpan alamat dari
sebuah fungsi (function pointer).
3. Seperti halnya variabel yang lain, variabel pointer juga harus
dideklarasikan terlebih dahulu sebelum
digunakan. Bentuk Umum :
Tipe_data
*nama_pointer;
Tipe data pointer mendefinisikan tipe dari obyek yang ditunjuk oleh
pointer. Secara teknis, tipe apapun dari pointer dapat menunjukkan lokasi
(dimanapun) dalam memori. Bahkan operasi pointer dapat dilaksanakan relatif
terhadap tipe dasar apapun yang ditunjuk. Contoh, ketika kita mendeklarasikan
pointer dengan tipe int*, compiler akan menganggap alamat yang ditunjuk
menyimpan nilai integer - walaupun sebenarnya bukan (sebuah pointer int* selalu
menganggap bahwa ia menunjuk ke sebuah obyek bertipe integer, tidak peduli isi
sebenarnya). Karenanya, sebelum mendeklarasikan sebuah pointer, pastikan
tipenya sesuai dengan tipe obyek yang akan ditunjuk.
4.
#include
#include
int main()
{
int I=21,F;
int*IF;
F=I;//nilai variabel F di isi nilai variabel I
IF=&I;//pointer IF menuju alamat memori variabel I
//sekarang alamat memori variabel I dan IF sama
*IF=16;//alamat memori pointer IF di isi 16, sekarang IF bernilai 16
//pengisian nilai pointer IF langsung melalui alamat memorinya
printf("nilai dari IF=%d\n",*IF);
printf("nilai dari I=%d\n",I);
printf("nilai dari F=%d\n",F);
return 0;
}
int main()
{
int I=21,F;
int*IF;
F=I;//nilai variabel F di isi nilai variabel I
IF=&I;//pointer IF menuju alamat memori variabel I
//sekarang alamat memori variabel I dan IF sama
*IF=16;//alamat memori pointer IF di isi 16, sekarang IF bernilai 16
//pengisian nilai pointer IF langsung melalui alamat memorinya
printf("nilai dari IF=%d\n",*IF);
printf("nilai dari I=%d\n",I);
printf("nilai dari F=%d\n",F);
return 0;
}
B. 1.
Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan
suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya.
Fungsi merupakan elemen utama dalam bahasa C karena bahasa C sendiri terbentuk
dari kumpulan fungsi-fungsi.
2. Parameter Formal adalah variabel yang ada pada daftar parameter dalam
definisi fungsi.
Parameter Aktual adalah variabel (parameter) yang dipakai dalam pemanggilan fungsi.
3.
·
Pemanggilan parameter dengan
nilai telah kita praktekkan pada tulisan sebelumnya khususnya pada tulisan
tentang parameter formal dan aktual.
Pada pemanggilan dengan nilai, kita hanya menyalin nilai dari parameter aktual
ke parameter formal tanpa mengubah nilai pada parameter aktual tersebut. Dengan
cara ini parameter aktual tidak akan berubah meskipun nilai pada parameter
formal berubah-ubah.
#include
void tukar(int,int);
int main ()
{
int a=5;
int b=9;
{
int a=5;
int b=9;
printf(“nilai sebelum pemanggilan fungsi :n”);
printf(“a = %d dan b = %d”,a,b);
printf(“a = %d dan b = %d”,a,b);
tukar(a,b);
printf(“nilai setelah pemanggilan fungsi :n”);
printf(“a = %d dan b = %d”,a,b);
printf(“a = %d dan b = %d”,a,b);
return
0 ;
}
}
void
tukar(int x, int y)
{
int z;
{
int z;
z
= x;
x = y;
y = z;
x = y;
y = z;
printf(“nilai
diakhir fungsi tukar() :n”);
printf(“x = %d dan y = %d”,x,y);
}
printf(“x = %d dan y = %d”,x,y);
}
·
Pemanggilan dengan referensi merupakan
upaya untuk melewatkan alamat dari suatu variabel kedalam fungsi. Dengan cara
ini kita bisa mengubah isi sebuah variabel diluar fungsi dengan rutin program
didalam fungsi. Untuk melakukannya kita memerlukan sebuah variabel pointer,
yaitu sebuah variabel yang dipakai untuk penunjuk ke variabel lain atau lebih
jelasnya variabel pointer adalah variabel yang berisi alamat dari variabel
lain.
#include
void tukar(int *px, int *py);
int main ()
{
int a=5;
int b=9;
{
int a=5;
int b=9;
printf(“nilai sebelum pemanggilan fungsi :n”);
printf(“a = %d dan b = %dnn”,a,b);
printf(“a = %d dan b = %dnn”,a,b);
tukar(&a,&b);
printf(“nilai setelah pemanggilan fungsi :n”);
printf(“a = %d dan b = %d”,a,b);
printf(“a = %d dan b = %d”,a,b);
return 0 ;
}
}
void tukar(int *px, int *py)
{
int z;
{
int z;
z = *px;
*px = *py;
*py = z;
*px = *py;
*py = z;
printf(“nilai diakhir fungsi tukar() :n”);
printf(“*px = %d dan *py = %dnn”, *px, *py);
}
printf(“*px = %d dan *py = %dnn”, *px, *py);
}
4. Variabel global (eksternal)
Variabel global (eksternal) adalah variabel
yang dideklarasikan di luar fungsi. Sifat sifat variabel global :
·
Dikenal (dapat diakses) oleh semua fungsi.
·
Jika tidak diberi nilai awal secara otomatis
berisi nilai nol.
·
Dideklarasikan dengan menambahkan kata
“extern” (opsional).
Variabel lokal
Variabel lokal adalah variabel yang
dideklarasikan di dalam fungsi. Sifat-sifat variabel lokal :
·
Secara otomatis akan diciptakan ketika fungsi
dipanggil dan akan lenyap ketika proses eksekusi terhadap fungsi berakhir.
·
Hanya dikenal oleh fungsi tempat variabel
dideklarasikan
·
Tidak ada inisialisasi secara otomatis (saat
variabel diciptakan nilainya random).
·
Dideklarasikan dengan menambahkan kata “auto”
(opsional).
Variabel Statis
Variabel statis adalah variabel yang
nilainya tetap dan bisa berupa variabel local (internal) dan variabel global
(eksternal). Sifat-sifat variabel statis :
Ø
Jika bersifat internal (lokal), maka variabel
hanya dikenal oleh fungsi tempat variabel dideklarasikan.
Ø
Jika bersifat eksternal (global), maka
variabel dapat dipergunakan oleh semua fungsi yang terletak pada program yang
sama.
Ø
Nilai variabel statis tidak akan hilang walau
eksekusi terhadap fungsi telah berakhir.
Ø
Inisialisasi hanya perlu dilakukan sekali
saja, yaitu pada saat fungsi dipanggil pertama kali.
Ø
Jika tidak diberi nilai awal secara otomatis
berisi nilai nol.
Ø
Dideklarasikan dengan menambahkan kata
“static”.
Variabel Register
Variabel Register adalah variabel yang nilainya disimpan dalam register
dan bukan dalam memori RAM. Sifat-sifat variabel register :
Ø
Hanya dapat diterapkan pada variabel lokal
yang bertipe int dan char.
Ø
Digunakan untuk mengendalikan proses
perulangan (looping).
Ø
Proses perulangan akan lebih cepat karena
variabel register memiliki kecepatan yang lebih tinggi dibandingkan variabel
biasa.
Ø
Dideklarasikan dengan menambahkan kata
“register”.
5.
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri secara langsung
ataupun tidak, dan proses pemanggilannya itu disebut rekursi. Masalah yang
dapat diselesaikan secara rekursif adalah masalah yang dibagi menjadi satu atau
lebih masalah – masalah serupa yang lebih kecil.
C.
Program
write and read
#include
#include
int main()
{
int
num;
FILE
*fptr;
fptr
= fopen("C:\\program.txt","w");
if(fptr == NULL)
{
printf("Error!");
exit(1);
}
printf("Enter num: ");
scanf("%d",&num);
fprintf(fptr,"%d",num);
fclose(fptr);
return 0;
}
Hasil
program akan berupa sebuah notepad yang nantinya bisa di baca dengan program
read
Setelah
menggunakan program write untuk membacanya menggunakan program read dengan
program yaitu
#include
#include
int
main()
{
int num;
FILE *fptr;
if ((fptr = fopen("C:\\program.txt","r"))
== NULL){
printf("Error! opening file");
// Program exits if the file pointer
returns NULL.
exit(1);
}
fscanf(fptr,"%d", &num);
printf("Value of n=%d", num);
fclose(fptr);
return 0;
}
Dengan hasil program
Yang membaca program write tadi.
Comments
Post a Comment