Anda di halaman 1dari 6

ALGORITMA DAN PEMROGRAMAN

Ujian tengah semester

Dosen Pengampu: Hamidillah Ajie, S.Si., MT.

Disusun oleh :
Nathanael Paskal
1512622051

PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER


FAKULTAS TEKNIK
UNIVERSITAS NEGERI JAKARTA

1. Deskripsi masalah
Pada masalah ini mahasiswa diminta untuk mengolah data nilai dengan method, dimana data ini terdiri
atas Nama mahasiswa, No registrasi, Nilai berbentuk angka dan huruf serta status kelulusan.

2. kode program

/*
Nama : Nathanael paskal
NIM/ No reg : 1512622051
program ini adalah program pengolahan nilai untuk Mahasiswa
waktu penyelesaian : 6 jam
*/
package com.belajar_java;
import java.util.Random;
import java.util.HashSet;
import java.util.Set;

public class UTS_Alpro_1512622051 {


public static void main(String[] args) {
// // TODO code application logic here
DataNilaiKelas dataKelas = new DataNilaiKelas(); // dataKelas akan
memiliki 40 elemen data
dataKelas.inisialisasiDataAwal(40);
dataKelas.cetak();

class DataNilai{//kelas penyimpanan data siswa


String namaMhs;
String NoReg;
int nilaiAngka;
String nilaiHuruf;
String kelulusan;
}

class DataNilaiKelas{

String NamaMatkul = "Algoritma pemograman";


int jumlahMahasiswa;
public DataNilai[] dtNilai;

void inisialisasiDataAwal(int jumlahMhs){


jumlahMahasiswa = jumlahMhs;
dtNilai=new DataNilai[jumlahMahasiswa];
for(int i=0;i<dtNilai.length;i++){
dtNilai[i]=new DataNilai();//instansiasi elemen-elemen array
dataNilai
}
for(int i=0;i<dtNilai.length;i++){
dtNilai[i].namaMhs=this.generateNamaRandom();
dtNilai[i].NoReg=this.generateNoreg();
dtNilai[i].nilaiAngka=this.generateNilai();
dtNilai[i].nilaiHuruf=this.konversiNilai();
dtNilai[i].kelulusan=this.konversiKelulusan();
}
}

String generateNamaRandom(){
String namaRandom = " ";
String[] vowels = {"a", "e", "i", "o","u"};
String[] consonants = {"b", "c", "d", "f", "g", "h","j", "k", "l",
"m","n", "p", "q", "r","s", "t", "v", "w","x", "y", "z"};
Random rand = new Random();
int numberofwords = rand.nextInt(3) + 1;
for (int i = 0; i < numberofwords; i++) {
int numberofletters = rand.nextInt(5) + 3;
String word = "";
for (int j = 0; j < numberofletters; j++) {
if (j % 2 == 0) {
word += vowels[rand.nextInt(vowels.length)];
} else {
word += consonants[rand.nextInt(consonants.length)];
}
}
namaRandom += word + " ";
}
return namaRandom;
}
String generateNoreg(){
String noReg="";
Set<Integer> usedNumbers = new HashSet<>();
Random random = new Random();
int number;
do {
number = random.nextInt(100) + 1512622000;
} while (usedNumbers.contains(number));
usedNumbers.add(number);

noReg += number + " ";

return noReg;

int generateNilai(){

Random rand = new Random();

int prosentase = rand.nextInt(100)+1;


if (prosentase<=5) return 0;
if (prosentase<=20) return 1 + rand.nextInt(65);
return 65 + rand.nextInt(35)+1;
}
String konversiNilai(){
String NilaiHuruf=" ";
int nilai = generateNilai();
if (nilai >= 86) {
NilaiHuruf = "A+";
} else if (nilai >= 81) {
NilaiHuruf = "A-";
} else if (nilai >= 76) {
NilaiHuruf = "B+";
} else if (nilai >= 71) {
NilaiHuruf = "B";
} else if (nilai >= 66) {
NilaiHuruf = "B-";
} else if (nilai >= 61 ) {
NilaiHuruf = "C+";
} else if (nilai >= 56 ) {
NilaiHuruf = "C";
} else if (nilai >= 51 ) {
NilaiHuruf = "C-";
} else NilaiHuruf = "E";

return NilaiHuruf;
}

String konversiKelulusan(){
String status = " ";
Random rand = new Random();
String[] statusLulus = {"lulus", "Tidak lulus"};
String statusKelulusan =
statusLulus[rand.nextInt(statusLulus.length)];
int nilai = generateNilai();
if (nilai <= 56) {
statusKelulusan = "Tidak lulus";
} else statusKelulusan = "lulus";

status += statusKelulusan + " ";

return status;
}

void cetak(){
for(int i = 1;i<=dtNilai.length;i++){
System.out.printf( i+ ". " +
dtNilai[i-1].namaMhs+"\t"+
dtNilai[i-1].NoReg+"\t"+
dtNilai[i-1].nilaiAngka+"\t"+
dtNilai[i-1].nilaiHuruf+"\t"+
dtNilai[i-1].kelulusan+"\n");
}
}

}
3. screenshot hasil running
4. screenshot video penjelasan

Anda mungkin juga menyukai