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->memberIni 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.
Tantangan
MudahBuat program C yang menunjukkan penggunaan operator panah untuk mengakses anggota struct melalui pointer. Programmu harus:
- Definisikan
structbernamaBookdengan anggota berikut:- Integer
iduntuk menyimpan ID buku - Array karakter
titleberukuran 40 untuk menyimpan judul buku - Array karakter
authorberukuran 30 untuk menyimpan nama penulis - Float
priceuntuk menyimpan harga buku - Integer
pagesuntuk menyimpan jumlah halaman
- Integer
- Di fungsi main, buat variabel
BookbernamamyBook - Deklarasikan pointer ke struct
BookbernamabookPtr - Tetapkan alamat
myBookkebookPtr - 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
- Baca integer untuk ID dan tetapkan menggunakan
- 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;
- Terapkan diskon 10% pada harga:
- 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]
- 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;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online