Tutorial Gabungan Pointer dan Struct (revisi 120925-r05)

Kembali ke Lab 03

  • Buat berkas cobapointerstruct.c dengan isi hampir sama dengan Tutorial Pengenalan Struct sebelumnya. Lihat perbedaannya di comment baris pertama. Ganti [NPM _anda] denga NPM anda, contohnya 1202000818 tanpa tanda kurung siku. Ganti TOKEN dengan token anda.
    $ vi cobapointerstruct.c

    // [NPM_anda] was here!
    // ZCZC TOKEN
    
    #include<stdio.h>
    
    typedef struct person
    {
       char *name;
       int age;
    } PERSON;
    
    int main()
    {
       PERSON pp;
       pp.name = "John Smith";
       pp.age = 25;
       printf("%s\n",pp.name);
       printf("%d\n",pp.age);
       return 0;
    }
  • Dalam program ini, struct PERSON pp diinisialisasi menjadi sebuah variabel, dan operasi umum yang dilakukan terhadap sebuah variabel juga bisa dilakukan terhadap PERSON, termasuk membuat pointer ke variabel ini seperti yang telah kita lakukan di Tutorial Pointer.
  • Modifikasi program cobapointerstruct.c, Tambahkan variabel char *address dan char *phone ke dalam struct person. Jadi sekarang ada 4 variabel di struct person, yaitu name, age, address dan phone. Isi variabel-variabel tersebut di method main dengan:
    address="Jalan Carita no. 25 Kukusan Depok"
    phone="02145187543"
    Dan print juga isi kedua variabel tersebut dengan menggunakan printf seperti untuk name dan age.
  • Simpan hasil pekerjaan anda. Compile menjadi executable cobapointerstruct. Jalankan program pointerstruct.
    :wq
    $ gcc -o cobapointerstruct cobapointerstruct.c
    $ ./cobapointerstruct

    John Smith
    25
    Jalan Carita no. 25 Kukusan Depok
    02145187543
  • Sekarang tambahkan sebuah varibel pointer PERSON *pptr yang akan menunjuk ke alamat PERSON pp.
    PERSON *pptr;
    pptr = &pp;
  • Untuk mengisi variabel di PERSON pp dari pointer PERSON pptr, kita harus menggunakan tanda (->) bukan (.). Contohnya untuk membuat nama PERSON pp menjadi "John Smith", code:
    pp.name = "John Smith";

    diganti menjadi
    pptr->name = "John Smith";

    Ubah cara pengisian keempat variabel (name, age, address dan phone) di dalam program cobapointerstruct.c menjadi seperti di atas.
  • Demikian juga saat kita ingin mengakses isi dari struct PERSON pp dari pointer PERSON pptr, kita harus menggunakan tanda (->), contohnya:
    printf("%s\n",pp.name);

    diganti menjadi
    printf("%s\n",pptr->name);

    Ubah juga cara pengaksesan isi keempat variabel di dalam struct menjadi seperti di atas.
  • Simpan dan compile ulang hasil pekerjaan anda.
    :wq
    $ gcc -o cobapointerstruct cobapointerstruct.c
  • Jalankan program pointerstruct dengan merekam outputnya ke dalam berkas cobapointerstruct.txt.
    ./cobapointerstruct > cobapointerstruct.txt
  • Isi dari cobapointerstruct.txt harus sama dengan di bawah ini
    $ cat cobapointerstruct.txt

    John Smith
    25
    Jalan Carita no. 25 Kukusan Depok
    02145187543
  • Demikian akhir dari Tutorial Gabungan Pointer dan Struct.

Kembali ke Lab 03
Kembali ke Wiki