Tugas
Kelompok (KTM Sementara)
Hari ini saya
akan memberi contoh Ktm Sementara dengan maksimal 100 dengan menngunakan type bentukan, array,
fungsi/prosedur, searching,dan sorting dalam bentuk bahasa c
#include <stdio.h>
#include <stdlib.h>
nama = Yohan Indrawan
nim = A11.2018.10849
kelompok = A11.4101
/*
Judul
Program pendataan ktm sementara dengan maksimal 100 dengan menngunakan type
bentukan ,array, fungsi/prosedur, searching,dan sorting.
*/
//kamus
typedef struct
{
char nama_depan[30]; //string
char nama_belakang[40]; //string
}nama; //type bentukan nama //dengan menggunakan typedef struct
typedef struct
{
int nomor_pdf; //integer
char nim[30]; //integer
}nomor; //type bentukan nomor //dengan menggunakan typedef struct
typedef struct
{
//tanggal berlaku
int tgl_L; //integer
char bulan_L[20]; //string
int tahun_L; //integer
//tanggal cetak
int tgl_C; //integer
char bulan_C[40]; //string
int tahun_C; //integer
}tanggal; //type bentukan tanggal //dengan menggunakan typedef struct
typedef struct
{
char alamat[30]; //string
char provinsi[30]; //string
char kota[30]; //string
}tempat; //type bentukan tempat //dengan menggunakan typedef struct
typedef struct
{
char fakultas[20]; //string
char program_studi[20]; //string
}kuliah; //type bentukan kulaih //dengan menggunakan typedef struct
typedef struct
{
nama nama; //type nama
nomor number; //type nomor
tanggal date; //type tanggal
tempat place; //type tempat
kuliah study; //type kuliah
}ktm; //type bentukan ktm //dengan menggunakan typedef struct
ktm ktm1[100]; //ktm1 dengan type bentukan ktm dengan array 100
int batas,a,b; //integer
int jumlah; //integer
int pilihan; //integer
int baru; //integer
//deskripsi
int main()
{
system("color 0A");
judul();
system("pause");
system("cls");//untuk
menghilangkan bagian atas nya
awal:
system("color 0E");
puts(""); //enter
printf(" Maksimal
(100)\n"); //pemberitahuan maksimal
printf(" Masukan batas=
"); scanf("%d",&batas); //input batas
system("cls"); //untuk
menghilangkan bagian atas nya
//output jika tidak melebihi batas
if(batas<100) //pembanding
{
menu:
system("color
0B");
puts(" ");
//enter
printf("~MENU~"); //judul pilihan menu
printf("\n________\n");
printf("1.Input\n");
printf("2.Output\n");
printf("3.Search\n");
printf("4.Sort\n");
printf("5.Exit\n");
printf("________\n\n");
printf("Masukan
Pilihan="); scanf("%d",&pilihan); //input pilihan
switch(pilihan) //switch
case
{
// pilihan pertama
case 1:
system("cls"); // untuk menghilangkan bagian atas
input(); //prosedur
input
yatidak();
system("pause"); //untuk menghentikan sementara
system("cls"); // untuk menghilangkan bagian atas
goto menu; //untuk
kembali kepilihan menu
break;
// pilihan kedua
case 2:
system("cls"); // untuk menghilangkan bagian atas
output();
system("pause"); //untuk menghentikan sementara
system("cls"); // untuk menghilangkan bagian atas
goto menu; //untuk
kembali kepilihan menu
break;
// pilihan ketiga
case 3:
system("cls"); // untuk menghilangkan bagian atas
search(); //prosedur
search
system("pause"); //untuk menghentikan sementara
system("cls"); // untuk menghilangkan bagian atas
goto menu; //untuk
kembali kepilihan menu
break;
// pilihan keempat
case 4:
system("cls"); // untuk menghilangkan bagian atas
puts(" ");
//enter
int oke;
OKE:
printf("\t~MENU~"); //judul pilihan menu
printf("\n______________________________\n");
printf("1.kecil
ke besar\n");
printf("2.besar
ke kecil\n");
printf("Masukan
pilihan = "); scanf("%d",&oke);
if(oke==1)
{
puts("
");
sort(); //prosedur sort
puts("
");
}
else if(oke==2)
{
puts("
");
sort1();
puts("
");
}
else
{
system("cls");
goto OKE;
}
system("pause"); //untuk menghentikan sementara
system("cls"); // untuk menghilangkan bagian atas
goto menu; //untuk
kembali kepilihan menu
break;
// pilihan kelima
case 5:
goto exit; //untuk ke
exit
default:
system("cls");
goto menu; //untuk
kembali kepilihan menu
break;
}
}
else
{
printf("Maaf Terlalu
Banyak\n"); //output jika batas terlalu banyak
system("pause"); //untuk menghentikan sementara
system("cls");
// untuk menghilangkan bagian atas
goto awal; //untuk
kembali ke awal untuk memasukan batas
}
puts(" "); //enter
exit:
return 0;
}
//prosedur input
void input()
{
//menggunakan looping dengan
while
a=0; //awal
while(a<batas) //batas
{
puts(" "); //enter
printf("\t==Silakan Masukan
Inputan==\n"); //judul
printf("__________________________________________________________");
puts(" "); //enter
printf("Masukan nomor
pendaftaran\t= "); scanf("%d",&ktm1[a].number.nomor_pdf);
//input nomor pendaftaran
printf("Masukan nomor induk
mahasiswa\t= "); scanf("%s",&ktm1[a].number.nim); //input
nomor induk mahasiswa
fflush(stdin);
printf("Masukan nama depan
mahasiswa\t= "); scanf("%s",&ktm1[a].nama.nama_depan);
//input nama depan
fflush(stdin);
printf("Masukan nama
belakang mahasiswa\t= "); gets(ktm1[a].nama.nama_belakang); //input nama
belakang //bisa menggunakan spasi
printf("Masukan
alamat\t\t\t= "); gets(ktm1[a].place.alamat); //input alamat //bisa
menggunakan spasi
fflush(stdin);
printf("Masukan kota\t\t\t=
"); scanf("%s",&ktm1[a].place.kota); //input kota
fflush(stdin);
printf("Masukan
provinsi\t\t= "); gets(ktm1[a].place.provinsi); //input provinsi
printf("Masukan
fakultas\t\t= "); gets(ktm1[a].study.fakultas); //input faklutas
fflush(stdin);
printf("Masukan program
studi\t\t= "); scanf("%s",&ktm1[a].study.program_studi);
//input program studi
printf("Masukan tanggal
cetak\t\t= "); scanf("%d",&ktm1[a].date.tgl_C); //input
tanggal cetak
printf("Masukan bulan cetak\t\t= ");
scanf("%s",&ktm1[a].date.bulan_C); //input bulan cetak
printf("Masukan tahun
cetak\t\t= "); scanf("%d",&ktm1[a].date.tahun_C); //input
tahun cetak
printf("Masukan tanggal
berlaku\t\t= "); scanf("%d",&ktm1[a].date.tgl_L); //input
tanggal berlaku
printf("Masukan bulan
berlaku\t\t= "); scanf("%s",&ktm1[a].date.bulan_L); //input
bulan berlaku
printf("Masukan tahun
berlaku\t\t= "); scanf("%d",&ktm1[a].date.tahun_L); //input
tahun berlaku
a=a+1; //pola
}
}
//prosedur output
void output()
{
//menggunakan looping dengan
while
a=0; //awal
while(a<batas+baru) //batas
{
puts(" "); //enter
printf("\t\ == UDINUS == \n");
printf("\t ==KTM SEMENTARA==
\n"); //judul
printf("______________________________________________________");
puts(" "); //enter
printf("Nomor pendaftaran
\t: %d \n",ktm1[a].number.nomor_pdf); //output nomor pendaftaran
printf("Nomor induk siswa
\t: %s \n",ktm1[a].number.nim); //output nomor induk mahasiswa
printf("Nama mahasiswa \t: %s %s
\n",ktm1[a].nama.nama_depan,ktm1[a].nama.nama_belakang); //output nama
printf("Alamat \t\t\t: %s
\n",ktm1[a].place.alamat); //output alamat
printf("Kota \t\t\t: %s
\n",ktm1[a].place.kota);//output kota
printf("Provinsi \t\t: %s
\n",ktm1[a].place.provinsi); //output provinsi
printf("Fakultas \t\t: %s
\n",ktm1[a].study.fakultas); //output faklutas
printf("Program studi\t\t:
%s \n",ktm1[a].study.program_studi); //output program studi
printf("Tanggal Cetak\t\t:
%d - %s - %d\n",ktm1[a].date.tgl_C, ktm1[a].date.bulan_C,
ktm1[a].date.tahun_C); //output tanggal cetak
printf("Tanggal Berlaku\t\t:
%d - %s - %d\n",ktm1[a].date.tgl_L, ktm1[a].date.bulan_L,
ktm1[a].date.tahun_L); //output tanggal berlaku
a=a+1; //pola
}
}
//prosedur search
void search(int cari, int ketemu) // cari dan ketemu = integer
{
printf("Masukan Nomor
Pendaftaran yang akan dicari = "); scanf("%d",&cari); //input nomor pendaftran
//menggunakan looping dengan
while
a=0; //awal
while(a<batas+baru) //batas
{
if(ktm1[a].number.nomor_pdf
== cari) //pembanding
{
printf("Ditemukan pada data ke- %d ",a+1); //output
puts(" ");
//enter
printf("\t\ == UDINUS == \n");
printf("\t ==KTM
SEMENTARA== \n"); //judul
printf("______________________________________________________");
puts(" ");
//enter
printf("Nomor
pendaftaran \t: %d \n",ktm1[a].number.nomor_pdf); //output nomor
pendaftaran
printf("Nomor
induk siswa \t: %s \n",ktm1[a].number.nim); //output nomor induk mahasiswa
printf("Nama mahasiswa \t:
%s %s \n",ktm1[a].nama.nama_depan,ktm1[a].nama.nama_belakang); //output
nama
printf("Alamat
\t\t\t: %s \n",ktm1[a].place.alamat); //output alamat
printf("Kota \t\t\t: %s
\n",ktm1[a].place.kota);//output kota
printf("Provinsi
\t\t: %s \n",ktm1[a].place.provinsi); //output provinsi
printf("Fakultas
\t\t: %s \n",ktm1[a].study.fakultas); //output faklutas
printf("Program studi\t\t: %s
\n",ktm1[a].study.program_studi); //output program studi
printf("Tanggal
Cetak\t\t: %d - %s - %d\n",ktm1[a].date.tgl_C, ktm1[a].date.bulan_C,
ktm1[a].date.tahun_C); //output tanggal cetak
printf("Tanggal Berlaku\t\t: %d - %s -
%d\n",ktm1[a].date.tgl_L, ktm1[a].date.bulan_L, ktm1[a].date.tahun_L);
//output tanggal berlaku
}
else
{
printf("Tidak
Ketemu\n");
}
a=a+1;
}
}
//prosedur sorting kecil ke besar
void sort( int wadah )
{
//menggunakan looping dengan
while
//looping pertama
a=0; //awal
while(a<batas+baru) //batas
{
//looping kedua
b=a+1; //awal
while(b<batas+baru) //batas
{
//sorting menggunakan
insertion sort
if(ktm1[a].number.nomor_pdf
> ktm1[b].number.nomor_pdf) //pembanding
{
//kamus lokal
int wadah; //integer
wadah=ktm1[a].number.nomor_pdf;
//pembanding
ktm1[a].number.nomor_pdf=ktm1[b].number.nomor_pdf; //pembanding
ktm1[b].number.nomor_pdf=wadah; //pembanding
}
b=b+1; //pola
}
a=a+1; //pola
}
//menggunakan looping dengan
while
a=0; //pola
while(a<batas+baru) //batas
{
b=a; //awal
while(b<batas+baru) //batas
{
printf("Urutan
nomor pendaftaran ke-%d= %d\n",a+1,ktm1[a].number.nomor_pdf); //output
nomor pendaftaran yang sdh disorting
break;
b=b+1; //pola
}
a=a+1;
}
}
//prosedur sorting besar ke kecil
void sort1( int wadah )
{
//menggunakan looping dengan
while
//looping pertama
a=0; //awal
while(a<batas+baru) //batas
{
//looping kedua
b=a+1; //awal
while(b<batas+baru)
//batas
{
//sorting menggunakan
insertion sort
if(ktm1[a].number.nomor_pdf
< ktm1[b].number.nomor_pdf) //pembanding
{
//kamus lokal
int wadah; //integer
wadah=ktm1[a].number.nomor_pdf; //pembanding
ktm1[a].number.nomor_pdf=ktm1[b].number.nomor_pdf;
//pembanding
ktm1[b].number.nomor_pdf=wadah; //pembanding
}
b=b+1; //pola
}
a=a+1; //pola
}
//menggunakan looping dengan
while
a=0; //pola
while(a<batas+baru) //batas
{
b=a; //awal
while(b<batas+baru) //batas
{
printf("Urutan
nomor pendaftaran ke-%d= %d\n",a+1,ktm1[a].number.nomor_pdf); //output
nomor pendaftaran yang sdh disorting
break;
b=b+1; //pola
}
a=a+1;
}
}
//prosedur judul
void judul()
{
double y;
char salam[20]= "\t\t\t ~KTM
SEMENTARA~";
printf("\n\n\n\n\n\n\n\n"); //enter
a=0; //awal
while(salam [a] != NULL ) //batas
{
printf("%c",salam[a]); //output
for (y=0; y<=9999999;y++)
//pengulangan kedua
{
}
a=a+1; //pola
}
printf("\n\n\n\n\n\n\n\n"); //enter
}
void yatidak()
{
int c;
char yt;
int jumlah;
puts(" ");
printf("Tambah ya atau
tidak(y/t)= "); scanf("%s",&yt); //input ya tidak
if(yt=='y')
{
printf("\tMau tambah
berapa= "); scanf("%d",&jumlah); //input berapa
a=c+1; //awal
jumlah=jumlah+c+1;
while(a<jumlah) //batas
{
puts(" "); //enter
printf("\t==Silakan
Masukan Inputan==\n"); //judul
printf("__________________________________________________________");
puts(" "); //enter
printf("Masukan nomor
pendaftaran\t= "); scanf("%d",&ktm1[a].number.nomor_pdf);
//input nomor pendaftaran
printf("Masukan nomor
induk mahasiswa\t= "); scanf("%s",&ktm1[a].number.nim);
//input nomor induk mahasiswa
fflush(stdin);
printf("Masukan nama
depan mahasiswa\t= "); scanf("%s",&ktm1[a].nama.nama_depan);
//input nama depan
fflush(stdin);
printf("Masukan nama
belakang mahasiswa\t= "); gets(ktm1[a].nama.nama_belakang); //input nama
belakang //bisa menggunakan spasi
printf("Masukan
alamat\t\t\t= "); gets(ktm1[a].place.alamat); //input alamat //bisa
menggunakan spasi
fflush(stdin);
printf("Masukan
kota\t\t\t= "); scanf("%s",&ktm1[a].place.kota); //input
kota
fflush(stdin);
printf("Masukan
provinsi\t\t= "); gets(ktm1[a].place.provinsi); //input provinsi
printf("Masukan
fakultas\t\t= "); gets(ktm1[a].study.fakultas); //input faklutas
fflush(stdin);
printf("Masukan program
studi\t\t= "); scanf("%s",&ktm1[a].study.program_studi);
//input program studi
printf("Masukan tanggal
cetak\t\t= "); scanf("%d",&ktm1[a].date.tgl_C); //input
tanggal cetak
printf("Masukan
bulan cetak\t\t= ");
scanf("%s",&ktm1[a].date.bulan_C); //input bulan cetak
printf("Masukan tahun
cetak\t\t= "); scanf("%d",&ktm1[a].date.tahun_C); //input
tahun cetak
printf("Masukan tanggal
berlaku\t\t= "); scanf("%d",&ktm1[a].date.tgl_L); //input
tanggal berlaku
printf("Masukan bulan
berlaku\t\t= "); scanf("%s",&ktm1[a].date.bulan_L); //input
bulan berlaku
printf("Masukan tahun
berlaku\t\t= "); scanf("%d",&ktm1[a].date.tahun_L); //input
tahun berlaku
c=a;
a=a+1; //pola
}
if(jumlah<1) //pembanding
{
baru=a;
}
else
{
baru=a-1;
}
}
}
Tidak ada komentar:
Posting Komentar