Sabtu, 03 Desember 2016

Program C++


LAPORAN

TUGAS PROYEK DASAR PEMROGRAMAN

(Mesin Pendataan Barang Dagang)

Dosen Pengampu : Muhammad Nugraha,M.Eng



logo-unida-gontor-vers-internasional.png























Disusun Oleh :

Nama :Armuser Dimas Saputra

NIM :372016611499













PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS DARUSSALAM GONTOR

2016















  1. Deskripsi Program

          Pada program kali ini saya membuat alat yang digunakan untuk mendata barang-barang yang akan dijual oleh produsen. Kegunaan dari barang ini adalah sebagai : Mencatat harga, kode barang, jenis barang, dan nama barang tersebut. Dalam program sayaa ini masih memiliki banyak sekali kekurangan yang butuh diperbaiki meskipun sudah selesai saya akn berusaha membuat yang lebih baik lagi. Dalam program ini tersendiri terdapat tiga pilihan : Penjual, Pembeli, Keluar. Dalam pilihan pembeli saya berharap agar pembeli dapat memesan barang diinginkannya.

  2. Penggunaan program

          Disini saya akan menjelaskan bagaimana cara saya menjalankan program saya yang telah saya buat dengan menampilkannya dilayar pc.


  1.  Berikut adalah layar utama dari program saya yang akan saya jelaskan dengan terperinci.




























Setelah menekan code diatas kita akan langsung menuju ke menu utama yang berisi mengenai program yang telah saya buat. Disini terdapat tiga pilihan yang akan dijalankan oleh user yang pertama adalah pemilik, pembeli, dan keluar.






  1. Disini saya akan menjelaskan tentang nomor satu (1) yaitu menjadi pemilik yang akan memasukkan dan mensata barang-barang yang akan dijualnya, Setelah memilih nomor yang pertama akan kita lihat untuk memasukkan username dan passwornya jika passwornya benar maka akan menuju ke step yang berikutnya dan jika password/user namenya salah maka akan mengulang dengan otomatis



2









Setelah apa yang ditulis benar maka akan muncul layar seperti ini, yaitu menu pilihan.



2.1



Misalnya kita memilih nomor pertama yang berisikan input data. Maka akan muncul layar yang menanyakan jumlah barang yang ingin dimasukkan oleh user disini kita akan memasukkan 1 barang maka akan mengisi sebanyak satu kali.



2.1

















Dan berikut adalah rincian dari pendataan barang yang akan dimasukkan oleh user. Disini user akan ditanyakan dengan apakah user ingi memasukkan data lagi/tidak jika kita menjawab tidak kita akan kembali ke menu utama.



2.1



Dan sekarang saya akan menjelaskan tentang delee data. Dalam operasi ini pertama kita akan disuruh untuk memasukkan kode barang yang telah kita masukkan tadi dengan begitu barang yang akan kita cari akan langsung terhapus dan apabila kode barang tidak ditemukan maka program akan error dan langsung memberitahu bahwa data user tidak ada.



delete 2



Beranjak ke program berikutnya yaitu view data. Seperti program lainnya view data hanya bias untuk melihat apakah data user sudah dimasukkan atau sudah di hapus.



view



Kemudian yang ke empat yaitu search data. Di program ini kita akan disuruh untuk memasukkan kodebarang yang sudah di masukkan barusan jika data user ada maka akan ketemu dan apabila tidak ada maka program akan memberitahu. Setelah selesai user akan ditanyakan apakah ingin mencari lagi/tidak.



cari 1

























Dan inilah barang yang ditemukan oleh program jika memasukkan kodenya dengan benar.



cari 2



Yang kelima yaitu tentang update. Yaitu barang yang akan diperbarui oleh user sama seperti delete dan search sebelumnya kita harus memasukkan kode barang itu terlebih dahulu sebelum memperbaruinya, missalnya kita akan memasukkan kode barang nomor 33.



update 1







Dan setelah kodenya dimasukkan dengan benar maka akan keluar data yag sudah dimasukkan oleh user dan apabila belum dimasukkan maka program akan error dan tidak menemukannya. Setelah memasukkannya kita akan mengubahnya satu persatu seperti gambar di bawah ini :





update 2



Dan yang terakhir adalah keluar dari menu pemilik.



  1. Sekarang kita akan menuju menu pembeli yang terdiri dari tiga pilihan yaitu : view data, search data, dan keluar. Dari menu pembeli memiliki kemungkinan persamaan besar seperti pemilik yang sudah saya jelaskan di atas. Dan inilah tampilan layar yang terdapat didalamnya.



pembeli 



  1. Dan pilihan yang terakhir adalah keluar dari program itu sendiri. Mungkin sekian penjelasan dari program ini dan terima kasih.







C. Penjelasan Sourch Kode



