Anda di halaman 1dari 15

YAYASAN SASMITA JAYA

UNIVERSITAS PAMULANG
(UNPAM)
SK MENDIKNAS No. 136/D/0/2001
Jl. Surya Kencana No.1 Pamulang Barat, Tangerang Selatan, Banten Telp. (021) 7412566 Fax. (021) 7412491

UJIAN AKHIR SEMESTER (UAS) GANJIL


TAHUN AKADEMIK 2020 – 2021
Nama : Eko Purwanto
NIM : 171011450272 Hari / Tanggal :
Semester / Kelas : 6 / 06TPLE004 Waktu : 3 Hari
Dosen : Rinna Rachmatika, M. Kom Jam Ke :
Sifat : ONLINE Shift : Reg. C

SOAL !
Lakukan proses Analisa (Leksikal, Sintaks dan Semantik) Apabila ada kesalahan silahkan di
jabarkan dan benarkan, lalu Proses Sintesa (execute) jika sudah tidak ada kesalahan
menggunakan bahasa pemrograman C++ dibawah ini, hasil di screenshoot didalam paper yang
ditugaskan.
#include<stdio.h> #include<iostream>
using namespace std; using namespace std:
void Luas(); void Luas(int a,int b)
void main(void) void main(void)
{ {
Luas();{ int panjang, lebar, Tinggi;
} cout<<Masukan panjang : ";
void Luas() cin>>panjang;
{ cout<<"Masukan lebar : ";
int panjang, lebar, Tinggi, HitungLuas; cin>>lebar;
cout<<"Masukan panjang : "; Luas(panjang.lebar);
cin<<panjang: }
cout<<"Masukan lebar : "; void Luas(int pnj,int lbr)
cin>>lebar; {
HitungLuas = panjang*lebar; int HitungLuas;
cout<<"Luas : "<<HitungLuas: HitungLuas = pnj*lbr;
cout<<endl; cout<<"Luas : "<<HitungLuas;
} cout<<endl; }
} }

#include<iostream> #include<iostream>
#include<conio.h> using namespace std;
using namespace std; void Tukar(int *, int *);
void hitung(int,int,int * ); void main(void)
main(void) {
{ int V, W,Y,Z;
int panjang,lebar,luas; cout<<"X = ";cin<<X;
cout<<"Panjang = ": cout<<"Y = ";cin<<Y:
cin>>panjang; if(X<=Y)
cout<<"Lebar = "; Tukar(X,&Y);
cin>>lebar;cout<<endl; W=X-Y;
hitung(panjang,lebar,&luas); cout<<"Setelah Ditukar"<<endl;
cout<<"Luas = "<<luas<<endl; cout<<"X = <<X&V<<endl;
} cout<<"Y = "<<Y<<endl;
{ cout<<Z<<endl;
void hitung(int A, int B, int luas) }
{ void Tukar(int *A, int *B)
*luas=A*B;} {
} int tmp;
tmp=*A;
*A=*B;
*B=tmp;
}
KELOMPOK 5

1. Eko Purwanto : 171011450272


2. Latif Sugiarto : 2016141828
3. Husen : 171011450567
4. Candra : 171011450565
5.M Fauzi Kurniawan : 171011450310

JAWABAN
No .1

ANALISA SINTAK

#include<stdio.h> ====================== delimiter_identifier


using namespace std; =================== delimiter_identifier
void Luas(); =========================== delimiter_keywords
void main(void) ======================= delimiter_keywords
{ =================================== delimiter_Punctuation

Luas();{ =========================== delimiter_keywords


} =================================== delimiter_Punctuation
void Luas() =========================== delimiter_keywords
{ =================================== delimiter_Punctuation

int panjang, lebar, Tinggi, HitungLuas;


cout<<"Masukan panjang : ";
cin<<panjang:
cout<<"Masukan lebar : ";
cin>>lebar;
HitungLuas = panjang*lebar;
cout<<"Luas : "<<HitungLuas:
cout<<endl;
} =================================== delimiter_Punctuation

} =================================== delimiter_Punctuation

