# Tugas Pendahuluan - Introduction to C ``` Nama : Hasan Abdullah Azzam NPM : 2406428314 ``` > Note: Soal Programming tidak perlu dicantumkan referensi, hanya soal Teori saja yang perlu referensi minimal 2. ## Teori ### 1. Sebutkan dan jelaskan minimal 10 tipe data dalam bahasa C! (10 poin) --- - **int**: data berupa angka bulat dengan rentang. - **unsigned int** : data mirip dengan **int** tetapi angka harus lebih besar dari 0 . - **short** : mirip sperti **int** tetapi memiliki rentang yang lebih kecil. - **unsigned short** : mirip seperti **short** tetapi angka harus lebih besar dari 0. - **long** : kebalikan dari **short**, rentang data lebih besar. - **float** : memuat angka desimal. - **double** : mirip seperti **float** tetapi memiliki ketelitian yang lebih tinggi/ jumlah angka di belakang koma yang diperbolehan lebih banyak. - **char**: data berupa karakter, jika ingin membuat string bisa menggunakan array dari variabel char. - **boolean**: data memiliki nilai **True**/**False**. - **void** : variabel yang memiliki nilai kasong, digunakan saat membuat fungsi tanpa nilai return. ### Referensi: - “Overview of C | Digilab UI,” Digilabdte.com, 2025. https://learn.digilabdte.com/books/algorithm-programming/page/overview-of-c . [Diakses: 9-Februari-2025] ‌ - “Belajar Pemrograman C #05: Mengenal Variabel, Tipe Data, Konstanta,” Petani Kode, May 18, 2019. https://www.petanikode.com/c-variabel/ . [Diakses: 9-Februari-2025] ‌ --- ### 2. Jelaskan apa yang dimaksud dengan #include <math.h> dalam bahasa C! (10 poin) **Include** adalah salah satu struktur dasar di bahasa pemprograman c yang berfungsi untuk mengimport suatu header file, sehingga kita bisa menggunakan fungsi-fungsi yang ada didalamnya di program kita. **<math.h>** adalah salah satu contoh header yang tersedia di bahasa c, didalamnya berisi berbagai fungsi-fungsi matematika yang lebih kompleks dari aritmatika sederhana. **#include <math.h>** : berfungsi untuk mengimpor header **<math.h>** kedalam program ### Referensi: - D. Intern, “Belajar Bahasa Pemrograman C Untuk Pemula,” Dicoding Blog, Mar. 16, 2021. https://www.dicoding.com/blog/belajar-pemrograman-c-pemula/ . [Diakses: 9-Februari-2025] ‌ - “C Library math.h Functions,” GeeksforGeeks, Jun. 01, 2017. https://www.geeksforgeeks.org/c-library-math-h-functions/ . [Diakses: 9-Februari-2025] ‌ --- ### 3. Jelaskan perbedaan antara for, while, dan do-while loop! (10 poin) - **while** **while** adalah fungsi loop yang akan terus berulan selama **kondisi** di dalamnya bernilai **True**,biasanya didalamya terdapat ***exit condition*** untuk mengatur perulangan while. Pengecekan **kondisi** di lakukan sebelum kode dijalankan. ```c while(condition){ //kode yang akan di eksekusi } ``` - **do-while** **do-while** mirip dengan **while**, perbedaanya terletak pada urutan kerjanya. fungsi loop ini akan menjalankan eksekusi terlebih dahulu sebelum melakukan pengecekan. sehingga setidaknya terdapat satu kali pengeksekusian code walupun **kondisi** bersifat **false** ```c do{ //kode yang akan di eksekusi }while(condition); ``` - **for** **for** juga mirip dengan **while**, tetapi kita dapat mengatur **range** nya lebih spesifik dan menentukan jumlah pengulanganya. Fungsi ini memiliki 3 parameter utama. 1. **Init**: untuk mendeklarasikan variabel pengulangan `int i = 0;` 2. **condition** : menentukan kondisi batas agar loop berhenti`i == 15;` 3. **increment** : menambah/mengurangi variabel pengulangan`i++`/`i--` ```c for(init; condition; increment){ //kode yang akan di eksekusi } ``` ### Referensi: - “Loop & Switch-Case | Digilab UI,” Digilabdte.com, 2025. https://learn.digilabdte.com/books/algorithm-programming/page/loop-switch-case . [Diakses: 9-Februari-2025] - “C While Loop,” www.w3schools.com. https://www.w3schools.com/c/c_while_loop.php . [Diakses: 9-Februari-2025] - “C Do While Loop,” www.w3schools.com. https://www.w3schools.com/c/c_do_while_loop.php . [Diakses: 9-Februari-2025] - “C For Loop,” www.w3schools.com. https://www.w3schools.com/c/c_for_loop.php . [Diakses: 9-Februari-2025] - -- ‌ ### 4. Jelaskan apa yang menyebabkan terjadinya infinite loop? Hal ini dapat terjadi pada jenis looping statement apa saja? (10 poin) **infinite loop** dapat terjadi ketika parameter kondisi selalu bernilai true tanpa ada yang merubahnya (**exit condition**) di dalam code pengulangan. hal ini bisa terjadi di semua jenis looping yang mempunyai parameter kondisi. **cth: for, while, do-while** ```c while(True){ //kode yang akan tereksekusi tanpa batas } ``` ```c do{ //kode yang akan tereksekusi tanpa batas }while(True); ``` ```c for(init; True; increment){ //kode yang akan tereksekusi tanpa batas } ``` ### Referensi: - “Infinite Loops in C: Types of Infinite Loops,” www.scholarhat.com. https://www.scholarhat.com/tutorial/c/infinite-loops-in-c . [Diakses: 9-Februari-2025] ‌ - “Loop & Switch-Case | Digilab UI,” Digilabdte.com, 2025. https://learn.digilabdte.com/books/algorithm-programming/page/loop-switch-case . [Diakses: 9-Februari-2025] --- ## Programming ### 1. Buatlah program yang menampilkan output berupa teks "Hello [Nama Anda]!" dalam bahasa C! Cantumkan kode program dan screenshot hasil outputnya! (20 poin) --- ```c #include <stdio.h> int main(){ //membuat var dengan maximal 50 carakter char name[50]; printf("masukkan nama anda : "); scanf("%[^\n]s",name); //input nama,[^\n] -> digunakan untuk membatasi akhir input oleh enter printf("Hello %s", name); // mencetak hasil return 0; } ``` ![Output Program](https://hackmd.io/_uploads/HJ57B3NYyx.png) ### 2. Himpunan A berisi bilangan 1 - 50 (inklusif) yang habis dibagi 3 dan 5. Dengan **WHILE** loop, buatlah program yang akan print semua elemen dari A, tetapi skip 5 bilangan pertama dari A! Cantumkan kode program dan screenshot hasil outputnya! (20 poin) --- ```c #include <stdio.h> int main(){ int him_A[20], i = 1, j = 0, k = 0; while (i <= 50){ if(i % 3 == 0 && i % 5 == 0){ him_A[j]=i; j++; // j merupakan panjang array } i++; } printf("A : "); while(k < j){ if (k >= 5){ printf("%d ", him_A[k]); } k++; } return 0; } ``` ![Output Program](https://hackmd.io/_uploads/ByxpjCEYyx.png) ### 3. Alien-Drawing? (20 poin) > Hint: Gunakan for loop. Buatlah program yang akan menampilkan output suatu shape dengan panjang yang ditentukan oleh user. Program akan menerima input panjang dari user, kemudian program akan menampilkan sebuah shape dengan panjang tersebut. Contoh output program adalah sebagai berikut: Test Case 1: Input: ```bash 1 ``` Output: ```bash * ``` Test Case 2: Input: ```bash 2 ``` Output: ```bash * * * * ``` Test Case 3: Input: ```bash 3 ``` Output: ```bash * * * * * * * * ``` Test Case 4: Input: ```bash 6 ``` Output: ```bash * * * * * * * * * * * * * * * * * * * * ``` --- ```c #include <stdio.h> int main(){ int lenght; printf("masukan panjang bangunan : "); scanf("%d", &lenght); int i = 0, j = 0; //setengah atas while(i < lenght){ while (j < lenght){ if (j == lenght-(i+1)){ printf("*"); }else{ printf(" "); } j++; } if(i != 0){ printf("*"); } printf("\n"); j = 0; i++; } //setengah bawah while(i > 1){ while (j < lenght){ if (j == lenght-(i-1)){ printf("*"); }else{ printf(" "); } j++; } if(i != 2){ printf("*"); } printf("\n"); j = 0; i--; } return 0; } ``` ![image](https://hackmd.io/_uploads/rknS23HFJe.png) ![image](https://hackmd.io/_uploads/ByMzn3Htye.png) ![image](https://hackmd.io/_uploads/BkbDshBK1g.png) ![Output Program](https://hackmd.io/_uploads/SJBWQRVFJl.png)