0% menganggap dokumen ini bermanfaat (0 suara)
52 tayangan17 halaman

Modul 1 Alpro 2 - Review C

Modul 1 membahas review bahasa C yang mencakup konsep sekuensial, pencabangan, pengulangan, array, fungsi dan prosedur serta tujuan modul ini meningkatkan pemahaman mahasiswa terhadap bahasa C."

Diunggah oleh

Zalfa Naqiya Ahmad
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
52 tayangan17 halaman

Modul 1 Alpro 2 - Review C

Modul 1 membahas review bahasa C yang mencakup konsep sekuensial, pencabangan, pengulangan, array, fungsi dan prosedur serta tujuan modul ini meningkatkan pemahaman mahasiswa terhadap bahasa C."

Diunggah oleh

Zalfa Naqiya Ahmad
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 17

Praktikum Algoritma dan Pemrograman II

MODUL I

REVIEW BAHASA C

Pertemuan :3
Waktu : 2 x 60 menit (di Laboratorium)

1.1Tujuan Modul I
Setelah mahasiswa mempelajari materi ini, diharapkan dapat :
1. Menggunakan konsep sekuensial dalam bahasa C
2. Menggunakan konsep Pencabangan dalam bahasa C
3. Menggunakan konsep Pengulangan dalam bahasa C
4. Menggunakan konsep Array dan Tipe bentukan dalam bahasa C
5. Menggunakan konsep Fungsi dan Prosedur dalam bahasa C

1.2Landasan Teori

1.2.1 Bahasa C
Beberapa yang harus diketahui dari bahasa C adalah :
1. Bahasa C bersifat case sensitive. Ini berarti bahasa C membedakan huruf
besar (kapital) dengan huruf kecil. Nama yang ditulis dengan huruf besar
dianggap berbeda kalau ia ditulis dengan huruf kecil. Misalnya, N tidak
sama dengan n, nama_orang tidak sama dengan NAMA_ORANG,
Nama_orang, Nama_Orang. Hal ini berbeda dengan bahasa Pascal.
Pascal tidak membedakan nama yang ditulis dalam huruf besar atau huruf
kecil.
2. Dalam bahasa C, deklarasi yang didefinisikan sebelum kata main() adalah
deklarasi global, artinya semua nama yang didefinisikan di dalam
deklarasi global dikenal di seluruh bagian program, termasuk di dalam
fungsi atau prosedur yang ada di dalam program itu. Apabila deklarasi
didefinisikan di dalam main(), maka nama di bagian deklarasi (disebut
deklarasi lokal) hanya dikenal oleh program utama saja, tetapi tidak
dikenal oleh fungsi atau prosedur.
3. Dalam bahasa C, komentar ditulis diantara ”/*” dan ”*/”. Sedangkan
dalam bahasa Pascal komentar dapat ditulis diantara ”{” dan ”}” atau
antara ”(*” dan ”*)”.
4. Penulisan dan pembacaan (INPUT/OUTPUT) pada bahasa C harus disertai
dengan format sesuai tipe data yang dipakai.

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-1


Praktikum Algoritma dan Pemrograman II

Berikut ini adalah tabel translasi Algoritma ke bahasa C untuk struktur penulisan,
tipe data, dan pencabangan :

Notasi Algoritmik C
Struktur Penulisan
Program Nama Program /* Program Nama Program */

Kamus data : /*Deklarasi*/


{diisi semua nama yang dipakai} /* semua nama yang penggunaannya global
diisi di sini */
Algoritma : /* fungsi dan prosedur diisi di sini */
{diisi langkah-langkah
penyelesaian masalah} /*Algoritma*/
main()
{
/*diisi dengan deklarasi variable
local dan semua langkah-langkah
penyelesaian*/
}
Tipe dasar
boolean Bool
Atau menggunakan tipe integer,
true=1 dan false=0
integer unsigned char
signed char
unsigned int
int, short int
long int
real float
double
long double
char char
string char nama_peubah[max karakter]
Operator
+ +
- -
* *
/ /
div /
mod %
< <
< <=
> >
> >=
= ==
≠ !=
not !
and &&
or ||
xor Tidak ada
Lain-lain
const const
type typedef
true diganti 1

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-2


