Anda di halaman 1dari 21

PRAKTIKUM 3

Tipe Data dan Variabel

A.

Dasar Teori
Data berdasarkan jenisnya dibagi menjadi lima kelompok, yang dinamakan sebagai

tipe data dasar. Kelima tipe data dasar adalah:


1. Bilangan bulat (integer)
2. Bilangan real presisi-tunggal
3. Bilangan real presisi-ganda
4. Karakter
5. Tak-bertipe (void)
Kata-kunci yang berkaitan dengan tipe data dasar secara berurutan di antaranya
adalah int (short int, long int, signed int dan unsigned int), float, double, dan char. Berikut
tabel informasi mengenai ukuran memori yang diperlukan dan kawasan dari masing-masing
tipe data dasar.

Tipe

Total bit

Kawasan

Keterangan

char

-128 s/d 127

Karakter

Int

32

-2147483648 s/d 2147483647

Bilangan integer

float

32

1.7E-38 s/d 3.4E+38

Bilangan real presisi-tunggal

Double

64

2.2E-308 s/d 1.7E+308

Bilangan real presisi ganda

Variabel
Aturan penulisan pengenal untuk sebuah variabel, konstanta atau fungsi yang
didefinisikan oleh pemrogram adalah sebagai berikut :
1. Pengenal harus diawali dengan huruf (A..Z, a..z) atau karakter garis bawah ( _ ).
2. Selanjutnya dapat berupa huruf, digit (0..9) atau karakter garis bawah atau tanda
dollar ($).
3. Panjang pengenal boleh lebih dari 31 karakter, tetapi hanya 31 karakter pertama yang
akan dianggap berarti.
4. Pengenal tidak boleh menggunakan nama yang tergolong sebagai kata -kata cadangan
(reserved words) seperti int, if, while dan sebagainya.
Konstanta
1. Konstanta menyatakan nilai yang tetap. Penulisan konstanta mempunyai aturan
tersendiri, sesuai dengan tipe masing-masing.

2. Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda petik
tunggal, contohnya : A dan @.
3. Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan tak
mengandung bagian pecahan, contohnya : 1 dan 32767.
4. Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa titik)
dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e), contohnya :
27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x 105).
5. Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda
petik-ganda (), contohnya :Pemrograman Dasar C.
Operator Aritmatika
Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah :
*

perkalian

pembagian

% sisa pembagian
+

penjumlahan

pengurangan

B. Tugas Pendahuluan
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :
1.

Melakukan konversi valuta asing, misalnya mata uang dolar US ke mata uang Rupiah
dimana satu dolar sama dengan Rp 11.090
- Input

: uang dalam US dolar

- Proses : uang_rupiah = uang_dolar * 11090


- Output : uang rupiah
a. Algoritma

b. Flowchart
START

Deklarasikan dolar, rupiah, dan kurs


sebagai bilangan bulat.

kurs =11.090

1. Baca nilai uang dalam US Dollar


dan tampung ke variabel dolar
READ
dollar

2. Kalikan dolar dengan kurs dan


tampung hasilnya ke variabel
rupiah

rupiah = dolar * kurs

3. Tampilkan isi dari variabel rupiah


PRINT
rupiah

2.

Menentukan banyaknya uang pecahan yang

END

dibutuhkan, urut dari pecahan terbesar


(100000,50000,20000,10000,5000,2000,1000)
Input

jumlah uang dalam rupiah (misal : 189000)

Proses

ratusanribu

= jml_uang dibagi 100000

Sisa

= jml_uang (ratusanribu*100000)

limaplhribu

= sisa dibagi 50000

sisa

= sisa (limaplhribu*50000)

dan seterusnya.
Output :

1 Lembar 100000
1 Lembar 50000
1 Lembar 20000
1 Lembar 10000
1 Lembar 5000
2 Lembar 2000

a. Algoritma

b. Flowchart

START

Deklarasikan uang, lbr100, lbr50, lbr20, lbr20, lbr10,


lbr5, lbr5, lbr2, lbr1 dan sisa sebagai bilangan bulat.

READ
uang