Ket Lain :
Int & Cout : Keyword
Panjang, Luas, Lebar, Hitung Luas, masukan Panjang : Identifier
<< & >> : delimiter
Tanda * : operator

ANALISA LEKSIKAL

#include<stdio.h> ====================== Sudah Sesuai Aturan


using namespace std; =================== Sudah Sesuai Aturan
void Luas(); =========================== Tidak Sesuai aturan seharusnya berada di dalam program
void main(void) ======================= Tidak Sesuai Aturan karena untuk mengakhiri kalimat harus pakai
tanda ;
{ =================================== Sudah Sesuai Aturan

Luas(); ============================ Tidak Sesuai Aturan karena sudah di wakilkan dengan Luas
pada kolom di bawah

} =================================== Belum sesuai aturan (karena dibuka 1 ditutup juga 1) ini dapat
menyebabkan SINTAK ERROR
void Luas() =========================== Tidak Sesuai Aturan karena untuk mengakhiri kalimat harus pakai
tanda ;
{ ===================================
int panjang, lebar, Tinggi, HitungLuas; ======= Sudah Sesuai Aturan
cout<<"Masukan panjang : "; ======= Sudah Sesuai Aturan
cin<<panjang: ======= Belum Sesuai Aturan, karena untuk mengakhiri kalimat harus pakai tanda ; bukan :
cout<<"Masukan lebar : "; ======= Belum Sesuai Aturan, karena untuk mengakhiri kalimat harus pakai tanda ;
bukan :
cin>>lebar; ======= Sudah Sesuai Aturan
HitungLuas = panjang*lebar; ======= Sudah Sesuai Aturan
cout<<"Luas : "<<HitungLuas: == Belum Sesuai Aturan, karena untuk mengakhiri kalimat harus pakai tanda ;
bukan :
cout<<endl; ======= Sudah Sesuai Aturan
} =================================== Sudah Sesua Aturan

} =================================== sudah sesuai aturan

ANALISA SEMANTIK

#include<stdio.h> ====================== Sudah Sesuai Aturan SEMANTIK : BENAR


using namespace std; =================== Sudah Sesuai Aturan SEMANTIK : BENAR
void Luas(); =========================== Tidak Sesuai Aturan SEMANTIK : SALAH
void main(void) ======================= Sudah Sesuai Aturan SEMANTIK : SALAH karena untuk
mengakhiri kalimat harus pakai tanda ;

{ =================================== Sudah Sesuai Aturan SEMANTIK : BENAR

Luas(); ============================ TIdak sesua Aturan SEMANTIK : SAlAH


} =================================== Belum sesuai aturan SEMANTIK : SALAH (karena dibuka 1 ditutup
juga 1) ini dapat menyebabkan SINTAK ERROR

void Luas() =========================== Belum sesuai aturan SEMANTIK : SALAH karena untuk
mengakhiri kalimat harus pakai tanda ;

{ =================================== Sudah Sesuai Aturan SEMANTIK : BENAR

int panjang, lebar, Tinggi, HitungLuas; ======= Sudah Sesuai Aturan SEMANTIK : BENAR
cout<<"Masukan panjang : "; ======= Sudah Sesuai Aturan SEMANTIK : BENAR
cin<<panjang: ======= Belum Sesuai Aturan, SEMANTIK : SALAH karena untuk mengakhiri kalimat
harus pakai tanda ; bukan :
cout<<"Masukan lebar : "; ======= Sudah Sesuai Aturan SEMANTIK : BENAR
cin>>lebar; ======= Sudah Sesuai Aturan SEMANTIK : BENAR
HitungLuas = panjang*lebar; ======= Sudah Sesuai Aturan SEMANTIK : BENAR
cout<<"Luas : "<<HitungLuas: == Belum Sesuai Aturan, SEMANTIK : SALAH karena untuk mengakhiri
kalimat harus pakai tanda ; bukan :
cout<<endl; ======= Sudah Sesuai Aturan SEMANTIK : BENAR

} =================================== Sudah Sesua Aturan SEMANTIK : BENAR

} =================================== sudah sesuai aturan SEMANTIK : BENAR


HASIL :