Praktikum Algoritma dan Pemrograman II

false diganti 0
Penugasan
← =
Pembacaan
INPUT scanf
Penulisan
OUTPUT printf
Pemilihan dengan IF-THEN-ELSE
if kondisi then if (kondisi)
aksi aksi
endif
Bila aksi lebih dari 1 buah :
if (kondisi)
{
aksi1;
aksi2;
...
aksiN;
}
Pemilihan dengan IF-THEN-ELSE
if kondisi then if (kondisi)
aksi1 aksi1;
else else
aksi2 aksi2;
endif
Pemilihan dengan CASE
case ekspresi switch (ekspresi)
nilai1 : aksi1; {
nilai2 : aksi2; case nilai1 : aksi1;break;
... case nilai2 : aksi2;break;
nilaiN : aksiN; ...
otherwise : aksi; case nilaiN : aksiN; break;
endcase default : aksi;
}

Perintah scanf dan printf dalam bahasa C harus disertai dengan format sesuai
dengan tipe data yang digunakan.Penentu format tersebut adalah :
Tipe data Format
int %d
unsigned int %u
long int %ld
long unsigned int %lu
float %f
double %lf
char %c
char[n] /* string */ %s

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-3


Praktikum Algoritma dan Pemrograman II

Berikut ini adalah tabel translasi Algoritma ke bahasa C untuk pengulangan dan
tipe bentukan :

Notasi Algoritmik C
Struktur Pengulangan FOR
FOR menaik : FOR menaik :

for pencacah←a to b do for (pencacah=a; a<=b; a++)


aksi aksi;
endfor
jika aksi lebih dari satu buah maka
penulisannya menjadi :

for (pencacah=a; a<=b; a++)


{
aksi1;
aksi2;
...
}
FOR menurun : FOR menurun :

For pencacah←a downto b do for (pencacah=a; a>=b; a--)


Aksi aksi;
endfor
jika aksi lebih dari satu buah maka
penulisannya menjadi :

for (pencacah=a; a>=b; a--)


{
aksi1;
aksi2;
...
}
Struktur Pengulangan WHILE
while kondisi do while (kondisi)
aksi aksi;
endwhile
jika aksi lebih dari satu buah maka
penulisannya menjadi :

while (kondisi)
{
aksi1;
aksi2;
...
}
Struktur Pengulangan REPEAT
repeat do
aksi {
until kondisi aksi;
}while (!kondisi);
Tipe Bentukan
Nama_record : record struct
< {
field1 : type, type field1;
field2 : type, type field2;
field3 : type, ...

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-4


Praktikum Algoritma dan Pemrograman II

… type fieldN;
fieldN : type } Nama_record
>

Berikut ini adalah cara deklarasi array dalam Notasi Algoritmik, Pascal dan
C:

Notasi Algoritmik C
Kamus Data :
[typedef] TipeElemen
NamaArray : array[1..JmlElemen] NamaArray[JmlElemen];
of TipeElemen
Cara mengacu elemen array :
Cara mengacu elemen array : NamaArray[indeks]
NamaArray[indeks]
Indeks array dalam Bahasa C dimulai
dari 0

Berikut ini adalah contoh deklarasi array :

Notasi Algoritmik C
Sebagai Peubah
Kamus Data :
A : array[1..100] of integer int A[10];
NamaMhs : array[1..12] of
string char NamaMhs[13][25]; /*artinya
NilaiUjian : array[0..74] of array NamaMhs terdiri atas 13 elemen
real dan setiap elemen bertipe string
yang panjangnya 25 karakter*/

float NilaiUjian[75];
Cara Mengacu Elemen Array
A[4] {elemen ke-4 array A} A[4]; /*elemen ke-4 array A*/