1. Baca jumlah uang, kemudian tampung di variabel


uang.
2. Bagi uang dengan 100000, kemudian tampung
hasilnya di variabel lbr100
3. Cari sisa bagi uang dengan 100000, kemudian
tampung hasilnya di variabel sisa
4. Bagi sisa dengan 50000, kemudian tampung hasilnya
di variabel lbr50
5. Cari sisa bagi uang dengan 50000, kemudian
tampung hasilnya di variabel sisa
6. Bagi sisa dengan 50000, kemudian tampung hasilnya
di variabel lbr20

lbr100 = uang / 100000

sisa
lbr50
sisa
lbr20
sisa
lbr10
sisa
lbr5
isa
lbr2
sisa
lbr1
sisa

= uang % 100000
= sisa / 50000
= sisa % 50000
= sisa / 20000
= sisa % 20000
= sisa / 10000
= sisa % 10000
= sisa / 5000
= sisa % 5000
= sisa / 2000
= sisa % 2000
= sisa / 1000
= sisa % 1000

7. Cari sisa bagi uang dengan 20000, kemudian


tampung hasilnya di variabel sisa
8. Bagi sisa dengan 50000, kemudian tampung hasilnya
di variabel lbr10
9. Cari sisa bagi uang dengan 10000, kemudian
tampung hasilnya di variabel sisa
10. Bagi sisa dengan 50000, kemudian tampung hasilnya

PRINT
lbr100,
lbr50,
lbr20,
lbr10,
lbr5,
lbr2,
lbr1

di variabel lbr5
11. Cari sisa bagi uang dengan 5000, kemudian tampung

END

hasilnya di variabel sisa


12. Bagi sisa dengan 50000, kemudian tampung hasilnya di variabel lbr2
13. Cari sisa bagi uang dengan 2000, kemudian tampung hasilnya di variabel sisa
14. Bagi sisa dengan 50000, kemudian tampung hasilnya di variabel lbr1
15. Cari sisa bagi uang dengan 1000, kemudian tampung hasilnya di variabel sisa
16. Tampilkan jumlah lembar seratusan ribu yaitu lbr100
17. Tampilkan jumlah lembar lima puluhan ribu yaitu lbr50
18. Tampilkan jumlah lembar tiga puluhan ribu yaitu lbr30
19. Tampilkan jumlah lembar dua puluhan ribu yaitu lbr20
20. Tampilkan jumlah lembar sepuluhan ribu yaitu lbr10
21. Tampilkan jumlah lembar lima ribuan yaitu lbr5
22. Tampilkan jumlah lembar dua ribuan yaitu lbr2
23. Tampilkan jumlah lembar seribuan yaitu lbr1

3.

Diketahui variabel-variabel sebagai berikut: int a = 12, b = 2, c = 3, d = 4;

Buat program untuk mencetak hasil :


a%b

a+b

a/d*d+a%d

a-c

a/d

a%d/d*ac

a.

Algoritma

b. Flowchart

1. Deklarasikan a, b dan c sebagai

START

bilangan bulat dengan nilai a=12,


b =2, c=3 , d=4
2. Lakukan perhitungan sesuai
rumus :

a = 12
b=2
c=3
d=4

a%b
a-c

s1= a % b

a+b

s2 = a - c

a/d

s3 = a + b

a/d*d+a%d

s4 = a / d

a%d/d*ac

s5 = a / d * d + a % d

3. Tampilkan seluruh hasil operasi di

s6 = a % d / d * a c

atas.
PRINT
s1, s2, s3,
s4, s5, s6

END

4.

Buatlah program untuk menghitung Diskriman dari sebuah persamaan kuadrat dengan

nilai a, b dan c yang diinputkan.

a. Algoritma
Deklarasikan a, b, c, d sebagai bilangan bulat.

START

READ
a, b, c

1. Baca nilai a dan tampung ke variabel a


2. Baca nilai a dan tampung ke variabel b

d=b*b4*a*c

3. Baca nilai a dan tampung ke variabel c


4. Hitung diskriminan dengan melakukan
perhitungan sesuai rumus b * b 4 * a * c, dan

