implement key_text
parent
296a7fdf6e
commit
e07d2d8e67
|
|
@ -200,6 +200,14 @@ Rata-rata nilai: 84.00
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
scores[]
|
||||||
|
sizeof
|
||||||
|
for
|
||||||
|
i < count
|
||||||
|
total += scores[i]
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Total nilai: 420
|
Total nilai: 420
|
||||||
Jumlah siswa: 5
|
Jumlah siswa: 5
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,13 @@ Lengkapi kode kerangka yang diberikan di bawah ini untuk menyimpan angka-angka d
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
int **
|
||||||
|
malloc(3 *sizeof(int *))
|
||||||
|
free(pnumbers[i])
|
||||||
|
free(pnumbers)
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
1
|
1
|
||||||
11
|
11
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,12 @@ Berikut adalah implementasi dari pohon biner yang memiliki fungsi penyisipan dan
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
if (current != NULL) printf
|
||||||
|
printDFS(current->left)
|
||||||
|
printDFS(current->right)
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
5 4 3 8
|
5 4 3 8
|
||||||
---END_EXPECTED_OUTPUT---
|
---END_EXPECTED_OUTPUT---
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,14 @@ Done!
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
FLAG_ALIVE = 1 << 3
|
||||||
|
FLAG_BROKEN = 1 << 4
|
||||||
|
attributes |= FLAG_
|
||||||
|
attributes &= ~FLAG_
|
||||||
|
attributes & FLAG_
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Done!
|
Done!
|
||||||
---END_EXPECTED_OUTPUT---
|
---END_EXPECTED_OUTPUT---
|
||||||
|
|
|
||||||
|
|
@ -281,49 +281,70 @@ Hari ini adalah: Rabu
|
||||||
|
|
||||||
---EXERCISE---
|
---EXERCISE---
|
||||||
|
|
||||||
# Latihan: Sistem Menu Restoran
|
# Latihan: Klasifikasi Nilai Siswa
|
||||||
|
|
||||||
Dalam latihan ini, Anda akan membuat program sederhana yang meniru sistem menu restoran menggunakan switch statement.
|
Dalam latihan ini, Anda akan membuat program sederhana untuk mengklasifikasikan nilai siswa menggunakan if-else dan switch statement.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Gunakan switch statement untuk menentukan pesanan berdasarkan nomor menu
|
- Gunakan if-else untuk menentukan grade berdasarkan nilai (A, B, C, D, E)
|
||||||
- Gunakan pernyataan if-else untuk menentukan harga makanan
|
- Gunakan switch statement untuk menentukan deskripsi berdasarkan grade
|
||||||
- Tampilkan pesanan dan harganya
|
- Tampilkan nilai, grade, dan deskripsi
|
||||||
- Gunakan default case untuk menangani nomor menu yang tidak valid
|
|
||||||
|
|
||||||
Menu:
|
Skala Nilai:
|
||||||
- 1: Nasi Goreng - Rp. 25000
|
- A: 85-100
|
||||||
- 2: Mie Ayam - Rp. 20000
|
- B: 70-84
|
||||||
- 3: Soto Ayam - Rp. 22000
|
- C: 55-69
|
||||||
- 4: Bakso - Rp. 18000
|
- D: 40-54
|
||||||
- 5: Es Teh - Rp. 5000
|
- E: 0-39
|
||||||
|
|
||||||
|
Deskripsi Grade:
|
||||||
|
- A: "Sangat Baik"
|
||||||
|
- B: "Baik"
|
||||||
|
- C: "Cukup"
|
||||||
|
- D: "Kurang"
|
||||||
|
- E: "Sangat Kurang"
|
||||||
|
|
||||||
**Expected Output:**
|
**Expected Output:**
|
||||||
```
|
```
|
||||||
Pesanan: Nasi Goreng
|
Nilai: 85
|
||||||
Harga: Rp. 25000
|
Grade: A
|
||||||
|
Deskripsi: Sangat Baik
|
||||||
```
|
```
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
if
|
||||||
|
else
|
||||||
|
switch
|
||||||
|
case
|
||||||
|
break
|
||||||
|
default
|
||||||
|
grade
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Pesanan: Nasi Goreng
|
Nilai: 85
|
||||||
Harga: Rp. 25000
|
Grade: A
|
||||||
|
Deskripsi: Sangat Baik
|
||||||
---END_EXPECTED_OUTPUT---
|
---END_EXPECTED_OUTPUT---
|
||||||
|
|
||||||
---INITIAL_CODE---
|
---INITIAL_CODE---
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
int menu_number = 1;
|
int nilai = 85;
|
||||||
|
char grade;
|
||||||
|
char *deskripsi;
|
||||||
|
|
||||||
// TODO: Gunakan switch statement untuk menentukan pesanan
|
// TODO: Gunakan if-else untuk menentukan grade berdasarkan nilai
|
||||||
char *food_name;
|
// A: 85-100, B: 70-84, C: 55-69, D: 40-54, E: 0-39
|
||||||
int price;
|
|
||||||
|
|
||||||
// TODO: Tampilkan pesanan dan harganya
|
// TODO: Gunakan switch untuk menentukan deskripsi berdasarkan grade
|
||||||
printf("Pesanan: %s\n", food_name);
|
|
||||||
printf("Harga: Rp. %d\n", price);
|
printf("Nilai: %d\n", nilai);
|
||||||
|
printf("Grade: %c\n", grade);
|
||||||
|
printf("Deskripsi: %s\n", deskripsi);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -333,40 +354,50 @@ int main() {
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
int menu_number = 1;
|
int nilai = 85;
|
||||||
|
char grade;
|
||||||
|
char *deskripsi;
|
||||||
|
|
||||||
char *food_name;
|
// Menentukan grade berdasarkan nilai
|
||||||
int price;
|
if (nilai >= 85 && nilai <= 100) {
|
||||||
|
grade = 'A';
|
||||||
|
} else if (nilai >= 70 && nilai <= 84) {
|
||||||
|
grade = 'B';
|
||||||
|
} else if (nilai >= 55 && nilai <= 69) {
|
||||||
|
grade = 'C';
|
||||||
|
} else if (nilai >= 40 && nilai <= 54) {
|
||||||
|
grade = 'D';
|
||||||
|
} else if (nilai >= 0 && nilai <= 39) {
|
||||||
|
grade = 'E';
|
||||||
|
} else {
|
||||||
|
grade = 'X'; // Nilai di luar rentang
|
||||||
|
}
|
||||||
|
|
||||||
switch (menu_number) {
|
// Menentukan deskripsi berdasarkan grade
|
||||||
case 1:
|
switch (grade) {
|
||||||
food_name = "Nasi Goreng";
|
case 'A':
|
||||||
price = 25000;
|
deskripsi = "Sangat Baik";
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 'B':
|
||||||
food_name = "Mie Ayam";
|
deskripsi = "Baik";
|
||||||
price = 20000;
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 'C':
|
||||||
food_name = "Soto Ayam";
|
deskripsi = "Cukup";
|
||||||
price = 22000;
|
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 'D':
|
||||||
food_name = "Bakso";
|
deskripsi = "Kurang";
|
||||||
price = 18000;
|
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 'E':
|
||||||
food_name = "Es Teh";
|
deskripsi = "Sangat Kurang";
|
||||||
price = 5000;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
food_name = "Menu tidak valid";
|
deskripsi = "Tidak Valid";
|
||||||
price = 0;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Pesanan: %s\n", food_name);
|
printf("Nilai: %d\n", nilai);
|
||||||
printf("Harga: Rp. %d\n", price);
|
printf("Grade: %c\n", grade);
|
||||||
|
printf("Deskripsi: %s\n", deskripsi);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -303,6 +303,15 @@ int main() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
---END_INITIAL_CODE---
|
---END_INITIAL_CODE---
|
||||||
|
---KEY_TEXT---
|
||||||
|
int
|
||||||
|
float
|
||||||
|
double
|
||||||
|
%s
|
||||||
|
%d
|
||||||
|
%.2f
|
||||||
|
sizeof
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---SOLUTION_CODE---
|
---SOLUTION_CODE---
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,13 @@ mypoint coordinates: 10, 5
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
malloc
|
||||||
|
sizeof
|
||||||
|
free
|
||||||
|
(point *)
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
mypoint coordinates: 10, 5
|
mypoint coordinates: 10, 5
|
||||||
---END_EXPECTED_OUTPUT---
|
---END_EXPECTED_OUTPUT---
|
||||||
|
|
|
||||||
|
|
@ -199,6 +199,7 @@ while (i < 5) {
|
||||||
- Gunakan **while loop** ketika jumlah iterasi tergantung pada kondisi yang dinamis
|
- Gunakan **while loop** ketika jumlah iterasi tergantung pada kondisi yang dinamis
|
||||||
- Pastikan kondisi perulangan akan berubah sehingga perulangan tidak menjadi infinite loop
|
- Pastikan kondisi perulangan akan berubah sehingga perulangan tidak menjadi infinite loop
|
||||||
- Gunakan variabel iterator yang sesuai untuk mengakses elemen array atau menghitung iterasi
|
- Gunakan variabel iterator yang sesuai untuk mengakses elemen array atau menghitung iterasi
|
||||||
|
- **Format specifier pada printf**: Dalam solusi, `%d` digunakan untuk mencetak bilangan bulat, dan `%-3d` berarti mencetak bilangan bulat dengan lebar minimum 3 karakter dan rata kiri. Anda bisa menggunakan format seperti `%3d` untuk rata kanan, atau `%.2f` untuk bilangan desimal dengan 2 angka di belakang koma.
|
||||||
|
|
||||||
**Referensi:**
|
**Referensi:**
|
||||||
- [https://www.w3schools.com/c/c_for_loop.php](https://www.w3schools.com/c/c_for_loop.php)
|
- [https://www.w3schools.com/c/c_for_loop.php](https://www.w3schools.com/c/c_for_loop.php)
|
||||||
|
|
@ -229,6 +230,14 @@ Tabel Perkalian 5x5:
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
for
|
||||||
|
i <= 5
|
||||||
|
j <= 5
|
||||||
|
i * j
|
||||||
|
printf
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Tabel Perkalian 5x5:
|
Tabel Perkalian 5x5:
|
||||||
1 2 3 4 5
|
1 2 3 4 5
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,12 @@ Happy birthday! John is now 28 years old.
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
person * p
|
||||||
|
p->age++
|
||||||
|
void birthday
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
John is 27 years old.
|
John is 27 years old.
|
||||||
Happy birthday! John is now 28 years old.
|
Happy birthday! John is now 28 years old.
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,12 @@ this is f3 and var is: 2
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
void (*pf[])(int)
|
||||||
|
{f1, f2, f3}
|
||||||
|
pf[c](c)
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
this is f1 and var is: 0
|
this is f1 and var is: 0
|
||||||
this is f2 and var is: 1
|
this is f2 and var is: 1
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,13 @@ Tulislah fungsi bernama `print_big` yang menerima satu argumen (sebuah integer)
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
void print_big
|
||||||
|
int number
|
||||||
|
if(number > 10)
|
||||||
|
printf
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
11 is big
|
11 is big
|
||||||
22 is big
|
22 is big
|
||||||
|
|
|
||||||
|
|
@ -196,6 +196,16 @@ Saya berusia 20 tahun
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
#include <stdio.h>
|
||||||
|
int main()
|
||||||
|
printf
|
||||||
|
Hello,
|
||||||
|
\n
|
||||||
|
Saya berusia 20 tahun
|
||||||
|
return 0
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Hello, World!
|
Hello, World!
|
||||||
Saya berusia 20 tahun
|
Saya berusia 20 tahun
|
||||||
|
|
|
||||||
|
|
@ -23,27 +23,28 @@ Situs LMS (Learning Management System) ini ditujukan untuk semua siswa yang ingi
|
||||||
3. [Hello, World!](lesson/hello_world.md)
|
3. [Hello, World!](lesson/hello_world.md)
|
||||||
4. [Variables in C](lesson/variables.md)
|
4. [Variables in C](lesson/variables.md)
|
||||||
5. [Data Types in C](lesson/data_types.md)
|
5. [Data Types in C](lesson/data_types.md)
|
||||||
6. [Conditions](lesson/conditions.md)
|
6. [Operators in C](lesson/operators.md)
|
||||||
7. [For loops](lesson/for_loops.md)
|
7. [Conditions](lesson/conditions.md)
|
||||||
8. [While loops](lesson/while_loops.md)
|
8. [For loops](lesson/for_loops.md)
|
||||||
9. [Arrays](lesson/arrays.md)
|
9. [While loops](lesson/while_loops.md)
|
||||||
10. [Strings](lesson/strings.md)
|
10. [Arrays](lesson/arrays.md)
|
||||||
11. [Functions](lesson/functions.md)
|
11. [Strings](lesson/strings.md)
|
||||||
12. [Static](lesson/static.md)
|
12. [Functions](lesson/functions.md)
|
||||||
|
13. [Static](lesson/static.md)
|
||||||
|
|
||||||
### Tingkat Lanjut
|
### Tingkat Lanjut
|
||||||
13. [Pointers](lesson/pointers.md)
|
14. [Pointers](lesson/pointers.md)
|
||||||
14. [Structures](lesson/structures.md)
|
15. [Structures](lesson/structures.md)
|
||||||
15. [Function arguments by reference](lesson/function_arguments_by_reference.md)
|
16. [Function arguments by reference](lesson/function_arguments_by_reference.md)
|
||||||
16. [Dynamic allocation](lesson/dynamic_allocation.md)
|
17. [Dynamic allocation](lesson/dynamic_allocation.md)
|
||||||
17. [Arrays and Pointers](lesson/arrays_and_pointers.md)
|
18. [Arrays and Pointers](lesson/arrays_and_pointers.md)
|
||||||
18. [Recursion](lesson/recursion.md)
|
19. [Recursion](lesson/recursion.md)
|
||||||
19. [Linked lists](lesson/linked_lists.md)
|
20. [Linked lists](lesson/linked_lists.md)
|
||||||
20. [Binary trees](lesson/binary_trees.md)
|
21. [Binary trees](lesson/binary_trees.md)
|
||||||
21. [Unions](lesson/unions.md)
|
22. [Unions](lesson/unions.md)
|
||||||
22. [Pointer Arithmetics](lesson/pointer_arithmetics.md)
|
23. [Pointer Arithmetics](lesson/pointer_arithmetics.md)
|
||||||
23. [Function Pointers](lesson/function_pointers.md)
|
24. [Function Pointers](lesson/function_pointers.md)
|
||||||
24. [Bitmasks](lesson/bitmasks.md)
|
25. [Bitmasks](lesson/bitmasks.md)
|
||||||
|
|
||||||
|
|
||||||
----Available_Lessons----
|
----Available_Lessons----
|
||||||
|
|
@ -51,22 +52,11 @@ Situs LMS (Learning Management System) ini ditujukan untuk semua siswa yang ingi
|
||||||
3. [Hello, World!](lesson/hello_world.md)
|
3. [Hello, World!](lesson/hello_world.md)
|
||||||
4. [Variables in C](lesson/variables.md)
|
4. [Variables in C](lesson/variables.md)
|
||||||
5. [Data Types in C](lesson/data_types.md)
|
5. [Data Types in C](lesson/data_types.md)
|
||||||
6. [Conditions](lesson/conditions.md)
|
6. [Operators in C](lesson/operators.md)
|
||||||
7. [For loops](lesson/for_loops.md)
|
7. [Conditions](lesson/conditions.md)
|
||||||
8. [While loops](lesson/while_loops.md)
|
8. [For loops](lesson/for_loops.md)
|
||||||
9. [Arrays](lesson/arrays.md)
|
9. [While loops](lesson/while_loops.md)
|
||||||
10. [Strings](lesson/strings.md)
|
10. [Arrays](lesson/arrays.md)
|
||||||
11. [Functions](lesson/functions.md)
|
11. [Strings](lesson/strings.md)
|
||||||
12. [Static](lesson/static.md)
|
12. [Functions](lesson/functions.md)
|
||||||
13. [Pointers](lesson/pointers.md)
|
13. [Static](lesson/static.md)
|
||||||
14. [Structures](lesson/structures.md)
|
|
||||||
15. [Function arguments by reference](lesson/function_arguments_by_reference.md)
|
|
||||||
16. [Dynamic allocation](lesson/dynamic_allocation.md)
|
|
||||||
17. [Arrays and Pointers](lesson/arrays_and_pointers.md)
|
|
||||||
18. [Recursion](lesson/recursion.md)
|
|
||||||
19. [Linked lists](lesson/linked_lists.md)
|
|
||||||
20. [Binary trees](lesson/binary_trees.md)
|
|
||||||
21. [Unions](lesson/unions.md)
|
|
||||||
22. [Pointer Arithmetics](lesson/pointer_arithmetics.md)
|
|
||||||
23. [Function Pointers](lesson/function_pointers.md)
|
|
||||||
24. [Bitmasks](lesson/bitmasks.md)
|
|
||||||
|
|
|
||||||
|
|
@ -264,6 +264,13 @@ Anda harus mengimplementasikan fungsi `remove_by_value` yang menerima pointer ga
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
previous->next = current->next
|
||||||
|
free(current)
|
||||||
|
current = current->next
|
||||||
|
pop(head)
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,404 @@
|
||||||
|
---LESSON_INFO---
|
||||||
|
**Learning Objectives:**
|
||||||
|
- Memahami berbagai jenis operator dalam bahasa C
|
||||||
|
- Belajar menggunakan operator aritmatika, penugasan, perbandingan, dan logika
|
||||||
|
- Mengenal operator bitwise dan operator khusus lainnya
|
||||||
|
- Memahami urutan prioritas operator dalam ekspresi
|
||||||
|
|
||||||
|
**Prerequisites:**
|
||||||
|
- Pemahaman tentang variabel dan tipe data
|
||||||
|
- Pemahaman dasar tentang program C
|
||||||
|
|
||||||
|
---END_LESSON_INFO---
|
||||||
|
# Operator dalam C
|
||||||
|
|
||||||
|
**Operator dalam bahasa C** adalah simbol-simbol khusus yang digunakan untuk melakukan operasi tertentu pada satu atau lebih operand (nilai atau variabel). Operator sangat penting dalam pemrograman karena mereka memungkinkan kita untuk melakukan perhitungan matematika, perbandingan, dan operasi logika.
|
||||||
|
|
||||||
|
## Jenis-Jenis Operator dalam C
|
||||||
|
|
||||||
|
C menyediakan berbagai jenis operator:
|
||||||
|
|
||||||
|
1. **Operator Aritmatika** - untuk operasi matematika
|
||||||
|
2. **Operator Penugasan** - untuk menetapkan nilai ke variabel
|
||||||
|
3. **Operator Perbandingan** - untuk membandingkan nilai
|
||||||
|
4. **Operator Logika** - untuk operasi logika
|
||||||
|
5. **Operator Bitwise** - untuk operasi pada bit
|
||||||
|
6. **Operator Lainnya** - seperti increment/decrement, conditional, dll.
|
||||||
|
|
||||||
|
## Operator Aritmatika
|
||||||
|
|
||||||
|
Operator aritmatika digunakan untuk operasi matematika dasar:
|
||||||
|
|
||||||
|
| Operator | Deskripsi | Contoh |
|
||||||
|
|----------|-----------|--------|
|
||||||
|
| `+` | Penjumlahan | `a + b` |
|
||||||
|
| `-` | Pengurangan | `a - b` |
|
||||||
|
| `*` | Perkalian | `a * b` |
|
||||||
|
| `/` | Pembagian | `a / b` |
|
||||||
|
| `%` | Modulo (sisa bagi) | `a % b` |
|
||||||
|
| `++` | Increment (menaikkan nilai) | `a++` atau `++a` |
|
||||||
|
| `--` | Decrement (menurunkan nilai) | `a--` atau `--a` |
|
||||||
|
|
||||||
|
Contoh:
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int a = 10, b = 3;
|
||||||
|
|
||||||
|
printf("a + b = %d\\n", a + b); // 13
|
||||||
|
printf("a - b = %d\\n", a - b); // 7
|
||||||
|
printf("a * b = %d\\n", a * b); // 30
|
||||||
|
printf("a / b = %d\\n", a / b); // 3 (pembagian integer)
|
||||||
|
printf("a %% b = %d\\n", a % b); // 1 (sisa bagi)
|
||||||
|
|
||||||
|
a++; // a sekarang menjadi 11
|
||||||
|
printf("a++ = %d\\n", a); // 11
|
||||||
|
|
||||||
|
b--; // b sekarang menjadi 2
|
||||||
|
printf("b-- = %d\\n", b); // 2
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Operator Penugasan
|
||||||
|
|
||||||
|
Operator penugasan digunakan untuk menetapkan nilai ke variabel:
|
||||||
|
|
||||||
|
| Operator | Contoh | Sama Dengan | Deskripsi |
|
||||||
|
|----------|--------|-------------|-----------|
|
||||||
|
| `=` | `x = 5` | `x = 5` | Menetapkan nilai |
|
||||||
|
| `+=` | `x += 3` | `x = x + 3` | Menambah dan menetapkan |
|
||||||
|
| `-=` | `x -= 3` | `x = x - 3` | Mengurangi dan menetapkan |
|
||||||
|
| `*=` | `x *= 3` | `x = x * 3` | Mengalikan dan menetapkan |
|
||||||
|
| `/=` | `x /= 3` | `x = x / 3` | Membagi dan menetapkan |
|
||||||
|
| `%=` | `x %= 3` | `x = x % 3` | Modulo dan menetapkan |
|
||||||
|
|
||||||
|
Contoh:
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int x = 10;
|
||||||
|
printf("x awal: %d\\n", x); // 10
|
||||||
|
|
||||||
|
x += 5; // Sama dengan x = x + 5
|
||||||
|
printf("x += 5: %d\\n", x); // 15
|
||||||
|
|
||||||
|
x -= 3; // Sama dengan x = x - 3
|
||||||
|
printf("x -= 3: %d\\n", x); // 12
|
||||||
|
|
||||||
|
x *= 2; // Sama dengan x = x * 2
|
||||||
|
printf("x *= 2: %d\\n", x); // 24
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Operator Perbandingan
|
||||||
|
|
||||||
|
Operator perbandingan digunakan untuk membandingkan dua nilai dan mengembalikan nilai 1 (benar) atau 0 (salah):
|
||||||
|
|
||||||
|
| Operator | Deskripsi | Contoh | Hasil |
|
||||||
|
|----------|-----------|--------|-------|
|
||||||
|
| `==` | Sama dengan | `x == y` | 0 jika tidak sama, 1 jika sama |
|
||||||
|
| `!=` | Tidak sama dengan | `x != y` | 1 jika tidak sama, 0 jika sama |
|
||||||
|
| `>` | Lebih besar dari | `x > y` | 1 jika x lebih besar dari y |
|
||||||
|
| `<` | Lebih kecil dari | `x < y` | 1 jika x lebih kecil dari y |
|
||||||
|
| `>=` | Lebih besar atau sama dengan | `x >= y` | 1 jika x lebih besar atau sama |
|
||||||
|
| `<=` | Lebih kecil atau sama dengan | `x <= y` | 1 jika x lebih kecil atau sama |
|
||||||
|
|
||||||
|
Contoh:
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int a = 5, b = 10;
|
||||||
|
|
||||||
|
printf("a == b: %d\\n", a == b); // 0 (salah)
|
||||||
|
printf("a != b: %d\\n", a != b); // 1 (benar)
|
||||||
|
printf("a > b: %d\\n", a > b); // 0 (salah)
|
||||||
|
printf("a < b: %d\\n", a < b); // 1 (benar)
|
||||||
|
printf("a >= b: %d\\n", a >= b); // 0 (salah)
|
||||||
|
printf("a <= b: %d\\n", a <= b); // 1 (benar)
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Operator Logika
|
||||||
|
|
||||||
|
Operator logika digunakan untuk menentukan logika antara variabel atau nilai:
|
||||||
|
|
||||||
|
| Operator | Deskripsi | Contoh | Keterangan |
|
||||||
|
|----------|-----------|--------|------------|
|
||||||
|
| `&&` | Logical AND | `(x < 5) && (y > 10)` | Benar jika kedua kondisi benar |
|
||||||
|
| `||` | Logical OR | `(x < 5) \|\| (y > 10)` | Benar jika salah satu kondisi benar |
|
||||||
|
| `!` | Logical NOT | `!(x == y)` | Membalikkan hasil (benar menjadi salah, salah menjadi benar) |
|
||||||
|
|
||||||
|
Contoh:
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int x = 5, y = 10;
|
||||||
|
|
||||||
|
// AND: Benar jika kedua kondisi benar
|
||||||
|
if (x > 0 && y > 0) {
|
||||||
|
printf("Kedua angka positif\\n"); // Ditampilkan
|
||||||
|
}
|
||||||
|
|
||||||
|
// OR: Benar jika salah satu kondisi benar
|
||||||
|
if (x > 10 || y > 5) {
|
||||||
|
printf("Setidaknya satu angka lebih besar\\n"); // Ditampilkan
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOT: Membalikkan kondisi
|
||||||
|
if (!(x == y)) {
|
||||||
|
printf("x tidak sama dengan y\\n"); // Ditampilkan
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Operator Bitwise
|
||||||
|
|
||||||
|
Operator bitwise bekerja pada bit dan melakukan operasi bit per bit:
|
||||||
|
|
||||||
|
| Operator | Nama | Deskripsi |
|
||||||
|
|----------|------|-----------|
|
||||||
|
| `&` | AND | Mengembalikan 1 jika kedua bit adalah 1 |
|
||||||
|
| `|` | OR | Mengembalikan 1 jika salah satu bit adalah 1 |
|
||||||
|
| `^` | XOR | Mengembalikan 1 jika kedua bit berbeda |
|
||||||
|
| `~` | NOT | Membalikkan semua bit |
|
||||||
|
| `<<` | Zero fill left shift | Menggeser bit ke kiri dan mengisi dengan 0 |
|
||||||
|
| `>>` | Signed right shift | Menggeser bit ke kanan dan mengisi dengan bit tanda |
|
||||||
|
|
||||||
|
Contoh:
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
unsigned char a = 5; // 00000101
|
||||||
|
unsigned char b = 3; // 00000011
|
||||||
|
|
||||||
|
printf("a & b = %d\\n", a & b); // 1 (00000001)
|
||||||
|
printf("a | b = %d\\n", a | b); // 7 (00000111)
|
||||||
|
printf("a ^ b = %d\\n", a ^ b); // 6 (00000110)
|
||||||
|
printf("~a = %d\\n", ~a); // 250 (11111010 dalam 8-bit)
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Operator Lainnya
|
||||||
|
|
||||||
|
Beberapa operator penting lainnya:
|
||||||
|
|
||||||
|
### Operator Increment/Decrement
|
||||||
|
```c
|
||||||
|
int x = 5;
|
||||||
|
int y = ++x; // Pre-increment: x ditambah dulu baru digunakan (x=6, y=6)
|
||||||
|
int z = x++; // Post-increment: x digunakan dulu baru ditambah (x=7, z=6)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Operator Conditional (Ternary)
|
||||||
|
```c
|
||||||
|
int a = 10, b = 20;
|
||||||
|
int max = (a > b) ? a : b; // Jika a > b maka max = a, jika tidak max = b
|
||||||
|
```
|
||||||
|
|
||||||
|
### Operator `sizeof`
|
||||||
|
```c
|
||||||
|
int num;
|
||||||
|
printf("Ukuran int: %zu byte\\n", sizeof(num)); // Ukuran dalam byte
|
||||||
|
```
|
||||||
|
|
||||||
|
### Operator Alamat (`&`) dan Pointer (`*`)
|
||||||
|
```c
|
||||||
|
int x = 5;
|
||||||
|
int *ptr = &x; // ptr menyimpan alamat dari x
|
||||||
|
printf("Nilai x: %d\\n", *ptr); // Mengakses nilai melalui pointer
|
||||||
|
```
|
||||||
|
|
||||||
|
## Urutan Prioritas Operator
|
||||||
|
|
||||||
|
Dalam ekspresi kompleks, operator memiliki urutan prioritas yang menentukan urutan evaluasi:
|
||||||
|
|
||||||
|
| Kategori | Operator | Arah |
|
||||||
|
|----------|----------|------|
|
||||||
|
| Postfix | `() [] -> . ++ --` | Kiri ke kanan |
|
||||||
|
| Unary | `+ - ! ~ ++ -- (type)* & sizeof` | Kanan ke kiri |
|
||||||
|
| Multiplicative | `* / %` | Kiri ke kanan |
|
||||||
|
| Additive | `+ -` | Kiri ke kanan |
|
||||||
|
| Shift | `<< >>` | Kiri ke kanan |
|
||||||
|
| Relational | `< <= > >=` | Kiri ke kanan |
|
||||||
|
| Equality | `== !=` | Kiri ke kanan |
|
||||||
|
| Bitwise AND | `&` | Kiri ke kanan |
|
||||||
|
| Bitwise XOR | `^` | Kiri ke kanan |
|
||||||
|
| Bitwise OR | `|` | Kiri ke kanan |
|
||||||
|
| Logical AND | `&&` | Kiri ke kanan |
|
||||||
|
| Logical OR | `||` | Kiri ke kanan |
|
||||||
|
| Conditional | `?:` | Kanan ke kiri |
|
||||||
|
| Assignment | `= += -= *= /= %= &= ^= |= <<= >>=` | Kanan ke kiri |
|
||||||
|
| Comma | `,` | Kiri ke kanan |
|
||||||
|
|
||||||
|
Contoh:
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int a = 5, b = 10, c = 3;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
// Perkalian dilakukan dulu karena prioritas lebih tinggi
|
||||||
|
result = a + b * c; // Sama dengan a + (b * c) = 5 + 30 = 35
|
||||||
|
printf("a + b * c = %d\\n", result);
|
||||||
|
|
||||||
|
// Gunakan kurung untuk mengganti urutan prioritas
|
||||||
|
result = (a + b) * c; // Sama dengan (a + b) * c = 15 * 3 = 45
|
||||||
|
printf("(a + b) * c = %d\\n", result);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contoh Nyata Penggunaan Operator
|
||||||
|
|
||||||
|
Berikut adalah contoh penggunaan berbagai operator dalam situasi nyata:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int age = 20;
|
||||||
|
int has_license = 1;
|
||||||
|
int score = 85;
|
||||||
|
int bonus = 10;
|
||||||
|
|
||||||
|
// Menggunakan operator logika dan perbandingan
|
||||||
|
if (age >= 18 && has_license) {
|
||||||
|
printf("Anda bisa mengemudi\\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Menggunakan operator aritmatika dan penugasan
|
||||||
|
score += bonus; // Menambahkan bonus ke skor
|
||||||
|
printf("Skor akhir: %d\\n", score);
|
||||||
|
|
||||||
|
// Menggunakan operator conditional
|
||||||
|
char *status = (score >= 75) ? "Lulus" : "Tidak Lulus";
|
||||||
|
printf("Status: %s\\n", status);
|
||||||
|
|
||||||
|
// Menggunakan operator modulo untuk mengecek genap/ganjil
|
||||||
|
if (score % 2 == 0) {
|
||||||
|
printf("Skor adalah bilangan genap\\n");
|
||||||
|
} else {
|
||||||
|
printf("Skor adalah bilangan ganjil\\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Gunakan **kurung** untuk membuat ekspresi lebih jelas dan menghindari kesalahan karena urutan prioritas
|
||||||
|
- Gunakan **operator penugasan campuran** (+=, -=, dll.) untuk membuat kode lebih ringkas
|
||||||
|
- Pahami perbedaan antara **pre** dan **post** increment/decrement
|
||||||
|
- Gunakan **operator conditional** untuk penugasan sederhana berdasarkan kondisi
|
||||||
|
|
||||||
|
**Referensi:**
|
||||||
|
- [https://www.w3schools.com/c/c_operators.php](https://www.w3schools.com/c/c_operators.php)
|
||||||
|
- [https://www.w3schools.com/c/c_operators_arithmetic.php](https://www.w3schools.com/c/c_operators_arithmetic.php)
|
||||||
|
- [https://www.w3schools.com/c/c_operators_assignment.php](https://www.w3schools.com/c/c_operators_assignment.php)
|
||||||
|
- [https://www.w3schools.com/c/c_operators_comparison.php](https://www.w3schools.com/c/c_operators_comparison.php)
|
||||||
|
- [https://www.w3schools.com/c/c_operators_logical.php](https://www.w3schools.com/c/c_operators_logical.php)
|
||||||
|
- [https://www.w3schools.com/c/c_operators_precedence.php](https://www.w3schools.com/c/c_operators_precedence.php)
|
||||||
|
|
||||||
|
---EXERCISE---
|
||||||
|
|
||||||
|
# Latihan: Kalkulator Sederhana
|
||||||
|
|
||||||
|
Dalam latihan ini, Anda akan membuat program kalkulator sederhana yang menggunakan berbagai operator aritmatika.
|
||||||
|
|
||||||
|
**Requirements:**
|
||||||
|
- Gunakan operator aritmatika (+, -, *, /, %) untuk melakukan perhitungan
|
||||||
|
- Program harus dapat melakukan penjumlahan, pengurangan, perkalian, pembagian, dan modulo
|
||||||
|
- Gunakan variabel untuk menyimpan angka dan hasil perhitungan
|
||||||
|
- Tampilkan hasil perhitungan dengan format yang jelas
|
||||||
|
|
||||||
|
**Expected Output:**
|
||||||
|
```
|
||||||
|
Hasil penjumlahan: 15
|
||||||
|
Hasil pengurangan: 5
|
||||||
|
Hasil perkalian: 50
|
||||||
|
Hasil pembagian: 2
|
||||||
|
Sisa hasil bagi: 0
|
||||||
|
```
|
||||||
|
|
||||||
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
+
|
||||||
|
-
|
||||||
|
*
|
||||||
|
/
|
||||||
|
%
|
||||||
|
printf
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
|
---EXPECTED_OUTPUT---
|
||||||
|
Hasil penjumlahan: 15
|
||||||
|
Hasil pengurangan: 5
|
||||||
|
Hasil perkalian: 50
|
||||||
|
Hasil pembagian: 2
|
||||||
|
Sisa hasil bagi: 0
|
||||||
|
---END_EXPECTED_OUTPUT---
|
||||||
|
|
||||||
|
---INITIAL_CODE---
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int a = 10;
|
||||||
|
int b = 5;
|
||||||
|
int hasil;
|
||||||
|
|
||||||
|
// TODO: Gunakan operator aritmatika untuk melakukan perhitungan
|
||||||
|
// Simpan hasil dalam variabel dan cetak dengan format yang sesuai
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
---END_INITIAL_CODE---
|
||||||
|
|
||||||
|
---SOLUTION_CODE---
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int a = 10;
|
||||||
|
int b = 5;
|
||||||
|
int hasil;
|
||||||
|
|
||||||
|
// Penjumlahan
|
||||||
|
hasil = a + b;
|
||||||
|
printf("Hasil penjumlahan: %d\\n", hasil);
|
||||||
|
|
||||||
|
// Pengurangan
|
||||||
|
hasil = a - b;
|
||||||
|
printf("Hasil pengurangan: %d\\n", hasil);
|
||||||
|
|
||||||
|
// Perkalian
|
||||||
|
hasil = a * b;
|
||||||
|
printf("Hasil perkalian: %d\\n", hasil);
|
||||||
|
|
||||||
|
// Pembagian
|
||||||
|
hasil = a / b;
|
||||||
|
printf("Hasil pembagian: %d\\n", hasil);
|
||||||
|
|
||||||
|
// Modulo
|
||||||
|
hasil = a % b;
|
||||||
|
printf("Sisa hasil bagi: %d\\n", hasil);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
---END_SOLUTION_CODE---
|
||||||
|
|
@ -142,6 +142,12 @@ Matched!
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
pointer + i
|
||||||
|
parray[i] = pointer + i
|
||||||
|
for (i = 0; i < 3; i++)
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Matched!
|
Matched!
|
||||||
Matched!
|
Matched!
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,13 @@ Done!
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
int *
|
||||||
|
&n
|
||||||
|
*pointer_to_n
|
||||||
|
+= 1
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Done!
|
Done!
|
||||||
---END_EXPECTED_OUTPUT---
|
---END_EXPECTED_OUTPUT---
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,13 @@ Definisikan fungsi baru bernama `factorial()` yang akan menghitung faktorial den
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
factorial(number-1)
|
||||||
|
if (number > 1)
|
||||||
|
return 1
|
||||||
|
int factorial
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
0! = 1
|
0! = 1
|
||||||
1! = 1
|
1! = 1
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,12 @@ Dalam latihan ini, cobalah untuk menemukan jumlah beberapa angka dengan mengguna
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
static int total
|
||||||
|
total += num
|
||||||
|
return total
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
55
|
55
|
||||||
100
|
100
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,14 @@ JohnBoe
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
char *
|
||||||
|
char []
|
||||||
|
sprintf
|
||||||
|
strncmp
|
||||||
|
strncat
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Done!
|
Done!
|
||||||
JohnBoe
|
JohnBoe
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,13 @@ John is 27 years old.
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
typedef struct
|
||||||
|
char * name
|
||||||
|
int age
|
||||||
|
person
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
John is 27 years old.
|
John is 27 years old.
|
||||||
---END_EXPECTED_OUTPUT---
|
---END_EXPECTED_OUTPUT---
|
||||||
|
|
|
||||||
|
|
@ -138,6 +138,13 @@ I understand Unions!
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
union hiddenMessage
|
||||||
|
int ints[6]
|
||||||
|
char chars[21]
|
||||||
|
intCharacters = {{1853169737
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
[I, , u, n, d, e, r, s, t, a, n, d, , U, n, i, o, n, s, !]
|
[I, , u, n, d, e, r, s, t, a, n, d, , U, n, i, o, n, s, !]
|
||||||
I understand Unions!
|
I understand Unions!
|
||||||
|
|
|
||||||
|
|
@ -178,6 +178,15 @@ Price: $1200.00
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
char
|
||||||
|
int
|
||||||
|
float
|
||||||
|
%s
|
||||||
|
%d
|
||||||
|
%.2f
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Product: Laptop
|
Product: Laptop
|
||||||
Quantity: 5
|
Quantity: 5
|
||||||
|
|
|
||||||
|
|
@ -289,70 +289,42 @@ int main() {
|
||||||
|
|
||||||
---EXERCISE---
|
---EXERCISE---
|
||||||
|
|
||||||
# Latihan: Menu Interaktif dengan Do-While Loop
|
# Latihan: Mencetak Angka Ganjil dengan While Loop
|
||||||
|
|
||||||
Dalam latihan ini, Anda akan membuat menu interaktif yang terus berjalan sampai pengguna memilih untuk keluar, menggunakan do-while loop.
|
Dalam latihan ini, Anda akan membuat program yang mencetak angka ganjil dari 1 hingga 20 menggunakan while loop.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Gunakan do-while loop untuk membuat menu terus berjalan
|
- Gunakan while loop untuk mencetak angka ganjil
|
||||||
- Tampilkan menu pilihan (setidaknya 3 pilihan)
|
- Cetak angka ganjil dari 1 hingga 20
|
||||||
- Gunakan switch statement untuk menangani pilihan menu
|
- Gunakan kondisi untuk memeriksa apakah angka ganjil
|
||||||
- Gunakan break untuk keluar dari perulangan saat pengguna memilih keluar
|
- Tampilkan setiap angka ganjil dengan pemisah spasi
|
||||||
- Pastikan program menangani pilihan yang tidak valid
|
|
||||||
|
|
||||||
**Expected Output:**
|
**Expected Output:**
|
||||||
```
|
```
|
||||||
Menu:
|
1 3 5 7 9 11 13 15 17 19
|
||||||
1. Tampilkan pesan sambutan
|
|
||||||
2. Hitung jumlah angka
|
|
||||||
3. Keluar
|
|
||||||
Pilih opsi (1-3): 1
|
|
||||||
Halo! Selamat datang di program kami.
|
|
||||||
Menu:
|
|
||||||
1. Tampilkan pesan sambutan
|
|
||||||
2. Hitung jumlah angka
|
|
||||||
3. Keluar
|
|
||||||
Pilih opsi (1-3): 2
|
|
||||||
Jumlah angka dari 1 hingga 5 adalah 15.
|
|
||||||
Menu:
|
|
||||||
1. Tampilkan pesan sambutan
|
|
||||||
2. Hitung jumlah angka
|
|
||||||
3. Keluar
|
|
||||||
Pilih opsi (1-3): 3
|
|
||||||
Terima kasih telah menggunakan program kami.
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Try writing your solution in the code editor below!
|
Try writing your solution in the code editor below!
|
||||||
|
|
||||||
|
---KEY_TEXT---
|
||||||
|
while
|
||||||
|
printf
|
||||||
|
% 2
|
||||||
|
---END_KEY_TEXT---
|
||||||
|
|
||||||
---EXPECTED_OUTPUT---
|
---EXPECTED_OUTPUT---
|
||||||
Menu:
|
1 3 5 7 9 11 13 15 17 19
|
||||||
1. Tampilkan pesan sambutan
|
|
||||||
2. Hitung jumlah angka
|
|
||||||
3. Keluar
|
|
||||||
Pilih opsi (1-3): 1
|
|
||||||
Halo! Selamat datang di program kami.
|
|
||||||
Menu:
|
|
||||||
1. Tampilkan pesan sambutan
|
|
||||||
2. Hitung jumlah angka
|
|
||||||
3. Keluar
|
|
||||||
Pilih opsi (1-3): 2
|
|
||||||
Jumlah angka dari 1 hingga 5 adalah 15.
|
|
||||||
Menu:
|
|
||||||
1. Tampilkan pesan sambutan
|
|
||||||
2. Hitung jumlah angka
|
|
||||||
3. Keluar
|
|
||||||
Pilih opsi (1-3): 3
|
|
||||||
Terima kasih telah menggunakan program kami.
|
|
||||||
---END_EXPECTED_OUTPUT---
|
---END_EXPECTED_OUTPUT---
|
||||||
|
|
||||||
---INITIAL_CODE---
|
---INITIAL_CODE---
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
int choice;
|
int number = 1; // Mulai dari angka 1
|
||||||
|
|
||||||
// TODO: Gunakan do-while loop untuk membuat menu interaktif
|
// TODO: Gunakan while loop untuk mencetak angka ganjil dari 1 hingga 20
|
||||||
// Tampilkan menu dan tangani pilihan pengguna
|
// - Kondisi: ulangi selama number kurang dari atau sama dengan 20
|
||||||
|
// - Di dalam loop: periksa apakah number ganjil, jika ya cetak, lalu tambahkan number
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -362,41 +334,16 @@ int main() {
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
int choice;
|
int number = 1; // Mulai dari angka 1
|
||||||
|
|
||||||
do {
|
while (number <= 20) {
|
||||||
printf("Menu:\\n");
|
if (number % 2 == 1) { // Periksa apakah angka ganjil
|
||||||
printf("1. Tampilkan pesan sambutan\\n");
|
printf("%d ", number);
|
||||||
printf("2. Hitung jumlah angka\\n");
|
|
||||||
printf("3. Keluar\\n");
|
|
||||||
printf("Pilih opsi (1-3): ");
|
|
||||||
scanf("%d", &choice);
|
|
||||||
|
|
||||||
switch (choice) {
|
|
||||||
case 1:
|
|
||||||
printf("Halo! Selamat datang di program kami.\\n");
|
|
||||||
break;
|
|
||||||
case 2: {
|
|
||||||
int sum = 0;
|
|
||||||
for (int i = 1; i <= 5; i++) {
|
|
||||||
sum += i;
|
|
||||||
}
|
|
||||||
printf("Jumlah angka dari 1 hingga 5 adalah %d.\\n", sum);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
printf("Terima kasih telah menggunakan program kami.\\n");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
printf("Opsi tidak valid. Silakan coba lagi.\\n");
|
|
||||||
}
|
}
|
||||||
|
number++; // Tambahkan number setiap iterasi
|
||||||
|
}
|
||||||
|
|
||||||
// Jika bukan pilihan keluar, tambahkan baris kosong untuk pemisah
|
printf("\\n");
|
||||||
if (choice != 3) {
|
|
||||||
printf("\\n");
|
|
||||||
}
|
|
||||||
} while (choice != 3);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
---END_SOLUTION_CODE---
|
---END_SOLUTION_CODE---
|
||||||
2
elemes
2
elemes
|
|
@ -1 +1 @@
|
||||||
Subproject commit 767678bb514bf624ba89d5266c4304e049daad9a
|
Subproject commit d59eae3bd053bbd332ce29692caa7d6564306aab
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
token;nama_siswa;dynamic_allocation;binary_trees;hello_world;unions;for_loops;function_arguments_by_reference;while_loops;arrays;variables_and_types;functions;strings;arrays_and_pointers;function_pointers;pointers;structures;pointer_arithmetics;multidimensional_arrays;recursion;conditions;linked_lists;bitmasks;static
|
token;nama_siswa;hello_world;variables;data_types;conditions;for_loops;while_loops;arrays;strings;functions;static;pointers;structures;function_arguments_by_reference;dynamic_allocation;arrays_and_pointers;recursion;linked_lists;binary_trees;unions;pointer_arithmetics;function_pointers;bitmasks
|
||||||
dummy_token_12345;Example Student;not_started;not_started;completed;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started
|
dummy_token_12345;Example Student;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started
|
||||||
|
121312;Anggoro Dwi;completed;completed;completed;completed;completed;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started;not_started
|
||||||
|
|
|
||||||
|
Loading…
Reference in New Issue