Anda di halaman 1dari 17

LAPORAN UNIT

PRAKTIKUM DASAR PEMROGRAMAN


TKE 191123

Nama : Ahmad Irfan Musyaffa


NIM : H1A020018
Unit Praktikum : VII

Hari / Tanggal Pelaksanaan : Senin / 30 November 2020


Jam Pelaksanaan : 09:30 – 13:00

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN


UNIVERSITAS JENDERAL SOEDIRMAN
FAKULTAS TEKNIK
JURUSAN/PROGRAM STUDI TEKNIK ELEKTRO
PURBALINGGA
2020
UNIT VII
SUPPLEMEN
VII.1 Notasi Algoritma
VII.1.1 gerbong.c
JUDUL : gerbong.c
{Program untuk membuat denah tempat duduk suatu gerbong kereta beserta status kursinya
sudah terisi atau tidaknya, dan user dapat menentukan kursi mana yang kosong dan kursi
mana yang sudah ada isinya}
KAMUS GLOBAL :
type InfoKursi :
< nokursi : Integer,
statuskursi : Integer >
type Gbg :
< Kursi : array [0 . . 3] of array [0 . . 9] of InfoKursi>
Gerbong : array [0 . . 9] of Gbg
KAMUS :
g : Integer

JUDUL :
procedure buatkursi()
{Prosedur yang berfungsi untuk menginisialisasi nomor kursi}
KAMUS LOKAL :
gb, kolom, baris : Integer

ALGORITMA :
gb  0
while (gb < 10) do
kolom  0
while (kolom < 10) do
baris  0
while (baris < 4) do
Gerbonggb.Kursibaris, kolom.nokursi  4 * kolom + (baris+1)
Gerbonggb.Kursibaris, kolom.statuskursi  0
kolom  kolom + 1
gb  gb + 1
JUDUL :
Procedure cetaknomor (gb : Integer)
{Prosedur akan mencetak denah kursi yang ada di gerbong berdasarkan urutan nomor kursi}
KAMUS LOKAL :
baris, kolom : Integer

ALGORITMA :
baris  0
kolom  0
OUTPUT(`Nomor kursi===========`)
while (baris < 4) do
while (kolom < 10) do
OUTPUT(Gerbonggb.Kursibaris, kolom.nokursi)
kolom  kolom + 1
OUTPUT(`\n`)
baris  baris + 1
JUDUL :
procedure cetakstatuskursi(gb : Integer)
{Prosedur akan mencetak status setiap kursi, dilambangkan dengan angka 1 bila sudah terisi
dan angka 0 bila masih kosong}
KAMUS LOKAL :
baris, kolom : Integer

ALGORITMA :
baris  0
kolom  0
OUTPUT(`Status kursi [0=kosong, 1=isi] `)
OUTPUT(`================================== `)
while (baris < 4) do
while (kolom < 10) do
OUTPUT(Gerbonggb.Kursibaris, kolom.statuskursi)
OUTPUT(`\n`)
baris  baris + 1
JUDUL :
procedure setstatuskursi(gb : Integer)
{Prosedur akan meminta user untuk menentukan status kursi sudah terisi atau tetap kosong
dengan menginputkan nilai 1 untuk terisi, dan nilai 0 untuk kosong}
KAMUS LOKAL :
kolom, baris : Integer