PRINT
d

tampung hasilnya di variabel d


5. Tampilkan isi dari variabel d
END

5.

Kerjakan soal no 4 dan 5 dengan mengubah tipe datanya menjadi float.

5a)
a. Algoritma
5. Deklarasikan a, b dan c sebagai

b. Flowchart
START

bilangan pecahan float dengan


nilai a=12, b =2, c=3 , d=4
6. Lakukan perhitungan sesuai
rumus :

a = 12
b=2
c=3
d=4

a%b
a-c

s1= a % b

a+b

s2 = a - c

a/d

s3 = a + b

a/d*d+a%d

s4 = a / d

a%d/d*ac

s5 = a / d * d + a % d

7. Tampilkan seluruh hasil operasi di

s6 = a % d / d * a c

atas.
PRINT
s1, s2, s3,
s4, s5, s6

END

5b)
a. Algoritma

b. Flowchart

Deklarasikan a, b, c, d sebagai
bilangan pecahan float.
6. Baca nilai a dan tampung ke
variabel a

START

READ
a, b, c

7. Baca nilai a dan tampung ke


variabel b

d=b*b4*a*c

8. Baca nilai a dan tampung ke


variabel c
9. Hitung diskriminan dengan

PRINT
d

melakukan perhitungan sesuai


rumus b * b 4 * a * c, dan

END

tampung hasilnya di variabel d

