You are on page 1of 6

NIM : 21119474

Nama : Yayah Mulyati


Kelas : A (Reguler)

Latihan 01

#include <iostream>
using namespace std;
int main(){
int data,tugas[5],Nim[5],uts[5],uas[5],rata[5];
char nama[50][40],grade[10];
cout<<"Jumlah Mahasiswa : "; cin>>data;
for(int i=0;i<data;i++){
cout<<"\tData ke - "<<i+1<<endl;
cout<<"Masukan Nama : "; cin>>nama[i];
cout<<"masukan Nim : "; cin>>Nim[i];
cout<<"Masukan Nilai Tugas : "; cin>>tugas[i];
cout<<"Masukan Nilai UTS : "; cin>>uts[i];
cout<<"Masukan Nilai UAS : "; cin>>uas[i];
cout<<endl;
rata[i]=(tugas[i]+uts[i]+uas[i])/3;
if(rata[i] >= 85){
grade[i] = 'A';
}else if(rata[i] >= 75){
grade[i] = 'B';
}else if(rata[i] >= 60){
grade [i]='C';
}else if(rata[i] >=50){
grade [i]= 'D';
}else if (rata[i] <=50){
grade [i]= 'E';
}
}

cout<<"Data Mahasiswa"<<endl;
cout<<endl;

for(int i=0;i<data;i++){
cout<<"\tData ke - "<<i+1<<endl;
cout<<"Nama Mahasiswa : "<<nama[i]<<endl;
cout<<"Nilai Tugas : "<<tugas[i]<<endl;
cout<<"Nilai UTS : "<<uts[i]<<endl;
cout<<"Nilai UAS : "<<uas[i]<<endl;
cout<<"Rata-Rata : "<<rata[i]<<endl;
cout<<"Grade : "<<grade[i]<<endl;
}
return 0 ;
}
 Rekap Nilai Terendah Mahasiswa

 Rekap Nilai Tertinggi Mahasiswa

Latihan 02
 Mengurutkan bilangan Ganjil (Ascending)
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int i,j,n;
int Arr[50];
int tmp;
cout << "\n ---------------------------------------------";
cout << "\n | >> Program Pengurutan Data << |";
cout << "\n | >> Secara Ascending ganjil << |";
cout << "\n ---------------------------------------------\n";

cout << "\n ==> Inputkan banyak data yg akan diurutkan: ";
cin >> n;
cout << "\n";
for(i=1; i<=n; i++)
{
cout<<"\tInputkan data ke-"<<i<<" = ";
cin>>Arr[i];
}

//Pengurutan secara Ascending (Bubble Sort)


for(i=1; i<=n; i++)
{
for(j=i; j<=n; j++)
{
if(Arr[i] > Arr[j])
{
tmp = Arr[j];
Arr[j] = Arr[i];
Arr[i] = tmp;
}
}
}
cout << "\n ---------------------------------------------\n";
cout << " ## Hasil Pengurutan data Secara Ascending ##\n";
cout << " ---------------------------------------------\n";
cout << "\n";

for(i=1;i<=n;i++)
{
cout<<"\tElement "<<i<<" = "<<Arr[i]<<endl;
}
cout << "\n Created By YAYAH MULYATO";
getch();
}
 Mengurutkan Bilangan genap (descending)
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int i,j,n;
int Arr[50];
int tmp;
cout << "\n ---------------------------------------------";
cout << "\n | >> Program Pengurutan Data << |";
cout << "\n | >> Secara Ascending ganjil << |";
cout << "\n ---------------------------------------------\n";

cout << "\n ==> Inputkan banyak data yg akan diurutkan: ";
cin >> n;
cout << "\n";
for(i=1; i<=n; i++)
{
cout<<"\tInputkan data ke-"<<i<<" = ";
cin>>Arr[i];
}

//Pengurutan secara Ascending (Bubble Sort)


for(i=1; i<=n; i++)
{
for(j=i; j<=n; j++)
{
if(Arr[i] > Arr[j])
{
tmp = Arr[j];
Arr[j] = Arr[i];
Arr[i] = tmp;
}
}
}
cout << "\n ---------------------------------------------\n";
cout << " ## Hasil Pengurutan data Secara Ascending ##\n";
cout << " ---------------------------------------------\n";
cout << "\n";

for(i=1;i<=n;i++)
{
cout<<"\tElement "<<i<<" = "<<Arr[i]<<endl;
}
cout << "\n Created By YAYAH MULYATO";
getch();
}

 Bubble sort
o Kelebihan
 Proses penghitungan Bubble sort merupakan metode yang paling
sederhana
 Algoritma Bubble Sort mudah dipahami
 Langkah atau tahapan dalam pengurutan data sangat sederhana.
Kekurangan
 Proses penghitungan Bubble Sort menggunakan metode
pengurutan termasuk paling tidak efisien walaupun dianggap
sederhana. Karena proses pengurutan data dilakukan dengan
tahapana satu - satu, mulai dari data paling awal sebelah kiri,
sampai data terakhir
 Ketika data yang kita punya banyak atau dalam jumlah yang
besar, maka proses penghitungan akan semakin lama dan lambat.
Karena proses pengurutan data secara tunggal (satu - satu).
 Jumlah pengulangan akan tetap sama sampai ke data yang
terakhir, walaupun sebagian data yang ada telah terurut.
 Quik sort
o Kelebihan
 Secara umum memiliki kompleksitas O(n log n).
 Algoritmanya sederhana dan mudah diterapkan pada berbagai
bahasa pemrograman dan arsitektur mesin secara efisien.
 Dalam prakteknya adalah yang tercepat dari berbagai algoritma
pengurutan dengan perbandingan, seperti mergesort dan heapsort.
 Melakukan proses langsung pada input (in-place) dengan sedikit
tambahan memori.
 Bekerja dengan baik pada berbagai jenis input data (seperti angka
dan karakter).
o Kekurangan
 Sedikit kesalahan dalam penulisan program membuatnya bekerja
tidak beraturan (hasilnya tidak benar atau tidak pernah selesai).
 Memiliki ketergantungan terhadap data yang dimasukkan, yang
dalam kasus terburuk memiliki kompleksitas O(n2).
 Secara umum bersifat tidak stable, yaitu mengubah urutan input
dalam hasil akhirnya (dalam hal inputnya bernilai sama).
 Pada penerapan secara rekursif (memanggil dirinya sendiri) bila
terjadi kasus terburuk dapat menghabiskan stack dan memacetkan
program.
 Pada bahasa pemrograman, quicksort ada dalam pustaka stdlib.h
untuk bahasa C, dan class TList dan TStringList dalam Delphi
(Object Pascal) maupun FreePascal.
 Marge sort
o Kelebihan
 Dibanding dengan algoritma lain, merge sort ini termasuk
algoritma yang sangat efisien dalam penggunaannya sebab setiap
list selalu dibagi bagi menjadi list yang lebih kecil, kemudian
digabungkan lagi sehingga tidak perlu melakukan banyak
perbandingan.
 Cocok untuk sorting akses datanya lambat misalnya tape drive
atau hard disk.
 Cocok untuk sorting data yang biasanya diakses secara
sequentially (berurutan),
 misalnya linked list, tape drive, dan hard disk.
o Kekurangan
 Kekurangan Merge Sort yaitu terlalu banyak menggunakan ruang
pada memori.
 Merge Sort membutuhkan lebih banyak ruang daripada jenis
sorting lainnya.

You might also like