ALGORITMA :
while (kolom < 10) do
while (baris < 4) do
OUTPUT(`No. Kursi : , status = `)
OUTPUT(Gerbonggb.Kursibaris, kolom.nokursi)
ulang :
INPUT(Gerbonggb.Kursibaris, kolom.statuskursi)
if (Gerbonggb.Kursibaris, kolom.statuskursi > 1 || Gerbonggb.Kursibaris,
kolom.statuskursi < 0) then
OUTPUT(`Masukkan hanya 1 atau 0, ulangi lagi`)
goto ulang
baris  baris + 1
kolom  kolom + 1
ALGORITMA :
buatkursi()
OUTPUT(`Jumlah gerbong dalam kereta adalah 10`)
OUTPUT(`Gerbong ke berapa yang ingin anda ketahui informasinya : `)
INPUT(g)
OUTPUT(`Informasi pada gerbong ke- : `)
OUTPUT(g)
cetaknomor(g)
cetakstatuskursi(g)
setstatuskursi(g)
cetakstatuskursi(g)
VII.1.2 layar.c
JUDUL : layar.c
{Program untuk menampilkan posisi kursor pada sumbu x dan y}
KAMUS :
*kalimat : Character
baris, kolom : Integer
ALGORITMA :
*kalimat  `TEKNIK ELEKTRO`
textcolor(7)
textbackground(3)
gotoxy(10, 6)
baris  wherey()
kolom  wherex()
OUTPUT (kalimat)
OUTPUT (`Posisi Kursor Pada Posisi Kolom Pada `)
OUTPUT (baris, kolom)
gets(0)
VII.2 Source Code
VII.2.1 gerbong.c
#include <stdio.h> //standar library input output C
#include <stdlib.h> //standar library fungsi utilitas C
#include <conio.h> //standar library fungsi control C

/*Mendifinisikan tipe data baru InfoKursi*/


typedef struct{
/*Elemen variabel InfoKursi*/
int nokursi;
int statuskursi;
}InfoKursi;

/*Mendifinisikan tipe data baru Gbg*/


typedef struct{
InfoKursi Kursi[4][10];
}Gbg;

/*Kamus Global*/
Gbg Gerbong[10];

/*Prosedur untuk inisialisasi nomor kursi*/


void buatkursi(){
/*Kamus Lokal*/
int gb, kolom, baris;

gb = 0;
//meng-assign nilai variabel gb menjadi 0

//perulangan untuk mengakses dan membentuk setiap elemen


kursi
while(gb < 10){
kolom = 0;
//meng-assign nilai variabel kolom menjadi 0
while(kolom < 10){
baris = 0;
//meng-assign nilai variabel baris menjadi 0
while(baris < 4){
Gerbong[gb].Kursi[baris][kolom].nokursi = 4 *
(kolom) + (baris+1);
//membuat urutan nomor kursi
Gerbong[gb].Kursi[baris][kolom].statuskursi =
0;
//membuat status setiap nomor kursi = 0
baris++;
//meng-assign nilai variabel baris menjadi
baris + 1
}
kolom++;
//meng-assign nilai variabel kolom menjadi kolom
+ 1
}
gb++;
//meng-assign nilai variabel gb menjadi gb + 1
}
}

/*Prosedur untuk mencetak nomor kursi*/


void cetaknomor(int gb){
/*Kamus Lokal*/
int baris = 0;
int kolom = 0;

printf("\nNomor kursi\n===========\n");
//output tulisan dalam tanda petik ("") pada layar

//perulangan untuk mengakses setiap nomor kursi


while(baris < 4){
while(kolom < 10){
printf("%2d ",
Gerbong[gb].Kursi[baris][kolom].nokursi);
//mencetak urutan nomor kursi pada layar
kolom++;
//meng-assign nilai variabel kolom menjadi kolom
+ 1

}
printf("\n");
//membuat baris baru
baris++;
//meng-assign nilai variabel baris menjadi baris + 1
}
}

/*Prosedur untuk mencetak status kursi*/


void cetakstatuskursi(int gb){
/*Kamus Lokal*/
int baris = 0;
int kolom = 0;

printf("\nStatus kursi [0=kosong, 1=isi]\n");


//output tulisan dalam tanda petik ("") pada layar
printf("==================================\n");
//output tulisan dalam tanda petik ("") pada layar

//perulangan untuk mengakses setiap nomor kursi


while(baris < 4){
while(kolom < 10){
printf("%2d ",
Gerbong[gb].Kursi[baris][kolom].statuskursi);
//mencetak status setiap nomor kursi pada layar
kolom++;
//meng-assign nilai variabel kolom menjadi kolom
+ 1
}
printf("\n");
//membuat baris baru
baris++;
//meng-assign nilai variabel baris menjadi baris + 1
}
}

/*Prosedur Set Status Kursi*/