MENEMPATKAN TULISAN DIDALAM SOURCH CODE
COORD coord= {0,0};
void gotoxy(int x,int y)
{
    coord.X=x;
    coord.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}



Dengn menguunakan program diatas kita dapat menempatkan tulisan menyesuaikan dengan koordina yang kita inginkan.



CLASS DALAM PENGELOMOKAN TIPE DATA
class database
{
public:

    char name[50], jenis[50];
    int no,code,harga;
    void inputdata()
    {
        cout<<endl<<endl;;
        cout<<"\tNO BARANG    : ";
        cin>>no;
        cout<<"\tKODE BARANG  : ";
        cin>>code;
        cout<<"\tNAMA BARANG  : ";
        cin>>name;
        cout<<"\tJENIS BARANG : ";
        cin>>jenis;
        cout<<"\tHARGA BARANG : ";
        cin>>harga;
    }

    void outputdata()
    {
        cout<<"\tNo    barang    : "<<no<<endl
            <<"\tKode  barang    : "<<code<<endl
            <<"\tNama  barang    : "<<name<<endl
            <<"\tJenis barang    : "<<jenis<<endl
            <<"\tHarga persatuan : Rp "<<harga
            <<endl<<endl;
    }

    int cari()
    {
        return code;
    }
};
database data;



Didalam syntax ini tentang class yang meliputi input, output, dan cari data.



VOID
void input();
void lihat();
void hapus();
void cari();
void update();
void tampilan();
void tampilan2();



Dalam program ini saya menggunakan pemanggilan yang terdiri dari : Input,Lihat,Hapus,Cari,Update,Tampilan,Tampilan2



TYPE DATA INPUT,OUTPUT,DAN SEARCH
ifstream fi;
ofstream fo;
fstream  fa;



Type data dalam input, output, search.



