Anda di halaman 1dari 21

BAB I PENDAHULUAN

1.1. Latar Belakang Bahan pokok merupakan kebutuhan harian yang tidak bisa lepas dari kehidupan manusia. Bahan pokok itu adalah : beras, minyak, telur, terigu, gula, mie, daging, cabe, bawang dan lainnya. Barang ini bisa berputar di tempat usaha dengan cepat apabila dapat mengelolanya dengan baik, karena barang ini dikonsumsitiada henti selama manusia embutuhkan untuk hidup. Usaha bahan pokok juga dijual dengan mengikuti trn tahunan dan pasti terjadi di negara kita Indonesia, sebagai contoh pada bulan tertentu ada tradisi budaya dan selalu berkaitan dengan perubahan harga dan sirkulasi ahan pokok yang ada. Era globalisasi membawa dampak positif bagi perkembangan teknologi, khususnya teknologi komputerisasi. Fungsi komputer yang dapat mempermudah kegiatan manusia, mengakibatkan penggunaan komputer dalam berbagai bidang kehidupan. Dengan kemajuan teknologi tersebut, pengaksesan terhadap data atau informasi yang tersedia dapat berlangsung dengan cepat, efisien serta akurat. Perangkat komputer sebagai alat bantu menjadi semakin berperan dalam menyelesaikan suatu pekerjaan. untuk merancang sebuah program yang dapat dipergunakan sebagai alat bantu dalam menyelesaikan sebuah pekerjaan dalam bidang tertentu, seperti mesin gudang pada sebuah toko bahan pokok agar mempermudah dan mempercepat mendata bahan pokok di gudang tersebut. Program inventory bahan pokok itu bisa mempermudah dan mempercepat dalam mendata barang-barang yang ada di gudang. Dalam hal ini seperti memasukkan data, mengurutkan data dan mencari data yang telah dimasukkan akan lebih praktis. Seiring dengan berkembangnya zaman pasti berbagai jenis barang akan semakin bertambah sehingga dengan adanya program ini akan mempermudah mendata barang tersebut. Salah satu layanan yang membantu untuk mengatasi hal tersebut adalah aplikasi inventory bahan pokok yang akan memberikan layanan untuk mendata barang bahan pokok. Dan hanya dengan memilih menu-menu yang telah tersedia dengan mudah dapat memasukkan data dengan mudah. Dari latar belakang diatas, maka akan dibuat sebuah program sederhana, yang mampu untuk mempermudah mendata barang dalam sebuah gudang bahan pokok. 1

1.2.

Batasan Masalah Karena permasalahan keterbatasan waktu penulis dan agar pembahasan tidak menyimpang dari tujuan maka dilakukan pembatasan masalah sebagai berikut : a. Program masih berupa text. b. Program ini tidak dapat menyimpan data secara permanent c. Program dirancang dengan menggunakan bahasa pemograman C++. d. Program yang dirancang dengan sedemikian rupa sehingga dapat bekerja secara dinamis dan berkelanjutan. e. Dalam program ini penulis menggunakan pointer, structure, linked list, insertion sorting, dan searching.

1.3

Tujuan 1. Membuat program inventory bahan pokok dengan menggunakan bahasa C++ 2. Mempermudah dalam mendata bahan pokok dengan menggunakan bahasa C++ 3. Dapat mengefesienkan waktu dalam mendata bahan pokok 4. Memudahkan pengguna dalam mencari data berdasarkan kode barang

BAB II PEMBAHASAN
2.1 Landasan Teori Program sederhana ini menggunakan beberapa metode yang di terapkan didalamnya. Berikut akan di jelaskan metode atau statement-statement yang di gunakan dalam program ini. 2.1.1 Procesor directive : # include <iostream.h> yang diperlukan pada program yang melibatkan cout. # include <conio.h> yang dipergunakan bila melibatkan clrscr(),yaitu perintah untuk membersihkan layar. # include <math.h> yang dipergunakan untuk penhitungan matematika. #include <vector.h> yang berfungsi untuk sekumpulan garis, kurva, dan bidang tertentu yang masing-masing didefinisikan secara matematis. #include <string.h> yang digunakan untuk pemrosesan string. #include <stdio.h> Header yang berisidefinisi makro, konstanta, dan deklarasi fungsi dari dua jenis yang digunakan untuk berbagai standar input output operasi. 2.1.2 Void Function / Prosedur Fungsi merupakan blok dari kode yang dirancang untuk melakukan tugas khusus. Pada intinya fungsi digunakan untuk mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut. 2.1.3 If Percabangan dengan statement if memiliki pengertian Jika kondisi bernilai benar, maka perintah akan dikerjakan dan jika kondisi bernilai salah maka akan menjalankan intruksi yang selanjutnya seperti pada diagram alir if pada gambar 2.1 .

