Anda di halaman 1dari 12

SOAL 

UJIAN TENGAH SEMESTER


Petunjuk: 
- Silakan diunggah dalam bentuk file pdf

1. Buat algoritma, flowchart dan kode program C++ untuk menampilkan:


a. 10 bilangan ganjil pertama
b. 10 bilangan genap pertama
c. 10 bilangan prima pertama

2. Buat algoritma, flowchart dan kode program C++ untuk membaca Indeks Prestasi (IP)
semester seorang mahasiswa, berdasarkan nilai Angka dan Nilai huruf dari Nilai Akhir per
mata kuliah dengan total SKS adalah 24 SKS. Dengan ketentuan sebagai berikut:
Nilai Angka Nilai Huruf Indeks/bobot
80-100 A 4
75-79.99 B+ 3.5
 70-74.55 B  3 
 65-69.99 C+  2.5 
 60-64.99 C   2
 55-59.99  D+  1.5
 50-54.99  D  1
 <50  E  0

Ilustrasi:
Si Upin pada semester ini mengontrak MK (KRS) sebanyak 8 SKS (3 MK) dengan rincian
Mata Kuliah A  (3 SKS) mendapatkan nilai 80, maka nilai Hurufnya adalah A dan nilai bobot
MK = Indeks * SKS = 4 * 3 = 12
Mata Kuliah B  (3 SKS) mendapatkan nilai 75, maka nilai Hurufnya adalah B+ dan nilai
bobot MK = Indeks * SKS = 3.5 * 3 = 10.5
Mata Kuliah C  (2 SKS) mendapatkan nilai 70, maka nilai Hurufnya adalah B dan nilai bobot
MK = Indeks * SKS = 3 * 3 = 9

maka perhitungan IP = nilai total bobot MK/total SKS = (12+10.5+9)/10 = 31.5/10 = 3.15
3. Diketahui di sebuah taman kanak kanak diadakan lomba menyanyi. jika diurutkan
berdasarkan nomor urut pendaftaran, umur masing-masing 10 peserta pertama dalam bulan
adalah: 63,76,58,72,65,67,59,71,63,75
dengan mengunakan algoritma selection sort, tuliskan algoritma dan kode program C++
untuk mengurutkan data tersebut dan mencari anak usia termuda dan tertua.
JAWABAN

1.A Buat algoritma, flowchart dan kode program C++ untuk menampilkan 10 bilangan ganjil
pertama
a. Algoritma.
1. Diketahui bilangan prima dimulai dari bilangan 2
2. Mulai
3. n adalah jumlah data
4. Input/Baca jumlah data bilangan prima
5. pengecekan bilangan
6. Tampilkan bilangan prima
7. Selesai.
b. Flowchart
#include<iostream>
using namespace std;
int main(){

cout <<"========================================\n";
cout << "\PEMROGRAMAN DAN APLIKASI KOMPUTER\n";
cout << "\MENENTUKAN BILANGAN \n";
cout << "========================================\n";
//inputkkan jumlah data prima
int i=0, cek, bil=2,n;
cout<<"Masukan jumlah bilangan prima : ";cin>>n;
while(i<n){
cek=0;
for(int j=2;j<=bil;j++){
if(bil%j==0){
cek++;
}
}
if(cek == 1){
cout<<bil;
if(i < n-1){
cout<<", ";
}else {
cout<<'.';
}
i++;
}
bil++;
}
}
B.

2. Buat algoritma, flowchart dan kode program C++ untuk membaca Indeks Prestasi (IP)
semester
a algoritma
1. Diketahui Jumlah SKS dan Tabel Indeks nilai, dan
Predikat
2. Mulai
3. indeks adalah bobot nilai
4. SKS adalah satuan kredit semester
5. MK adalah mata kuliah
6. Input/baca MK, SKS, indeks nilai
7. Hitung nilai MK = indeks x SKS
8. Hitung IP = total nilai MK x total SKS
9. penentuan Predikat
6. Tampilkan IP dan Predikat
7. Selesai.
b. Flowchart

