You are on page 1of 23

TUGAS 07

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>

//Latihan
//19076075-Ulfi Latifah
//Prak. Struktur Data #001 - TGS07
//tgl 18 Maret 2020
//Program.cpp

//structur struct data mahasiswa


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

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


data mahasiswa
//variabel yang akan digunakan dalam program
int cari;
int i,j,k,n,z;
int option;
int pilih;
bool found;

//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("\n\n\nMasukkan jumlah data Mahasiswa yang
diinputkan: ");scanf("%d",&n);
for(i=0; i<n; i++){//perulangan for sebanyak jumplah
data mahasiswa yang diinputkan oleh user
printf("Masukkan NIM Mahasiswa [%d]:
",i+1);scanf("%d",&mhs[i].nim); fflush(stdin);
printf("Masukkan Nama Mahasiswa [%d]:
",i+1);gets(mhs[i].nama); fflush(stdin);
printf("Masukkan TTL Mahasiswa [%d]:
",i+1);gets(mhs[i].ttl); fflush(stdin);
printf("Masukkan IPK Mahasiswa [%d]:
",i+1);scanf("%f",&mhs[i].ipk);
printf("\n");
}
getch();system("cls");
}

//fungsi untuk menampilkan data mahasiswa yang telah


disimpan pada fungsi input
void tampilandata(){
//tampilan data mahasiswa akan menyerupai tabel
printf("\n==========================================
Menampilkan
Data==========================================\n\n");
printf("============================================
=======================================================
=\n");
printf("||
No\t||\tNIM\t||\tNama\t\t||\tTTL\t\t\t||\tIPK\t||\n");
j=0;
for(k=0; k<i; k++){
j=j+1;

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

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

//fungsi untuk mencari data mahasiswa


void caridata(){
//inputan NIM dari user sebagai kata kunci data yang
dicari
printf("Cari data berdasarkan NIM:
");scanf("%d",&cari);
i=0;
found=false;
while(i<n && !found){
if(mhs[i].nim==cari){
found=true;
}
else{
i=i+1;
}
}
//kondisi ketika data yang tersimpan pada variabel
cari sama dengan nim yang telah tersimpan
if(mhs[i].nim==cari && found){
printf("\n");
printf("Nama Mahasiswa: %s\n",mhs[i].nama);
printf("TTL Mahasiswa : %s\n",mhs[i].ttl);
printf("IPK Mahasiswa : %.2f\n",mhs[i].ipk);
}
//kondisi ketika data yang tersimpan pada variabel
cari tidak sama dengan nim yang telah tersimpan
else{
printf("Tidak ditemukan \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 Mahasiswa");
printf("\n3. Cari Data Mahasiswa");
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
system("cls"); tampilandata(); goto start;
case 3: //pilihan menu 3 untuk mencari data
system("cls"); caridata(); 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-4 mendeklarasikan pemanggilan package dalam bahasa c
 Baris 6-10 mendeklarasikan keterangan data mahasiswa yang membuat
program
 Baris 12-18 mendeklarasikan struktur dari struct data mahasiswa yang
terdiri dari int nim, char nama[50], char ttl[50], dan float ipk.
 Baris 20 mendeklarasikan struct array untuk menampung data mahasiswa
sebanyak 200
 Baris 22-26 mendeklarasikan variabel yang akan digunakan dalam
program
 Baris 28-35 mendeklarasikan fungsi bernama biodata yang berisikan
biodata pembuat program dan nama program yang dibuat
 Baris 37-49 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 51-73 mendeklarasikan fungsi/void tampilandata() untuk
menampilkan data, tampilan data yang akan mencul berupa menyerupai
tabel
 Baris 75-101 mendeklarasikan fungsi/void caridata() untuk mencari data
yang telah tersimpan menggunakan kata kunci NIM dengan cara
sequential search
 Baris 103-144 mendeklarasikan fungsi main merupakan fungsi pertama
yang di eksekusi oleh program
 Baris 105 mendeklarasikan pemanggilan fungsi biodata()
 Baris 106-110 mendeklarasikan kalimat dalam petik pada printf untuk
ditampilkan sebagai sapaan program
 Baris 111 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 105-109 mendeklarasikan tampilan menu pada program
 Baris 121 mendeklarasikan inputan dari user lalu disimpan pada variabel
pilih
 Baris 124-142 mendeklarasikan fungsi switch case untuk mengeksekusi
fungsi sesuai dengan nilai inputan user yang disimpan pada variabel pilih
 Baris 125-126 mendeklarasikan penambahan data ketika user menginput
variabel pilih bernilai 1
 Baris 127-128 mendeklarasikan menampilkan data ketika user menginput
variabel pilih bernilai 2
 Baris 129-130 mendeklarasikan pencarian data ketika user menginput
variabel pilih bernilai 3
 Baris 131-141 mendeklarasikan keluar dari program ketika user menginput
variabel choice bernilai 4
 Baris 143 mendeklarasikan return untuk mengembalikan nilai int main ke
nilai 0
2. Prog2_DataMahasiswa.c
a. SOURCE CODE
//pemanggilan package dari bahasa c
#include <stdio.h>
#include <windows.h>

//Latihan
//19076075-Ulfi Latifah
//Prak. Struktur Data #002 - TGS07
//tgl 18 Maret 2020
//Program.c

//structur struct data mahasiswa


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

struct mahasiswa mhs[200];//struct array untuk


menampung data mahasiswa
//variabel yang akan digunakan dalam program
int i,j,k, z, pilih, first, last, middle, n, search;

//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 menginput data


void input(){
//user memasukkan jumlah data yang diinginkan lalu
disimpan pada variabel n
printf("\n\n\nMasukkan jumlah data Mahasiswa yang
diinputkan: ");scanf("%d",&n);
for (i=0;i<n;i++){ // Perulangan untuk menginputkan
data
printf("Masukkan NIM Mahasiswa [%d]:
",i+1);scanf("%d",&mhs[i].nim); fflush(stdin);
printf("Masukkan Nama Mahasiswa [%d]:
",i+1);gets(mhs[i].nama); fflush(stdin);
printf("Masukkan TTL Mahasiswa [%d]:
",i+1);gets(mhs[i].ttl); fflush(stdin);
printf("Masukkan IPK Mahasiswa [%d]:
",i+1);scanf("%f",&mhs[i].ipk);
printf("\n");
}
getch();system("cls");
}

//fungsi untuk menampilkan data


void tampilandata(){
//tampilan data mahasiswa akan menyerupai tabel
printf("\n==========================================
Menampilkan
Data==========================================\n\n");
printf("============================================
=======================================================
=\n");
printf("||
No\t||\tNIM\t||\tNama\t\t||\tTTL\t\t\t||\tIPK\t||\n");
j=0;
for(k=0; k<i; k++){
j=j+1;

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

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

//fungsi untuk mencari data


void caridata(){
//inputan NIM dari user sebagai kata kunci data yang
dicari
printf("Masukkan NIM yang dicari : "); scanf("%d",
&search);
//Deklarasi rumus untuk pencarian binary
first = 0;
last = n - 1;
middle = (first+last)/2; //Nilai tengah adalah nilai
pertama + nilai terakhir kemudian dibagi 2

while (first <= last) {


if (mhs[middle].nim < search)
first = middle + 1;
else if (mhs[middle].nim == search) { //kondisi
data yang dicari sama maka akan ditampilkan
printf("%d found at location %d.\n", search,
middle+1);
printf("\tNIM : %d\n", mhs[middle].nim);
printf("\tNAMA : %s\n", mhs[middle].nama);
printf("\tTTL : %s\n", mhs[middle].ttl);
printf("\tIPK : %.2f\n\n", mhs[middle].ipk);
break;
}
else
last = middle - 1;

middle = (first + last)/2;


}
if (first > last) //kondisi data yang dicari tidak
ada
printf("Not found! %d isn't present in the
list.\n", search);
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 Mahasiswa");
printf("\n3. Cari Data Mahasiswa");
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
system("cls"); tampilandata(); goto start;
case 3: //pilihan menu 3 untuk mencari data
system("cls"); caridata(); 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-3 mendeklarasikan pemanggilan package dalam bahasa c
 Baris 5-9 mendeklarasikan keterangan data mahasiswa yang membuat
program
 Baris 12-18 mendeklarasikan struktur dari struct data mahasiswa yang
terdiri dari int nim, char nama[50], char ttl[50], dan float ipk.
 Baris 20 mendeklarasikan struct array untuk menampung data mahasiswa
sebanyak 200
 Baris 22 mendeklarasikan variabel yang akan digunakan dalam program
 Baris 24-31 mendeklarasikan fungsi bernama biodata yang berisikan
biodata pembuat program dan nama program yang dibuat
 Baris 34-45 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 48-69 mendeklarasikan fungsi/void tampilandata() untuk
menampilkan data, tampilan data yang akan mencul berupa menyerupai
tabel
 Baris 72-99 mendeklarasikan fungsi/void caridata() untuk mencari data
yang telah tersimpan menggunakan kata kunci NIM dengan cara binary
search
 Baris 102-142mendeklarasikan fungsi main merupakan fungsi pertama
yang di eksekusi oleh program
 Baris 103 mendeklarasikan pemanggilan fungsi biodata()
 Baris 104-108 mendeklarasikan kalimat dalam petik pada printf untuk
ditampilkan sebagai sapaan program
 Baris 109 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 112-117 mendeklarasikan tampilan menu pada program
 Baris 119 mendeklarasikan inputan dari user lalu disimpan pada variabel
pilih
 Baris 122-140 mendeklarasikan fungsi switch case untuk mengeksekusi
fungsi sesuai dengan nilai inputan user yang disimpan pada variabel pilih
 Baris 123-124 mendeklarasikan penambahan data ketika user menginput
variabel pilih bernilai 1
 Baris 125-126 mendeklarasikan menampilkan data ketika user menginput
variabel pilih bernilai 2
 Baris 127-128 mendeklarasikan pencarian data ketika user menginput
variabel pilih bernilai 3
 Baris 129-139 mendeklarasikan keluar dari program ketika user menginput
variabel choice bernilai 4
 Baris 141 mendeklarasikan return untuk mengembalikan nilai int main ke
nilai 0

You might also like