/*1 = isi, 0 = kosong*/
void setstatuskursi(int gb){
/*Kamus Lokal*/
int kolom = 0;
int baris = 0;

//perulangan untuk mengakses setiap nomor kursi


while(kolom < 10){
while(baris < 4){
printf("No. Kursi : %2d, status = ",
Gerbong[gb].Kursi[baris][kolom].nokursi);
//output tulisan dalam tanda petik ("") pada
layar
ulang:
scanf("%d",
&Gerbong[gb].Kursi[baris][kolom].statuskursi);
//meminta input user untuk menentukan status
kursi
if(Gerbong[gb].Kursi[baris][kolom].statuskursi >
1 || Gerbong[gb].Kursi[baris][kolom].statuskursi < 0){
printf("Masukkan hanya 1 atau 0, ulangi
lagi\n");
//output tulisan dalam tanda petik ("") pada
layar
goto ulang;
//mengulang beberapa baris kode sebelumnya
}
baris++;
//meng-assign nilai variabel baris menjadi baris
+ 1
}
kolom++;
//meng-assign nilai variabel kolom menjadi kolom + 1
}
}

/*Prototype*/
void buatkursi();
void cetaknomor(int gb);
void cetakstatuskursi(int gb);
void setstatuskursi(int gb);

/*Program Utama*/
int main(){
/*Kamus Lokal*/
int g;

buatkursi();
//memanggil fungsi buat kursi
printf("Jumlah gerbong dalam kereta adalah 10\n\n");
//output tulisan dalam tanda petik ("") pada layar
printf("Gerbong ke berapa yang ingin anda ketahui
informasinya : ");
//output tulisan dalam tanda petik ("") pada layar
scanf("%d", &g);
//input user untuk variabel g
printf("\nInformasi pada gerbong ke-%d :\n", g);
//output tulisan dalam tanda petik ("") pada layar
cetaknomor(g);
//memanggil fungsi cetaknomor dengan variabel g sebagai
parameternya
cetakstatuskursi(g);
//memanggil fungsi cetakstatuskursi dengan variabel g
sebagai parameternya

setstatuskursi(g);
//memanggil fungsi setstatuskursi dengan variabel g
sebagai parameternya

cetakstatuskursi(g);
//memanggil fungsi cetakstatuskursi dengan variabel g
sebagai parameternya

system("pause"); //menunggu input key dari user


}
VII.2.2 layar.c

#include <stdio.h> //standar library input output C


#include <conio.h> //standar library fungsi control C

int main(){ //fungsi utama program


/*Kamus Lokal*/
char *kalimat = "TEKNIK ELEKTRO";
int baris, kolom;

textcolor(7);
//menentukan warna teks menjadi indeks nomor 7
textbackground(3);
//menentukan warna latar belakang teks menjadi indeks
nomor 3

gotoxy(10, 6);
//menentukan titik koordinat x=10 dan y=6

baris = wherey();
//meng-assign nilai variabel baris menjadi fungsi
wherey()
kolom = wherex();
//meng-assign nilai variabel kolom menjadi fungsi
wherex()

cputs(kalimat);
//mencetak nilai dari variabel kalimat pada layar
cprintf(" Posisi Kursor Pada %d Posisi Kolom Pada %d",
baris, kolom);
//output tulisan dalam tanda petik ("") pada layar

return 0; //mengakhiri fungsi utama program


}
VII.3 Pembahasan
VII.3.1 gerbong.c

Gambar 7.1 Output program gerbong.exe


Gambar 7.2 Output lanjutan program gerbong.exe
VII.3.2 layar.c

Gambar 7.3 Output program layar.exe


VII.3 Kesimpulan
1. Fungsi-fungsi supplemen digunakan untuk mengubah tampilan output pada console
2. Untuk menggunakan fungsi supplemen kita harus memasukkan file header conio.h ke
dalam program
3. Fungsi textcolor() berfungsi untuk mengubah warna teks, textbackground() berfungsi
mengubah warna latar belakang teks, dan fungsi cprintf() berfungsi untuk mencetak teks pada
console
4. Fungsi textcolor(), textbackground(), dan cprintf() tidak didukung lagi dalam compiler
bahasa C terbaru seperti Code::Blocks dan Dev C++. Maka dari itu kita dapat menggunakan
compiler yang masih mendukung fungsi tersebut seperti Turbo C.

Note:
- Tulisan array of ikut diwarna biru
Lampiran

Anda mungkin juga menyukai