TP1 Algorithm Programming
TP1 Algorithm Programming
1. Jelaskan macam – macam operator yang ada dalam bahasa c dan berikan contohnya !
2. Perusahaan ABC merupakan perusahaan yang bergerak dibidang jasa yang memberikan gaji
pokok pada karyawannya sebesar Rp 2.000.000 perbulan. Karyawan tersebut juga diberikan
tunjangan berdasarkan golongan yang ada antara lain.
Honor lembur
Jumlah jam kerja normal sebanyak 8 jam, Honor lembur diberikan jika jumlah jam kerja lebih
dari 8 jam, maka kelebihan jam kerja tersebut dikalikan dengan Rp. 3000 untuk setiap
kelebihan jam kerja karyawan tersebut.
Keluaran Program
Nama Karyawan ......
Tunjangan Jabatan Rp ...
Tunjangan Pendidikan Rp ...
Honor Lembur Rp .....
Total Gaji Rp ...
LEMBAR JAWABAN
e. Operator Bitwise
Operator bitwise adalah operator khusus untuk menangani operasi logika bilangan biner
dalam bentuk bit.
Bilangan biner sendiri merupakan jenis bilangan yang hanya terdiri dari 2 jenis angka,
yakni 0 dan 1. Jika nilai asal yang dipakai bukan bilangan biner, akan dikonversi secara
otomatis oleh compiler C menjadi bilangan biner. Misalnya 7 desimal = 0111 dalam
bilangan biner.
Contoh:
Operator Nama Contoh Biner Hasil (biner) Hasil (desimal)
& AND 10 & 12 1010 & 1100 1000 8
| OR 10 | 12 1010 | 1100 1110 14
^ XOR 10 ^ 1 1010 ^ 1100 0110 6
~ NOT ~5 ~0101 1011 -11 (Two’s
complement)
<< Left shift 10 << 1 1010 << 1 10100 20
>> Right shift 10 >> 1 1010 >> 1 101 5
f. Operator Assignment
Operator assignment adalah operator yang digunakan untuk memberikan nilai ke dalam
suatu variabel. Di dalam bahasa C, operator assignment menggunakan tanda sama
dengan ” = “. Nantinya juga terdapat operator assignment gabungan, seperti ” += “, ” -=
“, dsb.
g. Operator Lainnya
Operator Lainnya ini adalah kelompok operator khusus yang tidak termasuk ke dalam
kelompok sebelumnya, diantaranya adalah operator sizeof dan operator ternary ” ? : “.
2. Source code Program Penghitungan Gaji PT ABC.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define gaji_pokok 2000000
/*Mengacu pada soal bahwa gaji pokok sudah ditentukan sebesar RP 2.000.000,- */
if ( strcmp(pendidikan, "SMA") == 0) {
return gaji_pokok * 0.025;
} else if ( strcmp(pendidikan, "D3") == 0) {
return gaji_pokok * 0.05;
} else if ( strcmp(pendidikan, "S1") == 0) {
return gaji_pokok * 0.1;
} else {
return 0;
}
}
float hitung_upah_lembur (float jam_kerja) {
/*
Jam kerja per hari = 8 jam
Hari kerja per bulan = 22 hari kerja
Jam kerja normal per bulan 8 * 22 = 176 jam
Jam lembur = jam kerja > 176 jam
*/
int main()
{
int golongan;
char pendidikan[5], nama[50];
float total_gaji, jam_kerja, tunjangan_golongan, tunjangan_pendidikan, upah_lembur;
tunjangan_golongan = hitung_tunjangan_golongan(golongan);
tunjangan_pendidikan = hitung_tunjangan_pendidikan(pendidikan);
upah_lembur = hitung_upah_lembur(jam_kerja);
total_gaji = hitung_total_gaji(tunjangan_golongan, tunjangan_pendidikan, upah_lembur);
printf("Nama Karyawan :%s", &nama); printf("\n");
int i = 0;
while(pendidikan[i]) {
pendidikan[i] = toupper(pendidikan[i]);
i++;
}
if ( tunjangan_golongan < 1) {
printf("Golongan tidak terdaftar di system \n");
}
if (tunjangan_pendidikan < 1) {
printf("Pendidikan tidak terdaftar di system");
}
printf(" Tunjangan pendidikan : Rp %.2f", tunjangan_pendidikan); printf("\n");
if ( upah_lembur < 1) {
printf("jam kerja tidak melebihi jam kerja normal");
}
printf(" Honor lembur : Rp %.2f", upah_lembur); printf("\n");
printf("Total gaji : Rp %.2f", total_gaji);
printf("\n\n");
return 0;
}