C. Percobaan
1. Mengkonversi dolar ke rupiah
a. Listing Program
#include <stdio.h>
#define KURS 11090
main()
{
int dolar, rupiah;
printf("\nPRAKTIKUM 3 SOAL 1 \nRENDRA BUDI HUTAMA
\n2110131036 - 1D4ITB\n");
printf("\n===================================================
=========================== \n\n");
printf("Masukkan nilai uang dalam dolar : ");
scanf("%d",&dolar);
rupiah = dolar * KURS;
printf("\n$%d = Rp.%d",dolar,rupiah);
printf("\n\n");
getch();
}

b. Capture Program

c. Analisis
Tipe variabel yang cocok untuk operasi pada program diatas adalah int(angka)
karena dengan tipe data integer memungkinkan kita untuk melakukan operasi
aritmatika mulai dari penjumlahan, pengurangan, perkalian dan penjumlahan.

2. Menentukan jumlah lembar uang yang dibutuhkan.


a. Listing Program
#include <stdio.h>
#define KURS 11090
main()
{
int uang, sisa, lbr100, lbr50, lbr20, lbr10, lbr5, lbr2,
lbr1;
printf("\nPRAKTIKUM 3 SOAL 2 \nRENDRA BUDI HUTAMA
\n2110131036 - 1D4ITB\n");
printf("\n===================================================
=========================== \n\n");
printf("Masukkan jumlah uang : ");
scanf("%d",&uang);
lbr100
sisa
lbr50
sisa
lbr20
sisa

=
=
=
=
=
=

uang
uang
sisa
sisa
sisa
sisa

/
%
/
%
/
%

100000;
100000;
50000;
50000;
20000;
20000;

lbr10 = sisa / 10000;


sisa
= sisa % 10000;
lbr5 = sisa / 5000;
sisa
= sisa % 5000;
lbr2 = sisa / 2000;
sisa
= sisa % 2000;
lbr1 = sisa / 1000;
sisa
= sisa % 1000;
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n

%d
%d
%d
%d
%d
%d
%d

seratus ribuan",lbr100);
lima puluh ribuan",lbr50);
dua puluh ribuan",lbr20);
sepuluh ribuan",lbr10);
lima ribuan",lbr5);
dua ribuan",lbr2);
seribuan",lbr1);

printf("\n\n");
getch();
}

b. Capture Program

c. Analisis
Operasi Pembagian bilangan integer akan menghasilkan bilangan utuh(dibulatkan
ke bawah) apabila sisa bagi tidak sama dengan 0. Sedangkan untuk mendapatkan
nilai sisa itu sendiri, kita dapat menggunakan operator % (modulus).
3.

Melakukan operasi aritmatika sederhana


a.

Listing Program
#include <stdio.h>
main()
{
int a=12, b=2 , c=3, d=4;
int s1, s2, s3, s4, s5, s6;
printf("\nPRAKTIKUM 3 SOAL 3 \nRENDRA BUDI HUTAMA
\n2110131036 - 1D4ITB\n");
printf("\n===================================================
=========================== \n\n");
s1 = a % b;
s2 = a - c;
s3 = a + b;
s4 = a / d ;
s5 = a / d * d + a % d;
s6 = a % d / d * a - c;
printf("%d %% %d = %d \n", a, b, s1);
printf("%d - %d = %d \n", a, b, s2);
printf("%d + %d = %d \n", a, b, s3);
printf("%d / %d = %d \n", a, b, s4);
printf("%d / %d * %d + %d %% %d = %d \n", a, d, d, a, d, s5);
printf("%d / %d * %d + %d %% %d = %d \n", a, d, d, a, d, s5);
getch();

b.

Capture Program

c.

Analisis
Di dalam bahasa C terdapat banyak operator yang bisa digunakan untuk berbagai

perhitungan aritmatika.Operator yang biasa digunakan adalah + , - , * , / dan %. Setiap


operator memiliki prioritas yang menentukan urutan eksekusi tiap operator. Misalnya
operator * dan / akan dikerjakan lebih dahulu dibandingkan operator + dan -.

4. Menghitung nilai Diskriminan

a. Listing Program
#include <stdio.h>
main()
{
int a, b, c , d;
printf("\nPRAKTIKUM 3 SOAL 4 \nRENDRA BUDI HUTAMA \n2110131036 1D4ITB\n");
printf("\n=========================================================
===================== \n\n");
printf("Masukkan nilai a : ");
scanf("%d",&a);
printf("Masukkan nilai b : ");
scanf("%d",&b);
printf("Masukkan nilai c : ");
scanf("%d",&c);
d = b * b - 4 * a * c;
printf("\nDiskriminannya adalah : %d", d);
getch();
}

b. Capture Program

c. Analisis
Untuk menghitung nilai diskriminan, diperlukan 3 buah variabel dengan tipe
bilangan bulat. Kemudian ketiga variabel tersebut diproses sesuai rumus diskriminan
yaitu b2-4ac

5.

1. Melakukan operasi aritmatika sederhana dengan tipe bilangan Float


a.

Listing Program
#include <stdio.h>
main()
{
float a=12, b=2 , c=3, d=4;
float s2, s3, s4;
printf("\nPRAKTIKUM 3 SOAL 5a \nRENDRA BUDI HUTAMA
\n2110131036 - 1D4ITB\n");
printf("\n===================================================
=========================== \n\n");
s2 = a - c;
s3 = a + b;
s4 = a / d ;
printf("%.2f - %.2f = %.2f \n", a, b, s2);
printf("%.2f + %.2f = %.2f \n", a, b, s3);
printf("%.2f / %.2f = %.2f \n", a, b, s4);
getch();

b.

Capture Program

c.

Analisis
Untuk bilangan pecahan(float), tidak bisa menggunkan operator modulus. Terbukti

untuk aritmatika no 1, 5 dan 6 yang menggunakan operator modulu, ketika program


dieksekusi terjadi error, namun ketika operasi aritmatika tersebut dihapus, program dapat
dieksekusi.

5.

2. Menghitung nilai Diskriminan dengan tipe data float

a. Listing Program
#include <stdio.h>
main()
{
float a, b, c , d;
printf("\nPRAKTIKUM 3 SOAL 4 \nRENDRA BUDI HUTAMA \n2110131036 1D4ITB\n");

10

printf("\n=========================================================
===================== \n\n");
printf("Masukkan nilai a : ");
scanf("%d",&a);
printf("Masukkan nilai b : ");
scanf("%d",&b);
printf("Masukkan nilai c : ");
scanf("%d",&c);
d = b * b - 4 * a * c;
printf("\nDiskriminannya adalah : %d", d);
getch();
}

b. Capture Program

Kesimpulan Percobaan
1. Di dalam bahas C, terdapat berbagai tipe data yang dapat digunakan. Setiap tipe
data memiliki karakteristik dan ukuran tersendiri sehingga pemilihan tipe data yang
benar sangatlah penting.
2. Variabel adalah sebuah pengenal yang nilainya dapat berubah-ubah sedangkan
konstanta adalah sebuah pengenal yang nilainya selalu tetap.
3. Untuk mencetak tampilan ke layar, kita bisa menggunakan fungsi printf() dan
putchar() sedangkan untuk mendapatkan inputan nilai bisa menggunakan fungsi
scanf() dan getchar()

Hirarki Operator Aritmatika

11

Soal Tambahan Laporan Resmi


a. Berapakah hasil akhir dari program berikut :
#include <stdio.h>
main()
{
int a = 22;
a = a + 5;
a = a-2;
printf("a = %d\n", a);
}

Jawab :
Hasil akhir dari program tersebut adalah a = 25

b. Berapakah nilai x setelah pernyataan-pernyataan berikut dijalankan, apabila x


bertipe int :
(1) x = (2 + 3) 10 * 2;
(2) x = (2 + 3) (10 * 2);
(3) x = 10 % 3 * 2 + 1;
Jawab:
(1) x = (2 + 3) 10 * 2;

(2) x = (2 + 3) 10 * 2

(3) x = 10 % 3 * 2 + 1

x = 5 20

x = 5 20

x=1*2+1

x = 15

x = 15

x=3+1
x=4

c. Nyatakan dalam bentuk pernyataan :

Jawab:
(1) y = b * x * x + 0.5 * x c
(2) y = (0.3 * x * z) / (2 * a)

d. Apa hasil eksekusi dari program berikut :


#include <stdio.h>
main()
{
char kar = A;
kar = kar + 32;
printf("%c\n",kar);
}

Jawab :
Hasil dari eksekusi program diatas adalah a. Karakter A memiliki bilangan ANSI
65 dimana jika dengan 32 hasilnya adalah 97 yang merupakan ANSI dari a
12

PRAKTIKUM 4
Operasi Input dan Output

A. Dasar Teori
Untuk keperluan menampilkan data/informasi, C menyediakan sejumlah fungsi.
Beberapa di antaranya adalah berupa printf(), putchar(), dan puts().
a.

Fungsi putchar()
Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter di layar.

Penampilan karakter tidak diakhiri dengan perpindahan baris. Contoh :


putchar(A);

menghasilkan keluaran yang sama dengan


printf(%c,A);

b.

Fungsi printf()

Bentuk umum pernyataan printf() :


printf(string kontrol,argumen1, argumen2,...);

String kontrol dapat berupa keterangan yang akan ditampilkan pada layar beserta
penentu format (seperti %d, %f,%c). Penentu format dipakai untuk memberi tahu kompiler
mengenai jenis data

yang akan ditampilkan. Argumen sesudah

string control

argumen1, argumen2,...) adalah data yang akan ditampilkan ke layar. Argumen ini dapat
berupa variabel, konstanta dan bahkan ungkapan. Misal :
printf(%d,20);

//argumen berupa konstanta

printf(%d,a);

//argumen berupa variabel

printf(%d,a+20);

//argumen berupa ungkapan

Tabel 4.1 Penentu format pada printf()

13

c.

Fungsi getchar()
Fungsi getchar() digunakan khusus untuk menerima masukan berupa sebuah karakter

dari keyboard. Contoh :


c = getchar();

maka variabel c akan berisi karakter yang diketikkan oleh user atau EOF (end of file) jika
ditemui akhir dari file. Selain fungsi scanf() dan getchar() adalagi fungsi l ain untuk
menginputkan untuk sebaris karakter yaitu fungsi puts().

d.

Fungsi scanf()
Fungsi ini digunakan untuk memasukkan berbagai jenis data. Misalnya untuk

memasukkan data jari-jari lingkaran pada program menghitung luas lingkaran.


scanf(%f,&radius);

Bentuk scanf() sesungguhnya menyerupai fungsi printf(). Fungsi ini melibatkan


penentu format yang pada dasarnya sama digunakan pada printf(). Secara umum
bentuk scanf() adalah sebagai berikut :
scanf(string kontrol, daftar_argumen);

Dengan string kontrol dapat berupa :

Penentu format

Karakter spasi-putih (white-space)

Karakter bukan spasi-putih

scanf(%f, &radius);

berarti (bagi komputer) : bacalah sebuah bilangan real (%f) dan tempatkan ke
alamat dari radius (&radius).

Untuk menentukan panjang medan yang disediakan bagi tampilan data, maka sesudah
tanda % dalam penentu format dapat disisipi dengan bilangan bulat yang menyatakan
panjang medan. Untuk data yang berupa bilangan bulat, misal pada :
printf(Abad %4d, 20);

%4d menyatakan medan untuk menampilkan bilangan 20 adalah sepanjang 4 karakter.

Untuk data yang berupa bilangan real, spesifikasi medannya berupa


m = panjang medan
n = jumlah digit pecahan

Contoh pada pernyataan :


printf(Harga : Rp %8.2f\n, 500.0);

%8.2f menyatakan panjang medan dari bilangan real yang akan ditampilkan adalah 8
karakter dengan jumlah digit pecahan 2 buah.
14

Kalau hanya jumlah digit pecahan yang perlu ditentukan, panjang medan tak perlu
disertakan, misal :
printf(%.2f\n, 600.0);
printf(%.2f\n, 7500.25);

hasilnya :
600.00
7500.25

Untuk data yang berupa string, contoh :


printf(%12s, Bahasa C);

maka akan ditampilkan sebagai berikut

Tampak dalam berbagai jenis data di atas, penentu format yang mengandung panjang
medan, secara default akan menampilkan data dalam bentuk rata kanan terhadap
panjang medan yang diberikan. Untuk data string yang biasanya dikehendaki untuk
ditampilkan dalam bentuk rata kiri, maka sesudah tanda % pada penentu format %s perlu
disisipkan tanda (minus), contoh :
printf(%-12s, Bahasa C);

menyatakan bahwa string akan ditampilkan dalam medan dengan panjang 12 karakter dan
diatur rata kiri. Sehingga tampilan di atas berubah menjadi :

15

B. Tugas Pendahuluan
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :
1. Buatlah program untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan rumus
F = C * 1.8 + 32
Input : suhu dalam Celcius
Output : suhu dalam Fahrenheit

Jawab :
b. Flowchart

a. Algoritma
Deklarasikan f dan c sebagai bilangan

START

pecahan float.
1.

READ
c

Baca nilai suhu dalam celcius


kemudian tampung di variabel c.

2.

Kalikan c dengan 1.8 kemudian

f = c * 1,8 + 32

tambahkan dengan 32, tampung


hasilnya di f
3.

PRINT
f

Tampilkan f di layar

END

2. Buatlah program untuk menghitung total pendapatan bulanan seorang karyawan


dengan ketentuan sebagai berikut:
Tunjangan istri/suami

= 10% dari gaji pokok

Tunjangan anak

= 5% dari gaji pokok untuk setiap anak

THR

= Rp 5000 kali masa kerja (tahun)

(-) Pajak

= 15% dari gaji pokok, tunjangan istri & anak

Bantuan transport

= Rp 3000 kali masuk kerja (hari)

(-) Polis asuransi

= Rp 20000

tanda (-) artinya mengurangi pendapatan.


Tentukan dahulu apa-apa saja yang akan menjadi input dan output (ke layar) dari
program. Tentukan juga variabel-variabel yang akan digunakan beserta tipenya.
INPUT

gajipokok, masakerja, harikerja, jumlahanak

OUTPUT

gajitotal

VARIABEL :
-

gajipokok (int)

tunjanganistri (int)

pajak (int)

maskerja (short int)

tunjangananak (int)

asuransi (int)

harikerja (short int)

tunjanganraya (int)

gajitotal (int)

jumlahanak (short int)

transport (int)
16

a. Algoritma

b. Flowchart

1. Baca nilai gajipokok, masakerja,

START

harikerja, dan jumlahanak


asuransi =

2. Hitung tunjanganistri dengan cara

20000

mengalikan gajipokok dengan 0,1


3. Hitung tunjangananak dengan cara

READ
gajipokok,
masakerja,
arikerja,
jumlahanak

mengalikan gaji pokok dengan 0.05


(5%) dan jumlahanak
4. Hitung tunjanganraya(THR)
dengan cara mengalikan masa kerja
dengan Rp. 5000
5. Hitung transport(Bantuan
Transport) dengan cara mengalikan
harikerja dengan Rp. 3000
6. Hitung pajak dengan cara

tunjanganistri = 0.10 * gajipokok


tunjangananak = 0.05 * gajipokok *
jumlahanak
tunjanganraya = masakerja * 3000
transport
= harikerja * 5000
pajak
= gajipokok + tunjangananak
+ tunjanganistri * 0.15
totalgaji
= gajipokok + tunjangananak
+ tunjanganistri + tunjanganraya +
transport pajak asuransi

mengalikan 0.15(15%) dengan


jumlah gajipokok ditambah

PRINT
totalgaji

tunjangananak dan tunjanganistri


END

7. Hitung totalgaji yang dibawa


pulang yaitu gajipokok +
tunjangananak + tunjanganistri +
tunjanganraya + transport
pajak asuransi
8. Tampilkan totalgaji ke layar

3. Harga tiket pertandingan sepak bola, Rp 50.000,-. Bila membeli dua tiket (seharga Rp
100.000,-), maka ada bonus 1 tiket gratis. Buatlah program untuk menghitung biaya
yang harus dibayar untuk sejumlah tiket yang diperlukan (diinputkan).
a.

Algoritma

1. Baca jumlah tiket yang akan dibeli

b. Flowchart
START

2. Hitung jumlahpaket beli 2 gratis 1 yang


memungkinkan dengan cara membagi jumlahtiket

READ
jumlahtiket

dengan angka 3
3. Hitung sisatiket yang harus dibayar utuh dengan
cara modulus jumlahtiket dengan angka 3
4. Hitung total uang yang harus dibayar yaitu dengan
rumus :
jumlahpaket * 100000 + sisatiket * 50000

jumlahpaket = Sjumlahtiket / 3
sisatiket
= jumlahtiket % 3
bayar = jumlahpaket * 100000 +
sisatiket * 50000

PRINT
f

5. Tampilkan hasil dar perhitungan tadi


END

17

C. Percobaan
1. Program untuk mengkonversi suhu dari Celcius ke Fahrenheit
a. Listing program
#include <stdio.h>
main()
{
float c, f;
printf("\nPRAKTIKUM 4 SOAL 1 \nRENDRA BUDI HUTAMA
\n2110131036 - 1D4ITB\n");
printf("\n===================================================
=========================== \n\n");
printf("Masukkan suhu dalam Celcius : ");
scanf("%f",&c);
f = c * 1.8 + 32;
printf("\n%.2f Celcius = %.2f\n", c, f);
getch();
}

b. Capture Program

c. Analisis
Untuk mengkonversi suhu dari Celcius ke Fahrenheit, digunakanlah data
bertipe float agar dapat diketahui presisi yang tepat tiap termometer.
2. Program untuk menghitung gaji yang dibawa pulang
a. Listing Program
#include <stdio.h>
main()
{
float jumlah_anak,g_pokok,g_total,t_istri, t_anak, t_raya,
transport, pajak, asuransi = 20000, masa_kerja, hari_kerja;
printf("\nPRAKTIKUM 4 SOAL 2 \nRENDRA BUDI HUTAMA
\n2110131036 - 1D4ITB\n");
printf("\n===================================================
=========================== \n\n");
printf("Masukkan gaji pokok \t\t = Rp. ");
scanf("%f",&g_pokok);
printf("Masukkan masa kerja(tahun) \t = ");
scanf("%f",&masa_kerja);
printf("Masukkan jumlah hari kerja \t = ");
scanf("%f",&hari_kerja);
printf("Masukkan jumlah anak \t\t = ");
scanf("%f",&jumlah_anak);
t_anak
t_istri
t_raya

= 0.05 * jumlah_anak * g_pokok;


= 0.10 * g_pokok;
= 5000 * masa_kerja;

18

transport = 3000 * hari_kerja;


pajak
= 0.15 * (g_pokok + t_anak + t_istri);
g_total
= g_pokok + t_anak + t_istri + t_raya - pajak asuransi;
printf("\nJumlah Tunjangan yang diterima \t\t= Rp. %.2f",
t_anak + t_istri + t_raya + transport);
printf("\nPotong gaji untuk pajak dan asuransi \t= Rp.
%.2f",pajak + asuransi);
printf("\nJumlah gaji yang dibawa pulang \t\t= Rp.
%.2f",g_total);
getch();
}

b. Capture Program

c. Analisis
Tipe data yang cocok digunakan untuk program ini adalah tipe data float karena
di dalam program ini memerlukan perkalian secara prosentase misalnya dalam
menentukan tunjangan istri kita perlu mengalikan gaji pokok dengan bilangan
pecahan 0.1 atau 10 / 100. Jika menggunakan int atau bilangan bulat, hasilnya
akan kurang akurat karena akan dibulatkan ke bawah di setiap pembagian.

3. Program penghitung biaya pembayaran tiket


a. Listing Program
#include <stdio.h>
main()
{
int jum_tiket, jum_paket, jum_utuh, bayar;
printf("\nPRAKTIKUM 4 SOAL 3 \nRENDRA BUDI HUTAMA
\n2110131036 - 1D4ITB\n");
printf("\n===================================================
=========================== \n\n");
printf("Masukkan jumlah tiket \t = ");
scanf("%d",&jum_tiket);
jum_paket = jum_tiket / 3;
jum_utuh = jum_tiket % 3;
bayar

= jum_paket * 100000 + jum_utuh * 50000;

printf("\nTotal pembayaran \t = Rp. %d", bayar);


getch();
}

19

b. Capture Program

c. Analisis
Operator / apabila dikenakan ke bilangan bulat(int) maka hanya akan
memunculkan hasil pembagian utuh dengan pemulatan ke bawah tanpa angka
dibelakang koma.

Kesimpulan Percobaan :
1. Untuk mencetak tampilan ke layar, kita bisa menggunakan fungsi printf(), puts()
dan putchar() sedangkan untuk mendapatkan inputan nilai bisa menggunakan fungsi
scanf() dan getchar().
2. Fungsi printf() atau print format memungkinkan kita untuk memformat dahulu data
yang akan kita tampilkan ke layar yaitu dengan menambahkan angka parameter
setelah tanda %, contoh %2.5f.

Soal-soal Laporan Resmi


a. Pilihlah nama-nama variabel yang benar dan yang salah, mengapa ?
int

= Salah, menggunakan reserved word

A$

= Benar

char

= Salah, menggunakan reserved word

ReInitialize

= Benar

6_05

= Salah, diawali dengan angka

alpha_beta_routine

= Benar

floating

= Benar

xxx

= Benar

_1312

= Benar

= Benar

calloc

= Benar

Xx

= Benar

b. Apa yang dihasilkan oleh program di bawah ini :


main()
{
char c, d;
c = 'd';
d = c;
printf("d = %c", d);
}

Jawab :
Program tersebut akan menampilkan karakter d yang terdapat pada variable d.

20

c. Buatlah program untuk mengevaluasi polynomial di bawah ini :


3x2 5x + 6

dengan nilai x merupakan masukan dari user.

Jawab :
#include <stdio.h>
main()
{
int x,hasil;
printf("\nSOAL LAPRES PRAK 4 NO 3 \nRENDRA BUDI HUTAMA
\n2110131036 - 1D4ITB\n");
printf("\n=======================================================
======================= \n\n");
printf("Masukkan nilai x : ");
scanf("%d",&x);
hasil =

3 * x * x - 5 * x + 6;

printf("\nHasil dari 3 * %d * %d - 5 * %d + 6 = %d \n",


x,x,x,hasil);
getch();
}

Hasil :

21