Assalamualaikum teman temann š
Welcome back with me, Inneee dari elka 19 yang akan menemani kalian selama beberapa menit kedepan heheš¤š¤ oiya harus dibaca sampe abis ! awas aja kalo engga:(
Jadi pada pertemuan kali ini kita akan mempelajari tentang Pointer dan Penggunaannya dalam Fungsi. temen temen disini ada yang udah tau pointer itu apa? Kalo belum yuk langsung dibaca aja.
ā¢Jadi apa tujuan kita belajar pointer?
Tujuan
Mempelajari penggunaan varuable pointer yang dipadukan dengan varuable bertipe integer, array, dan string serta penggunaan pointer dalam suatu fungsi, baik sebagai penunjuk fungsi atau sebagai argument fungsi. Dipelajari juga pada praktikum ini pointer yang menunjuk pointer lainnya.
ā¢Sebelum ke praktikumnya yuk dibaca dulu teori dan contohnya dulu!
Teori
Pointer adalah suatu variabel yang berisi alamat memori dari suatu variabel lainnya. Alamat ini merupakan lokasi dari objek lain di dalam memori. Untuk mendeklarasikan sebuah variabel pointer, kita harus menggunakan tanda asterik/bintang ( * ) di depan variabel yang akan dideklarasikan.
Format Penulisan :
tipe_data *nama_variabel;
Untuk mendapatkan alamat dari variabel pointer yang telah dideklarasikan sebelumnya, kita harus menggunakan tanda ampersand (&) didepan variabel pointer tersebut.
Format Penulisan :
&nama_variabel;
Sedangkan untuk mendapatkan nilai dari variabel pointer yang telah dideklarasikan, kita harus menggunakan tanda asterik ( * ) didepan variabel pointer tersebut.
Format Penulisan :
*nama_variabel;
Contoh Penulisan :
#include <stdio.h>
int main () {
int nilai = 10;
int *nilai2;
nilai2 = &nilai;
printf(āAlamat variabel nilai: %x\nā, &nilai );
printf(āIsi variabel nilai2: %d\nā, *nilai2 );
getch();
return 0;
Program Percobaan
1.Mengakses isi suatu variable melalui pointer.
/* Nama File : POINTER1.C */
void main()
{
int y, x = 2002; /* x & y bertipe int */
int *px; /* var pointer menunjuk data tipe int */
px = &x; /* px diisi alamat dari variabel x */
y = *px; /* y diisi nilai yang ditunjuk oleh px */
printf(āAlamat x = %p\nā, &x);
printf(āIsi px = %p\nā, px);
printf(āIsi x = %d\nā, x);
printf(āNilai *px = %d\nā, *px);
printf(āNilai y = %d\nā, y);
getch();
}
2. Mengamati persamaan penggunaan variable index pada array dan variable index pada pointer
/* Nama File : STRING2.C */
void main()
{
int nilai[10]={86,75,98,66,56,76,80,95,70,60};
int index, *ip;
printf(āMencetak menggunakan array\nā);
printf(āDaftar nilai siswa\n\nā);
for(index=0; index<10; index++)
printf(ā%3dā,nilai[index]);
puts(ā\nā);
printf(āMencetak menggunakan pointer dan index\nā);
printf(āDaftar nilai siswa\n\nā);
for(index=0; index<10; index++)
printf(ā%3dā,*(nilai+index));
puts(ā\nā);
printf(āMencetak menggunakan pointer\nā);
printf(āDaftar nilai siswa\n\nā);
ip=&nilai;
for(index=0; index<10; index++)
printf(ā%3dā,*ip++);
getch();
}
3. Pointer yang menunjuk ke pointer lain
/* Program : POINTER3.C */
void main()
{
int a, *b, **c;
a = 1975;
b = &a;
c = &b;
printf(āNilai a = %d atau %d atau %d\nā, a, *b, **c);
printf(āb = %p = alamat a di memori\nā, b);
printf(āc = %p = alamat b di memori\nā, c);
printf(āalamat c di memori = %p\nā, &c);
getch();
}
4. Fungsi dengan argumen berupa pointer
/* Nama File : POINTER4.C */
void naikkan_nilai(int *x, int *y);
main()
{
int a = 3, b = 7;
printf(āSEMULA : a = %d b = %d\nā, a, b);
naikkan_nilai(&a, &b);
printf(āSEKARANG : a = %d b = %d\nā, a, b);
getch();
}
void naikkan_nilai(int *x, int *y)
{
*x = *x + 2;
*y = *y + 3;
}
5. fungsi mempunyai nilai balik bertipe pointer
/* Nama File : POINTER5.C */
#include <stdio.h>
char *nama_bulan(int n)
{
static char *bulan[] = {
āKode bulan salahā,
āJanuariā,āFebruariā,āMaretā,āAprilā,āMeiā,āJuniā,
āJuliā,āAgustusā,āSeptemberā,āOktoberā,āNovemberā,
āDesemberā
};
return ((n<1||n>12) ? bulan[0] : bulan[n]);
}
void main()
{
int bl;
printf(āMasukkan kode Bulan [1..12] : ā);
scanf(ā%dā, &bl);
printf(āBulan ke-%d adalah %s\nā, bl, nama_bulan(bl));
getch();
}
6. Penggunaan fungsi *strlwr(str)
/* Nama File : POINTER6.C */
#include <stdlib.h>
#include<string.h>
void main()
{
char str1[80], str2[80], *ptrx;
strcpy(str1,āINI ADALAH HURUF BESAR SEMUA!!!ā);
strcpy(str2,āini adalah huruf kecil semua!!!ā);
ptrx = NULL;
cputs(āIsi str1 = ā); puts(str1);
cputs(āIsi str2 = ā); puts(str2);
cputs(āIsi ptrx = ā); puts(ptrx);
ptrx = (char *) calloc(80, sizeof(char));
ptrx = strlwr(str1);
puts(ā\nSeletelah āstr1ā diproses dengan strlwr()\nā);
cputs(āIsi str1 = ā); puts(str1);
cputs(āIsi ptrx = ā); puts(ptrx);
ptrx = strupr(str2);
puts(ā\nSeletelah āstr2ā diproses dengan strupr()\nā);
cputs(āIsi str2 = ā); puts(str2);
cputs(āIsi ptrx = ā); puts(ptrx);
getch();
}
Masih pada bingung ga si temen temen??
Untuk lebih paham lagi yuk simak contoh dibawah ini!!
1. TUGAS 9.1
Membuat program untuk menyimpan bilangan pecahan acak sebanyak 12 bilangan.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
static int a,b[16],c,d;
char e[16],*f;
menu:
printf(“\n Angka sebelum diurutkan …\n”);
for(a=1;a<13;a++)
{
printf(” Angka ke %d = “,a);
scanf(“%d”,&b[a]);
}
printf(“\n Angka setelah diurutkan …\n”);
for(a=1;a<13;a++)
{
for(d=a+1;d<13;d++)
{
if(*(b+a)>*(b+d))
{
c=*(b+d);
*(b+d)=*(b+a);
*(b+a)=c;
}
}
printf(” Angka ke %d = %d\n”,a,*(b+a));
}
printf(“\n Ketik ‘exit’ untuk keluar …\n”);
gets(e);
printf(” “);
gets(e);
f=strlwr(e);
if(strcmp(f,”exit”)==0);
else
{
system(“cls”);
goto menu;
}
}
2. Tugas 9.2
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
static int a[12][12],b,c,*d,e,f,g;
char h[8],*i;
menu1:
g=1;
for(e=0;e<12;e++)
{
for(f=0;f<12;f++)
a[e][f]=48;
}
menu2:
system(“cls”);
d=&a;
printf(“\n\r”);
for(e=1;e<13;e++)
{
for(f=1;f<13;f++)
printf(“%2c”,*d++);
puts(“”);
}
if(g>1)
{
printf(“\n Ketik ‘lanjut’ untuk melanjutkan.”);
printf(“\n Ketik ‘ulang’ untuk mengulang dari awal.”);
printf(“\n Ketik ‘exit’ untuk keluar.\n “);
gets(h);
gets(h);
i=strlwr(h);
if(strcmp(i,”lanjut”)==0)
{
g=1;
goto menu2;
}
else if(strcmp(i,”ulang”)==0)
goto menu1;
else if(strcmp(i,”exit”)==0);
else goto menu2;
}
else
{
g++;
printf(“\n Masukkan koordinat matrix dengan jarak 1 – 12 …\n “);
scanf(“%d%d”,&b,&c);
–b;
–c;
a[b][c]=120;
goto menu2;
}
}
Udah dulu ya man teman:)) Semoga bermanfaatš¤š¤š¤
Recent Comments