Gambar 2.1 Diagram alir if 2.1.4 If-Else Percabangan dengan statement if-else memiliki pengertian Jika kondisi bernilai benar, maka perintah-1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan perintah-2. Dari pengertian tersebut dapat dilihat dari diagram alir berikut yaitu pada gambar 2.2 tentang diagram alir if-else :

Gambar 2.2 Diagram alir If-Else 2.1.5 Switch- Case Statement switch akan menyeleksi kondisi yang diberikan kemudian membandingkan hasilnya dengan case. Apabila ada hasil kondisi yang sama dalam case dari statemen-statemen tertentu, maka yang akan diproses adalah statement pertama sampai menemui statement break. Jika kostanta yang di bandingkan itu tidak ada maka statement akan berada pada default. Bentuk default ini sifatnya optimal 4

2.1.6 For Perulangan dengan pernyataan for digunakan untuk mengulang pernyataan atau satu blok pernyataan berulang kali sejumlah yang ditentukan. Perulangan dengan pernyataan for dapat berbentuk perulangan positif, perulangan negatif dan perulangan tersarang. 2.1.7 Array Merupakan kumpulan data. Pada beberapa bahasa pemrograman, data yang terkandung dalam satu larik harus bertipe sama.Array merupakan sekumpulan data yang mempunyai nama dan tipe yang sama.Array disebut juga variable berindeks. 2.1.8 Pointer Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu lokasi memori tertentu. Jadi pointer tidak berisi nilai data, melainkan berisi suatu alamat memori atau null jika pointer tidak berisi data disebut null pointer. Pointer yang tidak diinisialisasi disebut dangling pointer Lokasi memori tersebut bisa diwakili sebuah variabel atau dapat juga berupa nilai alamat memori secara langsung.ilustrasinya dapat dilihat dalam Gambar
2.3.

Gambar 2.3 Ilustrasi Pointer 2.1.9 Linked list(senarai berantai) Senarai berantai (bahasa Inggris: linked list) atau kadang-kadang disebut dengan senarai bertaut atau daftar bertaut dalam ilmu komputer merupakan sebuah struktur data yang digunakan untuk menyimpan sejumlah objek data biasanya secara terurut sehingga memungkinkan penambahan, pengurangan, dan pencarian atas elemen data yang tersimpan dalam senarai dilakukan secara lebih efektif. Pada praktiknya sebuah struktur data memiliki elemen yang digunakan untuk saling menyimpan rujukan antara satu dengan 5

lainnya sehingga membentuk sebuah senarai abstrak, tiap-tiap elemen yang terdapat pada senarai abstrak ini seringkali disebut sebagai node. karena mekanisme rujukan yang saling terkait inilah disebut sebagai senarai berantai.

Gambar 24 Sebuah senarai berantai 2.1.10 Structure Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun fieldfield tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat diakses secara individual.Field-field tersebut digabungkan menjadi satu dengan tujuan untuk kemudahan dalam operasinya. Misalnya Anda ingin mencatat data-data mahasiswa dan pelajar dalam sebuah program, Untuk membedakannya Anda dapat membuat sebuah record mahasiswa yang terdiri dari field nim, nama, alamat dan ipk serta sebuah record pelajar yang terdiri dari field-field nama, no urut, alamat dan jumnilai Dengan demikian akan lebih mudah untuk membedakan keduanya. Bentuk umum: -Menggunakan typedef typedef struct nama_struct { tipe_data <nama_var>; tipe_data <nama_var>; } ; -Tanpa Menggunakan typedef struct nama_struct { tipe_data field1; Atau tipe_data field2; tipe_data fieldn; };

