Praktikum
STRATEGI ALGORITMA DAN PEMOGRAM
AN
Pemrograman Dasar
INFORMATIKA
SMAN 1 BUKIT SUNDI
Kurikulum Merdeka
LKPD
Teori, Latihan C++, Praktek
TUJUAN PRAKTIKUM
1. Personal Computer
2. DEV C++
Materi Praktikum 6:
PROGRAM ALGORITMA DASAR:
1. Membuat program perhitungan gaji karyawan
2. Membuat program menu berulang
3. Program Menampilkan Biodata Siswa
[nama_latihanke.._materi]
Fahami karna kita akan membuat sebuah program
A. MENGHITUNG GAJI
KARYAWAN
Jika jam kerja karyawan lebih dari 48 jam per minggu maka akan mendapat
uang lembur dengan perhitungan uang lembur = (jam kerja-48)*4000.
Jika jam kerja kurang dari 48 jam maka pegawai tidak akan mendapat uang
lembur.
Perhitungan gaji pegawai adalah upah + uang lembur.
Input berupa nama karyawan, golongan dan jam kerja.
Outputnya adalah nama karyawan dan gaji yang diterima.
1 #include <stdio.h>
2
int main(void)
3 {
4 printf("## Program Bahasa C Menghitung Gaji Karyawan ## \n");
5 printf("=============================================== \n\n");
6
7 char nama[50];
char golongan;
8 int jam_kerja, upah_per_jam, total_upah;
9
10 // proses input
11 printf("Nama Karyawan: ");
12 gets(nama);
13
printf("Golongan: ");
14 scanf("%c",&golongan);
15
16 printf("Jumlah jam kerja: ");
17 scanf("%d",&jam_kerja);
18
// tentukan jumlah upah per jam berdasarkan golongan
19
switch (golongan) {
20 case 'A':
21 upah_per_jam = 5000;
22 break;
23 case 'B':
upah_per_jam = 7000;
24 break;
25 case 'C':
26 upah_per_jam = 8000;
27 break;
28 case 'D':
upah_per_jam = 10000;
29 break;
30 }
31
32 total_upah = jam_kerja * upah_per_jam;
33
// cek apakah jam kerja lebih dari 48 jam
34
if ( (jam_kerja - 48) > 0 ) {
35 total_upah = total_upah + ((jam_kerja - 48)*4000);
36 }
37
38 // proses output
39 printf("\n");
printf("%s menerima upah Rp. %d per minggu \n", nama, total_upah);
40
41
Praktikum Pemrograman Dasar Bahasa C | ©2022/2023 3
INFORMATIKA | SMAN 1 BUKIT SUNDI
Dasar Teori, Instalasi, Latihan C++
Praktikum Pemograman Dasar C++ Tahap 7
42
43
44
45
return 0;
46 }
47
48
49
50
Penjelasanya:
Dalam soal, terdapat kondisi tambahan dimana jika jam kerja lebih
dari 48, maka perlu ditambah dengan upah lembur. Inilah yang
dilakukan oleh kode program di baris 41 – 43.
Kondisi if ( (jam_kerja – 48) > 0 ) hanya akan terpenuhi jika jam kerja
lebih dari 48 jam. Jika kondisi ini menghasilkan nilai true, maka baris
45 akan diproses dan isi variabel total_upah akan di tambah dengan
perhitungan total_upah + ((jam_kerja – 48)*4000).
Namun jika kondisi if ( (jam_kerja – 48) > 0 ) menghasilkan nilai false,
tidak perlu perhitungan tambahan.
Terakhir, proses output di lakukan pada baris 47 dengan
menampilkan kembali nama karyawan serta jumlah upah per
minggu yang disimpan dalam variabel total_upah.
Pilihan anda:
Disini terdapat 5 pilihan menu kopi. Lalu kode program akan berhenti
menunggu user memilih salah satu menu. Jika diinput angka 2, maka hasilnya
menjadi:
Pilihan anda: 2
Anda memilih Cappuccino
Jika user menginput huruf "y", maka akan tampil kembali menu awal:
Pilihan anda:
Pilihan anda: 4
Anda memilih Vanilla Latte
Terimakasih...
1 #include <stdio.h>
2
3 int main(void)
4 {
int pilihan;
5
char ulang;
6 do
7 {
8 printf("## Daftar Menu Kopi Ilkom ## \n");
9 printf("============================== \n");
10 printf("1. Espresso \n");
11 printf("2. Cappuccino \n");
12 printf("3. Moccacino \n");
13 printf("4. Vanilla Latte \n");
printf("5. Hazelnut Latte \n\n");
14
15 printf("Pilihan anda: ");
16 scanf("%i",&pilihan);
17
18 switch(pilihan){
19 case 1:
20 printf("Anda memilih Espresso \n");
21 break;
22 case 2:
23 printf("Anda memilih Cappuccino \n");
break;
24
case 3:
25 printf("Anda memilih Moccacino \n");
26 break;
6 Praktikum Pemrograman Dasar Bahasa C | ©2022/2023
Rekayasa Perangkat Lunak | SMKN 1 BUKIT SUNDI
Dasar Teori, Instalasi, Latihan C++
Praktikum Pemograman Dasar C++ Tahap 7
27
28
29 case 4:
30 printf("Anda memilih Vanilla Latte \n");
31 break;
32 case 5:
33 printf("Anda memilih Hazelnut Latte \n");
34 break;
35 default:
printf("Menu tidak tersedia \n");
36
}
37 printf("\n");
38
39 printf("Ingin memilih menu lain (y/t)? ");
40 scanf(" %c",&ulang);
41 printf("\n");
42 }
43 while (ulang!= 't');
44
45 printf("Terimakasih... \n");
46
47 return 0;
}
48
49
50
Penjelasanya:
Di awal kode program pada baris 5 dan 6 saya mendeklarasikan dua
variabel, yakni pilihan dan ulang. Variabel pilihan nantinya akan
menampung angka pilihan menu yang diinput user. Sedangkan
variabel ulang menampung karakter yang akan dipakai untuk
mengulang menu.
Selanjutnya di baris 7 – 8 terdapat perintah do {. Ini adalah tanda bahwa
kita masuk ke sebuah perulangan do while. Hampir semua kode
program berada dalam perulangan ini, yang ditutup pada baris 45.
Kondisi akhir perulangan adalah (ulang!= 't'), yang artinya jika
variabel ulang tidak d iinput karakter 't', maka perulangan do while akan
terus di proses.
Pada awal perulangan di baris 9 – 15 terdapat beberapa
perintah printf untuk menampilkan daftar menu. Kemudian user
8 Praktikum Pemrograman Dasar Bahasa C | ©2022/2023
Rekayasa Perangkat Lunak | SMKN 1 BUKIT SUNDI
Dasar Teori, Instalasi, Latihan C++
Praktikum Pemograman Dasar C++ Tahap 7
Sebagai contoh lain, silahkan buat menu berulang menghitung untuk luas
bangun datar:
1. Luas Persegi
2. Luas Segitiga
3. Luas Lingkaran
Jika dipilih Luas Segitiga, maka user bisa menginput tinggi dan alas segitiga,
lalu menampilkan hasilnya. Kode yang diperlukan memang akan kompleks,
tapi bisa jadi ajang latihan algoritma yang lebih menantang lagi.
# Data Mahasiswa #
==================
Nama: Rudi Cayadi Putra
NIM: 221401030
Fakultas: Teknik Telekomunikasi dan Informatika
Jurusan: Teknik Informatika
Kota Asal: Bandung
Alamat: JL. Ujung Harapan no.25, Sukamaju, Bandung
1 #include <stdio.h>
2
3 int main(void)
4 {
printf("## Program Bahasa C Biodata Mahasiswa ## \n");
5
printf("======================================== \n\n");
6
7 char nama[50], nim[10], fakultas[60];
8 char jurusan[60], kota_asal[60], alamat[200];
9
10 // proses input data mahasiswa
11 printf("Nama mahasiswa: ");
12 gets(nama);
13
14 printf("NIM: ");
15 gets(nim);
16
17 printf("Fakultas: ");
gets(fakultas);
18
19 printf("Jurusan: ");
20 gets(jurusan);
21
22 printf("Kota Asal: ");
23 gets(kota_asal);
24
25 printf("Alamat: ");
26 gets(alamat);
27
28 printf("\n");
29
1 Praktikum Pemrograman Dasar Bahasa C | ©2022/2023
0 Rekayasa Perangkat Lunak | SMKN 1 BUKIT SUNDI
Dasar Teori, Instalasi, Latihan C++
Praktikum Pemograman Dasar C++ Tahap 7
30
31 // Tampilkan biodata mahasiswa
32 printf("# Data Mahasiswa # \n");
33 printf("================== \n");
34 printf("Nama: %s \n",nama);
35 printf("NIM: %s \n",nim);
36 printf("Fakultas: %s \n",fakultas);
37 printf("Jurusan: %s \n",jurusan);
38 printf("Kota Asal: %s \n",kota_asal);
printf("Alamat: %s \n",alamat);
39
40
return 0;
41 }
42
43
Soal 1:
Buatlah program dalam bahasa C untuk menentukan gaji karyawan telkom
mingguan dengan ketentuan sebagai berikut:
Ketentuan tambahan:
Jika jam kerja karyawan lebih dari 48 jam per minggu maka akan mendapat
uang lembur dengan perhitungan uang lembur = (jam kerja-48)*7000.
Jika jam kerja kurang dari 48 jam maka pegawai tidak akan mendapat uang
lembur.
Perhitungan gaji pegawai adalah upah + uang lembur.
Input berupa nama karyawan, golongan dan jam kerja.
Outputnya adalah nama karyawan dan gaji yang diterima.
===============================================
## Program Bahasa C Menghitung Gaji Karyawan ##
===============================================
1 Praktikum Pemrograman Dasar Bahasa C | ©2022/2023
2 Rekayasa Perangkat Lunak | SMKN 1 BUKIT SUNDI
Dasar Teori, Instalasi, Latihan C++
Praktikum Pemograman Dasar C++ Tahap 7
Soal 2:
Buatlah sebuah kode program dalam bahasa C yang akan menampilkan
menu berikut:
Pilihan anda:
Disini terdapat 5 pilihan menu kopi. Lalu kode program akan berhenti
menunggu user memilih salah satu menu. Jika diinput angka 2, maka hasilnya
menjadi:
Pilihan anda: 3
Anda memilih Dark Mocca
Jika user menginput huruf "y", maka akan tampil kembali menu awal:
Pilihan anda: 4
Anda memilih Vanilla Cream
Terimakasih...
Soal 3:
Buatlah program yang meminta data inputan pegawai bank mandiri
berupa Nama, No hp, formasi kerja, Jurusan pendidikan, Kota Asal dan Alamat.
Program kemudian menyimpan data ini di dalam variabel lalu menampilkan
semua hasilnya.
Berikut contoh tampilan akhir yang diinginkan (1) :
=======================================================
## Program Bahasa C Biodata Pegawai Bank ##
=======================================================
=======================================================
# Hasil Data Pegawai #
=======================================================
Nama : Rudi Cayadi Putra
NIM : 221401030
Fakultas : Teknik Telekomunikasi dan Informatika
Jurusan : Teknik Informatika
Kota Asal: Bandung
Alamat : JL. Ujung Harapan no.25, Sukamaju, Bandung