TUGAS BESAR PRAKTIKUM PEMROGRAMAN KOMPUTER
Disusun oleh: DIMAS SEPTIAN IMAM RAHARJA 1800019049 BIMA DZAKY SYAHLANI
1800019050
YUSUF NUR HIDAYAT
1800019051
MUHAMMAD RIFKA YUSRA
1800019052
PROGRAM STUDI TEKNIK INDUSTRI FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS AHMAD DAHLAN YOGYAKARTA 2018
LEMBAR PENGESAHAN Laporan Praktikum Pemrograman Komputer ini telah disetujui dan disahkan sebagai salah satu syarat lulus praktikum Pemrograman Komputer di Program Studi Teknik Industri Fakultas Teknologi Industri Universitas Ahmad Dahlan Yogyakarta. Nama
: 1. Dimas Septian Imam R
(1800019049)
: 2. Bimma Dzaky S
(1800019050)
: 3. Yusuf Nur Hidayat
(1800019051)
: 4. Muhmaad Rifka Yusra
(1800019052)
Yogyakarta, Desember 2018
Menyetujui, Asisten Pembimbing Mufida Nur Khasanah
ii
KATA PENGANTAR Dengan memanjatkan puji syukur kehadirat Allah swt, atas berkat rahmat dan hidayah-Nya sehingga kami dapat menyelesaikan tugas besar praktikum pemrograman dasar computer yang berjudul “Engineering Pharmacy” dengan lancar untuk menyelesaikan tugas besar. Ucapan terima kasih penulis sampaikan kepada pihak-pihak yang mempunyai andil dalam proses penyusunan laporan ini atas bantuan dan partisipasinya. Ucapan terima kasih disampaikan antara lain kepada: 1. Ibu Amalia Yuli Astuti, S.T.,M.T. Selaku dosen pembimbing mata kuliah pemrograman dasar komputer. 2. Ibu Utaminingsih Linarti, S.T., M.T. Selaku dosen matakuliah pemrograman dasar komputer 3. Mufida Nur Khasanah selaku asisten dosen yang telah membimbing kami sampai laporan ini dapat terselesaikan. 4. Orang tua atas izin, dukungan, dan doanya sehingga laporan tugas besar ini dapat terselesaikan. 5. Teman-teman yang telah memberikan dukungan untuk menyelesaikan laporan tugas besar ini. Walaupun penyusunan laporan tugas besar ini telah diusahakan dengan sebaikbaiknya, namun tentu tak luput dari kekurangan. Oleh karena itu, kami mengharapakan bantuan para pembaca untuk berkenan memberikan kritik dan saran yang membangun. Akhirnya, kami berharap semoga laporan ini dapat diterima untuk ditindaklanjuti. Yogyakarta, 11 Desember 2018
Penulis
iii
DAFTAR ISI HALAMAN MUKA .............................................................................................. i HALAMAN PENGESAHAN ..............................................................................ii KATA PENGANTAR .........................................................................................iii DAFTAR ISI ........................................................................................................ iv DAFTAR TABEL ............................................................................................... vi DAFTAR GAMBAR ..........................................................................................vii DAFTAR LAMPIRAN ....................................................................................... ix BAB I PENDAHULUAN A. Latar Belakang ..................................................................................... 1 B. Rumusan Masalah ................................................................................ 2 C. Tujuan................................................................................................... 2 BAB II LANDASAN TEORI A. Deklarasi, Variabel, Tipe Data, dan Operator ...................................... 3 B. Logika Kondisi ..................................................................................... 4 C. Perulangan (Loop) ................................................................................ 7 D. Array .................................................................................................... 9 E. Visual Component Library (VCL) ..................................................... 10 F. Data Base……………………………………………………………11 G. Data Base Lanjutan………………………………………………………11 BAB III ALGORITMA PROGRAM A. Flow Chart ................................................................................................. 13 BAB IV PROGRAM A. Langkah-Langkah Program ..................................................................... 16 B. Gambar Aplikasi........................................................................................ 17
C. Source code …………………………………………………………….24 BAB V PENUTUP A. Kesimpulan ........................................................................................ 47 B. Saran ................................................................................................... 47 DAFTAR PUSTAKA…………………………………………………………..48
vi
DAFTAR TABEL Tabel 1 Data Jenis Obat Umum……………………………………………….…22 Tabel 2 Data Jenis Obat Dokter….………………………………………………22
vii
DAFTAR GAMBAR Gambar 4.1. Menu Login………………………………………………………………...16 Gambar 4.2 Menu Penjualan Obat ………………………………………………………17 Gambar 4.3. Menu Laporan Penjualan Umum...………………………………………...18 Gambar 4.4. Menu Laporan Penjualan Dokter...………………………………………...18 Gambar 4.5. Struk Pelanggan….………………………………………………………...19 Gambar 4.6. Struk Laporan Umum...…………………………………………………....20 Gambar 4.7. Struk Laporan Dokter……. ...……………………………………………...21
viii
DAFTAR LAMPIRAN Lock Book…………………………………………………………………………..........49
ix
BAB I PENDAHULUAN A. Latarbelakang Apotek merupakan tempat yang dijadikan transaksi jual beli atau pelayanan produk dari farmasi. Di dalam apotek juga telah disediakan tenaga kefarmasian yang ditujukan untuk melakukan pelayanan kepada masyarakat untuk perbekalan kesehatan yang lainnya. Apotek juga dapat dikatakan sebagai suatu temapat pelayanana kesehatan yang berhubungan dengan halhal yang berbau kefarmasian seperti obat, bahan obat, obat tradisioanal, alat kesehatan, kosmetika yang ditujukan pada masyarakat umum. Aplikasi merupakan Teknologi yang berkembang pesat pada saat ini, kemajuan teknologi dalam membantu pengolahan data atau informasi yang tersedia dapat berlangsung secara cepat dan efisien serta akurat. Kemajuan aplikasi dapat dilihat dari banyaknya aplikasi yang dapat memudahkan penggunanya dalam membantu pekerjaannya. Salah satu model aplikasi yang sangat berperan penting adalah aplikasi pengolahan data yang sangat bermanfaat dan membantu dalam penyimpanan data. Sekarang ini memang tidak banyak apotek yang menggunakan cara konvensional untuk penulisan transaksi dan penulisan laporan penjualan secara manual karrena kesulitan dalam pencatatan transaksi dan pencatatan laporan penjualan yang cukup memakan banyak waktu. Aplikasi penjualan adalah aplikasi yang digunakan untuk memudahkan dalam pencatatan atau record data Penjualan. Aplikasi ini banyak digunakan pada bisnis retail dimana pimpinan bisa melihat laporan penjualan mulai dari Laporan Harian, Mingguan, Bulanan bahkan Tahunan. Mempermudah dalam pendataan maka dibuat sebuah aplikasi pendataan transaksi pembayaran bagi sebuah apotek yang berbasis komputer menggunakan program Borland Delphi 7 agar lebih cepat dan efisien.
1
2
Aplikasi engineering pharmacy ini sangat mudah untuk dioperasikan karena tampilan yang sederhana. Oleh karena itu, aplikasi ini dapat membantu dalam pendataan transaksi atau laporan penjualan obat bagi apotek.
B. Identifikasi masalah Berdasarkan latar belakang diatas, maka penulis mengidentifikasikan beberapa masalah yang ada, antara lain: 1. Pengelolaan laporan penjualan yang masih menggunakan cara manual dan laporan penjualan kepada pemilik apotek. 2. Pengelolaan data transaksi yang memakan banyak waktu. 3. Tidak ada bukti penjualan kepada konsumen.
C. Tujuan Berdasarkan latar belakang diatas, tujuan dari pembuatan laporan ini antara lain: 1. Mempermudah dalam pembuatan laporan penjualan baik data ataupun informasi dengan jelas. 2. Mempermudah perhitungan transaksi yang harus dibayar sesuai dengan obat yang dibeli. 3. Mempermudah dalam pencetakan struk kepada pembeli agar mengetahui obat yang dibeli.
BAB II LANDASAN TEORI
A. Deklarasi Variabel, Tipe Data, dan Operator
1.
Deklarasi Variabel Dalam setiap penulisan Bahasa pemrograman deklarasi sangat digunakan apabila dalam penulisan program dibutuhkan identifier atau tanda pengenal. Identifier pada umumnya dibuat oleh programmer yang digunakan untuk mewakili nilai dari suatu objek. Sebelum suatu variable dapat digunakan, variable harus dapat di deklarasikan terlebih dahulu. Pengertian deklarasi disini adalah menyebutkan nama 3ariable dan tipe datanya Variabel di deklarasikan pada bagian yang di awali dengan kata “var”. (Andoyo, 2003).
2.
Tipe Data Tipe data pada dasarnya merupakan nama untuk sejenis data. Ketika kita mendeklarasikan sebuah 3ariable, maka 3ariable tersebut harus mempunyai sebuah tipe data, yang menentukan nilai-nilai yang dapat dimuat dan di operasikan pada 3ariable tersebut. (Andoyo, 2003). Secara sederhana tipe data dapat didefinisikan dengan istilah tempat untuk menentukan pemberian nilai terhadap suatu 3ariable sesuai atau tidak dengan nilai yang diberikan oleh user. Dalam versi lain tipe data juga di definisikan sebagai 3ariabl terhadap fungsi tanda pengenal terhadap semua nilai yang di terima. Logika yang dapat kita berikan adalah ketika kita menempatkan tanda pengenal harga hanya angka, maka ketika kita memberikan nilai berupa string maka secara otomatis data tersebut akan ditolak
karena
nilai 3
tersebut
4
tidak dikenali oleh tipe data yang diberikan. Terdapat beberapa tipe data pada Delphi yaitu string,char,real, dan integer.
3.
Operator Operator dipakai untuk memanipulasi dan mengolah data. Delphi menyediakan bermacam-macam operator. Setiap operator mempunyai tingkat hierarki, yaitu urutan pelaksanaan jika ada beberapa operator dalam suatu proses. Sebagai contoh, jika terdapat ekspresi X+Y*Z, maka akan dilaksanakan terlebih dahulu operasi Y*Z, baru setelah itu, hasil operasi X*Y ditambah X. Hal ini disebabkan operator perkalian (dengan symbol *) hierarkinya lebih tinggi dari operator penambahan (dengan symbol +).
B. Logika Kondisi 1.
If..Then.. Bentuk pertama percabangan adalah bentuk if..then. Pada bentuk ini pemilihan keputusan hanyha untuk satu bagian atau percabangan. Ini artinya jika kondisi percabangan saja yang di kerjakan, dan kondisi percabangan tidak terpenuhi, tidak ada yang dikerjakan. (Mangkulo, 2005). Bentuk sintaks dari percabangan ini adalah: If
then Begin {aksi} End;
2.
If..Then..Else Pada percabangan bentuk If..Then..Else terdapat dua bagian atau percabangan. Bagian atau percabangan pertama adalah tempat untuk pernyataan bila kondisi tercapai. Perbedaannya dengan bentuk If..Then adalah
5
pada bentuk ini terdapat dua bagian atau percabangan, pada bentuk If..Then hanya terdapat satu bagian saja atau percabangan tunggal. (Mangkulo, 2005). Bentuk sintaks dari percabangan ini adalah: If then Begin {aksi 1} End Else Begin {aksi 2} End; 3.
Case..Of Perintah bersyarat Case umumnya digunakan untuk kondisi dengan banyak percabangan. Syarat pencabangan pada bentuk ini hanya boleh satu buah parameter dengan tipe data bukan Real. Pemeriksaan kondisi di sini lebih tepat disebutkan dalam hubungan relasi samadengan (=).
Dengan
demikian bila parameter bernilai tertentu maka dilakukan suatu aksi terkain, bila bernilai lain mkaka di lakukan aksi yang lain juga, demikian seterusnya. Bentuk umum penggunaan Case..Of : Case <Parameter> of : ; ; ; : ; … : ; Else End;. (Astuti A. Y. & Utaminingsih , 2017).
6
C. PERULANGAN (LOOP) Salah satu kelebihan 6ariable adalah dapat melakukan perhitungan berulang dengan sangat cepat. Dengan demikian, salah satu algoritma yang penting adalah mempelajari aspek-aspek perulangan. Delphi memberikan tiga alternative pengulangan, yaitu dengan For, While, atau Repeat. Masingmasing memiliki karakteristik, yang akan dipelajari pada bagian ini. Ada dua hal yang penting dalam melakukan merancang perintah pengulangan, yaitu: -Inisialisasi awal -Nilai akhir perulangan atau kondisi berhenti. -Konsep Counter Perhatikan Penugasan berikut ini: i←i+1 Arti dari penugasan diatas adalah I sebelah kiri merupakan harga I yang baru setelah harga I sebelah kanan ditambah dengan 1. Dengan demikian, I merupakan counter (pencacah) dimana setiap kali pernyataan penegasan itu dieksekusi, harga I akan bertambah 1. Perulangan digunakan untuk menjalankan satu atau beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali. 1. Macam-macam Pernyataan Perulangan a. For…to…do Pada perulangan pada For, inisialisasi awal dan kondidi akhir ditentukan dengan menggunakan suatu variable kendali yang nilainya dibatasi dalam suatu range tertentu. Sintaks untuk perintah ini adalah:
7
For := to do Begin ….{aksi}
End;
Atau For := downto do Begin ….{aksi}
End; Perbedaan antara to dan downto adalah pada kondisi nilai awal dan akhir. Pada to
nilai awal lebih kecil dari nilai akhir,
sedangkan pada downto nilai awal lebih besar dari nilai akhir. B. While…do Pada metode pengulangan ini aksi hanya akan diproses bila kondisi pengulangan terpenuhi, bentuk sintaks dari pengulangan ini Whileadalah. do Begin ….{aksi}
End;
8
Selama kondisi_pengulangan bernilai true maka aksi akan dilakukan dan baru akan berhenti setelah kondisi pengulangan bernilai false. Karena kondisi pengulangan diperiksa pada bagian awal, maka ada kemungkinan aksi tidak pernah dilakukan, yaitu bila kondisi pengulangan tidak pernah bernilai true. C. Repeat…until Metode pengulangan ini juga melakukan pengulangan berdasarkan pemeriksaan kondisi pengulangan. Hanya saja alur dari pengulangan ini adalah system seakan-akan memaksa untuk melakukan pengulangan,sampai di ketahui adanya kondisi berhenti. Bentuk sintaks dari pengulangan ini adalah: Repeat ….{aksi}
Until Berlawanan dengan While, yang akan memproses aksi hanya bila kondisi_pengulangan bernilai true, pada pengulangan Repeat, system akan memproses aksi selama kondisi_berhenti bernilai false. Dengan demikian aksi pasti akan selalu diproses (minimal satu kali). Pada tipe ini, pengulangan dapat terjadi terus-menerus (tidak pernah berhenti), yaitu bila kondisi berhenti tidak pernah bernilai true (Astuti A. Y. & Utaminingsih , 2017).
D. Array Array (larik) merupakan tipe data terstruktur dimana datanya terdiri dari komponen-komponen yang mempunyai tipe daya yang sama. Didalam array jumlah komponen banyaknya adalah tetap. Didalam suatu larik atau
9
array setiap komponen ditunjukkan oleh suatu index yang unik. Index dari setiap komponen array menunjukkan urutan data atau identitas data yang mewakili data yang ada didalamnya. Logika sederhananya array itu bias disamakan denga dua orang dengan nama yang sama didalam sutu komunitas, untuk membedakan antara nama yang satu atau dengan nama yang lain makan diberikan inisial tambahan untuk setiap nama. Didalam penulisan 9ariab pemograman setiap penggunaan array harus dideklarsikan terlebih dahulu. Pendeklarasian array diawali dengan nama 9ariable array diikuti dengan indeks array yang dituliskan didalam tanda “[]” , diikuti dengan kata cadangan of dan tipe data yang dibutuhkan. (delphi, 2006).
E. Visual Component Library (VCL)
Visual Component Library (VCL) adalah hierarki dari class (object) yang ditulis dengan Object Pascal dan tergabung dalam IDE Delphi. Dengan Component Palette dan Object Inspector komponen VCL dapat ditempatkan pada form dan memanipulasi property nya tanpa menuiskan program. Bagian visual dari VCL merupakan pembungkus Windows API. VCL membungkus control-kontrol Windows seperti button, kotak edit, tree view, list view. VCL juga memberikan class Tcanvas yang berisi fungsi grafik sehingga anda dapat dengan mudah mengecat ulang sebuah jendela (Astuti A. Y. & Utaminingsih , 2017). . Membangun aplikasi diperlukan komonen-kompnen yang ada pada Delphi. Komponen pada Delphi memiliki dua sifat, yaitu komponen visual adalah komponen visual dan novisual. Komponen visual adalah komponen
10
yang terlihat pada saat aplikasi di jalankan. Contoh dari komponen visual diantaranya adalah Label,Edit, Memo, Button, dan RadioButton. Komponen nonvisual adalah komponen yang tidak terlihat oleh user pada saat aplikasi di jalankan, tetapi komponen tersebut menghasilkan tampilan seseuai dengan fungsi komponen tersebut. Contoh dari komponen nonvisual ini diantaranya adalah MainMenu, PopUpMenu, OpenDialog, dan Timer (Pujianto, 2007). F. Data Base dalam Delphi DataBase adalah program yang disediakan oleh Borland Delphi untuk melakukan pembuatan DataBase. Dengan menggunakan program inilah nanti kita akan membuat tabel-tabel yang kita butuhkan untuk membuat DataBase. DataBase dapat dipanggil dari Menu’Tools>DataBase Desktop’yang ada di Delphi. DataBase dipakai untuk menyimpan data sehingga dapat dimanipulasi dengan mudah. Delphi mempunyai komponen-komponen yang dipakai untuk mengakses tabel dan method untuk memanipulasi record. Delphi memberikan fasilitas untuk memanipulasi database yang kompleks. Alias dipakai untuk memberi nama lojik pada sebuah direktori. Untuk membuka kotak dialog Alias Manager, dari DataBase Desktop (Start| Programs| Borland Delphi7| DataBase Desktop), atau jika sudah masuk di dalam Delphi, pilih menu Tools| DataBase Desktop. Dari database desktop pilih menu Tools| Alias Manager untuk option-option (Astuti A. Y. & Utaminingsih , 2017).
G. Data Base lanjutan DataBase dekstop merupakan sebuah sistem aplikasi database yang sudah disertakan pada saat penginstallan Delphi. Komponen database yang
11
merupakan bawaan Delphi meliputi paradox, dBase, MsSQL, Oracle, Macces, Excel dan lain-lain (delphi, 2006). Pencarian data merupakan operasi yang sangat penting dan merupakan keunggulan dari database sekarang ini. Untuk melakukan operasi seperti edit, cetak, dan lain-lain biasanya harus diawali dengan pencarian. Pada dasarnya, pencarian data ada 2 macam, yaitu a. Pencarian data tanpa index (urutan data) Pencarian ini harus dilakukan secara berurutan (sekuensial). Jenis dari pencarian ini, yaitu locate. b.Pencarian data menggunnakan index Pencarian ini dapat dilakukan dengan tidak berurutan. Macam/jenis dari pencarian ini antara lain: -Setkey -GotoNearest -FindKey -Gotokey -Editkey -FindNearest (Astuti A. Y. & Utaminingsih , 2017).
BAB III ALGORITMA PROGRAM
A. Flow Chart 1. Flowchart Utama Start
Input Id dan Password
Proses Login False
Login True Tampilan menu penjualan
Input nama dan nomer telpon pelanggan Memilih jenis obat
False Jenis obat dokter
Jenis obat umum True
Data Base
False
True
Ouput Tabel jenis obat umum Kode Nama obat Harga Jumlah
Ouput Tabel jenis obat umum Kode Nama oba Harga Jumlah
Input data Jumlah
Input data Jumlah
Total harga=Jumlah*harga jual
Ouput Harga Proses Kembalian=Bayarharga Output Total Kembalian Proses cetak
Struk Pelanggan
Menu Laporan Umum
Menu Laporan dokter
True Kembali False Clear
Close End
12
Data Base
13
2. Flowchart menu laporan umum
Tampilan Menu Umum Proses mencari
Data Base
Ouput Tampilan pencarian
Proses cetak
Struk Laporan
3. Flowchart menu laporan dokter
15
Tampilan Menu dokter Proses Mencari
Output tampilan pencarian
Proses cetak
Struk Laporan
Data Base
BAB IV PROGRAM
A. Langkah-langkah Program 1. Membuka program dan akan muncul tampilan login. 2. Memasukkan username dan password 3. Mengklik tombol login untuk masuk ke menu penjualan obat dan akan muncul tampilan penjualan obat 4. Kemudian input nama dan nomor hp pelanggan. 5. Mengklik input data untuk menyimpan data pada laporan penjualan 6. Memilih jenis obat dokter atau umum, jika memilih jenis obat dokter maka akan muncul data obat dokter dan jika memilih jenis obat umum maka akan keluar tampilan data obat umum. 7. Mencari obat yang akan dibeli. 8. Kemudian input jumlah obat yang dibeli. 9. Kemudian input nominal uang yang di bayarkan oleh konsumen. 10. Mengklik tombol cetak data untuk menampilkan bukti transaksi data. 11. Kemudian mengklik tombol close untuk menutup bukti transaksi. 12. Mengklik main menu pada pojok kanan atas untuk menampilkan pilihan menu. 13. Memilih menu laporan penjualan obat dokter untuk menampilkan panel laporan penjualan obat dokter. 14. Mengklik tombol cari untuk menampilkan tabel data transaksi. 15. Kemudian memilih tombol cetak untuk menampilan butki laporan penjualan yang ditampilkan tabel. 16. Mengklik tombol kembali untuk kembali ke tampilan awal. 17. Mengklik close untuk menutup bukti laporan penjualan. 18. Kemudian kanan pada panel penjualan untuk menampilkan pop up menu yang berisi menu kembali dan close
16
17
19. Memilih menu kembali untuk menampilkan atau kembali pada menu penjualan obat. 20. Kemudian mengulangi langkah 8 untuk memilih menu laporan penjualan umum perbedaannya terletak pada jenis obatnya. 21. Mengikuti langkah yang sama seperti langkah 10 – 14. 22. Kemudian mengklik menu pada pojok menu penjualan obat. 23. Memilih close untuk menutup aplikasi. 24. Selesai.
B. Gambar Aplikasi 1. Tampilan Program Untuk Login Tampilan atau menu login ini berfungsi untuk masuk kedalam menu penjualan obat.
Gambar 4.1 Menu login
18
2. Tampilan Program Menu penjualan obat Tampilan ini berfungsi dalam melakukan pemilihan obat, pengontrolan obatobatan yang tersedia dan pembelian obat.
Gambar 4.2 Menu Penjualan obat
3. Tampilan Program Laporan Penjualan Obat Umum Tampilan ini berfungsi dalam merekap data dan menyimpan data hasil penjualan obat dokter.
19
Gambar 4.3 Menu Penjualan Obat Umum 4. Tampilan Program Laporan Penjualan Obat Dokter Tampilan ini berfungsi dalam melakukan penyimpanan data dan merekap data hasil penjualan obat umum.
Gambar 4.4 Menu Penjualan Obat Dokter
5. Tampilan struk penjualan kepada konsumen.
20
Tampilan ini berfungsi untuk mengetahui jenis obat, jumlah obat, harga obat, dan pembayaran oleh konsumen.
Gambar 4.5 Struk penjualan.
6. Tampilan laporan penjualan umum. Tampilan ini berfungsi untuk mengetahui jumlah penjualan obat perhari.
21
Gambar 4.6 Laporan penjualan umum. 7. Tampilan laporan penjualan dokter. Tampilan ini berfungsi untuk mengetahui penjualan obat per hari yang ditunjukan kepada dokter.
22
Gambar 4.7 Tampilan laporan penjualan dokter. 8. Tabel data obat umum. Tabel ini berfungsi untuk mengetahui jenis obat umum.
23
Tabel 4.1 Data jenis obat umum. 9. Tabel data obat dokter. Tabel ini berfungsi untuk mengetahui jenis obat dokter.
Tabel 4.2 Data jenis obat dokter.
24
C. Source Code Label5: TLabel; unit Unit1;
Label6: TLabel;
interface
Timer1: TTimer;
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons; type TForm1 = class(TForm)
procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations }
Panel1: TPanel; Panel2: TPanel;
end;
Edit1: TEdit; Edit2: TEdit; Label3: TLabel;
var Form1: TForm1;
Image1: TImage; BitBtn2: TBitBtn;
implementation
Image2: TImage; Label1: TLabel; Label2: TLabel; Button1: TButton; Label4: TLabel;
uses Unit2, Unit5;
25
else
{$R *.dfm}
messagebox(0,'Anda Gagal Login','information',mb_ok+mb_icone rror); end;
procedure TForm1.Button1Click(Sender: TObject); var username:string;
procedure TForm1.Timer1Timer(Sender: TObject);
pass:string;
var
begin
ADate:TDateTime;
username:=string(Edit1.Text);
hari:array[1..7] of string;
pass:=string(edit2.text);
begin
if(username='Admin') and (pass='apotekengineering') then
hari[1]:='Minggu';
begin messagebox(0,'Anda Berhasil Login','information',mb_ok+mb_iconi nformation); form2.Edit1.Text:=form1.Edit1.Text; form5.show; form1.Hide; form5.Timer1.Enabled:=true;
end
hari[2]:='Senin'; hari[3]:='Selasa'; hari[4]:='Rabu'; hari[5]:='Kamis'; hari[6]:='Jumat'; hari[7]:='Sabtu'; ADate:=date; Label4.Caption:=timetostr(now); label5.Caption:=hari[DayofWeek(ADa te)];
26
label6.Caption:=datetostr(now);
Label1: TLabel; Label3: TLabel;
end;
Edit1: TEdit; Label5: TLabel;
end.
Edit4: TEdit; Edit5: TEdit; Label6: TLabel;
unit Unit2;
GroupBox2: TGroupBox; Label7: TLabel;
interface
Label8: TLabel; Label11: TLabel;
uses
DBEdit1: TDBEdit;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
DBEdit2: TDBEdit;
Dialogs, StdCtrls, ExtCtrls, jpeg, Mask, DBCtrls, Buttons, Menus, Grids,
GroupBox3: TGroupBox;
DBEdit5: TDBEdit;
Label14: TLabel; Image1: TImage;
DBGrids, DB, DBTables; Label15: TLabel; Image2: TImage; type MainMenu1: TMainMenu; TForm2 = class(TForm) Menu1: TMenuItem; Panel1: TPanel; GroupBox1: TGroupBox;
LaporanPenjualanObatDokter1: TMenuItem;
27
LaporanPenjualanObatUmum1: TMenuItem; Kembali1: TMenuItem; Close1: TMenuItem; DBGrid1: TDBGrid; BitBtn1: TBitBtn; DBNavigator1: TDBNavigator; Image3: TImage; Label16: TLabel; DBGrid2: TDBGrid; DataSource1: TDataSource; Table1: TTable; ListBox1: TListBox; ListBox2: TListBox; GroupBox4: TGroupBox; Label17: TLabel; Label18: TLabel; Label21: TLabel; Image4: TImage; Label25: TLabel; DBEdit4: TDBEdit; DBEdit8: TDBEdit; DBEdit10: TDBEdit;
Label4: TLabel; Timer1: TTimer; Label9: TLabel; Edit3: TEdit; Label10: TLabel; Label12: TLabel; Label13: TLabel; Label19: TLabel; Edit6: TEdit; Label20: TLabel; Edit7: TEdit; Label22: TLabel; DataSource2: TDataSource; Table2: TTable; Label23: TLabel; Edit8: TEdit; Label2: TLabel; Edit2: TEdit; Button1: TButton; PopupMenu1: TPopupMenu; Refesh1: TMenuItem; Timer2: TTimer; RadioButton1: TRadioButton;
28
RadioButton2: TRadioButton; BitBtn2: TBitBtn; procedure LaporanPenjualanObatDokter1Click(S ender: TObject); procedure LaporanPenjualanObatUmum1Click(S ender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); procedure Timer1Timer(Sender: TObject); procedure Label19Click(Sender: TObject); procedure Label10Click(Sender: TObject); procedure Image3Click(Sender: TObject);
procedure DBGrid2CellClick(Column: TColumn); procedure BitBtn2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Kembali1Click(Sender: TObject); procedure Close1Click(Sender: TObject); procedure Refesh1Click(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
procedure Image4Click(Sender: TObject); var Form2: TForm2;
29
implementation
procedure TForm2.CheckBox1Click(Sender: TObject); begin
uses Unit4, Unit3, Unit6, Unit1;
groupbox2.Show; dbgrid1.Show;
{$R *.dfm}
groupbox4.hide; dbgrid2.Hide;
procedure TForm2.LaporanPenjualanObatDokter 1Click(Sender: TObject);
end;
begin Form4.show;
procedure TForm2.CheckBox2Click(Sender: TObject);
Form2.Hide;
begin
end;
dbgrid2.Show; groupbox4.Show;
procedure TForm2.LaporanPenjualanObatUmum 1Click(Sender: TObject);
groupbox2.hide;
begin
end;
dbgrid1.hide;
Form3.show; Form2.Hide;
procedure TForm2.BitBtn1Click(Sender: TObject);
end;
var a:string;
30
begin
add('
');
a:=listbox1.Items.Text;
add('
');
form6.Show;
add('======================== =========================== ==========' );
with form6.memo1.lines do begin add('--------------------------ENGINEERING PHARMACY-----------------------'); add(' STRUK PEMBELIAN OBAT APOTEK ENGINEERING ');
:
add('....................................................... ................ '); add(' '+edit6.text);
BAYAR
:
add(' KEMBALIAN '+label20.Caption);
add(' ');
add(' ');
add(' ');
add(' ');
add('Tanggal :'+label4.Caption);
add(' ');
add('Transaksi :EP'+edit2.Text );
add(' Terima kasih atas kunjungan anda ');
add('Kasir :'+Edit1.Text);
add(' Semoga anda puas dengan pelayanan kami ');
add('Pelanggan :'+edit4.Text); add('======================== =========================== ==========' );
add(' .......................................................... '); add(' raja*
add(a); add('
add(' Total '+label14.Caption);
');
*Pembeli adalah ') ;
:
31
end; end; procedure TForm2.DBGrid1CellClick(Column: TColumn);
procedure TForm2.Timer1Timer(Sender: TObject); begin
var
label4.Caption:=datetostr(now);
a,b:string;
end;
i:integer; total:real; begin
procedure TForm2.Label19Click(Sender: TObject);
total:=0;
var
a:=dbedit2.Text;
a,b,c:currency;
b:=dbedit5.Text;
begin
listbox1.Items.Append(a+' '+b);
:
listbox2.Items.Append(b); for i:=0 to listbox2.Items.Count-1 do begin total:=total+strtofloat(listbox2.Items[i] ); end; label14.Caption:=floattostr(total);
a:=strtocurr(edit6.Text); b:=strtocurr(Label14.Caption); c:=a-b; Label20.Caption:=currtostr(c); end;
procedure TForm2.Label10Click(Sender: TObject); var
end;
a,b,c:currency;
32
begin
begin
a:=strtocurr(edit3.Text);
if (not table2.locate('Nama Obat',edit8.Text,[])) then
b:=strtocurr(Label14.Caption); c:=a-b; Label12.Caption:=currtostr(c); end;
begin Application.MessageBox('Obat Tidak Tersedia','informasi',MB_OK or MB_ICONINFORMATION); edit8.Text:='';
procedure TForm2.Image3Click(Sender: TObject); begin if (not table1.locate('Nama Obat',edit7.Text,[])) then begin Application.MessageBox('Obat Tidak Tersedia','informasi',MB_OK or MB_ICONINFORMATION);
end else edit8.Text; end;
procedure TForm2.DBGrid2CellClick(Column: TColumn); var
edit7.Text:='';
a,b:string;
end
i:integer;
else
total:real;
edit7.Text;
begin
end;
total:=0; a:=dbedit8.Text;
procedure TForm2.Image4Click(Sender: TObject);
b:=dbedit10.Text;
33
listbox1.Items.Append(a+' '+b);
:
listbox2.Items.Append(b); for i:=0 to listbox2.Items.Count-1 do begin total:=total+strtofloat(listbox2.Items[i] ); end; label14.Caption:=floattostr(total);
end;
procedure TForm2.BitBtn2Click(Sender: TObject); var a:string; begin a:=listbox1.Items.Text; form6.Show; with form6.memo1.lines do begin add('--------------------------ENGINEERING PHARMACY-----------------------');
add(' STRUK PEMBELIAN OBAT APOTEK ENGINEERING '); add(' '); add(' '); add('Tanggal :'+label4.Caption); add('Transaksi :EP'+edit2.Text ); add('Kasir :'+Edit1.Text); add('Pelanggan :'+edit4.Text); add('======================== =========================== ==========' ); add(a); add('
');
add('
');
add('
');
add('======================== =========================== ==========' ); add(' Total '+label14.Caption);
:
34
add('....................................................... ................ '); add(' '+edit3.text);
BAYAR
:
add(' KEMBALIAN '+label12.Caption); add(' ');
edit2.Text:='EP';
end; : procedure TForm2.Kembali1Click(Sender: TObject);
add(' ');
begin
add(' ');
form2.Hide
form1.show;
end; add(' Terima kasih atas kunjungan anda '); add(' Semoga anda puas dengan pelayanan kami ');
procedure TForm2.Close1Click(Sender: TObject);
add(' .......................................................... ');
begin
add(' raja*
end;
*Pembeli adalah ') ;
form2.Close;
end; end;
procedure TForm2.Button1Click(Sender: TObject); begin
procedure TForm2.Refesh1Click(Sender: TObject); begin Listbox1.Clear; Edit4.text:='';
35
Edit5.text:='';
bitbtn2.Visible:=true;
Edit3.text:='';
bitbtn1.Visible:=false;
Label12.caption:='';
end;
Label14.caption:=''; Edit6.text:=''; Label20.caption:='';
procedure TForm2.RadioButton2Click(Sender: TObject);
end;
begin groupbox2.Show;
procedure TForm2.Timer2Timer(Sender: TObject);
dbgrid1.Show;
begin
dbgrid2.Hide;
edit2.Text:=timetostr(now);
listbox1.Visible:=true;
end;
bitbtn1.Visible:=true;
groupbox4.hide;
bitbtn2.Visible:=false; procedure TForm2.RadioButton1Click(Sender: TObject);
end;
begin
end.
dbgrid2.Show; groupbox4.Show;
end;
groupbox2.hide; dbgrid1.hide; listbox1.Visible:=true;
end.
36
unit Unit3;
Panel3: TPanel; Memo1: TMemo;
interface
Panel5: TPanel; Label6: TLabel;
uses
Panel4: TPanel;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Panel6: TPanel;
Dialogs, StdCtrls, ExtCtrls, Buttons, Menus, Grids, DBGrids, jpeg, DB,
ListBox1: TListBox;
DBTables;
Label7: TLabel;
procedure Kembali1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject);
type TForm3 = class(TForm) PopupMenu1: TPopupMenu; Kembali1: TMenuItem; Close1: TMenuItem; Image1: TImage; Panel1: TPanel;
procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
Label1: TLabel; Label2: TLabel; GroupBox1: TGroupBox;
var Form3: TForm3;
Button1: TButton; BitBtn1: TBitBtn;
implementation
37
uses Unit2, Unit7, Unit6;
add('--------------------------ENGINEERING PHARMACY-----------------------');
{$R *.dfm}
add(' ');
procedure TForm3.Kembali1Click(Sender: TObject);
add(' LAPORAN PENJUALAN OBAT '); add(' ');
begin form3.Hide; form2.show; end;
procedure TForm3.BitBtn1Click(Sender: TObject); var a:string; begin
add(' '); add('No Faktur :'+form2.edit2.Text +form2.label4.Caption); add('Kasir :'+form2.Edit1.Text); add('Pelanggan :'+form2.Edit4.Text); add('No HP :'+form2.Edit5.Text); add('Tanggal :'+form2.label4.Caption);
a:=listbox1.Items.Text; add(' '+form2.Label4.Caption); form7.Show; add( 'Nama Obat & Harga'); with form7.memo1.lines do add(a); begin add(' TOTAL TENSAKSI: '+form2.Label14.Caption);
38
add(' BAYAR : '+form2.Edit3.Text);
add(' ') ;
add(' KEMBALIAN : '+form2.label12.Caption);
end;
add('....................................................... ................ '); add(' ');
end;
procedure TForm3.Button1Click(Sender: TObject);
add(' ');
var
add(' ');
begin
a:string;
a:=listbox1.Items.Text; add(' ');
with memo1.lines do begin
add(' Yogyakarta,2018 '); add(' jawab '); add(' '); add(' '); add(' '); add(' ');
add('Tanggal :'+form2.Label4.Caption); Penanggung
Apoteker
add('No Faktur :'+form2.edit2.Text +form2.label4.Caption); add('Nama Kasir :'+Form2.Edit1.Text); add('Nama Pelanggan :'+form2.edit4.Text); add('Bayar :'+form2.edit6.text); add('Kembalian :'+form2.label20.Caption);
39
form3.ListBox1.Items.Text:=form2.Li stBox1.Items.Text; end; end; end.
Kembali1: TMenuItem; Close1: TMenuItem; Panel2: TPanel; Panel4: TPanel; Label4: TLabel; Image1: TImage;
unit Unit4;
Timer1: TTimer; Memo1: TMemo;
interface
GroupBox1: TGroupBox; Button1: TButton;
uses
Panel3: TPanel;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Panel5: TPanel;
Dialogs, Buttons, StdCtrls, ExtCtrls, Menus, Grids, DBGrids, jpeg;
ListBox1: TListBox;
Label3: TLabel;
procedure Kembali1Click(Sender: TObject); type TForm4 = class(TForm) Panel1: TPanel; Label1: TLabel; Label2: TLabel; BitBtn1: TBitBtn; PopupMenu1: TPopupMenu;
procedure BitBtn1Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations }
40
end;
begin a:=listbox1.Items.Text;
var Form4: TForm4;
form8.Show; with form8.memo1.lines do begin
implementation
add('--------------------------ENGINEERING PHARMACY-----------------------');
uses Unit2, Unit8, Unit7;
add(' ');
{$R *.dfm}
add(' LAPORAN PENJUALAN OBAT ');
procedure TForm4.Kembali1Click(Sender: TObject);
add(' ');
begin form4.Hide; form2.show; end;
procedure TForm4.BitBtn1Click(Sender: TObject); var a:string;
add(' '); add('No Faktur :'+form2.edit2.Text +form2.label4.Caption); add('Kasir :'+form2.Edit1.Text); add('Pelanggan :'+form2.Edit4.Text); add('No HP :'+form2.Edit5.Text); add('Tanggal :'+form2.label4.Caption);
41
add(' '+form2.Label4.Caption); add( 'Nama Obat & Harga');
add(' ');
add(a);
add(' ');
add(' TOTAL TENSAKSI: '+form2.Label14.Caption);
add(' ');
add(' BAYAR : '+form2.Edit3.Text); add(' KEMBALIAN : '+form2.label12.Caption);
add(' ') ;
Apoteker
end; end;
add('....................................................... ................ '); add(' ');
procedure TForm4.Button1Click(Sender: TObject);
add(' ');
var
add(' ');
a:string;
add(' ');
a:=listbox1.Items.Text;
begin
with memo1.lines do add(' Yogyakarta,2018 '); add(' jawab '); add(' ');
begin
Penanggung
add('Tanggal :'+form2.Label4.Caption); add('No Faktur :'+form2.edit2.Text +form2.label4.Caption);
42
add('Nama Kasir :'+Form2.Edit1.Text); add('Nama Pelanggan :'+form2.edit4.Text);
type TForm5 = class(TForm)
add('Bayar :'+form2.edit6.text);
ProgressBar1: TProgressBar;
add('Kembalian :'+form2.label20.Caption);
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel; form4.ListBox1.Items.Text:=form2.Li stBox1.Items.Text;
Label3: TLabel;
end;
Label4: TLabel;
end;
XPManifest1: TXPManifest; procedure Timer1Timer(Sender: TObject); private
end. { Private declarations } public unit Unit5; { Public declarations } end; interface var uses Form5: TForm5; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, XPMan;
implementation
43
uses Unit2;
{$R *.dfm}
begin progressbar1.position:= progressbar1.position+10; end;
procedure TForm5.Timer1Timer(Sender: TObject);
end; end; end.
begin label1.Font.Color:=trunc(clblue*rando m);
unit Unit6;
label2.Font.Color:=trunc(clred*rando m);
interface
label3.Font.Color:=trunc(clgreen*rand om); uses label4.font.Color:=trunc(clwhite*rand om); begin if progressbar1.position=100
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;
then begin form2.show;
type TForm6 = class(TForm)
form5.Hide;
Panel1: TPanel;
timer1.Enabled:=false;
Memo1: TMemo;
end
BitBtn1: TBitBtn;
else
Button1: TButton;
44
procedure Button1Click(Sender: TObject);
end.
private { Private declarations } public
unit Unit7;
{ Public declarations } end;
var Form6: TForm6;
implementation
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;
uses Unit2; type {$R *.dfm}
TForm7 = class(TForm) Panel1: TPanel;
procedure TForm6.Button1Click(Sender: TObject); begin form6.Hide; form2.show; end;
Memo1: TMemo; Button1: TButton; BitBtn1: TBitBtn; procedure Button1Click(Sender: TObject); procedure Memo1Change(Sender: TObject);
45
private { Private declarations } public
procedure TForm7.Memo1Change(Sender: TObject); begin
{ Public declarations } end;
var
end;
end.
Form7: TForm7; unit Unit8; implementation interface uses Unit3; uses {$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject); begin form7.Hide;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;
type TForm8 = class(TForm)
form3.show;
Panel1: TPanel;
end;
Memo1: TMemo; BitBtn1: TBitBtn;
46
Button1: TButton; procedure Button1Click(Sender: TObject); private
uses Unit4;
{$R *.dfm}
{ Private declarations } public { Public declarations } end;
procedure TForm8.Button1Click(Sender: TObject); begin
var Form8: TForm8;
form8.Hide; form4.show; end;
implementation end.
BAB V PENUTUP A. Kesimpulan 1. Aplikasi yang telah terkomputerisasi dengan program komputer sangat membantu dalam menyelesaikan suatu masalah. Dalam hal ini pengolahan transaksi penjualan obat, sehingga konsumen tidak dikecewakan oleh apotik karena lamanya dalam pemrosesan dan pengolahan data tidak terjamin kebenaran dan ketepatannya. Dengan aplikasi Engineering Pharmacy dapat mempercepat proses pembuatan laporan penjualan obat dalam setiap hari. 2. Aplikasi ini akan dapat membantu untuk memperbaiki kesalahan pada penulisan data. Aplikasi Penjualan Obat ini juga diharapkan akan dapat membantu asisten apoteker dalam proses pencarian data.
B. Saran 1. Sebaiknya diadakan suatu pelatihan terhadap para operator yang akan dapat menjalankan aplikasi ini sehingga tidak menghambat rangkaian kerja yang akan dilakukan dan untuk menjamin kebenarannya, ketepatan, dan kecepatan proses data. 2. Agar program aplikasi ini selalu berjalan dengan perkembangan data dan teknologi sebaiknya selalu mengadakan pembaharuan secara berkala terhadap program aplikasi yang ada atau melengkapi kelemahan- kelemahan program ini.
47
DAFTAR PUSTAKA Andoyo, A. (2003). Belajar Sendiri Mengolah Database dengan Borland Delphi. Jakarta: Elex Media Komputindo. Astuti, A. Y., & U. L. (2017). Petunjuk Praktikum Pemrograman Komputer. Yogyakarta: Laboratorium Teknik Industri Universitas Ahmad Dahlan. Delphi, T. p. (2006). Modul Praktek Laboratorium Komputer Borland Delphi. Jakarta: Bina Sarana Informatika. Mangkulo, H. A. (2005). Membuat Aplikasi Database dengan Delphi. Jakarta: Elex Media Komputindo. Pujianto. (2007). 50 Trik Pemrograman Delphi. Jakarta: Elex Media Komputindo.
48
49
LAMPIRAN