NamaMhs[2] {elemen ke-2 dari NamaMhs[2]; /*elemen ke-2 dari


array NamaMhs} array NamaMhs*/

A[i] {elemen ke-i dari array A[i]; /*elemen ke-i dari array A, i
A, i sudah terdefinisi, sudah terdefinisi, biasanya pencacah
biasanya pencacah dalam dalam looping*/
looping}
NilaiUjian[i+1]; /*elemen ke i+1
NilaiUjian[i+1] {elemen ke i+1 dari array NilaiUjian*/
dari array NilaiUjian}

Sebagai Tipe Bentukan


Kamus Data : typedef int ArrayInt[101];
type ArrayInt : array[1..100]
of integer {nama type baru} ArrayInt A;

A : ArrayInt {A adalah array


Integer dengan 100 elemen}
Deklarasi Tipe Terstruktur

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-5


Praktikum Algoritma dan Pemrograman II

Kamus Data : const int Nmaks=100;


const Nmaks = 100
type Mahasiswa : record typedef struct
< {
NIM : integer, int NIM;
NamaMhs : string, char NamaMhs[25];
IPK : real float IPK;
> } Mahasiswa;
typedef Mahasiswa TabMhs[Nmaks+1];
type TabMhs : array[1..Nmaks]
of Mahasiswa TabMhs Mhs;

Mhs : TabMhs

Berikut ini adalah translasi fungsi dari algoritma ke Bahasa C :

