Anda di halaman 1dari 23

TUGAS 13

ALGORITMA PEMROGRAMAN
202210760001

DOSEN PENGAMPU:
Drs. Denny Kurniadi, M.Kom

OLEH:
Rizky Annisa
22076018

PENDIDIKAN TEKNIK INFORMATIKA


DEPERTEMENT TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI PADANG
2022
 Program 1 (Aplikasi Sederhana Pengelolaan Lomba Layangan)
File: lombalayangan.c
Program ini digunakan untuk menyelesaikan masalah pengelolaan data hasil
perlombaan bermain layangan.

Implementasi dalam Bahasa C :


/*
Nama File: lombalayangan.c
Program ini mendemonstrasikan penggunaan fungsi sorting dan searching dengan menggunakan array of
struct.
Digunakan untuk mengelola data hasil lomba bermain layangan.
*/

//menambahkan library yang akan digunakan


#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <math.h>

//konstanta untuk banyaknya peserta


#define N 3

//mendefinisikan tipe bentukan berupa struct bernama PESERTA


typedef struct Peserta

{ int nomor;
char nama[50];
char layangan[50];
float panjangTali, sudut;
float tinggiLayangan;
} PESERTA;

//deklarasi boolean untuk pengecekan data


bool input = false;

//deklarasi variabel global


PESERTA peserta[N];

//mendeklarasi fungsi yang akan digunakan


void judul();
void inputPeserta();
void tentukanJuara();
void cariData();
void exit();

main()

