LAPORAN
TUGAS
PROYEK DASAR PEMROGRAMAN
(Mesin
Pendataan Barang Dagang)
Dosen Pengampu : Muhammad Nugraha,M.Eng

Disusun Oleh :
Nama :Armuser
Dimas Saputra
NIM :372016611499
PROGRAM
STUDI TEKNIK INFORMATIKA
FAKULTAS
SAINS DAN TEKNOLOGI 
UNIVERSITAS
DARUSSALAM GONTOR
2016
- Deskripsi ProgramPada 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.
 - Penggunaan programDisini saya akan menjelaskan bagaimana cara saya menjalankan program saya yang telah saya buat dengan menampilkannya dilayar pc.
 
- 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.

- 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
 

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

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.

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.

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.

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.

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.

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

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.

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 :

Dan
yang terakhir adalah keluar dari menu pemilik.
- 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.
 
 - 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.