MAKALAH MODUL
ALGORITMA DAN
PEMROGRAMAN
Disusun untuk memenuhi
Matakuliah
Praktikum Algoritma dan Pemrograman
Oleh :
Cecep Ilham M
NPM : 1406025
Teknik Informatika “C”
SEKOLAH
TINGGI TEKNOLOGI GARUT
Jln.
Mayor Syamsu No.2 Telp/Fax. (0262)232773Garut 44151
TAHUN
2014/2015
KATA PENGANTAR
Alhamdulillah, puji syukur penulis ucapkan kehadirat
Allah SWT berkat limpahan rahmat dan karunia-Nya Penulis dapat menyelesaikan
makalah yang membahas tentang “ALGORITMA
DAN PEMROGRAMAN” Mata Kuliah Pratikum Algoritma dan Pemrograman.
Makalah ini dimaksudkan sebagai penjelasan ringkas
dari materi algoritma dan pemrograman. Dengan membaca makalah ini, diharapkan
pembaca dapat memahami dan mengerti serta dapat memahami.
Dengan sepenuh hati penulis menyadari dan merasakan
betapa besar bantuan dari berbagai pihak manapun. Oleh karena itu, pada
kesempatan ini penulis ingin menyampaikan rasa terima kasih yang
setulus-tulusnya kepada yang terhormat.
1. Bpk. Dr. H. Hilmi Aulawi
M.T, selaku kepala STT-Garut.
2. Kakak Leni, selaku
Pembimbing Pratikum.
3. Ikbal Muhammad Hikmat S.T,
selaku pembimbing kami.
4. Orang tua penulis yang telah
memberikan dorongan dan doanya dalam penyusunan makalah ini.
5. Serta semua pihak yang tidak
dapat penulis sebutkan satu persatu yang telah memberikan bantuan kepada
penulis sehingga terselesaikannya makalah ini.
Dalam penulisan makalah ini, penulis
menyadari masih banyak terdapat kesalahan dan kekurangan. Untuk itu penulis
sangat mengharapkan masukan dan saran demi kesempurnaan makalah ini. Demikianlah
makalah ini penulis buat, semoga makalah ini dapat bermanfaat bagi semua yang
membaca.
DAFTAR ISI
Kata
pengantar
Daftar isi
|
||
MODUL I
|
ALGORITMA
DAN PEMROGRAMAN DENGAN MENGGUNAKAN C++
|
|
A. Pendahuluan
Materi
|
||
B. Soal
Latihan
|
||
C. Tugas
Praktek
|
||
MODUL II
|
PEMROGRAMAN C DAN C++ MENGGUNAKAN
APLIKASI CONSOLE
|
|
A. Pendahuluan
Materi
|
||
B.
|
||
MODUL I
ALGORITMA DAN
PEMROGRAMAN DENGAN
MENGGUNAKAN C++
A.
PENDAHULUAN
MATERI
1.
Pengertian Program dan
Pemrograman
Program
merupakan runtunan atau himpunan instruksi(perintah) tertulis yang ditanamkan
ke dalam komputer untuk menyelesaikan masalah.
Pemrograman
merupakan pengerjaan penulisan instruksi oleh programmer untuk menyelesaikan
suatu masalah.
Program
|
Komputer
|
Kompilasi
|
Tahapan Penyelesaian Masalah oleh
Komputer
2.
Pengeritan
Algoritma
Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis dan tidak tergantung pada bahasa pemrograman tertentu. Kata Logis
merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus
logis (masuk akal dan mengikuti suatuuratan tertentu, tidak boleh
melompat-lompat) serta harus dapat ditentukan bernilai salah atau benar.
3.
Aturan
Penulisan Notasi Algoritma
Penulisan
algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer
yang mengeksekusinya melainkan bersifat umum tetapi notasi notasi algoritma
dapat diterjemahkan ke dalam berbagai bahsa pemrograman.
Notasi
algoritma dapat berupa :
·
Uraian kalimat
deskriptif (narasi)
Intruksi
pada algoritma dapat dituliskan dalam bahsa sehari-hari (B.Indonesia,
B.Inggris, dsb). Tidak aturan yang baku untuk menuliskan algoritma dalam bentuk
notasi ini, tetapi penulisan algoritma menggunakan notasi ini dapat menimbukan
ambiguitas.
·
Bagai alir (flow
chart)
Instruksi-instruksi
pada Algoritma digambarkan secara grafis (menghasilkan sebuah bagan)
menggunakan simbol-simbol tertentu dengan aturan sebagai
berikut :
Simbol
|
Keterangan
|
Tanda Start (mulai) atau Tanda End
(Selesai)
|
|
Proses
|
|
Operasi Input Output
|
|
Percabangan / Pengambilan Keputusan
|
|
Aliran Data
|
·
Pseudo-code
Penulisan
teks algoritma dengan Pseudo-code menggunakan notasi-notasi tertentu yang
mendekati bahasa pemrograman sehingga lebih mudah ditranslasikan kedalam bahasa
pemrograman.
Aturan
penulisan Algoritma :
·
Judul (Header)
Judul
adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan nama
dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi.
·
Kamus(Deklarasi)
Kamus
adalah bagian teks algoritma sebagai tempat untuk mendefinisikan : Nama type,
Nama konstanta, Nama variable, Nama fungsi, Nama prosedur.
·
Algoritma(deskripsi)
Algoritma merupakan
bagian inti dari suatu algoritma yang berisi instruksi atau pemanggilan aksi
yang telah didefinisakan.
B.
SOAL
LATIHAN
Buatlah algoritma dalam bentuk
pseudocode dan flowchart serta buatlah programnya aplikasi dengan output
dilayar monitor sebagai berikut :
Input :
Nilai ke 1 = ...
Nilai ke 2 = ...
Output :
Nilai ke 1 + Nilai ke 2 = ...
Nilai
ke 1 - Nilai ke 2 = ...
Nilai ke 1 * Nilai ke 2 = ...
Nilai ke 1 / Nilai ke 2 = ...
Nilai Rata Rata = ...
Jawaban
:
|
Psedocode
|
|||||
Input (nilai1,
nilai2)
Hasil Nilai Ke 1 + Nilai Ke 2 =…
Nilai Ke 1 - Nilai Ke 2 =…
Nilai Ke 1 * Nilai Ke 2 =…
Nilai Ke 1 / Nilai Ke 2 =…
Nilai Rata-rata =…
Output hasil (+ - *
/ rata)
|
PProgram
aplikasinya
|
#include
<vcl.h>
#include
<stdio.h>
#include
<conio.h>
main ()
{
float a, b,
penjumlahan, pengurangan, perkalian, pembagian, rata;
printf("nilai
1 =");scanf("%f",&a);
printf("nilai
2 =");scanf("%f",&b);
penjumlahan
=a+b;
pengurangan
=a-b;
perkalian
=a*b;
pembagian
=a/b;
rata =
penjumlahan/2;
printf("\n
%2.0f + %2.0f =%2.0f",a, b, penjumlahan);
printf("\n
%2.0f - %2.0f =%2.0f",a, b, pengurangan);
printf("\n
%2.0f *%2.0f =%2.0f",a, b, perkalian);
printf("\n
%2.0f / %2.1f =%2.1f",a, b, pembagian);
printf("\n
%2.0f + %2.0f / 2 =%2.0f",a, b, rata);
getch();
}
|
C.
TUGAS
PRAKTEK
Algoritma Pseudocode dan flowchart
membuat tempe goreng
Jawaban
:
Pseudocode
|
Flowchart
|
||||||||
Input (Tempe,
terigu, minyak, bumbu, air)
Masukan
terigu kedalam wadah
Campur bumbu
dan air, aduk rata
Masukan tempe
yang sudah di iris, aduk rata
Goreng dalam
minyak yg sudah dipanaskan dengan api sedang sampai matang
Output (Tempe
Goreng)
|
|
MODUL II
PEMROGRAMAN C DAN C++ MENGGUNAKAN
APLIKASI CONSOLE
A.
PENDAHULUAN
MATERI
1.
Tentang
C dan C++
Bahasa C dikembangkan oleh Dennis
Ritchie pada tahun 1972 di Laboratoria Bell yang ada di Murray Hill, New
Jersey, USA.
Bahasa C++ diciptakan oleh Bjarne
Stroustrup di AT&T Bell Laboratories awal tahun 1980-an berdasarkan C ANSI
(American National Standard Institute). Symbol ++ merupakan operator C untuk
operasi penaikan, muncul untuk menunjukkan bahwa C++ merupakan versi yang lebih
canggih dari C.
C++ diciptakan untuk mendukang
pemrograman berorientasi objek (OOP) yang tidak dimiliki C, sementara C
merupakan bahasa Pemrograman yang menghasilakan program .EXE berukuran kecil,
eksekusi yang cepat, interface yang sederhana dengan bahasa lain dan
fleksibilitas pemrograman tetapi tidak memiliki kemampuan OOP.
2.
Pengenalan
C++
= prepocessor directive
Void main()
{
Batang Tubuh Program Utama
}
|
Penjelasan
:
a)
Include
Include
adalah salah satu pengarah prepocessor directive yang tersedia pada C++.
Preprocessor selalu dijalankan terlebih dahulu pada saat prosese kompilasi
terjadi. Bentuk umumnya :
·
#include<nama_file>
·
#include<iostream_h>
·
#include<conio.h>
·
#include<iomanip.h>
·
#include<math.h>
b)
Fungsi
main ()
Fungsi
ini menjadi awal dan akhir eksekusi program C++. Main adalah nama judul fungsi.
c)
Komentar
Komentar
tidak pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis kemontar,
yaitu:
Jenis 1 : /* Komentar
anda diletakkan di dalam ini
Bisa mengapit lebih dari satu
baris */
Jenis 2 : // Komentar
anda diletakkan disini (hanya bisa perbaris)
d)
Tanda
Semicolon
Tanda
semicolon “ ; “ digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan
harus diakhiri dengan sebuah tanda semicolon.
e)
Mengenal
cout(dibaca : C out)
Pernyataan
cout merupakan sebuah objek didalam C++, yang digunakan untuk mengarahkan data
ke dalam standar output (cetak pada layar).
3.
Input
dan Output
Dalam C++ input berarti membaca dari
stream dan output berarti menulis ke stream.
Stream adalahsuatu logika device
(peralatan logika) yang menghasilkan dan menerima informasi. Stream adalah nama
umum untuk menampung aliran data (conoth : file, keyboard, mouse), maupun untuk
keluaran (contoh : layar, printer).
Dasar pemahaman suatupemrograman adalah
analisa suatu algoritma. Berikut ini adalah elemen dasar pemrograman, yaitu :
1) Variable
dan Tipe Data.
2) Konstanta.
3) Operator.
4) Statement
Input dan Output
4.
Fungsi
Standar Input dan Output
Fungsi standar input (stdin) dari
keyboard misalnya : scanf, getchar, gets, dsb. Sedangakan fungsi standar output
(stdout) kelayar monitor misalnya : printf, puts, putchar, dsb. Contoh format
penulisan salah satu fungsi stdio.h :
1. Format
string adalah deret karakter yang diawali dan diakhiri dengan (“), dimana
didalamnya dapat berisi format specifier (%d, %s, %f).
2. Item
adalah nilai langsung atau referensi variabel yang berpasangan dengan format
specifier.
3. Add
dalam scanf harus diisi nilai alamat dari variabel penampungnya dengan menggunakan operator & (misalnya jika int
a; maka &a menunjukan alamat memori variabel a).
C++ mempunyai teknik input dan output
yang baru, yaitu : menggunakan stream. Header file untuk input dan output
stream adalah iostream.h dan beberapa file lain, seperti strstrea.h, fstream.h,
dan constrea.h.
5.
Tipe
Data
Semua program berhubungan dengan suatu
jenis informasi yang dapat ditampilkan dengan menggunakan jenis data dasar
Bahasa Pemrograman C, berikut pengembangan yang dilakukan oleh berbagai
perusahaan pembuat compiler, yaitu : teks (char), nilai integer (int, short
int, long int), nilai floating point (float, double, long double), enumerated
(enum), void dan pointer. Termasuk modifier unsigned yang dapat diterapkan pada
char, int, short int dan long int.
·
Operator
Bahasa
Pemrograman C mempunyai banyak operator, antara lain : operator bitwise (AND,
OR dan XOR), operator shift (shift kiri(<<) dan shift kanan (>>),
operator inkremen (++), dan dekremen (--), opertaro aritmetika (+, -, *, / dan
%), dan operator assigment.
·
Escape
Sequence
Karakter
backslas (\) digunakan untuk menghasilkan escape sequence yang memungkinkan
adanya representasi visual dari karakter-karakter non grafik tertentu.
·
Preprocessor
: #include dan #define
Preprocessor
#include digunakan untuk memeanggil atau menambahkan file header (file unit)
yang telah dibuat sebelumnya.
B.
TUGAS
PRAKTEK
1. Buatlah
algoritma dengan pseudocode dan program untuk menghitung jumlah dua buah
bilangan menggunakan pemrograman C++ dengan fasilitas console.
Masukan Nilai
A : 3
Masukan Nilai
B : 5
Hasil dari C = A % B = 3
Hasil dari D = A * B = 15
|
2. Buatlah
Program Aplikasi Untuk Mengetahui berat badan ideal (BBI) seseorang dengan
rumus BBI = (Tinggi Badan – 100)*90%
Input
data
Nama
Anda = ...
Tinggi Badan = ...
Output
data
Berat Badan Ideal Anda Adalah = ...
3. Buatlah
algoritma psedocode dan program untuk menghitung
Luas
alas = luas lingkaran = phi*r*2
Volume
tabung = phi*r*2*t
Keliling
lingkaran alas/tutup = 2*phi*r
Luas
selimut = 2*phi*r*t
Luas
permukaan tabung = 2*luas alas+luas selimut tabung
Luas
permuakaan tabung = 2(phi*r*2)+2*phi*r*t = 2*phi*r(r+t)
Jawaban
:
1.
Pseudocode
|
flowchart
|
||||||
Input (a,b, hasil1, hasil2)
Hasil1= a*b
Hasil2= a/b
Output (hasil1,hasil2)
|
|
Listing Program
|
#
include <vcl.h>
#include<stdio.h>
#include<conio.h>
main()
{
int
a, b, hasil1, hasil2, NPM;
printf("masukan
nilai a =");scanf("%d",&a);
printf("masukan
nilai b =");scanf("%d",&b);
hasil1
= a / b;
hasil2
= a * b;
printf("\n
hasil dari a / b = %d",hasil1);
printf("\n
hasil dari a * b = %d",hasil2);
printf("\n\n");
printf("\nCreated
By Delina Permatasari", NPM);
printf("\nNPM
: 1406028", NPM);
getch();
}
|
2.
Pseudocode
|
Flowchart
|
||||||
Input ( int = b,bbi
Char = a [20] )
bbi=(b-100)*90/100
output
( bbi )
|
|
Listing Program
|
#include<vcl.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
main()
{
printf("\t>>MENGETAHUI
BERAT BADAN IDEAL<<\n");
printf("\n==========================================\n");
int b,bbi,NPM;
char a[20];
printf("Nama Anda =
");scanf("%s",&a);
printf("Tinggi Badan =
");scanf("%d",&b);
printf("\n------------------------------------------\n");
bbi=(b-100)*90/100;
printf("Berat Badan Ideal
Anda=%d",bbi);
printf("\n------------------------------------------\n");
printf("\n\n");
printf("\nCreated By
Delina Permatasari", NPM);
printf("\nNPM :
1406028", NPM);
printf("\n\n");
printf("tekan ENTER untuk
keluar");
getch();
}
|
3.
Pseudocode
|
flowchart
|
|||||||||
INPUT (r,t,phi,la,ll,vt,kl,ls,lpt)
Phi=3,14
Luasalas =phi*r*r;
Volumetabung =phi*r*r*t;
Kellilinglingkaran =2*phi*r;
Luasselimut =2*phi*r*t;
Luaspermukaan tabung =2*(luasalas+luasselimut);
OUTPUT(Luasalas,
Volumetabung, Kelilinglingkaran, Luasselimut,Luaspermukaantabung, )
|
|
Listing
Program
|
#include<vcl.h>
#include<stdio.h>
#include<conio.h>
main()
{
printf("\t>>>>>RUMUS
MATEMATIKA<<<<<\n");
printf("\n===========================================\n");
float
r,t,phi,la,ll,vt,kl,ls,lpt,NPM;
phi=3.14;
printf("Masukan
Jari-Jari =");scanf("%f",&r);
printf("Masukan
Tinggi =");scanf("%f",&t);
printf("\n------------------------------------\n");
la=phi*r*r;
printf("Luas
Alas=Luas lingkaran =%.2f",la);
printf("\n------------------------------------\n");
vt=phi*r*r*t;
printf("Volume
Tabung =%.2f",vt);
printf("\n------------------------------------\n");
kl=2*phi*r*t;
printf("Keliling
Lilingkaran Alas/Tutup =%.2f",kl);
printf("\n------------------------------------\n");
ls=2*phi*r*t;
printf("Luas
Selimut =%.2f",ls);
printf("\n------------------------------------\n");
lpt=2*la+ls;
printf("Luas
Permukaan Tabung =%.2f",lpt);
printf("\n\n");
printf("\nCreated
By Delina Permatasari", NPM);
printf("\nNPM
: 1406028", NPM);
printf("\n\n");
printf("Tekan
Enter Untuk Keluar");
getch();
}
|
MODUL III
PENYELEKSIAN
KONDISI DALAM PEMROGRAMAN
C++
A.
PENDAHULUAN
MATERI
Penyeleksian kondisi
digunakan untuk menentukan alr suatu proses. Penyeleksian kondisi biasanya
digunakan dalam program yang kompleks. Penyeleksian kondisi melibatkan beberapa
operator dalam bahasa C++, yaitu : operator hubungan (perbandingan), logika dan
bitwise. Fungsi seleksi tierdiri dari 3 tipe pernyataan yaitu :
·
Pernyataan If
·
Pernyataan If- Else
·
Pernyataan Switch
Operator-operator yang terkait
dengan proses seleksi kondisi adalah operator logika dan relasional(hubungan)
1.
struktur
kondisi “IF....”
·
Bentuk umum struktur
kondisi if adalah :
If(kondisi){
Statement;
...
Statement;
}
·
Jika lebih dari satu
statement, maka harus menggunakan tanda ‘{‘ dan ‘}’.
2.
Struktur
Kondisi “IF.....ELSE....”
·
Bentuk umumnya dalah
sebagai berikut :
If(kondisi){
Statement;
}
Else{
Statement;
}
3.
Struktur
Kondisi “IF....ELSE if....”
·
Bentuk umumnya adalah
sebagai berikut :
If(kondisi 1)
Uji_Pekerjaan_Benar1;
Else if(kondisi2)
Uji_Pekerjaan_Benar2;
Else
Uji_Pekerjaan_Default;
·
Dalam statement ini,
jika tidak ada ekspresi yang bernilai True, maka yang akan dieksekusi adalah
pekerjaan default (biasanya berupa pesan atau keterangan)
4.
Struktur
Kondisi “SWITCH.....CASE.....DEFAULT.....”
·
Bentuk umum dari
struktur kondisi ini adalah :
Switch(kondisi)
{
Case 1 : pernyataan-1;
Break;
........
........
Case n : pernyataan-n;
Break;
Default : pernyataan-m;
}
B.
SOAL
LATIHAN
#include<vcl.h>
#include<stdio.h>
#include<conio.h>
main()
{
char kode;
clrscr();
printf("masukkan
kode barang [A..C] : " ); scanf("%c", &kode);
switch(kode)
{
case'A':
case'a':
puts("alat olah
raga");
break;
case'B':
case'b':
puts("alat
elektronik");
break;
case'C':
case'c':
puts("alat
masak");
break;
default:
puts("anda salah
memasukan kode");
break;
}
getch();
}
C.
TUGAS
PRAKTEK
Buatlah algortma psedocode dan program
dengan output berikut
Total
belanja (input)
Bayar
(input)
Diskon
:
Kembali
:
Jika
belanja > 50 ribu maka diskon 10 %
Jika
belanja < 50 ribu maka diskon 5%
Jika
belanja < 50 ribu maka diskon 0%
|
Jawaban :
Pseudocode
|
|||||||||||
Input(tb, b, d,
k)
If tb>100000
d=b*0.15
else if tb>50000
d=b*0.1
else if tb<50000
d=0
k=b-(bt-d)
output ( b, k )
|
|||||||||||
Flowchart
|
|||||||||||
|
Listing
Program
|
#include<vcl.h>
#include<stdio.h>
#include<conio.h>
main()
{
int
tb, b,npm;
float
d, k;
printf("================================\n");
printf("| MENGHITUNG TOTAL BELANJA |\n");
printf("--------------------------------\n");
printf("Total
Belanja : Rp. " );scanf("%d",&tb);
printf("Bayar
: Rp. "
);scanf("%d",&b);
if(tb>100000)
{
d=tb*0.15;
}
else
if(tb>50000)
{
d=tb*0.10;
}
else
if(tb<=50000)
{
d=0;
}
k=b-(tb-d);
printf("--------------------------------\n");
printf("\nDiskon
Rp. %1.2f ", d);
printf("\nKembali
Rp. %1.2f \n ", k);
printf("================================\n");
printf("| TERIMA KASIH |\n");
printf("================================\n");
printf("\n\n\nCreated
by Delina Permatasari",npm);
printf("\nNPM
: 1406029",npm);
getch();
}
|
MODUL IV
PERULANGAN
DALAM PEMROGRAMAN C++
A.
PENDAHULUAN
MATERI
Struktur pengulangan
terdiri atas dua bagian :
·
Kondisi pengulangan
yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan.
·
Isi atau badan
pengulangan yaitu satu atau lebih pernyataan (aksi) yang akan diulang.
Perintah atau notasi
dalam struktur perulangan adalah :
1.
Pernyataan
while
Pernyataan while
merupakan salah satu pernyataan yang berguana untuk memproses suatupernyataan
atau beberapa pernyataan beberapa kali. Bentuk umumnya :
While(kondisi)
{
Pernyataan:
}
2.
Pernyataan
do...while
Pernyataan do...while
mirips eperti pernyataan while, hanya saja pada do...while pernyataan yang
terdapat didalmanya minimal akan sekali dieksekusi. Bentuk umumnya :
Do
{
Pernyataan:
{
while(kondisi):
3.
Pernyataan
for
Pernyataan for
diguankan untuk menghasilakn pengulangan (looping) beberapa kali tanpa
penggunaan kondisi apapun. Bentuk umumnya :
For(inisialisasi;kondisi;perubahan)
{
Statement;
}
4.
Pernyataan
continue dan break
Pernyataan break akan
selalu terlihat digunakan bila menggunakan pernyataan switch. Pernyataan ini
juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akan mengakhiri
loop dan akan menghentikan itrasi pada saat tersebut.
Pernyataan continue digunakan
untuk pergi kebagian awal dari blok loop untuk memulai iterasi berikutnya.
5.
Pernyataan
go to
Pernyataan go to,
diperlukan untuk melakukan suatu lompatan ke suatu berlabel yang ditandai
dengan tanda “ : “. Bentuk umumnya :
Goto
bawah;
Pernyataan1:
Pernyataan2:
Bawah:pernyataan3:
B.
SOAL
LATIHAN
1. Buatlah
algoritma dan program untuk menghitung 10 deret bilangan genap dengan hasilnya
:
2
+ 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 = 110
2. Buatlah
algoritam dan program untuk menghitung 10 deret bilangan ganjil dengan hasilnya
:
1
+ 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 = 100
Jawaban
:
1. Listing
Program
#include<vcl.h>
#include<stdio.h>
#include<conio.h>
main()
{
int
i,jumlah;
printf
("\n\t\tJumlah 10 Deret Bilangan Ganjil\n");
printf("\t\t-------------------------------
\n\n ");
jumlah
= 0;
for
(i=1; i<=19; i=i+2)
{
printf("
%d +", i);
jumlah
= jumlah+i ;
}
printf("Jumlah
deret = %d \n",jumlah);
getch();
}
2. Listing
program
#include<vcl.h>
#include<stdio.h>
#include<conio.h>
main()
{
int
i,jumlah;
printf
("\n\t\tJumlah 10 Deret Bilangan Genap\n");
printf("\t\t-------------------------------
\n\n ");
jumlah
= 0;
for
(i=2;i<=20;i=i+2)
{
printf("
%d +", i);
jumlah
= jumlah+i ;
}
printf("Jumlah
deret = %d \n",jumlah);
getch();
}
C.
TUGAS
PRAKTEK
1. Tuliskan
algoritma dan program untuk menampilkan semua solusi bilangan bulat tidak
negative dari persamaan berikut x+y+z=25 yang dalam hal ini, x>=0, y>=0,
dan z>=0.
2. Buatlah
algoritma dan program untuk menampilan berapa banyak baris yang di minta user
tapi dengan mengandakan setiap baris yang dicetak dilayar. Misalnya, jumlah
baris yang diminta adalah 5 buatlah dengan tanda * dengan berbentuk piramida
terbalik.
Jawaban :
1.
Pseudocode
|
Listing
Program
|
Input
(x, y, z)
For
x = 20 to 25 do
For
y = 0 to 25 do
For
z = 0 to 25 do
If
x + y + z = 25
Output(x+y+z=25)
|
#include<vcl.h>
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
main()
{
int
x, y, z, npm;
clrscr();
printf("
Penyelesaian Persamaan X + Y + Z = 25\n");
printf("\n");
for(x=20;
x<=25; x++)
{
for(y=0; y<=25; y++)
{
for(z=0; z<=25; z++)
{
if(x + y + z == 25)
printf("\n%d + %d + %d = 25 " ,
x, y, z, x+y+z);
}
}
}
printf("\n\nCreated
by Delina Permatasari",npm);
printf("\nNPM
: 1406029",npm);
getch();
}
|
2.
Pseudocode
|
Listing Program
|
Input
(a,b,c,v)
For
a = 0 to v do
For
b = 0 to a do
For
c = 0 to a-v do
output(*)
|
#include<vcl.h>
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
int
main()
{
int
a,b,c,v,npm;
printf("Banyaknya
Baris : " ); scanf("%d", &v);
printf("\n");
for(a=0;
a<v; a++)
{
for(b=0;
b<a; b++)
{
printf("
");
}
for(c=0;
c>(a-v); c--)
{
printf("
*");
}
printf("\n");
}
printf("\n\n\nCreated
by Delina Permatasari",npm);
printf("\nNPM
: 1406029",npm);
getch();
}
|
MODUL
V
LARIK
(ARRAY) DAN POINTER
A.
PENDAHULUAN
MATERI
1.
Larik
(Array)
Larik merupakan sekumpulan data yang
mempunyai nama dan tipe yang sama. Larik banyak digunakan pada operasi yang
melibatkan indeks seperti pada statistik dan matriks.
Tipe data larik dapat berupa larik satu
demensi, dua demensi, tiga demensi atau banyak dimensi.
Bentuk
umum larik satu dimensi :
Tipe_larik nama_larik[ukuran]
Bentuk
umum larik dua dimensi :
Tipe_larik
nama_larik[ukuran1][ukuran2]
Perhatikan :
·
Tanda kurung[ ]
digunakan untuk menunjukkan elemen larik
·
Perhitungan elemen
larik dimulai dari 0, bukan 1
a)
Representasi
Larik
Misalkan kita
memiliki sekumpulan data ujian seorang siswa, ujian pertama bernilai 90,
kemudian 95, 78, 85. Sekarang kita ingin menyusunnya sebagai suatu data
kumpulan ujian seorang siswa. Dalam array kita menyusunnya sebagai berikut.
Ujian[0]=90;
Ujian[1]=95;
Ujian[2]=78;
Ujian[3]=85;
Empat
pernyataan diatas memberikan nilai kepada array ujian. Tetapi sebeelum kita
memberikan nilai kepada array, kita harus mendeklarasikannya terlebih dahulu.
b)
Menghitung
Jumlah Elemen Array
Karena fungsi
sizeof() mengembalikan jumlah byte yang sesuai dengan argumennya, maka operator
tersebut dapat digunakan untuk menemukan jumlah elemen array, misalnya
Int array [
]={26,7,82,166}
Cout<<sizeof(array)/sizeof(int);
Akan
mengembalikan nilai 4, yaitu sama dengan jumlah elemen yang dimiliki larik.
c)
Melewatkan
Array sebagai Argumen Fungsi
Larik dapat
dikirim dan dikembalikan oleh fungsi. Pada saat larik dikirim ke dalam fungsi,
nilai aktualnya dapat dimanipulasi.
2.
Pointer
Pointer
merupakan sebuah variabel yang menyimpan alamat dari suatu data. Pointer
digunakan untuk :
1. Menunjuk
pada data yang berbeda dan struktur data yang berbeda.
2. Membuat
variabel baru pada saat program kita sedang dieksekusi (dynamic memory
allocation)
3. Mengakses
lokasi-lokasi yang berbeda dalam sebuah struktur data seperti sebuah array,
string, ataupun struct.
B.
TUGAS
PRAKTEK
1. Diberikan
Larik integer A yang berukuran elemen.
Elemen larik A sudah terurut menarik (dari kecilke besar). Tuliskan fungsi
untuk menghitung jangkauan (range) nilai di dalam larik . jangkauan adalah
selisih nilai terbesar dengan nilai terkecil.
2. Sebuah
peruahaan ayam goring dengan nama “Gerobak Fried Chicken” yang telah lumayan
banyak pelanggannya ingin dbantu dibuatkan program untuk membantu kelancaran
usahanya. “Gerobak Fried Chicken” mempunyai daftar harga ayam sebaga berikut :
Kode
Jenis Harga
------------------------
D
Dada Rp.2500
P
Paha Rp.2000
S
Sayap Rp.1500
------------------------
Buatlah
Programnya dengan ketentuan:
1.
setiap pembeli dikenakan pajak sebesar 10 % dari pembayaran
2.
Banyak jenis potong dan banyak bel di inputkan
Jawaban
:
1. Listing
Program
#include<vcl.h>
#include<conio.h>
#include<stdio.h>
main()
{
int i, n, A[100], max, min, npm;
npm=1406029;
printf("Data :
");scanf("%d", &n);
clrscr();
for(i=0;i<n;i++)
{
printf("A[%d] = ",
i);scanf("%d", &A[i]);
}
for(i=0;i<n;i++)
{
{
if(A[i]>A[i])
max=A[i];
if(A[i]<A[i])
min=A[i];
}
{
if(A[i]>max)
max=A[i];
if(A[i]<min)
min=A[i];
}
}
printf("\nNilai Maksimum\t= %d",
max);
printf("\nNilai Minimum\t= %d",
min);
printf("\nRange\t\t= %d", max-min);
printf("\n\n\n\nCreated By : Delina
Permatasari");
printf("\nNPM : %d", npm);
getch();
}
2. Listing
Progarm
#include<vcl.h>
#include<stdio.h>
#include<conio.h>
int
r[100], k[100], i, n[100], d=2500, p=2000, s=1500, pj;
int
bj, jml[100], jb=0, tb;
char
j_potong[100], *j[100];
banner()
{printf("\n GEROBAK FRIED CHICKEN\n");}
unit()
{
printf("
-----------------------\n");
printf("
Kode Jenis Harga\n");
printf("
-----------------------\n");
printf("
D Dada\tRp. %d\n", d);
printf("
P Paha\tRp. %d\n", p);
printf("
S Sayap\tRp. %d\n", s);
printf("
-----------------------\n");
}
order()
{
banner();unit();
printf("
Banyak Jenis\t: ");scanf("%d", &bj);
for(i=1;i<=bj;i++)
{
printf("
Jenis Ke - %d\n", i);
printf("
Jenis Potong [D/P/S]\t: ");scanf("%s", &j_potong[i]);
printf("
Banyak Potong\t: ");scanf("%d", &r[i]);
}
for(i=1;i<=bj;i++)
{
if (j_potong[i]=='D' || j_potong[i]=='d')
{j[i]="Dada";k[i]=2500;}
else if (j_potong[i]=='P' ||
j_potong[i]=='p')
{j[i]="Paha";k[i]=2000;}
else if (j_potong[i]=='S' ||
j_potong[i]=='s')
{j[i]="Sayap";k[i]=1500;}
else {}
jml[i]=r[i]*k[i];
}
}
main()
{
order();clrscr();banner();
printf("
----------------------------------------------------------------\n");
printf(" No.\t
Jenis\t\tHarga\t\tBanyak\t\tJumlah\n");
printf("\t
Potong\t\tSatuan\t\tBeli\t\tHarga\n");
printf("
----------------------------------------------------------------\n");
for(i=1;i<=bj;i++)
{
jml[i]=r[i]*k[i];
}
for(i=1;i<=bj;i++)
{
printf(" %d\t
%s\t\t %d\t\t %d\t Rp.
%d\n", i, j[i], k[i], r[i], jml[i]);
}
printf("
----------------------------------------------------------------\n");
for(i=1;i<=bj;i++)
{
jb=jb+jml[i];
}
pj=0.1*jb;
tb=jb+pj;
printf("\t\t\t\t Jumlah Bayar\t= Rp. %d", jb);
printf("\n\t\t\t\t Pajak 10%%\t= Rp. %d", pj);
printf("\n\t\t\t\t Total Bayar\t= Rp. %d", tb);
printf("\n\n\n\n\nCreated By : Delina
Permatasari");
printf("\nNPM : 1406029");
getch();
}
MODUL IV
STRUKTUR DAN FUNGSI
A.
PENDAHULUAN
MATERI
1.
Struktur
Suatu tipe data yang
merupakan kumpulan dari tipe data lainnya, struktur terdiri dari data yang
disebut field. field-field tersebut digabungkan menjadi satu tujuan untuk
kemudahan dalam operasi.
Bentuk umumnya :
Tyedef struct{ tipe nama_field1:
tipe nama_field2:
tipe nama_field3:
.....
}nama_variabel:
Hal-hal yang diperhatikan :
·
Deklarasi struktur
hanya mendefinisikan bentuk data, tidak mendeklarasikan variabel untuk
mendeklarasikan variabel dengan struktur diatas, anda harus menyatakan : struct
data_mhs mahasiswa;
Artinya : variabel mahasiswa adalah
sebuah statement yang harus diakhriti defngan titik koma (;).
·
Bagian deklarasi
struktur adalah statement yang harus diakhiri dengan titik koma (;).
2.
Fungsi
Fungsi (function) merupakan blok dari kode yang
dirancang untuk melaksanakan tugas khusus.
Keguanan dari
fungsi ini adalah untuk :
·
Mengurangi pengulangan
penulisan program yang berulangan atau sama.
·
Program menjadi lebih
terstruktur, sehingga mudah dipahami dan dapat lebih dikembangkan.
Fungsi-fungsi
yang sudah kit akenal sebelumnya adalah fungsi main(), yang bersifat mutlak,
karena fungsi ini program akan dimulai, sebagai contoh yang lainnya fungsi
printf(), cout() yang mempunyai tugas untuk menampikan informasi atau data kelayar
dan masih banyak lainnya.
Struktur
Fungsi
Nama_fungsi(argumen)
{
... pernyataan /
perintah;
... pernyataan /
perintah;
... pernyataan /
perintah;
}
Keterangan:
·
Nama fungsi, boelh
dituliskan secara bebas dengan ketentuan, tidak menggunakan spasi dan nama-nama
fungsi yang mempunyai arti sendiri.
·
Argumen, diletakan
diantara tanda kurung “( )” yang terletak dibelakang nama fungsi. Argumen boleh
diisi dengan suatu data atau dibiarkan kosong.
·
Pernyataan/perintah,
diletakan diantara tanda kurung “( )”.
Pada
pemanggilan sebuah fungsi, cukup dengan menuliskan nama fungsinya.
1.
Protite
Fungsi
Sebuah fungsi
tidak dapat dipanggil keculai sudah dideklarasikan, deklarasi fungsi dikenal
dengansebuatan prototipe fungsi. Prototipe fungsi berupa :
a. Nama
fungsi
b. Fipe
nilai fungsi
c. Jumlah
dan tipe argumen
Dan diakhiri
dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagai contoh:
·
Long kuadrat (long 1);
Pada contoh pertama,
fungsi kuadrat ( ) mempunyai argumen bertipe long dan nilai balik bertipe long.
·
Void garis ( );
Pada contoh kedua,
fungsi garis ( ) tidak memiliki argumen dan nilai baliknya tidak ada (void).
·
Double maks (double x,
double y)
Pada contoh ketiga,
fungsi maks ( ) mempunyai dua buah argumen, dengan masing-masing argumen
bertipe double.
2.
Variabel
Lokal Dan Variabel Eksternal
Variabel lokal
adalah variabel yang didefinisikan dalam suatu fungasi tertentu, sehingga hanya
dikenal dalam fungsi tersebut.dalam hal ini artinya suatu fungsi tidak akan
mengenal variabel lokal dan fungsi lain.
Variabel eksternal
adalah variabel yang bersifat global yang dapat dikenali oleh sluruh fungsi
yang terdapat dalam program tersebut. Bariabel eksternal dideklarasikan diluar
fungsi dan sejajar dengan prototipe fungsi serta pengarah kompiler.
3.
Parameter
Parameter
adalah sarana komunikasi antar fungsi. Pengertian antar fungsi adalah antara
fungsi dengan fungsi lain termasuk antara fungsi dengan fungsi utama.
Terdapat dua macam bentuk parameter dalam hubungannya
dengan penggunaan fungsi dalam program yaitu:
·
Parameter formal :
parameter yang diberikan nilai. Parameter formal parameter yang terdapat dalam
daftar parameter fungsi.
·
Parameter aktual :
parameter yang memberikan nilai. Parameter fungsi dan digunakan untuk memberi
nilai pada parameter formal.
a. Cara
melewatkan parameter
Cara melewatkan suatu
parameter dalam Bahasa C++ ada dua cara yaitu :
1) Pemanggilan
secara Nilai(call by Value)
-
Call by value akan
menyalin nilai dari parameter aktual ke parameter formal
-
Yang dikirimkan ke
fungsi adalah nilai dari datarnya, bukan alamat memori letak dari datanya.
2) Pemanggilan
secara Referensi (call by Reference)
-
Pemanggilan secara
Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam
fungsi.
-
Yang dikirmkan ke
fungsi adaladh alamat letak dari nilai datanya, bukan nilai datanya.
4.
Nilai
Bawaan Untuk Argumen Fungsi
Salah satu
keistimewaan C++ yang sangat bermanfaat dalam pemrograman adalah adanya
kemampuan untuk menyetel nilai default Argumen fungsi.
5.
Rekursi
Merupakan suatu
fungsi dapat memenggil fungsi yang merupakan dirinya sendiri. Penerapan rekursi
diantaranya untuk menghitung nilai : xn
6.
Fungsi-Fungsi
Bawaan C++
Anda dapat
mengunakan fungsi-fungsi bawaan C++, misalkan fungsi-fungsi matematika,
pengolah kata dan banyak lagi. Sebenarnya (mungkin tidak terasa bagi anda) main
juga adalah fungsi, jadi tanpa anda sadari sebenarnya anda telah menggunakan
fungsi. Untuk dapat menggunakan fungsi-fungsi tersebut anda harus meng-include
file dimana fungsi tersebut didefinisikan.
Misalnya :
o Fungsi-fungsi
matematika, anda harus meng-include file math.h
o Fungsi-fungsi
pengolah sring dan karakter, anda harus meng-include file string.h
o Fungsi
clrscr(), getch(), getche() dalam file conio.h
B.
Tugas
Praktikum
1. PT.DINGIN
DAMAI memberikan honor tetap kepada karyawan kontraknya sebesar Rp.1.000.000,-
per bulan, dengan memperoleh tunjangan-tunjangan sebagai berikut:
Tunjangan Jabatan
Golongan
|
Persentase
|
1
|
5 %
|
2
|
10%
|
3
|
15%
|
Sebagai
contoh : jka seorang karyawan tersebut dengan golongan 3, maka mendapatkan
tunjangan sebesar 15% * Rp.1.000.000,-
Tunjangan Pendidikan
Kode
|
Pendidikan
|
Persentase
|
1
|
SMU
|
2,5%
|
2
|
D3
|
5%
|
3
|
S1
|
7,5%
|
Honor Lembur
Jumlah
jam kerja normal sebanyak 8 jam kerja. Honor lembur diberikan jika jumlah jam
kerja lebih dari 8 jam, maka kelebihan jam kerja tersebut dikalikan dengan
honor lembur perjam sebesar Rp.25.000 untuk setiap kelebihan jam kerja
perharinya
Layar
Masukan
Program Hitung Honor Karyawan Kontrak
PT.DINGIN DAMAI
Nama Karyawan : …<diinput>
NIP :
…<diinput>
Golongan : …<diinput>
Pendidikan(SMU/D3/S1) : …<diinput>
Jumlah Kerja : …<diinput>
|
||||||||||||||||
Output
DAFTAR
GAJI KARYAWAN
PT.
ANGIN RIBUT
|
||||||||||||||||
Gunakan Struktur, Array dan
Fungsi
|
2. Buat
program tentang penyewaan penginapan kamar disuatu perhotelan dengan
menggunakan java, dimana data yang disimpan:
a. Data
kamar yang berisi data jumlah kamar yang dimiliki oleh hotel tersebut, termasuk
dari status dari kamar tersebut apakah terisi kosong atau di bookin. Kamar yang
ada terdiri dari 3 jenis kamar, yaitu (harga sewanya Rp.175.000), double (harga
sewanya Rp.225.000)dan suite (harga sewanya Rp.300.000) per malam
b. Data
penyewa yang berisi data tamu yang menginap dihotel tersebut, yag minimal
menyimpan data no KTP/SIM, nama alamat atau no telepon.
c. Data
Room Service dimana tamu yang menginap di hotel tersebut memesan makanan
ataupun lainnya, yang minimal menyimpan data makanan yang dipesan.
d. Data
transakasi, yang berisi proses transaksi antara penyewa dan pemilik hotel yang
akan menyewakan kamar untuk disewa.
Adapun fasilitas / proses yan dimiliki oleh program
ini adalah sebagai berikut:
a. Dapat
menampilkan data kamar beserta statusnya, termasuk memberikan summary berapa
jumlah kamar yang terisi, yang kosong, dan yang di booking.
b. Dapat
menampilkan data penyewa termasuk kamar yang disewa. Juga dapat memberikan
summary tentang penyewa yang sering menginap dihotel tersebut.
c. Dapat
menampilkan data makanan yang dipesan (room servis).juga dappat memberikan
summary makanan apa yang disukai di hotel tersebut.
d. Dapat
mengetahui total transaksi yan dilakukan pada suatu waktu tertentu (perbulan
atau pertahun tertentu)
e. Tambahkan
fasilitas lain akan memberikan nilai tambah.
Jawaban :
1. Listing
Program
#include<vcl.h>
#include<conio.h>
#include<stdio.h>
int i, k[40], l[40],
n, p[40], tj[40], tp[40], gol[40], honor=1000000, nip[40], tot[40];
char *nama[40][15],
*pend[40];
void banner()
{printf("\n\tNama : Delina Permatasari");
printf("\n\tNPM : 1406029");
printf("\n\tJurusan : Teknik Informaika - C\n\n");
printf("\n\t\t----------------------------------------------
");
printf("\n\t\t\t\tPT.DINGIN DAMAI ");
printf("\n\t\t----------------------------------------------
");
}
void Layar1()
{
for(i=0;i<n;i++)
{
clrscr();banner();
printf("\n\n");
printf("\tData Ke-%d\n", i+1);
printf("\tNama Karyawan\t\t:
");scanf("%s",&nama[i][15]);
printf("\tNIP\t\t\t:
");scanf("%d",&nip[i]);
printf("\tGolongan\t\t:
");scanf("%d",&gol[i]);
printf("\tPendidikan (SMU/D3/S1)\t:
");scanf("%d",&p[i]);
printf("\tJumlah Jam Kerja\t:
");scanf("%d",&k[i]);
}
}
void Layar2()
{
for(i=0;i<n;i++)
{
printf(" | %d| %s
|", i+1, &nama[i][15]);
printf("
%d | %d\t", nip[i], gol[i]);
printf("| %s
| %d ", pend[i], k[i]);
printf("| Rp.%d| Rp.%d|\n", l[i],
tot[i]);
}
}
void main()
{
banner();
printf("\n\n");
printf("\tBanyak Data :
");scanf("%d",&n);
Layar1();
for(i=0;i<n;i++)
{
if(gol[i]==1){tj[i]=honor*5/100;}
else if(gol[i]==2){tj[i]=honor*1/10;}
else if(gol[i]==3){tj[i]=honor*15/100;}
else {}
if(p[i]==1){tp[i]=honor*25/1000;pend[i]="S M U";}
else
if(p[i]==2){tp[i]=honor*5/100;pend[i]=" D 3";}
else
if(p[i]==3){tp[i]=honor*75/1000;pend[i]=" S 1";}
else {}
l[i]=(k[i]-8)*25000;
tot[i]=honor+tj[i]+tp[i]+l[i];
}
clrscr();
banner();
printf("\n\t\t\t DAFTAR GAJI KARYAWAN ");
printf("\n");
printf("\n
------------------------------------------------------------------------------");
printf("\n|No| Nama
| NIP | Golong | Pendidik |
Jumlah | Uang
| Total |");
printf("|
| Karyawan |
| an |
an | jam Kerja | Lembur
| Gaji |");
printf("
------------------------------------------------------------------------------");
Layar2();
printf("
------------------------------------------------------------------------------");
printf("\n\n\n Created by Delina
Permatasari");
getch();
}
2. Listing
Program
#include<vcl.h>
#include<conio.h>
#include<stdio.h>
int i,p=0,pilih;double
fds[2]={50000,20000},ds=15000;
char
*j[3]={"Single","Double","Suite "},*s[3]={"
Terisi","Dibooking"," Kosong"};
struct{char
*status,*jenis; int harga;}kamar[40];
struct{char
*nama,*alamat; double NoId,NoTelp; int ket;}penyewa[40];
struct{char
*makan,*minum;}RS[20];
void bannerhotel()
{printf("\n\tNama : Delina Permatasari");
printf("\n\tNPM : 1406029");
printf("\n\tJurusan : Teknik Informaika - C\n\n");
printf("\n\t
+=================================================+\n");
printf("\t +
=== SELAMAT DATANG === +\n");
printf("\t +
=== DI === +\n");
printf("\t +
=== HOTEL AIMI SAKURA ===
+\n");
printf("\t
+=================================================+\n\n");
}
void
bannerdatapenyewa()
{
printf("\n
+==================================================+\n");
printf(" +
=== DATA PENYEWA === +\n");
printf(" +
=== HOTEL AIMI SAKURA ===
+\n");
printf("
+==================================================+\n\n");
}
void bannerdatakamar()
{
printf("\n
+==================================================+\n");
printf(" +
=== DATA KAMAR
=== +\n");
printf(" +
=== HOTEL AIMI SAKURA ===
+\n");
printf(" +==================================================+\n\n");
}
void bannertransaksi()
{
printf("\n
+==================================================+\n");
printf(" +
=== DATA TRANSAKSI
=== +\n");
printf(" +
=== HOTEL AIMI SAKURA ===
+\n");
printf("
+==================================================+\n\n");
}
void bannerrs()
{
printf("\n
+==================================================+\n");
printf(" +
=== ROOM SERVICE
=== +\n");
printf(" +
=== HOTEL AIMI SAKURA ===
+\n");
printf("
+==================================================+\n\n");
}
void datapenyewa()
{
penyewa[0].nama="Asri
";penyewa[0].alamat="Jakarta";penyewa[0].ket=2;
penyewa[0].NoId=3205052012900001;penyewa[0].NoTelp=82322422522;
penyewa[1].nama="Wahyu";penyewa[1].alamat="Cirebon";penyewa[1].ket=3;
penyewa[1].NoId=3205050505850005;penyewa[1].NoTelp=85725950850;
penyewa[2].nama="Meli
";penyewa[2].alamat="Sidoarjo";penyewa[2].ket=4;
penyewa[2].NoId=3206062312910002;penyewa[2].NoTelp=87827888222;
penyewa[4].nama="Vani
";penyewa[4].alamat="Garut";penyewa[4].ket=2;
penyewa[4].NoId=3205050201930003;penyewa[4].NoTelp=81200100000;
penyewa[6].nama="Yunus";penyewa[6].alamat="Bandung";penyewa[6].ket=3;
penyewa[6].NoId=3204042802890004;penyewa[6].NoTelp=83823000123;
penyewa[8].nama="Dila
";penyewa[8].alamat="Garut";penyewa[8].ket=2;
penyewa[8].NoId=3205050106960001;penyewa[8].NoTelp=85662111234;
penyewa[10].nama="Yadi
";penyewa[10].alamat="Depok";penyewa[10].ket=3;
penyewa[10].NoId=3205051010900001;penyewa[10].NoTelp=81210310410;
penyewa[11].nama="Aisyah";penyewa[11].alamat="Jakarta";penyewa[11].ket=5;
penyewa[11].NoId=3205050501940004;penyewa[11].NoTelp=85721666909;
penyewa[12].nama="Victor";penyewa[12].alamat="Semarang";penyewa[12].ket=4;
penyewa[12].NoId=3202020810880002;penyewa[12].NoTelp=81381457233;
penyewa[15].nama="Rahmayani";penyewa[15].alamat="Bogor";penyewa[15].ket=3;
penyewa[15].NoId=3205050607900001;penyewa[15].NoTelp=82356231876;
penyewa[17].nama="Nia
";penyewa[17].alamat="Lampung";penyewa[17].ket=10;
penyewa[17].NoId=3205051202920002;penyewa[17].NoTelp=82563753433;
penyewa[19].nama="Alif
";penyewa[19].alamat="Maluku";penyewa[19].ket=14;
penyewa[19].NoId=3205051208890001;penyewa[19].NoTelp=81267628972;
penyewa[21].nama="Stefani";penyewa[21].alamat="Jakarta";penyewa[21].ket=4;
penyewa[21].NoId=3205050404900004;penyewa[21].NoTelp=85333814351;
penyewa[23].nama="Wilson";penyewa[23].alamat="Malang";penyewa[23].ket=3;
penyewa[23].NoId=3203030802890001;penyewa[23].NoTelp=87833843641;
penyewa[25].nama="Haitsam";penyewa[25].alamat="Depok";penyewa[25].ket=3;
penyewa[25].NoId=3205050405910004;penyewa[25].NoTelp=85764413424;
penyewa[26].nama="Dena
";penyewa[26].alamat="Yogyakarta\b";penyewa[26].ket=6;
penyewa[26].NoId=3205052808900002;penyewa[26].NoTelp=85722745164;
penyewa[28].nama="Khaiza";penyewa[28].alamat="Bandung";penyewa[28].ket=3;
penyewa[28].NoId=3205052009900003;penyewa[28].NoTelp=82355401567;
penyewa[30].nama="Caca
";penyewa[30].alamat="Garut";penyewa[30].ket=2;
penyewa[30].NoId=3205050609950004;penyewa[30].NoTelp=82213849120;
penyewa[35].nama="Fauzan";penyewa[35].alamat="Garut";penyewa[35].ket=2;
penyewa[35].NoId=3205052211960004;penyewa[35].NoTelp=82333124769;
penyewa[36].nama="Dini
";penyewa[36].alamat="Pontianak";penyewa[36].ket=8;
penyewa[36].NoId=3205050709920002;penyewa[36].NoTelp=85647294723;
penyewa[37].nama="Gofar";penyewa[37].alamat="Serang";penyewa[37].ket=5;
penyewa[37].NoId=3203030611900004;penyewa[37].NoTelp=82185916400;
penyewa[39].nama="Lintang";penyewa[39].alamat="Bandung";penyewa[39].ket=2;
penyewa[39].NoId=3205053008890003;penyewa[39].NoTelp=82356277812;
}
void Kamar()
{
kamar[0].jenis=j[0];kamar[20].jenis=j[1];
kamar[1].jenis=j[0];kamar[21].jenis=j[2];
kamar[2].jenis=j[1];kamar[22].jenis=j[0];
kamar[3].jenis=j[2];kamar[23].jenis=j[1];
kamar[4].jenis=j[1];kamar[24].jenis=j[2];
kamar[5].jenis=j[0];kamar[25].jenis=j[1];
kamar[6].jenis=j[0];kamar[26].jenis=j[0];
kamar[7].jenis=j[1];kamar[27].jenis=j[1];
kamar[8].jenis=j[0];kamar[28].jenis=j[2];
kamar[9].jenis=j[2];kamar[29].jenis=j[2];
kamar[10].jenis=j[2];kamar[30].jenis=j[0];
kamar[11].jenis=j[2];kamar[31].jenis=j[2];
kamar[12].jenis=j[1];kamar[32].jenis=j[0];
kamar[13].jenis=j[0];kamar[33].jenis=j[2];
kamar[14].jenis=j[1];kamar[34].jenis=j[1];
kamar[15].jenis=j[2];kamar[35].jenis=j[2];
kamar[16].jenis=j[0];kamar[36].jenis=j[0];
kamar[17].jenis=j[1];kamar[37].jenis=j[0];
kamar[18].jenis=j[0];kamar[38].jenis=j[1];
kamar[19].jenis=j[2];kamar[39].jenis=j[1];
kamar[0].status=s[1];kamar[20].status=s[2];
kamar[1].status=s[0];kamar[21].status=s[1];
kamar[2].status=s[0];kamar[22].status=s[2];
kamar[3].status=s[2];kamar[23].status=s[1];
kamar[4].status=s[1];kamar[24].status=s[2];
kamar[5].status=s[2];kamar[25].status=s[1];
kamar[6].status=s[0];kamar[26].status=s[0];
kamar[7].status=s[2];kamar[27].status=s[2];
kamar[8].status=s[0];kamar[28].status=s[0];
kamar[9].status=s[2];kamar[29].status=s[2];
kamar[10].status=s[0];kamar[30].status=s[0];
kamar[11].status=s[1];kamar[31].status=s[2];
kamar[12].status=s[0];kamar[32].status=s[2];
kamar[13].status=s[2];kamar[33].status=s[2];
kamar[14].status=s[2];kamar[34].status=s[2];
kamar[15].status=s[0];kamar[35].status=s[0];
kamar[16].status=s[2];kamar[36].status=s[1];
kamar[17].status=s[0];kamar[37].status=s[0];
kamar[18].status=s[2];kamar[38].status=s[2];
kamar[19].status=s[1];kamar[39].status=s[0];
for(i=0;i<40;i++)
{
if(kamar[i].jenis==j[0])
{kamar[i].harga=175000;}
else if(kamar[i].jenis==j[1])
{kamar[i].harga=225000;}
else if(kamar[i].jenis==j[2])
{kamar[i].harga=300000;}
}
}
void roomservice()
{
RS[0].makan="Ikan Bakar ";RS[0].minum="Kopi Pagi ";
RS[1].makan="Nasi Kuning ";RS[1].minum="Kopi Sore ";
RS[2].makan="Nasi Goreng ";RS[2].minum="Tea
Time(Sore)";
RS[3].makan="Nasi Liwet ";RS[3].minum="Jus Jeruk ";
RS[4].makan="Nasi Remes ";RS[4].minum="Jus
Strawberry";
RS[5].makan="Sate Ayam ";RS[5].minum="Jus Mangga ";
RS[6].makan="Sate Kambing ";RS[6].minum="Jus Melon ";
RS[7].makan="Ayam Bakar ";RS[7].minum="Jus Apel ";
RS[8].makan="Lumpia\t ";RS[8].minum="Jus Sirsak ";
RS[9].makan="Seblak\t ";RS[9].minum="Jus Belimbing
";
RS[10].makan="Jagung Bakar ";RS[10].minum="Jus Pisang ";
RS[11].makan="Mie Kocok ";RS[11].minum="Teh Lemon ";
RS[12].makan="Rujak Buah ";RS[12].minum="Teh Tarik ";
RS[13].makan="Bubur
Ayam(Pagi)";RS[13].minum="Teh Apel ";
RS[14].makan="Pizza Sunda ";RS[14].minum="Teh
Strawberry";
RS[15].makan="Martabak Coklat
";RS[15].minum="Milk Shake
";
RS[16].makan="Martabak K.Hijau";RS[16].minum="Cappucino ";
RS[17].makan="Martabak Kacang
";RS[17].minum="Es Cincau
";
RS[18].makan="Martabak Telor ";RS[18].minum="Bandrek ";
RS[19].makan="Surabi\t ";RS[19].minum="Bajigur ";
}
void Penyewa()
{
int a=0, b=0, c=0;
bannerdatapenyewa();
printf("
-----------------------------------------------");
printf("-----------------------------------------------\n");
printf(" | Nama Penyewa\t| No.Identitas | Kamar | Jenis |");
printf("
Alamat\t| Telepon\t| Keterangan\t|\n");
printf("
|--------------|------------------|-------|--------|");
printf("-----------|---------------|---------------|\n");
Kamar();datapenyewa();
char *top;
for(i=0;i<40;i++)
{
if(kamar[i].status!=s[2])
{
printf(" | %s\t| %.0f |",
penyewa[i].nama,penyewa[i].NoId);
if(i>=0&&i<10){printf("
%d A |",101+i);}
else
if(i>=10&&i<20){printf(" %d B |",91+i);}
else
if(i>=20&&i<30){printf(" %d A |",181+i);}
else{printf(" %d B |",171+i);}
printf(" %s |
%s\t|",kamar[i].jenis,penyewa[i].alamat);
printf(" 0%.0f\t| %d
Malam\t|\n",penyewa[i].NoTelp,penyewa[i].ket);
if(kamar[i].jenis==j[0]) {a=a+1;}
else if(kamar[i].jenis==j[1]) {b=b+1;}
else if(kamar[i].jenis==j[2]) {c=c+1;}
}
if(penyewa[i].ket>10){top=penyewa[i].nama;}
}
printf("
-----------------------------------------------");
printf("-----------------------------------------------\n");
if((a>b)&&(b>c))printf("\n Kamar Favorit Penyewa\t: Single");
else if((a>c)&&(c>b))printf("\n Kamar Favorit Penyewa\t: Single");
else
if((b>c)&&(c>a))printf("\n
Kamar Favorit Penyewa\t: Double");
else
if((b>a)&&(a>c))printf("\n
Kamar Favorit Penyewa\t: Double");
else
if((c>a)&&(a>b))printf("\n
Kamar Favorit Penyewa\t: Suite");
else printf("\n Kamar Favorit Penyewa\t: Suite");
printf("\n Penyewa paling sering\t: %s",top);
}
void Datakamar()
{
int jmld=0, jmlk=0, jmlt=0;
clrscr();bannerdatakamar();
printf("
------------------------------------------------------\n");
printf(" | No\t| Kamar | Jenis |
Status\t|
Harga/Malam\t|\n");
printf("
|------|-------|--------|--------------|---------------|\n");
Kamar();
for(i=0;i<40;i++)
{
if(i>=0&&i<10){printf("
| %d\t| %d A |", i+1, 101+i);}
else if(i>=10&&i<20){printf("
| %d\t| %d B |", i+1, 91+i);}
else
if(i>=20&&i<30){printf(" |
%d\t| %d A |", i+1, 181+i);}
else{printf(" | %d\t| %d B |", i+1, 171+i);}
printf(" %s | %s\t|", kamar[i].jenis,
kamar[i].status);
printf("
Rp.%d,-\t|\n",kamar[i].harga);
if(kamar[i].status==s[1]) {jmld=jmld+1;}
else if(kamar[i].status==s[2]) {jmlk=jmlk+1;}
else if(kamar[i].status==s[0]) {jmlt=jmlt+1;}
}
printf("
------------------------------------------------------\n");
printf("\n Kamar Dibooking : %d", jmld);
printf("\n Kamar Kosong : %d", jmlk);
printf("\n Kamar Terisi : %d", jmlt);
}
void Transaksi()
{
bannertransaksi();unsigned long
total_bayar[40], total_transaksi=0;
printf("
----------------------------------------------\n");
printf(" | Nama Penyewa\t| Kamar |
Jenis | Total Bayar\t|\n");
printf("
|--------------|-------|--------|--------------|\n");
Kamar();datapenyewa();
for(i=0;i<40;i++)
{
if(kamar[i].status!=s[2])
{
total_bayar[i]=penyewa[i].ket*kamar[i].harga;
total_transaksi=total_transaksi+total_bayar[i];
printf(" | %s\t|",
penyewa[i].nama);
if(i>=0&&i<10){printf("
%d A |",101+i);}
else
if(i>=10&&i<20){printf(" %d B |",91+i);}
else
if(i>=20&&i<30){printf(" %d A |",181+i);}
else{printf(" %d B |",171+i);}
printf(" %s |",kamar[i].jenis);
printf("
Rp.%d\t|\n\r",total_bayar[i]);
}
}
printf("
|-------------------------------|--------------|\n");
printf(" |\t Total Teransaksi\t |
Rp.%d\t|\n",total_transaksi);
printf("
----------------------------------------------\n");
}
void RoomService()
{
bannerrs();roomservice();
printf("
-----------------------------------------------------------------------\n");
printf(" | No\t|
Makanan\t | Kode Pesan
| Minuman\t | Kode Pesan\t |\n");
printf("
|------|-----------------|--------------|---------------|---------------|\n");
for(i=0;i<20;i++)
{
printf(" | %d\t| %s|
%d Fd.S\t | %s| %d D.S\t
|\n",i+1,RS[i].makan,101+i,RS[i].minum,201+i);
}
printf("
|------------------------|--------------|-------------------------------|\n");
printf(" |\t\t\t | Fd.s 101-108 |\t @Rp.%.0f,-\t\t |\n", fds[0]);
printf(" |\t Harga\t
| Fd.s 109-120 |\t
@Rp.%.0f,-\t\t |\n", fds[1]);
printf(" |\t\t\t | D.s
201-220 |\t @Rp.%.0f,-\t\t
|\n", ds);
printf("
-----------------------------------------------------------------------\n");
printf("\n Makanan Terfavorit\t: %s",RS[14].makan);
printf("\n Minuman Terfavorit\t: %s",RS[2].minum);
}
void main()
{
do
{
clrscr();bannerhotel();
printf("\t\t\t\tMENU\n\n");
printf("\t\t\t 1. Data Kamar\n");
printf("\t\t\t 2. Data Penyewa\n");
printf("\t\t\t 3. Room Services\n");
printf("\t\t\t 4. Data Transaksi\n");
printf("\t\t\t 5. Selesai\n");
printf("\n\t\t Masukan Pilihan Anda :
");scanf("%d",&pilih);
switch (pilih)
{
case 1 :{clrscr();Datakamar();getch();break;}
case 2 :{clrscr();Penyewa();getch();break;}
case 3
:{clrscr();RoomService();getch();break;}
case 4 :{clrscr();Transaksi();getch();break;}
case 5 :{exit(p);break;}
default:{break;}
}}while(pilih!=5);
}
0 comments:
Post a Comment