SOURCE CODE YANG SUDAH DI PERBAIKI


ANALISA SINTAK
NO : 2

#include<iostream> ====================== delimiter_identifier

using namespace std> ====================== delimiter_identifier

void Luas(int a,int b) =========================== delimiter_keywords

void main(void) =========================== delimiter_keywords

{ =================================== delimiter_Punctuation

int panjang, lebar, Tinggi;


cout<<Masukan panjang : ";
cin>>panjang;
cout<<"Masukan lebar : ";
cin>>lebar;
Luas(panjang.lebar);

} =================================== delimiter_Punctuation

Int , Cout & Cin : Keyword


Panjang,Tinggi, Luas, Lebar, Hitung Luas, masukan Panjang : Identifier
<< >> : delimiter

void Luas(int pnj,int lbr) =========================== delimiter_keywords

{=================================== delimiter_Punctuation
int HitungLuas;
HitungLuas = pnj*lbr;
cout<<"Luas : "<<HitungLuas;
cout<<endl; }=================================== delimiter_Punctuation

Ket Lain :
Int & Cout : Keyword
Panjang, Luas, Lebar, Hitung Luas, masukan Panjang : Identifier
<< >> : delimiter
Tanda * : operator
}=================================== delimiter_Punctuation
ANALISA LEKSIKAL

#include<iostream>====================== Sudah Sesuai Aturan


using namespace std: > ====================== Tidak Sesuai Aturan harusnya mengakhiri kalimat
menggunakan tanda ; bukan :
void Luas(int a,int b) (); =========================== Tidak Sesuai aturan seharusnya berada di dalam
program
void main(void) ======================= Tidak Sesuai Aturan karena tanda () harusnya dikosongkan
{====================== Sudah Sesuai Aturan
int panjang, lebar, Tinggi; ====================== Sudah Sesuai Aturan
cout<<Masukan panjang : ";====================== Sudah Sesuai Aturan
cin>>panjang; ====================== Sudah Sesuai Aturan
cout<<"Masukan lebar : ";====================== Sudah Sesuai Aturan
cin>>lebar; ====================== Sudah Sesuai Aturan
Luas(panjang.lebar); =========================== Tidak Sesuai aturan seharusnya menggunakan tanda ,
Bukan tanda .
}====================== Tidak Sesuai Aturan seharusnya belum mengakhiri program
void Luas(int pnj,int lbr) ====== Tidak Sesuai aturan seharusnya ditambahkan tanda ;

{====================== Sudah Sesuai Aturan


int HitungLuas; ====== Sudah Sesuai Aturan
HitungLuas = pnj*lbr; ====== Sudah Sesuai Aturan
cout<<"Luas : "<<HitungLuas; ====== Sudah Sesuai Aturan
cout<<endl; ====== Sudah Sesuai Aturan
}====== Sudah Sesuai Aturan
}====== Sudah Sesuai Aturan

ANALISA SEMANTIK

#include<iostream>====================== Sudah Sesuai Aturan SEMANTIK : BENAR


using namespace std: > ====================== Tidak Sesuai Aturan, SEMANTIK : SALAH
harusnya mengakhiri kalimat menggunakan tanda ;
bukan :
void Luas(int a,int b) (); =========================== Tidak Sesuai aturan, SEMANTIK : SALAH
seharusnya berada di dalam program
void main(void) ======================= Tidak Sesuai Aturan, SEMANTIK SALAH
karena tanda () harusnya dikosongkan
{====================== Sudah Sesuai Aturan SEMANTIK : BENAR
int panjang, lebar, Tinggi; ====================== Sudah Sesuai Aturan SEMANTIK : BENAR
cout<<Masukan panjang : ";====================== Sudah Sesuai Aturan SEMANTIK : BENAR
cin>>panjang; ====================== Sudah Sesuai Aturan SEMANTIK : BENAR
cout<<"Masukan lebar : ";====================== Sudah Sesuai Aturan SEMANTIK : BENAR
cin>>lebar; ====================== Sudah Sesuai Aturan SEMANTIK : BENAR
Luas(panjang.lebar); =========================== Tidak Sesuai aturan , SEMANTIK : SALAH
seharusnya menggunakan tanda , Bukan tanda .
}====================== Tidak Sesuai Aturan, SEMANTIK : SALAH
seharusnya belum mengakhiri program
void Luas(int pnj,int lbr) ====== Tidak Sesuai , SEMANTIK : SALAH
seharusnya ditambahkan tanda ;