2.1.11 Sorting Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter.Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun).Pengurutan (Sorting) adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga tersusun secara teratur menurut aturan tertentu. Sorting yang penulis gunakan ialah menggunakan metode insertion sort yang cara kerjanya sebagai berikut : a. Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. b. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. c. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang. 2.1.12 Searching Interpolation Search Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu. Teknik searching ini dilakukan dengan perkiraan letak data. Contoh ilustrasi: jika kita hendak mencari suatu kata di dalam kamus telepon, misal yang berawalan dengan huruf J, maka kita tidak akan mencarinya dari awal

buku, tapi kita langsung membukanya pada 1/3 atau 1/4 dari tebal kamus. Rumus posisi relatif kunci pencarian dihitung dengan rumus: - Jika data[posisi] > data yg dicari, high = pos 1
- Jika data[posisi] < data yg dicari, low = pos + 1

2.2 Algoritma Algoritma dari program ini sangatlah sederhana, sebagai berikut : 1. Mulai 2. Tampilan Menu 3. Input Pilihan 4. No Pilihan = 1 (Masukkan Data Bahan Pokok) 7

Jika ya

: maka input berapa jumlah data yang akan ditambahkan

Jika tidak : maka kelangkah selanjutnya yaitu kelangkah ke 2 5. No Pilihan= 2 (Lihat Data Bahan Pokok yang Telah Dimasukkan) Jika ya : maka output data bahan pokok Jika tidak : maka kelangkah selanjutnya yaitu kelangkah 2 6. No Pilihan= 3 (Cari Data Bahan Pokok) Jika ya : maka output data bahan pokok yang dicari Jika tidak : kelangkah 2 7. No Pilihan= 4 (Keluar) Jika ya 8. Selesai : maka terdapat tampilan anda ingin keluar dari program ini? Jika tidak : maka kelangkah selanjutnya yaitu kelangkah 2

2.1 Flow Chart

Gambar 2.5 Flowchart

2.2 Listing Program


/* Program by rdp (ryan dony pratama) (nim 1218250) (kelas D) (ITN Malang) */

#include <iostream.h> #include <conio.h> #define MAX 100 int jumlah=0,kode,c; void void void void void void void void void header(); garis(); menu(); tambah(); urutkan(); tampilkan(); searching(); cari(); plus();