c. kode program
//kode program C++ untuk membaca Indeks Prestasi (IP) semester
#include <iostream>
using namespace std;
typedef struct
{
int nim;
char matkul[50];
float ip, Indeksnilai, sks;
} data;
typedef data ip[101];
int main()
{
ip daftar;
int banyak;
char lagi;
cout <<"========================================\n";
cout << "\tUNIVERSITAS JAMBI\n";
cout << "\World Class Enterpreunership University\n";
cout << "\========================================\n";

do {
cout<<"=APLIKASI IPS/IPK="<<endl<<endl;
cout<<"+-----------------------+"<<endl;
cout<<"| Indeks Nilai |"<<endl;
cout<<"+-----------------------+"<<endl;
cout<<"| 80-100 A :4 |"<<endl;
cout<<"| 75-79.99 B+ : 3.5 |"<<endl;
cout<<"| 70-74.55 B : 3 |"<<endl;
cout<<"| 65-69.99 C+ : 2.5 |"<<endl;
cout<<"| 60-64.99 C : 2 |"<<endl;
cout<<"| 55-59.99 D+ : 1.5 |"<<endl;
cout<<"| 50-54.99 D : 1 |"<<endl;
cout<<"| 0-50 E :0 |"<<endl;
cout<<"+-----------------------+"<<endl;
//inputkan jumlah mata kuliah
cout<<endl<<"Banyak Matakuliah : ";
cin>>banyak;
cout<<endl;
float total, sksIndeksnilai, totalsks, ips;
total=0;
totalsks=0;
for (int i=1;i<=banyak;i++)
{
//inputkan nilai SKS dan Indeksnilai
cout<<"Matakuliah ke "<<i<<endl;
cout<<"SKS : ";
cin>>daftar[i].sks;
cout<<"Indeksnilai : ";
cin>>daftar[i].Indeksnilai;
sksIndeksnilai=daftar[i].sks*daftar[i].Indeksnilai;
total=total+sksIndeksnilai;
totalsks=totalsks+daftar[i].sks;
cout<<endl;
}
//konversi nilai IP dan predikat
ips=total/totalsks;
cout<<endl<<"Total SKS : "<<totalsks<<endl;
cout<<"IP Semester : "<<ips<<endl;
cout<<"\n Predikat Indeks Prestasi : ";
if(ips>=0 & ips<=1.5)
cout<<"KURANG MEMUASKAN";
else if(ips>=1.5 & ips<=2.75)
cout<<"CUKUP"<<endl;
else if(ips>=2.75 & ips<=3.5)
cout<<"MEMUASKAN"<<endl;
else if(ips>=3.5 & ips<=4)
cout<<"CUMLAUDE"<<endl;

cout<<"Lagi ? [y/n] : ";


cin>>lagi;
}while (lagi!='n');
return 0;
}
3. algoritma dan kode program C++ untuk mengurutkan data tersebut dan mencari anak usia
termuda dan tertua.
A Pengurutan umur
a. Algoritma

b. Kode program
#include<iostream>
using namespace std;

int main() {
int n, s, A[100];
cout <<"========================================\n";
cout << "\tTK BINA KASIH\n";
cout << "\PENDATAAN UMUR PESERTA LOMBA MENYANYI\n";
cout << "========================================\n";
//mendeklerasikan integer
//menginput jumlah data
cout << "Masukkan jumlah data: ";
cin >> n;
//menginput data satu per satu
for (int i = 0; i < n; i++) {
cout << "Data ke-" << i + 1 << " = " ;
cin >> A[i];
cout << endl;
}
//menampilkan data sebelum diurutkan
cout<<"Data sebelum diurutkan :"<<endl;
for (int i = 0; i < n; i++) {
cout << "Data ke-" << i + 1 << " = "<<A[i]<<endl;
}
//mengurutkan data
for (int i = 0; i < n-1; i++) {
s = i;
int temp;
for(int j = i+1; j < n; j++){
if(A[j] < A[s]){
s = j;
}
}
temp = A[s];
A[s] = A[i];
A[i] = temp;
}
//menampilkan data setelah diurutkan
cout<<" Setelah diurutkan : "<<endl;
for(int i = 0; i < n; i++){
cout <<"Data ke- "<<i+1<<" = "<<A[i]<<endl;
}
cin.get();
return 0;
}
B. Penentuan Umur termuda, tertua dan rata rata umur
a. algoritma

c.Kode program
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
int banyak[100],n;
float nilai[100],jumlah=0,max,min,med;
cout <<"========================================\n";
cout << "\tTK BINA KASIH\n";
cout << "\PENDATAAN UMUR PESERTA LOMBA MENYANYI\n";
cout << "========================================\n";
cout<<"Menentukan umur termuda, tertua dan rata rata umur"<<endl;
cout<<"Masukan jumlah data = ";
cin>>n;
for(int i=0;i<n;i++){
cout<<"Masukan umur ke "<<i<<" = ";
cin>>nilai[i];
}
for(int i=0;i<n;i++){
if(nilai[i]>max){
max=nilai[i];
}
}
cout<<"Umur tertua = "<<max;
cout<<endl;
min=nilai[0];
for(int i=0;i<n;i++)
{
if(nilai[i]<min)
{
min=nilai[i];
}
}
cout<<"umur termuda = "<<min;
cout<<endl;
if(n%2==0){
med=(nilai[(n/2)]+nilai[(n/2)-1])/2;
}
else{
med=nilai[(n/2)];
}
cout<<"rata rata umur = "<<med;
return 0;
}

Anda mungkin juga menyukai