{====================== Sudah Sesuai Aturan SEMANTIK : BENAR


int HitungLuas; ====== Sudah Sesuai Aturan SEMANTIK : BENAR
HitungLuas = pnj*lbr; ====== Sudah Sesuai Aturan SEMANTIK : BENAR
cout<<"Luas : "<<HitungLuas; ====== Sudah Sesuai Aturan SEMANTIK : BENAR
cout<<endl; ====== Sudah Sesuai Aturan SEMANTIK : BENAR
}====== Sudah Sesuai Aturan SEMANTIK : BENAR
}====== Sudah Sesuai Aturan SEMANTIK : BENAR

HASIL :

SOURCE CODE YANG SUDAH DI PERBAIKI


No. 3

ANALISA SINTAK

#include<iostream> ======== delimiter_identifier


#include<conio.h> ======== delimiter_identifier
using namespace std; ======== delimiter_identifier
void hitung(int,int,int * ); ========delimiter_keywords
main(void) ========delimiter_keywords
{ ========delimiter_Punctuation
int panjang,lebar,luas;
cout<<"Panjang = ":
cin>>panjang;
cout<<"Lebar = ";
cin>>lebar;cout<<endl;
hitung(panjang,lebar,&luas);
cout<<"Luas = "<<luas<<endl;
} ======== delimiter_Punctuation
{ ======== delimiter_Punctuation
void hitung(int A, int B, int luas) ======== delimiter_keywords
{ ======== delimiter_Punctuation
*luas=A*B;} ======== delimiter_Punctuation
} ======== delimiter_Punctuation

Ket Lain :
Int & Cout : Keyword
Panjang, Luas, Lebar, Hitung Luas, masukan Panjang : Identifier
<< & >> : delimiter
Tanda * : operator
ANALISA LEKSIKAL

#include<iostream> ======== Sudah Sesuai Aturan


#include<conio.h> ======== Sudah Sesuai Aturan
using namespace std; ======== Sudah Sesuai Aturan
void hitung(int,int,int * ); ======== Tidak Sesuai aturan seharusnya
berada di dalam program
main(void) ======== Tidak Sesuai Aturan karena
untuk mengakhiri kalimat harus pakai tanda ;

{ ======== Sudah Sesuai Aturan


int panjang,lebar,luas; ======== Sudah Sesuai Aturan
cout<<"Panjang = ": ======== Tidak Sesuai Aturan karena untuk
mengakhiri kalimat harus pakai tanda ;
cin>>panjang; ======== Sudah Sesuai Aturan
cout<<"Lebar = "; ======== Sudah Sesuai Aturan
cin>>lebar;cout<<endl; ======== Sudah Sesuai Aturan
hitung(panjang,lebar,&luas);
cout<<"Luas = "<<luas<<endl; ======== Tidak Sesuai Aturan seharusnya
dimasukkan ke void hitung
} ======== Sudah Sesuai Aturan
{ ======== Belum sesuai aturan (karena
dibuka tutup sebulum program dapat menyebabkan
SINTAK ERROR
void hitung(int A, int B, int luas) ======== Sudah Sesuai Aturan
{ ======== Sudah Sesuai Aturan
*luas=A*B;} ======== Tidak sesuai aturan karena ada
tanda * dan } seharusnya tidak ada
} ======== Sudah Sesuai Aturan
ANALISA SEMANTIK

#include<iostream> ======== Sudah Sesuai Aturan


SEMANTIK : BENAR
#include<conio.h> ======== Sudah Sesuai Aturan
SEMANTIK : BENAR
using namespace std; ======== Sudah Sesuai Aturan
SEMANTIK : BENAR
void hitung(int,int,int * ); ======== Tidak Sesuai aturan seharusnya
INT diberi nama SEMANTIK : SALAH
main(void) ======== Sudah Sesuai Aturan
SEMANTIK : BENAR

