You are on page 1of 16

TUGAS 08

PRAKTIKUM STRUKTUR DATA

DOSEN PENGAMPU:

Agariadne Dwinggo Samala, S.Kom., M.Pd.T

OLEH:

Nama : Ulfi Latifah


NIM : 19076075

PROGRAM STUDI PENDIDIKAN TEKNIK INFORMATIKA

JURUSAN TEKNIK ELEKTRONIKA

FAKULTAS TEKNIK

UNIVERSITAS NEGERI PADANG

2020
1. Prog1_DataMahasiswa.cpp
a. SOURCE CODE
//pemanggilan package dari bahasa c
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
#include<string.h>

//Latihan
//19076075-Ulfi Latifah
//Prak. Struktur Data #001 - TGS08
//tgl 1 April 2020
//Program.cpp

//structur struct data mahasiswa


typedef struct {
int nim;
char nama[50];
float ipk;
}mahasiswa;

mahasiswa mhs[100];//struct array untuk menampung


data mahasiswa
mahasiswa temp;
//variabel yang akan digunakan dalam program

int sorting, pilih, a,b,c,i,j,n,z;

//fungsi untuk menampilkan biodata programmer


void biodata(){
printf("\t\t\t\t==================================="
);
printf("\n\t\t\t\tNama \t\t : Ulfi Latifah");
printf("\n\t\t\t\tNIM \t\t : 19076075");
printf("\n\t\t\t\tNama Program \t : Data
Mahasiswa");
printf("\n\t\t\t\t==================================
=\n");
}

//fungsi untuk menambahkan data mahasiswa


void input(){
//user memasukkan jumlah data yang diinginkan lalu
disimpan pada variabel n
printf("Masukkan jumlah data Mahasiswa yang
diinputkan: ");scanf("%d",&n);
for(a=0; a<n; a++){//perulangan for sebanyak jumplah
data mahasiswa yang diinputkan oleh user
printf("Masukkan NIM Mahasiswa :
");scanf("%d",&mhs[a].nim); fflush(stdin);
printf("Masukkan Nama Mahasiswa :
");gets(mhs[a].nama); fflush(stdin);
printf("Masukkan IPK Mahasiswa :
");scanf("%f",&mhs[a].ipk);
printf("\n");
}
getch();system("cls");
}

//fungsi untuk menampilkan data mahasiswa yang telah


disimpan pada fungsi input
void databelumurut(){
//tampilan data mahasiswa akan menyerupai tabel
printf("\n==================================Menampil
kan Data=======================================\n\n");
printf("============================================
==============================================\n");
printf("||
No\t||\tNIM\t||\tNama\t\t||\tIPK\t||\n");
j=0;
for(b=0; b<n; b++){
j=j+1;

printf("============================================
==============================================\n");
printf("|| %i\t||", j);
printf(" %i\t||", mhs[b].nim);
fflush(stdin);
printf("\t%s\t||",mhs[b].nama);
printf("\t%.2f\t||", mhs[b].ipk);
fflush(stdin);
printf("\n");
}

printf("\n==========================================
=================================================\n");
getch(); system("cls");
}

void urutnim(){
//sorting (buble sort) berdasarkan nim
for(i=0; i<n-1; i++){
for(j=0; j<n-1-i; j++){
if(mhs[j].nim>mhs[j+1].nim){
//tukar nim
temp.nim=mhs[j].nim;
mhs[j].nim=mhs[j+1].nim;
mhs[j+1].nim=temp.nim;

//tukar nama
strcpy(temp.nama, mhs[j].nama);
strcpy(mhs[j].nama, mhs[j+1].nama);
strcpy(mhs[j+1].nama, temp.nama);

//tukar IPK
temp.ipk=mhs[j].ipk;
mhs[j].ipk=mhs[j+1].ipk;
mhs[j+1].ipk=temp.ipk;
}
}
}
//tampilan data mahasiswa akan menyerupai tabel
printf("\n===========================Menampilkan
Data Setelah
Berurutan============================\n\n");
printf("============================================
==============================================\n");
printf("||
No\t||\tNIM\t||\tNama\t\t||\tIPK\t||\n");
j=0;
for(c=0; c<n; c++){
j=j+1;

printf("============================================
==============================================\n");
printf("|| %i\t||", j);
printf(" %i\t||", mhs[c].nim);
fflush(stdin);
printf("\t%s\t||",mhs[c].nama);
printf("\t%.2f\t||", mhs[c].ipk);
fflush(stdin);
printf("\n");
}
printf("\n==========================================
=================================================\n");
getch(); system("cls");
}

void urutipk(){
//sorting (buble sort) berdasarkan ipk
for(i=0; i<n-1; i++){
for(j=0; j<n-1-i; j++){
if(mhs[j].ipk>mhs[j+1].ipk){
//tukar nim
temp.nim=mhs[j].nim;
mhs[j].nim=mhs[j+1].nim;
mhs[j+1].nim=temp.nim;

//tukar nama
strcpy(temp.nama, mhs[j].nama);
strcpy(mhs[j].nama, mhs[j+1].nama);
strcpy(mhs[j+1].nama, temp.nama);

//tukar IPK
temp.ipk=mhs[j].ipk;
mhs[j].ipk=mhs[j+1].ipk;
mhs[j+1].ipk=temp.ipk;
}
}
}
//tampilan data mahasiswa akan menyerupai tabel
printf("\n===========================Menampilkan
Data Setelah
Berurutan============================\n\n");
printf("============================================
==============================================\n");
printf("||
No\t||\tNIM\t||\tNama\t\t||\tIPK\t||\n");
j=0;
for(c=0; c<n; c++){
j=j+1;

printf("============================================
==============================================\n");
printf("|| %i\t||", j);
printf(" %i\t||", mhs[c].nim);
fflush(stdin);
printf("\t%s\t||",mhs[c].nama);
printf("\t%.2f\t||", mhs[c].ipk);
fflush(stdin);
printf("\n");
}

printf("\n==========================================
=================================================\n");
getch(); system("cls");
}

//fungsi main() yang pertama dieksekusi dalam program c

int main(){
biodata(); //pemanggilan fungsi biodata()
//Sapaan awal program
printf("\n\n========================================
======= PROGRAM DATA MAHASISWA
==============================================");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t
PROGRAM BY ULFI LATIFAH\t\t\t\t\t");
printf("\n\t\t\t\t\t\t~ ASSALAMUALAIKUM WR.WB
~\t\t\t\t\t");
printf("\n\t\t\t\t\t\t ~ WELCOME
~\t\t\t\t\t\t\t\t\t");
getch(); system("cls");

start:
//menampilkan pilihan menu yang dapat dipilih oleh
user
printf("\n==========================================
========= PILIHAN MENU
====================================================");
printf("\n1. Masukkan Data Mahasiswa");
printf("\n2. Menampilkan Data Sebelum Berurutan");
printf("\n3. Sorting Data");
printf("\n4. Keluar");
//inputan pilihan menu oleh user lalu disimpan pada
variabel pilih
printf("\n\nMasukkan pilihan anda : "); scanf("%i",
&pilih);

//program akan men-switch jalannya program sesuai


dengan data yang tersimpan pada variabel pilih
switch(pilih){
case 1: //pilihan menu 1 untuk menambahkan data
system("cls"); input(); goto start;
case 2: //pilihan menu 2 untuk menampilkan data
sebelum berurutan
system("cls"); databelumurut(); goto
start;
case 3: //pilihan menu 3 untuk mengurutkan data
system("cls");
sorting:
//menampilkan pilihan menu yang dapat
dipilih oleh user
printf("\n=============== PILIHAN
MENU SORTING=======================");
printf("\n1. Urut Berdasarkan NIM");
printf("\n2. Urut Berdasarkan Nama");
printf("\n3. Kembali Ke Menu Utama");
//inputan pilihan menu oleh user lalu
disimpan pada variabel pilih
printf("\n\nMasukkan pilihan anda :
"); scanf("%i", &sorting);

//program akan men-switch jalannya


program sesuai dengan data yang tersimpan pada variabel
sorting
switch(sorting){
case 1: //pilihan menu 1 untuk
mengurutkan berdasarkan NIM
system("cls"); urutnim();
goto sorting;
case 2: //pilihan menu 2
mengurutkan berdasarkan IPK
system("cls"); urutipk();
goto sorting;
case 3:
system("cls"); goto start;
}
case 4: //pilihan menu 4 untuk keluar dari
program
system("cls"); fflush(stdin);
printf("\n\n\n\n\n\nAPAKAH ANDA YAKIN KELUAR DARI
PROGRAM?");
printf("\n[Y] [N]\n"); scanf("%c",&z);
if(z=='y'||z=='Y')
{system("cls");
printf("\n\n#####################################
PROGRAM SELESAI
######################################");

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\tPROG
RAM BY ULFI LATIFAH\t\t\t\t");
printf("\n\t\t\t\t~ WASSALAMUALAIKUM WR.WB
~\t\t\t\t");
printf("\n\t\t\t\t~ SEE YOU <3
~\t\t\t\t");}
else if(z=='n'||z=='N')
{system("cls"); goto start;}
}
return 0; //mengembalikan nilai int main menjadi 0
}

b. SCREENSHOT PROGRAM
c. SCREENSHOT OUTPUT
d. PENJELASAN PROGRAM
 Baris 1-5 mendeklarasikan pemanggilan package dalam bahasa c
 Baris 7-11 mendeklarasikan keterangan data mahasiswa yang membuat
program
 Baris 14-18 mendeklarasikan struktur dari struct data mahasiswa yang
terdiri dari int nim, char nama[50], dan float ipk.
 Baris 20 mendeklarasikan struct array untuk menampung data mahasiswa
sebanyak 200
 Baris 24 mendeklarasikan variabel yang akan digunakan dalam program
 Baris 27-33 mendeklarasikan fungsi bernama biodata yang berisikan
biodata pembuat program dan nama program yang dibuat
 Baris 36-46 mendeklarasikan fungsi/void input() untuk menginputkan
data mahasiswa. User terlebih dahulu menginputkan jumlah data
mahasiswa yang akan diinputkan lalu akan menjalankan perulangan for
sebanyak inputan user.
 Baris 49-68 mendeklarasikan fungsi/void databelumurut() untuk
menampilkan data sebelum disorting, tampilan data yang akan mencul
berupa menyerupai tabel
 Baris 70-110 mendeklarasikan fungsi/void urutnim() untuk men-sorting
data menurut NIM Mahasiswa
 Baris 71-91 mendeklarasikan struktur dari sorting data menurut NIM
mahasiswa
 Baris 92-110 mendeklarasikan tampilan data menyerupai tabel
 Baris 112-152 mendeklarasikan fungsi/void urutipk() untuk men-sorting
data menurut ipk Mahasiswa
 Baris 113-133 mendeklarasikan struktur dari sorting data menurut IPK
mahasiswa
 Baris 134-152 mendeklarasikan tampilan data menyerupai tabel
 Baris 154-213 mendeklarasikan fungsi main merupakan fungsi pertama
yang di eksekusi oleh program
 Baris 156 mendeklarasikan pemanggilan fungsi biodata()
 Baris 157-161 mendeklarasikan kalimat dalam petik pada printf untuk
ditampilkan sebagai sapaan program
 Baris 162 mendeklarasikan getch() untuk menghentikan program yang
sedang berjalan. Kemudian system(“cls”) untuk membersihkan layar
program yang telah dijalankan sebelumnya sehingga yang selanjutnya
tampil hanya program pada baris selanjutnya
 Baris 164-170 mendeklarasikan tampilan menu pada program
 Baris 171-172 mendeklarasikan inputan dari user lalu disimpan pada
variabel pilih
 Baris 174-211 mendeklarasikan fungsi switch case untuk mengeksekusi
fungsi sesuai dengan nilai inputan user yang disimpan pada variabel pilih
 Baris 176-177 mendeklarasikan penambahan data ketika user menginput
variabel pilih bernilai 1
 Baris 178-179 mendeklarasikan menampilkan data ketika user menginput
variabel pilih bernilai 2
 Baris 180-199 mendeklarasikan Sorting Data data ketika user menginput
variabel pilih bernilai 3
 Baris 184-187 mendeklarasikan tampilan menu sorting data
 Baris 189 mendeklarasikan inputan menu oileh user lalu disimpan pada
variabel sorting
 Baris 192-198 mendeklarasikan fungsi switch case untuk mengeksekusi
fungsi sesuai dengan nilai inputan user yang disimpan pada variabel
sorting
 Baris 193-194 mendeklarasikan Sorting Data berdasarkan NIM mahasiswa
ketika user menginput variabel sorting bernilai 1
 Baris 195-196 mendeklarasikan Sorting Data berdasarkan IPK mahasiswa
ketika user menginput variabel sorting bernilai 2
 Baris 197-198 mendeklarasikan kembali ke menu utama data ketika user
menginput variabel sorting bernilai 3
 Baris 200-210 mendeklarasikan keluar dari program ketika user menginput
variabel pilih bernilai 4
 Baris 212 mendeklarasikan return untuk mengembalikan nilai int main ke
nilai 0

You might also like