struct data_barang { int kode; char nama[24]; char jenis [24]; char stok [100]; data_barang *sebelumnya; data_barang *selanjutnya; };data_barang *kepala=NULL,*ekor=NULL,data[MAX]; main() { char ulang='n'; int pilihan; while(ulang=='n') { clrscr(); header(); menu(); garis(); gotoxy(1,24); cout<<"Masukkan pilihan anda : ";cin>>pilihan; switch(pilihan) { case 1: clrscr(); plus(); break; case 2: clrscr(); urutkan();

10

tampilkan(); break; case 3: clrscr(); cari(); break; case 4: clrscr(); header(); gotoxy(23,10); cout<<"ANDA INGIN KELUAR DARI PROGRAM INI ?"<<endl; gotoxy(35,12); cout<<"[ y / n ] ? : ";cin>>ulang; break; default: clrscr(); header(); gotoxy(23,10); cout<<"PILIHAN YANG ANDA MASUKKAN SALAH !!"<<endl; cout<<"\n\nTekan 'Enter' untuk kembali ke menu"; getch(); } } void header() { gotoxy(26,2); cout<<"PROGRAM INVENTORY BAHAN POKOK"<<endl; gotoxy(2,4); cout<<"by : rdp[1218250]"<<endl; garis(); } void garis() { cout<<"________________________________________________________ _______________________"<<endl<<endl; cout<<"------------------------------------------------------------------------------"<<endl<<endl; } void menu() { cout<<"1. Masukkan Data Bahan Pokok\n"<<endl; cout<<"2. Lihat Data Bahan Pokok yang Telah Dimasukkan\n"<<endl; cout<<"3. Cari Data Bahan Pokok\n"<<endl; cout<<"4. Keluar\n"<<endl; } int cekKosong() { if(kepala==NULL) { }

11

return 1; } else { return 0; }

void tambah() { data_barang *baru; baru = new data_barang; clrscr(); header(); gotoxy(30,9); cout<<"MASUKAN DATA BARU"<<endl<<endl; c--; cout<<"\nsisa bahan pokok yg dimasukkan kurang : "<<c<<endl<<endl; cout<<"Masukkan Kode Bahan Pokok : ";cin>>data[jumlah].kode; cout<<"\nMasukkan Nama Bahan Pokok : ";cin>>data[jumlah].nama; cout<<"\nMasukkan Jenis Bahan Pokok : ";cin>>data[jumlah].jenis; cout<<"\nMasukkan Stok Bahan Pokok : ";cin>>data[jumlah].stok; cout<<"\n\nTekan 'Enter' untuk kembali ke menu"; baru->kode=data[jumlah].kode; strcpy(baru->nama,data[jumlah].nama); strcpy(baru->jenis,data[jumlah].jenis); strcpy(baru->stok,data[jumlah].stok); baru->sebelumnya=NULL; baru->selanjutnya=NULL; if(cekKosong()==1) { kepala=baru; ekor=kepala; kepala->sebelumnya=NULL; kepala->selanjutnya=NULL; ekor->sebelumnya=NULL; ekor->selanjutnya=NULL; } else { baru->selanjutnya=kepala; kepala->sebelumnya=baru; kepala=baru; } jumlah++; }

12

void plus() { int a,b; header(); cout<<"Masukan Jumlah Data Yang Akan ditambahkan : ";cin>>b; cout<<endl; c=b; for (a=1;a<=b;a++) { } } void tampilkan() { header(); gotoxy(33,9); cout<<"LIHAT DATA BARANG"<<endl; { if(cekKosong()==1) gotoxy(27,9); cout<<"TIDAK ADA DATA TERSIMPAN tambah();

getch();

!"<<endl; } else { for(int i=0;i<jumlah;i++) { garis(); cout<<"Kode Bahan Pokok : "<<data[i].kode<<endl; cout<<"\nNama Bahan Pokok : "<<data[i].nama<<endl; cout<<"\nJenis Bahan Pokok : "<<data[i].jenis<<endl; cout<<"\nJumlah Stok Bahan Pokok : "<<data[i].stok<<endl; garis(); } } cout<<"\n\nTekan 'Enter' untuk kembali ke menu"; getch(); } void urutkan() { int pos,i,j,temp; char temp2[20],temp3[20],temp4[20]; for(i=0;i<jumlah;i++) { pos=i;

13

for(j=i+1;j<jumlah;j++) { if(data[j].kode<data[pos].kode) { pos=j; } } if(pos!=i) { temp=data[i].kode; data[i].kode=data[pos].kode; data[pos].kode=temp; strcpy(temp2,data[i].nama); strcpy(data[i].nama,data[pos].nama); strcpy(data[pos].nama,temp2); strcpy(temp3,data[i].jenis); strcpy(data[i].jenis,data[pos].jenis); strcpy(data[pos].jenis,temp3); strcpy(temp4,data[i].stok); strcpy(data[i].stok,data[pos].stok); strcpy(data[pos].stok,temp4);

} } }

void searching(int a,int b) { int awal=a; int akhir=b; if(awal<=akhir) { int tengah=(awal+akhir)/2; if(kode==data[tengah].kode) { clrscr(); header(); gotoxy(33,9); cout<<"CARI DATA"<<endl; garis(); cout<<"Kode Bahan Pokok "<<data[tengah].kode<<endl; cout<<"\nNama Bahan Pokok "<<data[tengah].nama<<endl; cout<<"\nJenis Bahan Pokok "<<data[tengah].jenis<<endl; cout<<"\nJumalah Stok Bahan Pokok "<<data[tengah].stok<<endl; garis(); } else if(kode>data[tengah].kode)

: : : :

14

{ awal=tengah+1; searching(awal,akhir); } else if(kode<data[tengah].kode) { akhir=tengah-1; searching(awal,akhir); } } else { clrscr(); header(); gotoxy(30,9); cout<<"CARI DATA TERSIMPAN"<<endl; garis(); gotoxy(28,15); cout<<"DATA TIDAK DITEMUKAN !"; }

void cari() { header(); gotoxy(30,9); cout<<"CARI DATA TERSIMPAN"<<endl<<endl; urutkan(); cout<<"Cari Berdasarkan Kode Bahan Pokok : ";cin>>kode; searching(0,jumlah-1); cout<<"\n\nTekan 'Enter' untuk kembali ke menu"; getch(); }

2.3 Output dan Penjelasan Program Sederhana saja, ketika kita memulai program ini , akan nampak sebuah tampilan utama program seperti gambar 2.6 yang berisi judul dan menu Program yaitu empat buah pilihan, menu pertama yaitu masukkan data bahan pokok, yang kedua lihat data bahan pokok yang telah dimasukkan, yang ketiga cari data bahan pokok dan yang ke empat yaitu keluar.

15

Gambar 2.6 Tampilan Awal Misalnya disini kita memilih Program nomer 1 yaitu masukkan data bahan pokok, maka akan keluar tampilan seperti gambar 2.7

Gambar 2.7 Masukkan Jumlah Data Setelah Tampilan Seperti Pada Gambar 2.7 Keluar maka kita diharuskan memasukkan atau menginputkan jumlah data yang akan dimasukkan. Misalnya disni kita memasukkan 2 data bahan pokok. Hasilnya seperti Gambar 2.8.

Gambar 2.8 Masukkan Bahan Pokok yang Pertama 16

Pada Gambar 2.8 masukkan kode bahan pokok, nama bahan pokok, jenis bahan pokok dan jumlah stok bahan pokok yang pertama. Misalkan disini kita masukkan kode bahan pokok 2, nama bahan pokok gulaku, jenis bahan pokok gula dan jumlah stok bahan pokok 10. Hasilnya seperti gambar 2.9.

Gambar 2.9 Masukkan Bahan Pokok yang Kedua Pada gambar 2.9 masukkan kode bahan pokok, nama bahan pokok, jenis bahan pokok dan jumlah stok bahan pokok yang kedua. Misalkan disini kita masukkan kode bahan pokok 1, nama bahan pokok mentari, jenis bahan pokok beras dan jumlah stok bahan pokok 10. Karena sisa bahan pokok yang dimasukkan kurang 0 maka hasilnya kita akan kembali ke tampilan awal seperti gambar 2.6 diatas. Kemudian kita pilih program nomer 2 yaitu lihat data barang yang telah dimasukkan, maka akan keluar tampilan seperti gambar 2.10.

17

Gambar 2.10 Lihat Data Bahan Pokok Pada gambar 2.10 menampilkan semua data bahan pokok yang telah dimasukkan secara urut dari kode barang. Kemudian tekan Enter untuk kembali ke tampilan awal seperti gambar 2.6 diatas. Selanjutnya kita pilih program nomer 3 yaitu cari data bahan pokok, maka akan keluar tampilan seperti gambar 2.11.

Gambar 2.11 Cari Data Bahan Pokok Pada Tampilan Gambar 2.11 masukkan kode bahan pokok yang akan dicari. Milsalkan kita masukkan 2, maka akan keluar tampilan seperti gambar 2.12.

18

Gambar 2.12 Data Yang Dicari Dan pada menu ke empat yaitu keluar jika inputkan pilihan 4 maka akan keluar dari program.

19

BAB III PENUTUP


3.1. Kesimpulan Kesimpulan dari progam ini adalah progam inventory bahan pokok menggunakan beberapa statement, diantaranya adalah penggunaan pointer, struct, linked list, searching ,dan sorting. Cara kerja progam ini cukup mudah, tinggal memasukkan pilihan yang ada didaftar menu kemudian mengikuti alur program. Dengan adanya program yang telah dibuat, penulis dapat mengambil kesimpulan yaitu : 1. Progam ini dapat mempercepat para pengguna untuk mendata bahan pokok. 2. Program yang dibuat walaupun masih sederhana tetapi mempunyai fungsi atau kegunaan yang sudah meringankan pekerjaan pengguna. 3.2 Saran Berikut beberapa saran agar progam ini lebih baik : a. Pembuatan program berbasis GUI agar terlihat lebih bagus. b. Menggunanakan software yang berdatabase dalam pembuatan program agar lebih mudah dalam pembuatan program tersebut. c. Data bahan pokok yang dimasukkan lebih detail lagi tidak hanya kode, nama, jenis dan stok bahan pokok.

20

DAFTAR PUSTAKA
Abe, Alexander.2001.Statement Switchcase.Yogyakarta:Lapera Pustaka Utama. Frieyadie. 2007. Borland C++. Jakarta: Bina Sarana Informatika. Kadir,Abdul. 2003. Pemrograman C++. Andi Offset. Yogyakarta. Tim Algoritma & Pemrograman. 2012. Modul Algoritma & Pemrograman Bahasa C . Malang: Laboratorium Pemrograman Insitut Teknologi Nasional Malang.

21

Anda mungkin juga menyukai