{ ======== Sudah Sesuai Aturan


SEMANTIK : BENAR
int panjang,lebar,luas; ======== Sudah Sesuai Aturan
SEMANTIK : BENAR
cout<<"Panjang = ": ======== Tidak Sesuai Aturan karena
untuk mengakhiri kalimat harus pakai tanda ;
SEMANTIK : SALAH
cin>>panjang; ======== Sudah Sesuai Aturan
SEMANTIK : BENAR
cout<<"Lebar = "; ======== Sudah Sesuai Aturan
SEMANTIK : BENAR
cin>>lebar;cout<<endl; ======== Sudah Sesuai Aturan
SEMANTIK : BENAR
hitung(panjang,lebar,&luas); ======== Sudah Sesuai Aturan
SEMANTIK : BENAR
cout<<"Luas = "<<luas<<endl; ======== Tidak Sesuai Aturan
seharusnya dimasukkan ke void hitung SEMANTIK : SALAH
} ======== Sudah Sesuai Aturan
{ ======= Belum sesuai aturan (karena
dibuka tutup sebelum program dapat
menyebabkan SINTAK ERROR SEMANTIK :
SALAH

void hitung(int A, int B, int luas) ======== Sudah Sesuai Aturan


SEMANTIK : BENAR
{ ======== Sudah Sesuai Aturan
SEMANTIK : BENAR
*luas=A*B;} ======== Tidak sesuai aturan karena ada
tanda * dan } seharusnya tidak ada SEMANTIK
: SALAH
} ======== Sudah Sesuai Aturan

HASIL :

SOURCE CODE YANG SUDAH DI PERBAIKI


NO. 4
ANALISA SINTAK

void main(vo

cout<<"X = ";
cin<<X;
cout<<"Y = ";
cin<<Y:
if(X<=Y)
Tukar(X,&Y);
W=X-Y;
cout<<"Setelah Ditukar"<<endl;
cout<<"X = <<X&V<<endl;
cout<<"Y = "<<Y<<endl;
cout<<Z<<endl;

void Tukar(int *A, int *B)

int tmp
tmp=*A;
*A=*B;
*B=tmp;

ANALISA SINTAK & SEMANTIK

#include<iostream> =================== sintaks sesuai,semantik


benar
using namespace std; =================== sintaks sesuai,semantik
benar
void Tukar(int *, int *); =================== sintaks tidak sesuai
,semantik salah
void main(void) =================== sintaks tidak sesuai
,semantik salah
{ =================== sintaks sesuai,semantik
benar
int V, W,Y,Z; =================== sintaks tidak sesuai
,semantik salah
cout<<"X = ";cin<<X; =================== sintaks tidak sesuai
,semantik salah
cout<<"Y = ";cin<<Y: =================== sintaks tidak sesuai
,semantik salah
if(X<=Y) =================== sintaks tidak sesuai
,semantik salah
Tukar(X,&Y); =================== sintaks tidak sesuai
,semantik salah
W=X-Y; =================== sintaks sesuai,semantik
benar
cout<<"Setelah Ditukar"<<endl; =================== sintaks sesuai,semantik
benar
cout<<"X = <<X&V<<endl; =================== sintaks tidak sesuai
,semantik salah
cout<<"Y = "<<Y<<endl; =================== sintaks sesuai,semantik
benar
cout<<Z<<endl; =================== sintaks tidak sesuai
,semantik salah
} =================== sintaks tidak sesuai
,semantik salah
void Tukar(int *A, int *B) =================== sintaks sesuai,semantik
benar
{ =================== sintaks sesuai,semantik
benar
int tmp; =================== sintaks sesuai,semantik
benar
tmp=*A; =================== sintaks sesuai,semantik
benar
*A=*B; =================== sintaks sesuai,semantik
benar
*B=tmp; =================== sintaks sesuai,semantik
benar
} =================== sintaks

HASIL.
SOURCE CODE YANG SUDAH DI PERBAIKI

Anda mungkin juga menyukai