{
//deklarasi variabel untuk memilih menu
int pilihan;

//memanggil fungsi judul


judul();

Mulai :
printf("\n 1. Input Data");
printf("\n 2. Tampilkan Juara");
printf("\n 3. Cari Data Berdasarkan nomor");
printf("\n 0. Keluar Dari Program");
printf("\n");

Pilih :
printf("\n Masukkan Pilihan Menu: ");
scanf("%d", &pilihan);

switch(pilihan)
{
case 0 :
exit();
break;

case 1 :
inputPeserta();
goto Mulai;
break;

case 2 :
tentukanJuara();
goto Mulai;
break;

case 3 :
cariData();
goto Mulai;
break;

default :
printf("\n Pilihan Tersebut Tidak Ada.\n");
goto Mulai;
break;
}

printf("\n");

void judul()

printf("==============================================================
=========\n");
printf("Judul Program: Pendataan Hasil Lomba Layangan\n");
printf("Programmer : Rizky Annisa\n");
printf("NIM : 22076018\n");
printf("Deskripsi : Digunakan untuk mengelola lomba layangan\n");

printf("==============================================================
=========\n");
}

void inputPeserta()
{

//variabel konter perulangan


int i,j;

//deklarasi variabel
int no;
char nama[50];
float panjang, sudut;
float tinggi;

//perulangan input data peserta


for(i = 0; i < N; i++)
{
printf("\n Input peserta Ke - %d",i+1);
printf("\
n=========================================================\n");

printf(" Masukkan Nomor Lomba peserta : ");


fflush(stdin); scanf("%d",&no);

printf(" Masukkan Nama Lengkap peserta : ");


fflush(stdin); gets(nama);

printf(" Masukkan Panjang Tali Terulur (Meter) : ");


fflush(stdin); scanf("%f",&panjang);

printf(" Masukkan Sudut Elevasi Tali (Derajat) : ");


fflush(stdin); scanf("%f",&sudut);

tinggi = panjang*sin((sudut*3.14)/180);
printf("\
n=========================================================\n");

peserta[i].nomor = no;
strcpy(peserta[i].nama, nama);
peserta[i].panjangTali = panjang;
peserta[i].sudut = sudut;
peserta[i].tinggiLayangan = tinggi;
}

input = true;
}

void tentukanJuara()
{
if(input)
{
printf("\n Urutan Peserta Berdasarkan Tinggi Layangan : \n");

//variable konter perulangan


int i, j;
PESERTA temp;
for (i = 0; i < N; i++)
{

for (j = i + 1; j < N; j++)


{
if(peserta[i].tinggiLayangan < peserta[j].tinggiLayangan)
{
temp = peserta[i];
peserta[i] = peserta[j];
peserta[j] = temp;
}

}
printf("\
n=========================================================\n");
printf("\n Peserta Nomor - %d",peserta[i].nomor);
printf("\n Nama Peserta = %s",peserta[i].nama);
printf("\n Tinggi Layangan adalah %g Meter",peserta[i].tinggiLayangan);
printf("\n");
printf("\n Peserta Berhasil Mendapatkan JUARA - %d",i+1);
printf("\
n=========================================================\n");

printf("\n");
}
}
else
{
printf("\n-------------------------------------------------");
printf("\nBelum ada data yang diinput");
printf("\nSilahkan input data terlebih dahulu");
printf("\n-------------------------------------------------\n");
}
}

void cariData()
{

if(input)
{

//deklarasi variabel nomor pencarian


int nomor;
printf("\nMasukkan nomor : ");
scanf("%d",&nomor);

//variable konter perulangan


int i;
for(i = 0; i < N; i++)
{
if(peserta[i].nomor == nomor)
{

printf("\
n=========================================================\n");
printf("\n Peserta Nomor - %d",peserta[i].nomor);
printf("\n Nama Peserta = %s",peserta[i].nama);
printf("\n Tinggi Layangan adalah %g Meter",peserta[i].tinggiLayangan);
printf("\n");
printf("\n Peserta Berhasil Mendapatkan JUARA - %d",i+1);
printf("\
n=========================================================\n");

printf("\n");
break;
}
}
}

else
{

printf("\n-------------------------------------------------");
printf("\nBelum ada data yang diinput");
printf("\nSilahkan input data terlebih dahulu");
printf("\n-------------------------------------------------\n");
}

void exit()
{
printf("\n Program Terhenti.");
}
Screenshoot Output :

Menu 1 (Entri Data Lomba)


Menu 2 (Tampilkan Juara)

Menu 3 (Cari Peserta Tertentu)


Menu 0

 Program 2 (Aplikasi Sederhana Pengelolaan Pertandingan Memanah)


File: lombapanahan.c
Program ini digunakan untuk menyelesaikan masalah pengelolaan data hasil
pertandingan panahan.

Implementasi dalam Bahasa C :


/*
Nama File: lombapanahan.c
Program ini mendemonstrasikan penggunaan fungsi sorting dan searching dengan menggunakan array of
struct.
Digunakan untuk mengelola data hasil pertandingan memanah.
*/
//menambahkan library yang akan digunakan
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <math.h>

//konstanta untuk banyaknya peserta


#define N 5

//mendefinisikan tipe bentukan berupa struct bernama PESERTA


typedef struct peserta{
char nama[50];
int nilaiPanah[5];
int nilaiTotal;
int nomor; }PESERTA;
//mendeklarasi fungsi yang akan digunakan
void judul();
void bacaPeserta();
void hasilPertandingan();
void lihatJuara();
void lihatHasilPanahan();
void cariData();
void exit();

//deklarasi variabel global


PESERTA PesertaLomba[N];
PESERTA Peserta[N];

//deklarasi boolean untuk pengecekan data


bool input = false;

//fungsi main untuk run program


main()
{

//deklarasi variabel untuk memilih menu


int pilihan;

//memanggil fungsi judul


judul();

Mulai:
printf("\n1. Entri Data Pertandingan");
printf("\n2. Lihat Hasil Pertandingan");
printf("\n3. Lihat Para Juara");
printf("\n4. Cari Peserta Tertentu");
printf("\n5. Cari Data Berdasarkan Juara");
printf("\n0. Keluar dari Program\n\n");

Pilih:
printf("Masukkan Pilihan Menu: ");
scanf("%d",&pilihan);
printf("\nTekan Enter..\n");

switch(pilihan){
case 0 :
exit();
break;

case 1:
bacaPeserta();
printf("\nTekan Enter..\n");
goto Mulai;
break;

case 2:
hasilPertandingan();
printf("\nTekan Enter..\n");
goto Mulai;
break;

case 3:
lihatJuara();
printf("\nTekan Enter..\n");
goto Mulai;
break;

case 4:
lihatHasilPanahan();
printf("\nTekan Enter..\n");
goto Mulai;
break;

case 5:
cariData();
printf("\nTekan Enter..\n");
goto Mulai;
break;

default :
printf("\nPilihan Belum Tersedia\n");
goto Mulai;
break;
}
printf("\n");
}

void judul()
{

printf("==============================================================
=========\n");
printf("Judul Program : Pendataan Hasil Pertandingan Panahan\n");
printf("Programmer : Rizky Annisa\n");
printf("NIM : 22076018\n");
printf("Deskripsi : Program mengelola data pertandingan panahan\n");

printf("==============================================================
=========\n");

void bacaPeserta(){

//deklarasi variabel
char namanya[50];
int nilaiPanahnya[3];
int nilaiTotal;
int nomornya;

//variable konter perulangan


int i,j;

//perulangan input data peserta


for(i = 0; i < N; i++) {
printf("\nInputkan Data Peserta ke-%d\n",i+1);
printf("\
n========================================================\n");

printf("Masukkan Nomor Peserta\t: ");


scanf("%d",&nomornya); fflush stdin;

printf("Masukkan Nama Peserta\t: ");


gets(namanya); fflush stdin;

strcpy(PesertaLomba[i].nama,namanya);
PesertaLomba[i].nomor = nomornya;

printf("\n");
int total=0;
for(j = 0; j < 5; j++){
int bidang;

printf("Tembakan panah ke-%d mengenai bidang : ", j+1);


scanf("%d",&bidang);
PesertaLomba[i].nilaiPanah[j]= bidang;

if(bidang==1) total +=100;


else if(bidang>1 && bidang<=10) total+= 100-((PesertaLomba[i].nilaiPanah[j]-1)*10);
else total+=0;
}
PesertaLomba[i].nilaiTotal = total;
Peserta[i]=PesertaLomba[i];
printf("\
n========================================================\n");
}
input = true;
}
void hasilPertandingan()
{

//variable konter perulangan


int i,j;

//pengecekan data peserta


if(input)
{
printf("\nHasil Perlombaan Panahan\n");
PESERTA temp;
for(i = 0; i < N; i++)
{
printf("\
n========================================================\n");
printf("\nNama Peserta\t: %s\n",Peserta[i].nama);
printf("Nomor Peserta\t: %d\n",Peserta[i].nomor);
for(j = 0; j < N; j++)
{
printf("\nTembakan Panah Ke-%d mengenai bidang : %d",j+1,Peserta[i].nilaiPanah[j]);
}
printf("\n");
printf("\n Nilai total yang diraih Peserta : %d",Peserta[i].nilaiTotal);
printf("\
n========================================================\n\n");
}
}
else
{
printf("\nBelum ada data yang diinput\n");
}
}
void lihatJuara(){
//variable konter perulangan
int i, j;

//pengecekan data peserta


if(input)
{
printf("\nMengurutkan Data Peserta Berdasarkan Nilai Tertinggi\n");
PESERTA temp;
for (i = 0; i < N; i++)
{
for (j = i + 1; j < N; j++)
{
if(PesertaLomba[i].nilaiTotal < PesertaLomba[j].nilaiTotal)
{
temp = PesertaLomba[i];
PesertaLomba[i] = PesertaLomba[j];
PesertaLomba[j] = temp;
}
}
printf("\
n========================================================\n");
printf("\nNomor Peserta\t: %d\n",PesertaLomba[i].nomor);
printf("\nNama Peserta\t: %s\n",PesertaLomba[i].nama);

for(j = 0; j < 5; j++)


{
printf("\nTembakan Panah ke-%d mengenai bidang %d",j+1,PesertaLomba[i].nilaiPanah[j]);
}
printf("\nNilai total yang diraih Peserta : %d",PesertaLomba[i].nilaiTotal);
printf("\n");
printf("\nPeserta mendapat Juara ke %d\n",i+1);
printf("\
n========================================================\n");
}

}
else
{
printf("\nBelum ada data yang diinput\n");
}
}

void lihatHasilPanahan()
{

//variable konter perulangan


int i,j;

//pengecekan data peserta


if(input)
{
int nomornya;
printf("Masukkan nomor peserta yang ingin dicari: ");
scanf("%d",&nomornya); fflush stdin;
for(i = 0; i < N; i++)
{
if(PesertaLomba[i].nomor==nomornya)
{
printf("\
n========================================================\n");
printf("\nNama Peserta\t: %s",PesertaLomba[i].nama);
printf("\nNomor Peserta\t: %d",PesertaLomba[i].nomor);
for(j = 0; j < 5; j++)
{
printf("\nTembakan panah ke-%d mengenai bidang %d\
n",j+1,PesertaLomba[i].nilaiPanah[j]);
}

printf("\
n========================================================\n");

break;
}
}

}
else
{
printf("\nBelum ada data yang diinput\n");
}
}

void cariData()
{
//variable konter perulangan
int j;

//pengecekan data peserta


if(input)
{
int juara;
printf("Masukkan Juara Yang Dicari : ");
scanf("%d",&juara); fflush stdin;
printf("\
n========================================================\n");
printf("\nNama Peserta\t: %s\n",PesertaLomba[juara-1].nama);
printf("\nNomor Peserta\t: %d\n",PesertaLomba[juara-1].nomor);
for(j = 0; j < 5; j++)
{
printf("\nTembakan panah ke-%d mengenai bidang %d\n",j+1,PesertaLomba[juara-
1].nilaiPanah[j]);
}
printf("\nNilai Total yang diraih Peserta : %d\n",PesertaLomba[juara-1].nilaiTotal);
printf("\nPeserta mendapat Juara ke %d\n",juara);
printf("\
n========================================================\n");
}
else
{
printf("\nBelum ada data yang diinput\n");
}
}
void exit()
{
printf("\nKeluar dari program.");
}
Screenshoot Output :
Menu 1 (Entri Data)
Menu 2 (Lihat Hasil Pertandingan)
Menu 3 (Lihat Para Juara)

Menu 4 (Cari Data Peserta Tertentu)


Menu 5 (Cari Data Berdasarkan Juara)

Menu 0 (Exit)

Anda mungkin juga menyukai