Menu
CoddyTech

Operator Panah (->)

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 45 dari 63.

Saat bekerja dengan pointer ke struct, kamu memerlukan sintaks khusus untuk mengakses anggota struct. Kamu bisa menggunakan operator dereferensi dan notasi titik secara bersamaan, tetapi C menyediakan operator yang lebih praktis khusus untuk keperluan ini: operator panah (->).

Operator panah memungkinkan kamu mengakses anggota struct melalui pointer dengan cara yang rapi dan mudah dibaca:

ptr->member

Ini setara dengan menulis (*ptr).member, tetapi jauh lebih ringkas.

Berikut cara kerjanya dalam praktik:

struct Point p1 = {10, 20};
struct Point *ptr = &p1;

// Menggunakan operator panah
printf("x = %d, y = %d\n", ptr->x, ptr->y);

// Ini sama dengan:
printf("x = %d, y = %d\n", (*ptr).x, (*ptr).y);

Operator panah membuat kodemu lebih rapi dan mudah dibaca, terutama saat bekerja dengan struktur data yang kompleks. Operator ini adalah cara standar untuk mengakses anggota struct melalui pointer dalam pemrograman C.

challenge icon

Tantangan

Mudah

Buat program C yang menunjukkan penggunaan operator panah untuk mengakses anggota struct melalui pointer. Programmu harus:

  1. Definisikan struct bernama Book dengan anggota berikut:
    • Integer id untuk menyimpan ID buku
    • Array karakter title berukuran 40 untuk menyimpan judul buku
    • Array karakter author berukuran 30 untuk menyimpan nama penulis
    • Float price untuk menyimpan harga buku
    • Integer pages untuk menyimpan jumlah halaman
  2. Di fungsi main, buat variabel Book bernama myBook
  3. Deklarasikan pointer ke struct Book bernama bookPtr
  4. Tetapkan alamat myBook ke bookPtr
  5. Baca nilai input berikut dan tetapkan ke anggota struct menggunakan operator panah melalui pointer:
    • Baca integer untuk ID dan tetapkan menggunakan bookPtr->id
    • Baca string untuk judul dan tetapkan menggunakan bookPtr->title
    • Baca string untuk penulis dan tetapkan menggunakan bookPtr->author
    • Baca float untuk harga dan tetapkan menggunakan bookPtr->price
    • Baca integer untuk jumlah halaman dan tetapkan menggunakan bookPtr->pages
  6. Setelah membaca semua nilai, lakukan operasi berikut menggunakan operator panah:
    • Terapkan diskon 10% pada harga: bookPtr->price = bookPtr->price * 0.9;
    • Tambahkan 50 halaman bonus: bookPtr->pages += 50;
  7. Cetak informasi buku menggunakan operator panah untuk mengakses setiap anggota dengan format persis berikut:
    • Book Information:
    • ID: [id]
    • Title: [title]
    • Author: [author]
    • Price: [price]
    • Pages: [pages]
  8. Hitung dan cetak harga per halaman menggunakan operator panah dengan format: Price per page: [price_per_page]

Tantangan ini menguji pemahamanmu tentang operator panah untuk mengakses anggota struct melalui pointer. Kamu akan berlatih menggunakan sintaks ptr->member untuk membaca dan menulis anggota struct, yang menunjukkan bahwa sintaks ini setara dengan (*ptr).member, tetapi jauh lebih praktis dan mudah dibaca.

Coba sendiri

#include <stdio.h>
#include <string.h>

// TODO: Definisikan struct Book di sini

int main() {
    // TODO: Buat variabel Book bernama myBook
    
    // TODO: Deklarasikan pointer ke Book bernama bookPtr
    
    // TODO: Tetapkan alamat myBook ke bookPtr
    
    // Baca nilai input
    int id;
    char title[40];
    char author[30];
    float price;
    int pages;
    
    scanf("%d", &id);
    scanf("%s", title);
    scanf("%s", author);
    scanf("%f", &price);
    scanf("%d", &pages);
    
    // TODO: Tetapkan nilai input ke anggota struct menggunakan operator panah
    
    // TODO: Berikan diskon 10% pada price menggunakan operator panah
    
    // TODO: Tambahkan 50 halaman bonus menggunakan operator panah
    
    // TODO: Cetak informasi buku menggunakan operator panah
    
    // TODO: Hitung dan cetak harga per halaman menggunakan operator panah
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online