menu tab

Minggu, 06 Januari 2019

Tugas Kelompok (KTM Sementara)


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