1. Loop dan while dalam C:
Loop digunakan untuk menjalankan kode berulang kali. while
adalah salah satu jenis loop di C, yang terus menjalankan blok kode selama kondisi tertentu benar.
Contoh: Anggap Anda membaca buku halaman demi halaman. while
loop seperti mengatakan “Terus baca selama masih ada halaman.”
while (baca_setiap_halaman_hingga_akhir) {
baca_halaman();
}
2. Perbedaan antara == dan = dalam C:
==
adalah operator perbandingan yang memeriksa apakah dua nilai sama. =
adalah operator penugasan yang menetapkan nilai ke variabel.
Analogi: ==
seperti bertanya “Apakah ini apel seperti apel itu?” (membandingkan), sedangkan =
seperti berkata “Ini adalah apel saya” (menetapkan).
if (a == b) // Membandingkan apakah a sama dengan b
a = 5; // Menetapkan nilai 5 ke variabel a
3. Fungsi struct dalam C:
struct
digunakan untuk membuat struktur data yang dapat menyimpan beberapa jenis data di dalam satu unit.
Analogi: struct
seperti membuat ransel yang bisa membawa buku, pena, dan ponsel. Setiap item adalah tipe data berbeda, tapi semuanya di bawa dalam satu ransel.
struct Ransel {
char *buku;
int pena;
double ponsel;
};
4. Operasi Bitwise di C:
Operasi bitwise melibatkan manipulasi bit dalam variabel. Operasi ini termasuk AND (&
), OR (|
), XOR (^
), NOT (~
), left shift (<<
), dan right shift (>>
).
Analogi: Bitwise seperti lampu lalu lintas dengan lampu-lampu individual (bit). Anda bisa mengubah, memeriksa, atau menggabungkan lampu-lampu ini dengan operasi bitwise.
int a = 5; // 101 dalam biner
int b = a << 1; // Geser semua bit ke kiri, hasilnya 1010 dalam biner atau 10 dalam desimal
5. Penggunaan pointer dalam C:
Pointer adalah variabel yang menyimpan alamat memori. Mereka digunakan untuk alokasi memori dinamis, akses array, dan untuk parameter fungsi oleh referensi. Pointer harus digunakan ketika Anda ingin memanipulasi data tanpa membuat salinan data tersebut.
Analogi: Pointer adalah seperti alamat rumah. Daripada membawa seluruh rumah, Anda cukup memberikan alamat untuk menunjukkan di mana rumah itu berada.
int nilai = 5;
int *pointerNilai = &nilai; // pointerNilai sekarang memiliki alamat dari nilai
6. Tantangan dalam menggunakan C untuk pengembangan web:
Menggunakan C untuk pengembangan web seperti menggunakan pisau kayu untuk memotong roti; bisa dilakukan tapi tidak efisien atau mudah dibandingkan dengan pisau roti (bahasa web yang lebih spesifik).
7. Menyimpan hasil/struk transaksi dalam file txt:
Gunakan fungsi file seperti fopen()
, fprintf()
, dan fclose()
untuk membuka, menulis, dan menutup file dalam format teks.
FILE *file = fopen("struk.txt", "w");
fprintf(file, "Total: %d", totalBelanja);
fclose(file);
8. Perbedaan C dengan C++:
C++ adalah superset dari C dan mencakup OOP (Object-Oriented Programming). C++ mendukung kelas, warisan, polimorfisme, dan penyembunyian data yang tidak ada di C.
Analogi: Jika C adalah sepeda, maka C++ adalah sepeda motor. Keduanya bisa mengantarkan Anda ke tujuan, tapi sepeda motor (C++) memiliki fitur tambahan seperti kecepatan dan kenyamanan.
9. Best practices coding di C:
Termasuk manajemen memori yang efisien, penggunaan komentar, pemisahan kode menjadi fungsi, penggunaan konvensi penamaan yang konsisten, dan penulisan kode yang dapat dibaca dan dipelihara.
Analogi: Seperti menulis resep masakan, gunakan langkah-langkah yang jelas, bahan-bahan yang tertata, dan instruksi yang mudah diikuti.
10. Perbedaan sprintf dan sprint:
Contoh: sprintf
adalah menulis catatan ke dalam kertas (string) yang nantinya bisa ditempel di mana saja. sprint
, jika itu ada, mungkin salah ketik atau konsep yang berbeda.
11. Perbedaan malloc() dan calloc():
malloc()
mengalokasikan memori tanpa menginisialisasi, sedangkan calloc()
mengalokasikan memori dan menginisialisasi semua bit ke nol.
Analogi: malloc
seperti mendapatkan kotak tanpa tahu isi di dalamnya. calloc
seperti mendapatkan kotak yang sudah diketahui isinya kosong.
12. Kelebihan bahasa C:
(i) Efisiensi: Seperti mesin yang dirancang untuk performa tinggi dengan penggunaan bahan bakar minimal.
(ii) Kontrol tingkat rendah: Seperti mengendarai mobil dengan transmisi manual, memberi Anda kontrol penuh.
13. Fungsi swap dan bubbleSort:
swap
menukar nilai antara dua variabel. bubbleSort
adalah algoritma pengurutan yang berulang kali melewati daftar, membandingkan elemen berdampingan dan menukarnya jika urutannya salah.
Analogi: swap
seperti bertukar tempat duduk di kelas. bubbleSort
adalah proses mengatur siswa berdasarkan tinggi, dimana yang lebih pendek bergerak ke depan secara bertahap.
14. Perbedaan scanf dan printf dalam C:
scanf
digunakan untuk membaca input dari standar input (keyboard), sedangkan printf
digunakan untuk mencetak output ke standar output (layar).
Analogi: scanf
seperti mengajukan pertanyaan dan mendengarkan jawaban, sedangkan printf
seperti berbicara atau memberikan informasi.
15. Perbedaan antara C dan C++
C++ mendukung pemrograman berorientasi objek dan fitur tambahan seperti kelas, pengecualian, dan template, yang tidak ada di C.
Analogi: Jika C adalah kamera manual, C++ adalah kamera digital dengan fitur tambahan seperti autofocus dan filter.
16. Perbedaan antara ++i dan i++:
++i
(pre-increment) meningkatkan nilai i
kemudian mengembalikan nilainya. i++
(post-increment) mengembalikan nilai i
kemudian meningkatkannya.
Analogi: ++i
adalah seperti mengatakan, “Tambahkan satu, kemudian tunjukkan pada saya.” i++
adalah seperti mengatakan, “Tunjukkan pada saya, kemudian tambahkan satu.”
17. Apa itu struct?:
struct
adalah tipe data pengguna yang memungkinkan penggabungan data dari beberapa jenis menjadi satu unit.
Analogi: struct
adalah seperti membuat kartu identitas yang bisa menyimpan nama, alamat, dan tanggal lahir.
18. Fungsi #include dalam C:
#include
digunakan untuk menyertakan file header standar atau pengguna yang berisi deklarasi untuk fungsi dan makro.
Analogi: #include
seperti memberikan daftar bahan untuk resep; menyertakan semua yang Anda butuhkan sebelum mulai masak.
19. Penggunaan fgets:
fgets
digunakan untuk membaca baris teks dari file atau input stream hingga newline atau EOF tercapai atau batas tertentu.
Analogi: fgets
seperti membaca surat baris per baris sampai Anda mencapai akhir surat atau batas yang ditetapkan.
20. Kapan menggunakan fungsi swap:
Fungsi swap
biasanya digunakan dalam algoritma pengurutan dan situasi lain di mana Anda perlu menukar nilai antara dua variabel.
Analogi: Gunakan swap
ketika Anda perlu menukar posisi dua benda, seperti ketika merapikan buku di rak.