ASSALAMUALAIKUM SOBAT REDAKSI

Kembali lagi dengan saya Dery si manusia C 🙂
Pada kesempatan kali ini, saya akan melanjutkan pembahasan dari artikel yang sudah saya bahas sebelumnya. Pembahasan kali ini yaitu tentang VARIABEL POINTER & PENGGUNAANNYA DALAM FUNGSI.

Sebelum masuk pada pembahasan, Tujuan dari pembahasan kali ini yaitu Mempelajari penggunaan Variable pointer yang diapdukan dengan variable bertipe integer, array dan string serta penggunaan pointer dalam suatu fungsi, baik sebagai petunjuk fungsi atau sebagai argumen fungsi.

Pointer adalah sebuah variabel berisi alamat memori dari variabel yang lain. Pointer seperti variabel pada umumnya, ia harus dideklarasikan atau dibuat dulu sebelum dapat digunakan.

Cara membuat pointer:

int *nama_pointer;
double *nama_pointer;
float *nama_pointer;
char *nama_pointer;

Pointer selalu diawali dengan tanda bintang (*) di depannya. Simbol ini akan menandakan, kalau ini adalah sebuah pointer.

Tipe data yang digunakan pada pointer tergantung dari tipe data variabel yang akan menjadi referensinya.

Contoh:

float a = 4.12;
float *pa = &a;

Pointer *pa akan menyimpan alamat memori dari variabel a. Pointer *pa juga akan bisa mengakses dan mengubah nilai dari variabel a.

Nah, setelah mengetahui tentang String kali ini mari mencoba membuat sebuah program dengan memberikan Pointer.

  • Membuat program untuk menyimpan bilangan pecahan acak sebanyak 12 bilangan, yang disimpan dalam suatu array. Urutkan bilangan-bilangan tersebut dan ditampilkan sebelum dan sesudah diurutkan menggunakan index array dan pointer.

    Ketiklah program dibawah ini :
    #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;
    }
    }

    Coba Jalankan programnya, maka outputnya akan terlihat seperti gambar dibawah :

    • Facebook
    • Twitter
    • Google+
    • Pinterest
  • Membuat program yang menyimpan data karakter ‘X’ pada suatu array yang berdimensi 12 x 12, kemudian tampilan menggunakan index pointer.

    Ketiklah program dibawah ini :
    #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;
    }
    }

    Coba Jalankan programnya, maka outputnya akan terlihat seperti gambar dibawah :

    • Facebook
    • Twitter
    • Google+
    • Pinterest

Nah, Bagaimana sobat redaksi. Belajar bahasa C itu tidak mudah, namun menyenangkan.
Sekian dari saya, sampai jumpa di pembahasan selanjutnya 🙂

WASSALAMUALAIKUM WR. WB