Notasi Algoritmik C
function NamaFungsi(deklarasi tipe NamaFungsi(deklarasi parameter,
parameter, jika ada)→tipe jika ada)
{bagian ini merupakan /* bagian ini merupakan spesifikasi
spesifikasi fungsi yang fungsi yang menjelaskan apa yang
menjelaskan apa yang dilakukan dilakukan dan yang dikembalikan oleh
dan yang dikembalikan oleh fungsi */
fungsi}
{
Kamus Data
{semua nama yang dipakai dalam /* Deklarasi nama */
fungsi dan hanya berlaku local /* semua nama yang dipakai dalam
di dalam fungsi} fungsi dan hanya berlaku local di
dalam fungsi */
Algoritma
{badan fungsi, berisi langkah- /* Algoritma */
langkah algoritma fungsi untuk
menghasilkan nilai yang akan /* badan fungsi, berisi langkah-
dikembalikan oleh fungsi} langkah algoritma fungsi untuk
menghasilkan nilai yang akan
return ekspresi dikembalikan oleh fungsi */
{pengembalian nilai yang
dihasilkan fungsi} return ekspresi;
/* pengembalian nilai yang
dihasilkan fungsi */

Catatan untuk bahasa C :


1. Tidak seperti Pascal, dalam bahasa C fungsi dapat
mengembalikan nilai bertipe sederhana (integer, real, boolean, char dan
string) maupun bertipe bentukan,
2. Apabila fungsi tidak memiliki daftar parameter
formal, maka tanda kurung buka ”(” dan kurung tutup ”)” tetap harus
ditulis. Hal yang sama juga berlaku pada waktu pemanggilannya,

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-6


Praktikum Algoritma dan Pemrograman II

3. Fungsi dideklarasikan di luar blok main(), dan


purwarupa fungsi dideklarasikan sebelum blok main().

Berikut ini adalah cara deklarasi prosedur dalam Notasi Algoritmik dan C :
Notasi Algoritmik C
procedure void NamaProcedure(deklarasi
NamaProcedure(deklarasi parameter, jika ada)
parameter, jika ada) /* bagian ini merupakan spesifikasi
{bagian ini merupakan prosedur yang menjelaskan apa yang
spesifikasi prosedur yang dilakukan oleh prosedur ini */
menjelaskan apa yang dilakukan
oleh prosedur ini} {

Kamus Data /* Deklarasi nama */


{semua nama yang dipakai dalam /* semua nama yang dipakai dalam
prosedur dan hanya berlaku prosedur dan hanya berlaku local di
local di dalam prosedur} dalam prosedur ini */

Algoritma /* Algoritma */
{badan prosedur, berisi
langkah-langkah algoritma /* badan prosedur, berisi langkah-
prosedur} langkah algoritma prosedur */

Berbeda dengan fungsi, di dalam prosedur terdapat tiga jenis parameter


formal yang disertakan, yaitu :
a. Parameter masukan (input parameter)
merupakan parameter yang nilainya berlaku sebagai masukan terhadap
prosedur
b. Parameter keluaran (output parameter)
merupakan parameter yang nilainya berlaku sebagai hasil keluaran dari
prosedur
c. Parameter masukan/keluaran (input/output
parameter) merupakan parameter yang nilainya berlaku sebagai masukan
terhadap prosedur sekaligus keluaran dari prosedur.

1.2.2 Contoh Translasi Algoritma ke bahasa C


1. Bilangan Terkecil
Tulislah algoritma dan program yang membaca dua buah bilangan bulat,
kemudian menentukan bilangan terkecil.

Bahasa Algoritmik Bahasa C


Program Bilangan_Terkecil #include <stdio.h>

Kamus Data: int bil1, bil2;


bil1, bil2 : integer

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-7


Praktikum Algoritma dan Pemrograman II

Algoritma: main()
INPUT(bil1, bil2) {
printf(”bilangan 1 : ”);
IF bil1 < bil2 THEN scanf(”%d”, &bil1);
OUTPUT(bil1) printf(”bilangan 2 : ”);
ELSE scanf(”%d”, &bil2);
OUTPUT(bil2) if (bil1 < bil2)
ENDIF {
printf(”bilangan terkecil : %d”, bil1);
}
else
{
Printf(”bilangan terkecil : %d”, bil2);
}

2. Menentukan nama bulan berdasarkan nomor bulannya


Tulislah algoritma dan program yang membaca sebuah bilangan bulat
antara 1-12 kemudian tampilkan nama bulan berdasarkan inputan terhadap
program.
Bahasa Algoritmik Bahasa C
Program Nama_Bulan #include <stdio.h>

Kamus Data: int nomor_bulan;


Nomor_bulan : integer
main()
Algoritma: {
INPUT(nomor_bulan) printf(”Masukkan angka bulan (1-12) :
case nomor_bulan ”);
1 : OUTPUT(’Januari’) scanf(”%d”, &nomor_bulan);
2 : OUTPUT(’Februari’) switch(nomor_bulan)
3 : OUTPUT(’Maret’) {
4 : OUTPUT(’April’) case 1 : printf(”Januari \n”);break;
5 : OUTPUT(’Mei’) case 2 : printf(”Februari \n”);break;
6 : OUTPUT(’Juni’) case 3 : printf(”Maret \n”);break;
7 : OUTPUT(’Juli’) case 4 : printf(”April \n”);break;
8 : OUTPUT(’Agustus’) case 5 : printf(”Mei \n”);break;
9 : OUTPUT(’September’)
case 6 : printf(”Juni \n”);break;
10 : OUTPUT(’Oktober’)
11 : OUTPUT(’November’) case 7 : printf(”Juli \n”);break;
12 : OUTPUT(’Desember’) case 8 : printf(”Agustus \n”);break;
Otherwise : OUTPUT(’Bukan bulan case 9 : printf(”September \n”);break;
yang benar’) case 10 : printf(”Oktober \n”);break;
endcase case 11 : printf(”November \n”);break;
case 12 : printf(”Desember \n”);break;
default : printf(”Bukan bulan yang
benar”);
}
}

3. Buat algoritma yang menampilkan menu secara berulang-ulang:


1) Baca data
2) Cetak data
3) Ubah data

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-8


Praktikum Algoritma dan Pemrograman II

4) Hapus data
5) Keluar program
Kemudian menerima masukan pilihan menu dari user, dan berhenti saat
user memilih no.5 yaitu keluar dari program.

Bahasa Algoritmik Bahasa C


Program Simulasi_Menu #include <stdio.h>

Kamus Data: int NoMenu;


NoMenu : integer
main()
Algoritma: {
REPEAT do
OUTPUT(’ MENU’) {
OUTPUT(’1. Baca data’) printf(” MENU ”);
OUTPUT(’2. Cetak data’) printf(”1. Baca Data”);
OUTPUT(’3. Ubah data’) printf(”2. Cetak Data”);
OUTPUT(’4. Hapus data’) printf(”3. Ubah Data”);
OUTPUT(’5. Keluar program’) printf(”4. Hapus Data”);
printf(”5. Keluar Program”);
INPUT(NoMenu)
printf(”Pilihan Menu : ”);
UNTIL NoMenu = 5 scanf(”%d”, &NoMenu);
} while (NoMenu !=5);
}

4. Mencetak Barisan Bilangan


Buatlah algoritma dan program yang menerima input dua bilangan N dan
M, kemudian mencetak bilangan berurut dari 1 s.d. N sebanyak M kali.

Bahasa Algoritmik Bahasa C


Program Barisan_Bilangan #include <stdio.h>

Kamus Data: int N,M;


N, M : integer int i,j;
i, j : integer
main()
{
Algoritma: printf(”N : ”); scanf(”%d”, &N);
INPUT(N, M) printf(”M : ”); scanf(”%d”, &M);

for (i=1; i<=N; i++)


FOR i=1 TO N DO {
FOR j=1 TO M DO For (j=1; j<=M; j++)
OUTPUT(i)
{
ENDFOR
printf(”%d ”,i);
ENDFOR
}
}
}

5. Tipe terstruktur mahasiswa

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-9


Praktikum Algoritma dan Pemrograman II

Buatlah deklarasi tipe terstruktur untuk menyimpan beberapa mahasiswa


dengan field npm, nama, dan ipk kemudian buat pula program input dan
outputnya.

Bahasa Algoritmik Bahasa C


Program Data_Mahasiswa #include <stdio.h>

Kamus Data: typedef struct


Type mahasiswa : record {
< char npm[9];
npm : string, char nama[25];
nama : string, float ipk;
ipk : real } mahasiswa;
>
mahasiswa M;
M : mahasiswa int N;
N,i : integer
main()
Algoritma:
{
INPUT(N)
printf(”Masukkan jml mahasiswa :”);
For i←1 to N
scanf(”%d”, &N);
INPUT(M.npm , M.nama , M.ipk)
OUTPUT(M.npm , M.nama , M.ipk)
endfor for (i=1; i<=N; i++)
{
printf(”Masukkan npm :”);
scanf(”%s”, &M.npm);
printf(”Masukkan nama :”);
scanf(”%s”, &M.nama);
printf(”Masukkan ipk :”);
scanf(”%f”, &M.ipk);

printf(”===Data Mahasiswa===”);
printf(”NPM : %s”, M.npm);
printf(”NPM : %s”, M.nama);
printf(”NPM : %s”, M.ipk);
}
}

6. Hitung rata-rata array


Buatlah algoritma dan program untuk menghitung nilai rata-rata seluruh
elemen array A yang sudah terdefinisi !

Bahasa Algoritmik Bahasa C


Program Rata-rata_Array #include <stdio.h>

Kamus Data: int A[5]={10, 20, 30, 40, 50};


A : array[1..5] of integer = int i, sum, avg;
(10, 20, 30, 40, 50)
i : integer main()
sum : integer {
avg : real sum=0;

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-10


Praktikum Algoritma dan Pemrograman II

Algoritma: for(i=0; i<5; i++)


sum←0 {
sum=sum+A[i];
for i←1 to 5 do }
sum←sum+A[i]
endfor avg=sum/5;
printf(avg);
avg←sum/5 }
OUTPUT(avg)

7. Hitung rata-rata array


Buatlah algoritma dan program untuk menghitung nilai rata-rata seluruh
elemen array A yang sudah terdefinisi !

Bahasa Algoritmik Bahasa C


Program Rata-rata_Array #include <stdio.h>

Kamus Data: int A[5]={10, 20, 30, 40, 50};


A : array[1..5] of integer = int i, sum, avg;
(10, 20, 30, 40, 50)
i : integer main()
sum : integer {
avg : real sum=0;

Algoritma: for(i=0; i<5; i++)


sum←0 {
sum=sum+A[i];
for i←1 to 5 do }
sum←sum+A[i]
endfor avg=sum/5;
printf(avg);
avg←sum/5 }
OUTPUT(avg)

8. Buatlah algoritma dan program fungsi F(x) = 2x2 + 5x – 8 dan


pemanggilnya

Bahasa Algoritmik Bahasa C


Fungsi
function F(input x:real)→real

Kamus Data: Langsung di program utama


{tidak ada}
Algoritma:

return 2*x*x + 5*x - 8

Program Utama
Program TabelFungsi #include <stdio.h>

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-11


Praktikum Algoritma dan Pemrograman II

Kamus Data : /*purwarupa fungsi*/


x : real Float F(float x);
function F(input x:real)→real
main()
Algoritma : {
float x;
OUTPUT(’------------’) printf(’------------’);
OUTPUT(’ x f(x)’) printf(’ x f(x)’);
OUTPUT(’------------’) printf(’------------’);

x←10.0 x=10.0;
while x < 15.0 do while(x <= 15.0)
OUTPUT(x,’ ’,F(x)) {
x←x+0.2 printf(”%f:4:2 %f:10:4 \n”, x,
endwhile F(x));
OUTPUT(’------------’) x=x+0.2;
}
printf(’------------’);
}

Float F(float x)
{
return 2*x*x + 5*x – 8;
}

9. Buatlah prosedur dengan parameter masukan berupa alas dan tinggi dan
parameter keluaran berupa luas untuk menghitung luas segitiga kemudian
buat program utama yang dapat menghitung luas N buah segitiga !
Bahasa Algoritmik Bahasa C
Prosedur
Procedure
HitungLuasSegitiga(input alas, Langsung di program utama
tinggi : real, output luas :
real)

Kamus Data:

{tidak ada}

Algoritma:

luas ← (alas*tinggi)/2

Program Utama
Program Segitiga #include <stdio.h>

Kamus Data : /*purwarupa prosedur*/


i, N : integer void HitungLuasSegitiga(float a, float
a, t : real t, float *L);
L : real
Procedure main()
HitungLuasSegitiga(input alas, {
tinggi : real , output luas : int i,N;
real) float alas, tinggi;

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-12


Praktikum Algoritma dan Pemrograman II

float Luas;
Algoritma :
printf(”Banyaknya segitiga :”);
INPUT(N) scanf(”%d”,&N);
for i←1 to N do for(i=0;i<=N;i++)
INPUT(a, t) {
HitungLuasSegitiga(a, t, L) printf(”alas =”);
OUTPUT(L) scanf(”%f”, &alas);
endfor printf(”tinggi =”);
scanf(”%f”, &tinggi);
HitungLuasSegitiga(alas, tinggi,
&luas);
printf(”luas = %f”,luas);
}
}

void HitungLuasSegitiga(float a, float


t, float *L)
{
*L=(a*t)/2;
}

10. Buatlah prosedur untuk menukarkan dua buah nilai dalam variabel a dan b.
Prosedur menggunakan parameter input/output berupa variabel a dan b
kemudian buat program utama untuk mengghitung pengurangan dua buah
nilai bilangan bulat x dan y, dengan syarat x harus lebih besar dari y. Jika
y yang lebih besar, maka nilai x dan y harus ditukar!
Bahasa Algoritmik Bahasa C
Prosedur
procedure Tukar(input/output
a,b : integer) Langsung di program utama

Kamus Data:

temp : integer

Algoritma:

temp←a
a←b
b←temp

Program Utama
Program selisihXY #include <stdio.h>

Kamus Data : /*purwarupa prosedur*/


X, Y, Z : integer void Tukar(int *a, int *b);
Procedure Tukar(input/output
a,b : integer) main()
{
Algoritma : int X, Y, Z;

INPUT(X, Y) printf(”X ?”);


scanf(”%d”,&X);

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-13


Praktikum Algoritma dan Pemrograman II

if X < Y then printf(”Y ?”);


Tukar(X,Y) scanf(”%d”,&Y);
endif
if(X < Y)
Z ← X - Y Tukar(&X, &Y);

OUTPUT(Z) Z = X – Y;
printf(”Z = %d”, Z);
}

void Tukar(int *a, int *b)


{
int temp;

temp = *a;
*a = *b;
*b = temp;
}

1.3 Praktikum I
1.3.1 Tugas Pendahuluan I
1. Sebuah rumah sakit meminta
anda untuk membuat program perhitungan tagihan kamar pasien untuk
rawat inap. Tagihan tersebut dihitung berdasarkan ruangan tempat
menginap dan kategori pasien tersebut umum, anak-anak, atau bayi yang
dibedakan berdasarkan usia. Berikut tarif kamar per hari berdasarkan jenis
kamarnya :
Golongan Kamar Tarif/hari
Kelas 1 600.000
Kelas 2 400.000
Kelas 3 200.000
Sedangkan penentuan kategori pasien berdasarkan usia adalah sebagai
berikut:
Kategori pasien Usia Charge
Umum >=17 tahun 500.000
Anak-anak 6-16 tahun 700.000
Bayi 0-5 tahun 1.000.000
Jika pasien tersebut merupakan pasien BPJS, maka total tagihan akan
didiskon sebesar 30%.
Maka Rumus untuk total tagihan adalah:
Total tagihan = (tarif kamar × jumlah hari) + charge – diskon
Buatlah algoritma dan program bahasa C untuk menentukan total tagihan
pasien rumah sakit tersebut sesuai kriteria yang diberikan di atas !

2. Buatlah algoritma dan bahasa C untuk menampilkan deret berikut:


111222333444555
Input dari user: N yaitu banyaknya angka, M yaitu banyaknya
pengulangan. Petunjuk: Gunakan skema looping bersarang.

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-14


Praktikum Algoritma dan Pemrograman II

Contoh:
Input : N = 3, M = 2
112233
Input : N = 4, M = 5
1 1111222223333344444
3. Diketahui suatu data buku sbb.
Id_buku Jenis_Buku harga
B001 Komik 50000
B002 Novel 60000
Buatlah program untuk memasukkan data tersebut terhadap struktur buku
menggunakan array kemudian tampilkan semuanya !
Contoh :
INPUT Masukkan jumlah data yang akan
dimasukkan : 2
Data ke-1
Id Buku : B001
Jenis Buku : Komik
Harga : 50000
Data ke-2
Id Buku : B002
Jenis Buku : Novel
Harga : 60000
Input Berhasil ! Tampilkan ? Y
OUTPUT Data ke-1
Id Buku : B001
Jenis Buku : Komik
Harga : 50000
Data ke-2
Id Buku : B002
Jenis Buku : Novel
Harga : 60000

4. Sebuah perusahaan meminta anda sebagai programmer yang sudah sangat


terkenal untuk membuatkan program penghitungan gaji karyawan di
perusahaan tersebut, dengan ketentuan :
 Gaji Pokok berdasarkan golongan
Golongan Gaji Pokok
1 500
2 1000
3 1500
4 2000
 Bonus diberikan kepada pegawai berdasarkan masa kerja
Masa Kerja Bonus
3 50
6 75

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-15


Praktikum Algoritma dan Pemrograman II

>7 100
 Jika sudah menikah maka tunjangan keluarganya sebesar 10% dari gaji
pokok
 Jika sudah menikah dan mempunyai anak (maksimal 3 orang) akan
mendapat tunjangan anak sebesar 12.5% per anak
Rumus perhitungan gajinya menjadi: Gaji = Gaji Pokok + Bonus +
tunjangan keluarga + tunjangan anak
INSTRUKSI : (gunakan bahasa C)
a. Buatlah fungsi untuk menentukan besarnya gaji pokok berdasarkan
golongan dengan parameter input berupa golongan dan keluaran
fungsi berupa gaji pokok
b. Buatlah prosedur untuk menentukan bonus yang didapat karyawan
berdasarkan masa kerja. Parameter input terhadap prosedur berupa
masa kerja, sedangkan parameter output berupa bonus
c. Buatlah prosedur untuk menentukan tunjangan keluarga
berdasarkan status. Parameter input terhadap prosedur berupa
status pernikahan dan parameter output berupa tunjangan keluarga
d. Buatlah fungsi untuk menghitung rumus perhitungan gaji dengan
keluaran fungsi berupa gaji total dan tanpa parameter input
(gunakan variable global)
e. Buat program utama yang menggunakan fungsi dan prosedur di
atas.

1.3.2 Latihan-latihan Praktikum I


1. Buatlah program dalam bahasa C untuk menampilkan mata kuliah
yang harus di remedial berdasarkan nilai uts nya. Ada 5 nilai mata
kuliah sebagai masukan, yaitu: Alpro, SBO, RTI, Bahasa Indonesia, dan
Pancasila. Jika ada nilai yang kurang dari 50, maka sebutkan mata
kuliah yang harus di remedial.

INPUT Masukkan nilai Alpro : 70


Masukkan nilai SBO : 70
Masukkan nilai RTI : 70
Masukkan nilai Bahasa Indonesia : 70
Masukkan nilai Pancasila : 70
OUTPUT Anda tidak mendapat remedial
INPUT Masukkan nilai Alpro : 70
Masukkan nilai SBO : 45
Masukkan nilai RTI : 70
Masukkan nilai Bahasa Indonesia : 70
Masukkan nilai Pancasila : 70
OUTPUT Anda mendapat remedial : SBO
INPUT Masukkan nilai Alpro : 30
Masukkan nilai SBO : 45
Masukkan nilai RTI : 70

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-16


Praktikum Algoritma dan Pemrograman II

Masukkan nilai Bahasa Indonesia : 70


Masukkan nilai Pancasila : 50
OUTPUT Anda mendapat remedial : Alpro – SBO –
Pancasila

2. Diketahui sebuah array tetap


A={1,2,3,5,7,9,11,23,10,21,23,22,24,25,26,77}. Hitunglah rata-rata nilai
array yang jika nilai indeksnya ditambahkan 5 akan habis dibagi 4
menggunakan bahasa C !
3. Buatlah prosedur program bahasa C untuk menentukan grade nilai
akhir mahasiswa dengan parameter input nilai akhir(0-100) dan
parameter output grade (A-E). Kriteria penentuan grade sbb :
A : 85-100
B : 70-84
C : 55-69
D : 40-54
E : 0-39
4. Ubahlah prosedur pada nomor 3 menjadi fungsi dengan parameter
input nilai akhir (0-100) dan nilai balikan grade (A-E)

1.3.3 Tugas Rumah I


Tugas Rumah I ini hanya untuk praktikan yang belum menyelesaikan seluruh soal
Latihan Praktikum I.
1. Kerjakan sisa soal Latihan Praktikum yang belum selesai di luar jam
praktikum.
2. Buat laporan praktikum berdasarkan hasil pada praktikum pertemuan pertama
ini. Laporan tersebut berisi:
a. Soal latihan praktikum
b. Solusi dengan menggunakan algoritma
c. Solusi program dengan menggunakan bahasa C
d. Screenshot hasil eksekusi program
Keempat poin tersebut disusun per nomor soal latihan.

Perhatikan bahwa laporan ini harus merupakan hasil karya sendiri. Kesamaan
seluruh/sebagian isi laporan dengan mahasiswa lain akan mengakibatkan nilai
laporan menjadi Nol.

Laboratorium Software Engineering Versi/Revisi : 2/1 Halaman : 9-17

Anda mungkin juga menyukai