0% found this document useful (0 votes)
1 views

TP1 Algorithm Programming

TP1 Algorithm Programming

Uploaded by

Wahyu Saja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

TP1 Algorithm Programming

TP1 Algorithm Programming

Uploaded by

Wahyu Saja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Algoritma & Pemrograman (Tugas Personal 1)

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.

Tunjangan jabatan Tunjangan Pendidikan


Golongan Persentase Golongan Persentase
1 5% SMA 2,5 %
2 10 % D3 5%
3 15 % S1 10 %

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.

Hitung gaji dari karyawan dengan rumus :


Gaji = gaji per bulan + tunjangan jabatan + tunjangan pendidikan + lembur
• Tunjangan jabatan = gaji per bulan * persentase
• Tunjangan pendidikan = gaji per bulan * persentase
• Lembur = jam lembur * 3000

Tampilan inputan pada layar :


PROGRAM HITUNG GAJI KARYAWAN
Nama Karyawan: ...
Golongan Jabatan : ...
Pendidikan : ...
Jumlah jam kerja :...

Keluaran Program
Nama Karyawan ......
Tunjangan Jabatan Rp ...
Tunjangan Pendidikan Rp ...
Honor Lembur Rp .....
Total Gaji Rp ...
LEMBAR JAWABAN

1. Jenis – jenis operator dalam Bahasa C,


a. Operator Aritmatika
Merupakan operator yang biasa kita temukan untuk operasi matematika. Aritmatika
sendiri merupakan cabang ilmu matematika yang membahas perhitungan sederhana,
seperti kali, bagi, tambah dan kurang.
Contoh : a=5+2
a=5*2
b. Operator Increment dan Decrement
Operator increment dan decrement adalah sebutan untuk operasi seperti a++, dan a--.
Ini sebenarnya penulisan singkat dari operasi a = a + 1 serta a = a – 1.
Increment digunakan untuk menambah variabel sebanyak 1 angka, sedangkan
decrement digunakan untuk mengurangi variabel sebanyak 1 angka.
Contoh :

Operator Contoh Penjelasan


Pre-increment ++a Tambah a sebanyak 1 angka, lalu tampilkan hasilnya
Post-increment a++ Tampilkan nilai a, lalu tambah a sebanyak 1 angka
Pre-decrement --a Kurangi a sebanyak 1 angka, lalu tampilkan hasilnya
Post-decrement a-- Tampilkan nilai a, lalu kurangi a sebanyak 1 angka

c. Operator Perbandingan / Relasional


Operator perbandingan dipakai untuk membandingkan 2 buah nilai, apakah nilai
tersebut sama besar, lebih kecil, lebih besar, dll. Hasil dari operator perbandingan ini
adalah boolean True atau False, namun karena bahasa C tidak memiliki tipe data
boolean bawaan, maka hasilnya adalah integer 1 atau 0.
Contoh :

Operator Penjelasan Contoh Hasil


== Sama dengan 5 == 5 1 (true)
!= Tidak sama dengan 5 != 5 0 (false)
> Lebih besar 5>6 0 (false)
< Lebih kecil 5<6 1 (true)
>= Lebih besar atau sama dengan 5 >= 3 1 (true)
<= Lebih kecil atau sama dengan 5 <= 5 1 (true)
d. Operator Logika / Boolean
Operator logika dipakai untuk menghasilkan nilai boolean true atau false dari 2 kondisi
atau lebih. Rumus yang dipakai adalah sebagai berikut:
§ && akan menghasilkan 1 jika kedua operand bernilai 1, selain itu hasilnya 0.
§ || akan menghasilkan 0 jika kedua operand bernilai 0, selain itu hasilnya 1.
§ ! Akan membalikkan logika, !0 menjadi 1, !1 menjadi 0.
Contoh:
Operator Nama Penjelasan Contoh
&& And Akan menghasilkan 1 jika kedua operand 1 1 && 0, hasilnya: 0
|| Or Akan menghasilkan 1 jika salah satu operand 1 1 || 0, hasilnya: 1
! Not Akan menghasilkan 1 jika operand 0 !0, hasilnya: 1

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,- */

float hitung_tunjangan_golongan ( int golongan) {


switch (golongan) {
case 1:
return gaji_pokok * 0.05;
case 2:
return gaji_pokok * 0.1;
case 3:
return gaji_pokok * 0.15;
default:
return 0;
}
}

float hitung_tunjangan_pendidikan ( char pendidikan[5]) {


int i = 0;
while(pendidikan[i]) {
pendidikan[i] = toupper(pendidikan[i]);
i++;
}

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
*/

if ((jam_kerja - 176) > 0) {


return (jam_kerja - 176) * 3000;
} else {
return 0;
}
}

float hitung_total_gaji (float tj_gol, float tj_pend, float uph_lembur) {


return gaji_pokok + tj_gol + tj_pend + uph_lembur;
}

int main()
{
int golongan;
char pendidikan[5], nama[50];
float total_gaji, jam_kerja, tunjangan_golongan, tunjangan_pendidikan, upah_lembur;

printf("PROGRAM HITUNG GAJI KARYAWAN\n");


printf("Nama Karyawan = ");scanf("%s",&nama);
printf("Golongan Jabatan = ");scanf("%d",&golongan);
printf("Pendidikan = ");scanf("%s",&pendidikan);
printf("Jumlah Jam Kerja = ");scanf("%f",&jam_kerja);
printf("\n");

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");
}

printf(" Tunjangan Jabatan : Rp %.2f", tunjangan_golongan); printf("\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;
}

You might also like