TAMPILAN MENU UTAMA
tampilan();
    tampilan2();
    gotoxy(44,4);
    cout <<"SELAMAT DATANG DI TIGA A";
    gotoxy(42,9);
    cout <<"MASUK SEBAGAI APAKAH ANDA ?";
    gotoxy(51,11);
    cout <<"1. PEMILIK"<<endl;
    gotoxy(51,12);
    cout <<"2. PEMBELI"<<endl;
    gotoxy(51,13);
    cout <<"3. KELUAR "<<endl;
    gotoxy(39,15);
    cout <<"Pilih operasi yang anda inginkan [ ]"<<endl;
    gotoxy(73,15);
    cin  >>in;
    if (in == '1')
    {
        system("cls");



Didalam menu inikita akan tahu mengenai program apa daja yang terdapat pada proyek saya dengan membaginya menjadi tiga bagian yaitu pemilik, pembeli, dan keluar.



KODE USER PEMILIK
for (i=1; i<=3; i++)
        {
            tampilan();
            tampilan2();
            string user = "";
            string pass = "";
            gotoxy(52,4);
            cout <<" LOGIN PROGRAM ";
            gotoxy(52,9);
            cout << "Username anda !";
            gotoxy(55,10);
            cout << "Username : ";
            cin  >> user;
            gotoxy(55,11);
            cout << "Password : ";
            ps = getch();
            while(ps != 13)
            {
                pass.push_back(ps);
                cout << '*';
                ps = getch();
            }
            system("cls");



Didalam sini saya memasukkan kata sandi yang hanya bias dibuka oleh si pemilik toko dan tdak semua orang dapat mengoperasikannya dengan lengkap tapi hanya pemilik toko saja yang bias melakukannya.



TAMPILAN MENU UTAMA PADA PEMILIK
tampilan();
                tampilan2();
                gotoxy(44,4);
                cout <<"OPERASI APA YANG ANDA INGINKAN";
                gotoxy(15,9);
                cout <<"1.INPUT DATA    "<<endl;
                gotoxy(30,10);
                cout <<"2.DELETE DATA   "<<endl;
                gotoxy(45,11);
                cout <<"3.VIEW DATA     "<<endl;
                gotoxy(60,12);
                cout <<"4.SEARCH DATA   "<<endl;
                gotoxy(75,13);
                cout <<"5.UPDATE DATA   "<<endl;
                gotoxy(90,14);
                cout <<"6.KELUAR        "<<endl;
                gotoxy(42,20);
                cout <<"Pilih operasi yang anda inginkan [ ]"<<endl;
                gotoxy(76,20);
                cin  >>masuk;



Disini saya memasukkan 6 program yang akan digunakan oleh si pemilik yaitu : Input data, Delete data, View data, Search data, Update data, Keluar.



TAMPILAN GARIS PADA LAYAR SOURCH CODE
void tampilan()
{
    for(int i = 1; i <=117; i++)
    {
        for(int j = 1; j <= 30; j += 27)
        {
            if(j >= 1 || i >= 1)
            {
                gotoxy(i, j);
                cout << char(219);
            }
        }
    }
    for(int i = 1; i <= 28; i++)
    {
        for(int k = 1; k <= 120; k+=117)
        {
            gotoxy(k, i);
            cout << char(219);
        }
    }
}



Dan ini adalah tampilan garis pada layar program yang saya buat.





TAMPILAN GARIS KE DUA PADA LAYAR PROGRAM
void tampilan2()
{
    for(int i = 1; i <=117; i++)
    {
        gotoxy(i,7);
        cout << char(219);
    }
}



 Ini adalah tampilan garis pada terbentang padalayar proram.



INPUT
void input()
{
    int banyak;
    char a;
    system("cls");
g :
    tampilan();
    tampilan2();
    gotoxy(51,4);
    cout <<"OPERASI INPUT DATA";
    gotoxy(20,9);
    cout<<"Jumlah Barang Yang Ingin Anda Masukkan : ";
    gotoxy(61,9);
    cin>>banyak;

    for(int a=1; a<=banyak; a++)
    {
        system("cls");
        data.inputdata();
        fo.open(namafile, ios::binary | ios::app);
        fo.write((char*) &data, sizeof (data));
        fo.close();
    }
    cout<<endl;
    cout <<"\tApakah Anda Ingin Input Data Lagi (Y/T): ";
    cin  >>a;
    if (a=='y'||a=='Y')
    {
        system("cls");
        goto g;
    }
    else
    {
        cout <<"\tYakin ?"<<endl<<endl;
    }
}



Dalam operrasi inpt data saya menggunakan perulangan guna untuk mengetahui berapa banyak barang yang ingin dimasukkan oleh user. Dan menyakinkan kembali apakah ingin memasukkan lagi atau tidak.



VIEW DATA
void lihat()
{
    system("cls");
    tampilan2();
    gotoxy(51,4);
    cout <<"OPERASI VIEW  DATA";
    gotoxy(5,9);
    fi.open(namafile, ios::binary);
    while (fi.read((char*) &data, sizeof(data)))
    {
        data.outputdata();
        cout<<"\t****************************************"<<endl;

    }
    fi.close();
}



Seperti operasi biasa view data hanya bias melihat data yang telah dimasukkan dan memastikan datanya sudah masuk atau belum.



DELETE DATA
void hapus()
{
    int kodebarang;
    char mi;
    system ("cls");
f :
    tampilan();
    tampilan2();
    gotoxy(51,4);
    cout <<"OPERASI DELETE DATA";
    gotoxy(51,9);
    cout<<"Cari Kode Barang : ";
    gotoxy(70,9);
    cin>>kodebarang;

    tampilan();
    fi.open(namafile, ios::binary);
    fo.open("pengganti.dat", ios::out | ios::binary);

    int ketemu=0;
    while (fi.read((char*)&data, sizeof(data)))
    {
        if (data.cari() != kodebarang)
            fo.write((char*)&data, sizeof(data));
        else
            ketemu=1;
    }
    fi.close();
    fo.close();

    remove(namafile);
    rename("pengganti.dat", namafile);

    tampilan();
    if(ketemu==1)
    {
        gotoxy(45,15);
        cout<<"KODE BARANG  "<<kodebarang<<" TELAH DIHAPUS!"<<endl;
    }
    else
    {
        gotoxy(45,15);
        cout<<"KODE BARANG  "<<kodebarang<<" TIDAK DITEMUKAN!";
    }
    getch();
    lihat();
    cout <<"\tApakah Anda Ingin Menghapus Lagi (Y/T) ";
    cin  >>mi;
    if (mi=='y')
    {
        system("cls");
        goto f;
    }
    else
    {
        cout <<endl;
        cout <<"\tAnda Yakin ?"<<endl;
    }
}



Didalam operasi delerte data saya menggunakan kode untuk mencari barang yang akan di hapus dan apabila kode tepat dengan apa yang terdapat dalam program maka akan terhapus secara langsung dan apabila tidak maka program akan error dantidak menemukannya.



SEARCH DATA
void cari()
{
    int kodecari, ketemu=0;
    database data, nilaiketemu;
    char mi;
    system("cls");
l :
    tampilan();
    tampilan2();
    gotoxy(51,4);
    cout <<"OPERASI SEARCH DATA";
    gotoxy(51,9);
    cout<<"Cari kode barang : ";
    cin>>kodecari;

    system("cls");
    tampilan2();
    gotoxy(51,4);
    cout <<"OPERASI SEARCH DATA";
    cout <<endl<<endl<<endl<<endl<<endl;

    fi.open(namafile, ios::binary);
    while(fi.read( (char*)&data, sizeof(data)))
    {
        if(data.cari()== kodecari)
        {
            nilaiketemu = data;
            ketemu = 1;
            break;
        }
    }
    if(ketemu == 0)
        cout<<"\tKode Barang "<<kodecari<<" TIDAK DITEMUKAN!"<<endl;
    else
    {
        nilaiketemu.outputdata();
        cout <<endl;
        cout <<"\tKode barang "<<kodecari<<" SUDAH DIMASUKKAN!"<<endl;
    }
    fi.close();

    cout<<endl;
    cout <<"\tApakah Anda Ingin Mencari Lagi (Y/T)";
    cin  >>mi;
    if (mi=='y')
    {
        system("cls");
        goto l;
    }
    else
    {
        cout <<endl;
    }

}



Berikut adalah syntax dari program search yang saya buat menggunakan ofstream dan ifstream guna untuk menyimpan dan menutup file yang sudah kita masukkan.



UPADATE BARANG
void update()
{
    int KodeCari;
    char mi;
    system("cls");
k :
    tampilan();
    tampilan2();
    int kodecari;
    gotoxy(51,4);
    cout <<"OPERASI UPDATE DATA";
    gotoxy(51,9);
    cout<<"Cari Kode Barang : ";
    cin>>kodecari;

    system("cls");
    tampilan2();
    gotoxy(51,4);
    cout<<"OPERASI UPDATE DATA";
    cout<<endl<<endl<<endl;

    fa.open(namafile, ios::in | ios::out);
    while (fa.read((char*) &data, sizeof (data)))
    {
        if(data.cari() == kodecari)
        {
            cout<<endl<<endl;
            data.outputdata();
            cout <<"\t*********************************************************";
            cout <<endl;
            cout<<"\tSilahkan Masukkan Perubahan Data !"<<endl;
            data.inputdata();

            int pos=-1*sizeof(data);
            fa.seekp(pos, ios::cur);
            fa.write((char*) &data, sizeof (data));
            break;
        }
    }
    fa.close();

    cout<<endl;
    cout <<"\tApakah Anda Ingin Memperbarui Lagi (Y/T)? ";
    cin  >>mi;

    if (mi=='y')
    {
        system("cls");
        goto k;
    }
    else
    {
        cout <<"\tAnda Yakin ?"<<endl;
        cout <<endl;
    }
}



Dan kita sudah beranjak ke program yang terakhir yaitu mengenai update data yang menggunakan fstream sebagai pemanggil data dan akan diperbarui menggunakan input kedua. Dalam program ini menggunakan search code untuk menemukan barang dan kemudian baru merubahnya .



PEMBELI
tampilan();
        tampilan2();
        system("cls");
        tampilan();
        tampilan2();
        gotoxy(44,4);
        cout <<"OPERASI APA YANG ANDA INGINKAN";
        gotoxy(15,11);
        cout <<"1.VIEW DATA     "<<endl;
        gotoxy(55,12);
        cout <<"2.SEARCH DATA   "<<endl;
        gotoxy(95,13);
        cout <<"3.KELUAR        "<<endl;
        gotoxy(42,16);
        cout <<"Pilih Operasi Yang Anda Inginkan [ ]"<<endl;
        gotoxy(76,16);
        cin  >>in8;

        if (in8 == '1')
        {
            lihat();
            cout <<endl;
            cout <<"\tApakah anda ingin kembali ke menu utama (Y/T)? ";
            cin  >>in9;

            if (in9 == 'y')
            {
                system("cls");
                goto e;
            }

            else
            {
                system("cls");
                goto r;
            }

        }
        else if (in8 == '2')
        {
            cari();
            cout <<endl;
            cout <<"\tApakah Anda Ingin Kembali Ke Menu Utama (Y/T)? ";
            cin  >>in10;

            if (in10 == 'y')
            {
                system("cls");
                goto e;
            }
            else
            {
                system("cls");
                goto r;
            }

        }
        else if (in8 =='3')
        {
            system("cls");
            goto r;
        }
        else
        {
            gotoxy(48,15);
            cout <<"INPUT YANG ANDA MASUKKAN SALAH !"<<endl;
            system("cls");
            goto e;
        }



Didalam pilihan pembeli hanya bias melakukan : View data, Search data, Dan keluar Karena pembeli tidak memiliki hak untuk mengubah barang yang ada dalam toko.



KELUAR
else if (in == '3')
    {
        system("cls");
        tampilan();
        gotoxy(44,13);
        cout <<"TERIMA KASIH ATAS KUNJUNGAN ANDA";
        gotoxy(47,15);
        cout <<"ANDA BELANJA ANDA BERAMAL";
        getch();
        system("cls");
        return 0;
    }



Dan pilihan terakhir adalah keluar setelah pemilik/pembeli menyelesaikan pilihannya akan dapat menutup program ini dengan memilih angka 3(keluar).



D. PENUTUP



Mungkin sekian dari program yang saya buat saya berharap bisa bermanfaat bagi pengguna dan pembacanya. Sekian dan terimakasih.