├── README.md ├── ajax ├── README.md ├── cek_datapenjualan.php ├── cek_laporan.php ├── ceklogin.php ├── detail.php ├── edit_dataobat.php ├── edit_pegawai.php ├── edit_supplier.php ├── hapus.php ├── logout.php ├── simpan_obat.php ├── simpan_pegawai.php ├── simpan_pembelian.php ├── simpan_penjualan.php └── simpan_supplier.php ├── alg_ramalan ├── README.md ├── met_ses.php └── met_sma.php ├── asset ├── ChartJs │ └── Chart.min.js ├── DataTables │ ├── DataTables-1.10.18 │ │ ├── css │ │ │ ├── dataTables.bootstrap.css │ │ │ ├── dataTables.bootstrap.min.css │ │ │ ├── dataTables.bootstrap4.css │ │ │ ├── dataTables.bootstrap4.min.css │ │ │ ├── dataTables.foundation.css │ │ │ ├── dataTables.foundation.min.css │ │ │ ├── dataTables.jqueryui.css │ │ │ ├── dataTables.jqueryui.min.css │ │ │ ├── dataTables.semanticui.css │ │ │ ├── dataTables.semanticui.min.css │ │ │ ├── jquery.dataTables.css │ │ │ └── jquery.dataTables.min.css │ │ ├── images │ │ │ ├── sort_asc.png │ │ │ ├── sort_asc_disabled.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ └── sort_desc_disabled.png │ │ └── js │ │ │ ├── dataTables.bootstrap.js │ │ │ ├── dataTables.bootstrap.min.js │ │ │ ├── dataTables.bootstrap4.js │ │ │ ├── dataTables.bootstrap4.min.js │ │ │ ├── dataTables.foundation.js │ │ │ ├── dataTables.foundation.min.js │ │ │ ├── dataTables.jqueryui.js │ │ │ ├── dataTables.jqueryui.min.js │ │ │ ├── dataTables.semanticui.js │ │ │ ├── dataTables.semanticui.min.js │ │ │ ├── jquery.dataTables.js │ │ │ └── jquery.dataTables.min.js │ ├── datatables.css │ ├── datatables.js │ ├── datatables.min.css │ └── datatables.min.js ├── Jquery │ └── jquery-3.3.1.min.js ├── README.md ├── bootstrap_4 │ ├── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ └── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map ├── bootstrap_datepicker1.9.0 │ ├── css │ │ ├── bootstrap-datepicker.css │ │ ├── bootstrap-datepicker.css.map │ │ ├── bootstrap-datepicker.min.css │ │ ├── bootstrap-datepicker.standalone.css │ │ ├── bootstrap-datepicker.standalone.css.map │ │ ├── bootstrap-datepicker.standalone.min.css │ │ ├── bootstrap-datepicker3.css │ │ ├── bootstrap-datepicker3.css.map │ │ ├── bootstrap-datepicker3.min.css │ │ ├── bootstrap-datepicker3.standalone.css │ │ ├── bootstrap-datepicker3.standalone.css.map │ │ └── bootstrap-datepicker3.standalone.min.css │ ├── js │ │ ├── bootstrap-datepicker.js │ │ └── bootstrap-datepicker.min.js │ └── locales │ │ ├── bootstrap-datepicker-en-CA.min.js │ │ ├── bootstrap-datepicker.ar-tn.min.js │ │ ├── bootstrap-datepicker.ar.min.js │ │ ├── bootstrap-datepicker.az.min.js │ │ ├── bootstrap-datepicker.bg.min.js │ │ ├── bootstrap-datepicker.bm.min.js │ │ ├── bootstrap-datepicker.bn.min.js │ │ ├── bootstrap-datepicker.br.min.js │ │ ├── bootstrap-datepicker.bs.min.js │ │ ├── bootstrap-datepicker.ca.min.js │ │ ├── bootstrap-datepicker.cs.min.js │ │ ├── bootstrap-datepicker.cy.min.js │ │ ├── bootstrap-datepicker.da.min.js │ │ ├── bootstrap-datepicker.de.min.js │ │ ├── bootstrap-datepicker.el.min.js │ │ ├── bootstrap-datepicker.en-AU.min.js │ │ ├── bootstrap-datepicker.en-CA.min.js │ │ ├── bootstrap-datepicker.en-GB.min.js │ │ ├── bootstrap-datepicker.en-IE.min.js │ │ ├── bootstrap-datepicker.en-NZ.min.js │ │ ├── bootstrap-datepicker.en-ZA.min.js │ │ ├── bootstrap-datepicker.eo.min.js │ │ ├── bootstrap-datepicker.es.min.js │ │ ├── bootstrap-datepicker.et.min.js │ │ ├── bootstrap-datepicker.eu.min.js │ │ ├── bootstrap-datepicker.fa.min.js │ │ ├── bootstrap-datepicker.fi.min.js │ │ ├── bootstrap-datepicker.fo.min.js │ │ ├── bootstrap-datepicker.fr-CH.min.js │ │ ├── bootstrap-datepicker.fr.min.js │ │ ├── bootstrap-datepicker.gl.min.js │ │ ├── bootstrap-datepicker.he.min.js │ │ ├── bootstrap-datepicker.hi.min.js │ │ ├── bootstrap-datepicker.hr.min.js │ │ ├── bootstrap-datepicker.hu.min.js │ │ ├── bootstrap-datepicker.hy.min.js │ │ ├── bootstrap-datepicker.id.min.js │ │ ├── bootstrap-datepicker.is.min.js │ │ ├── bootstrap-datepicker.it-CH.min.js │ │ ├── bootstrap-datepicker.it.min.js │ │ ├── bootstrap-datepicker.ja.min.js │ │ ├── bootstrap-datepicker.ka.min.js │ │ ├── bootstrap-datepicker.kh.min.js │ │ ├── bootstrap-datepicker.kk.min.js │ │ ├── bootstrap-datepicker.km.min.js │ │ ├── bootstrap-datepicker.ko.min.js │ │ ├── bootstrap-datepicker.kr.min.js │ │ ├── bootstrap-datepicker.lt.min.js │ │ ├── bootstrap-datepicker.lv.min.js │ │ ├── bootstrap-datepicker.me.min.js │ │ ├── bootstrap-datepicker.mk.min.js │ │ ├── bootstrap-datepicker.mn.min.js │ │ ├── bootstrap-datepicker.ms.min.js │ │ ├── bootstrap-datepicker.nl-BE.min.js │ │ ├── bootstrap-datepicker.nl.min.js │ │ ├── bootstrap-datepicker.no.min.js │ │ ├── bootstrap-datepicker.oc.min.js │ │ ├── bootstrap-datepicker.pl.min.js │ │ ├── bootstrap-datepicker.pt-BR.min.js │ │ ├── bootstrap-datepicker.pt.min.js │ │ ├── bootstrap-datepicker.ro.min.js │ │ ├── bootstrap-datepicker.rs-latin.min.js │ │ ├── bootstrap-datepicker.rs.min.js │ │ ├── bootstrap-datepicker.ru.min.js │ │ ├── bootstrap-datepicker.si.min.js │ │ ├── bootstrap-datepicker.sk.min.js │ │ ├── bootstrap-datepicker.sl.min.js │ │ ├── bootstrap-datepicker.sq.min.js │ │ ├── bootstrap-datepicker.sr-latin.min.js │ │ ├── bootstrap-datepicker.sr.min.js │ │ ├── bootstrap-datepicker.sv.min.js │ │ ├── bootstrap-datepicker.sw.min.js │ │ ├── bootstrap-datepicker.ta.min.js │ │ ├── bootstrap-datepicker.tg.min.js │ │ ├── bootstrap-datepicker.th.min.js │ │ ├── bootstrap-datepicker.tk.min.js │ │ ├── bootstrap-datepicker.tr.min.js │ │ ├── bootstrap-datepicker.uk.min.js │ │ ├── bootstrap-datepicker.uz-cyrl.min.js │ │ ├── bootstrap-datepicker.uz-latn.min.js │ │ ├── bootstrap-datepicker.vi.min.js │ │ ├── bootstrap-datepicker.zh-CN.min.js │ │ └── bootstrap-datepicker.zh-TW.min.js ├── font_awesome │ ├── LICENSE.txt │ ├── css │ │ ├── all.css │ │ ├── all.min.css │ │ ├── brands.css │ │ ├── brands.min.css │ │ ├── fontawesome.css │ │ ├── fontawesome.min.css │ │ ├── regular.css │ │ ├── regular.min.css │ │ ├── solid.css │ │ ├── solid.min.css │ │ ├── svg-with-js.css │ │ ├── svg-with-js.min.css │ │ ├── v4-shims.css │ │ └── v4-shims.min.css │ ├── js │ │ ├── all.js │ │ ├── all.min.js │ │ ├── brands.js │ │ ├── brands.min.js │ │ ├── conflict-detection.js │ │ ├── conflict-detection.min.js │ │ ├── fontawesome.js │ │ ├── fontawesome.min.js │ │ ├── regular.js │ │ ├── regular.min.js │ │ ├── solid.js │ │ ├── solid.min.js │ │ ├── v4-shims.js │ │ └── v4-shims.min.js │ ├── less │ │ ├── _animated.less │ │ ├── _bordered-pulled.less │ │ ├── _core.less │ │ ├── _fixed-width.less │ │ ├── _icons.less │ │ ├── _larger.less │ │ ├── _list.less │ │ ├── _mixins.less │ │ ├── _rotated-flipped.less │ │ ├── _screen-reader.less │ │ ├── _shims.less │ │ ├── _stacked.less │ │ ├── _variables.less │ │ ├── brands.less │ │ ├── fontawesome.less │ │ ├── regular.less │ │ ├── solid.less │ │ └── v4-shims.less │ ├── metadata │ │ ├── categories.yml │ │ ├── icons.json │ │ ├── icons.yml │ │ ├── shims.json │ │ ├── shims.yml │ │ └── sponsors.yml │ ├── scss │ │ ├── _animated.scss │ │ ├── _bordered-pulled.scss │ │ ├── _core.scss │ │ ├── _fixed-width.scss │ │ ├── _icons.scss │ │ ├── _larger.scss │ │ ├── _list.scss │ │ ├── _mixins.scss │ │ ├── _rotated-flipped.scss │ │ ├── _screen-reader.scss │ │ ├── _shims.scss │ │ ├── _stacked.scss │ │ ├── _variables.scss │ │ ├── brands.scss │ │ ├── fontawesome.scss │ │ ├── regular.scss │ │ ├── solid.scss │ │ └── v4-shims.scss │ ├── sprites │ │ ├── brands.svg │ │ ├── regular.svg │ │ └── solid.svg │ └── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.svg │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.svg │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.svg │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 ├── img │ └── logo │ │ └── logo.jpg ├── private_style │ ├── style.css │ └── style_index.css └── sweetalert │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ └── postinstall.js │ ├── dist │ ├── sweetalert2.all.js │ ├── sweetalert2.all.min.js │ ├── sweetalert2.css │ ├── sweetalert2.js │ ├── sweetalert2.min.css │ └── sweetalert2.min.js │ ├── package.json │ └── src │ └── constants.js ├── db_apt_margosaras.sql ├── html2pdf ├── README.md ├── _class │ ├── exception.class.php │ ├── locale.class.php │ ├── myPdf.class.php │ ├── parsingCss.class.php │ ├── parsingHtml.class.php │ └── tcpdfConfig.php ├── _tcpdf_5.0.002 │ ├── 2dbarcodes.php │ ├── CHANGELOG.TXT │ ├── LICENSE.TXT │ ├── README.TXT │ ├── barcodes.php │ ├── cache │ │ ├── chapter_demo_1.txt │ │ ├── chapter_demo_2.txt │ │ ├── table_data_demo.txt │ │ └── utf8test.txt │ ├── config │ │ ├── lang │ │ │ ├── bra.php │ │ │ ├── eng.php │ │ │ ├── ger.php │ │ │ └── ita.php │ │ ├── tcpdf_config.php │ │ └── tcpdf_config_alt.php │ ├── doc │ │ └── read_me.txt │ ├── examples │ │ └── read_me.txt │ ├── fonts │ │ ├── README.TXT │ │ ├── ZarBold.ctg.z │ │ ├── ZarBold.z │ │ ├── almohanad.ctg.z │ │ ├── almohanad.php │ │ ├── almohanad.z │ │ ├── arialunicid0.php │ │ ├── courier.php │ │ ├── dejavu-fonts-ttf-2.30 │ │ │ ├── AUTHORS │ │ │ ├── BUGS │ │ │ ├── LICENSE │ │ │ ├── NEWS │ │ │ ├── README │ │ │ ├── langcover.txt │ │ │ ├── status.txt │ │ │ └── unicover.txt │ │ ├── dejavusans.ctg.z │ │ ├── dejavusans.php │ │ ├── dejavusans.z │ │ ├── dejavusansb.ctg.z │ │ ├── dejavusansb.php │ │ ├── dejavusansb.z │ │ ├── dejavusansbi.ctg.z │ │ ├── dejavusansbi.php │ │ ├── dejavusansbi.z │ │ ├── dejavusanscondensed.ctg.z │ │ ├── dejavusanscondensed.php │ │ ├── dejavusanscondensed.z │ │ ├── dejavusanscondensedb.ctg.z │ │ ├── dejavusanscondensedb.php │ │ ├── dejavusanscondensedb.z │ │ ├── dejavusanscondensedbi.ctg.z │ │ ├── dejavusanscondensedbi.php │ │ ├── dejavusanscondensedbi.z │ │ ├── dejavusanscondensedi.ctg.z │ │ ├── dejavusanscondensedi.php │ │ ├── dejavusanscondensedi.z │ │ ├── dejavusansi.ctg.z │ │ ├── dejavusansi.php │ │ ├── dejavusansi.z │ │ ├── dejavusansmono.ctg.z │ │ ├── dejavusansmono.php │ │ ├── dejavusansmono.z │ │ ├── dejavusansmonob.ctg.z │ │ ├── dejavusansmonob.php │ │ ├── dejavusansmonob.z │ │ ├── dejavusansmonobi.ctg.z │ │ ├── dejavusansmonobi.php │ │ ├── dejavusansmonobi.z │ │ ├── dejavusansmonoi.ctg.z │ │ ├── dejavusansmonoi.php │ │ ├── dejavusansmonoi.z │ │ ├── dejavuserif.ctg.z │ │ ├── dejavuserif.php │ │ ├── dejavuserif.z │ │ ├── dejavuserifb.ctg.z │ │ ├── dejavuserifb.php │ │ ├── dejavuserifb.z │ │ ├── dejavuserifbi.ctg.z │ │ ├── dejavuserifbi.php │ │ ├── dejavuserifbi.z │ │ ├── dejavuserifcondensed.ctg.z │ │ ├── dejavuserifcondensed.php │ │ ├── dejavuserifcondensed.z │ │ ├── dejavuserifcondensedb.ctg.z │ │ ├── dejavuserifcondensedb.php │ │ ├── dejavuserifcondensedb.z │ │ ├── dejavuserifcondensedbi.ctg.z │ │ ├── dejavuserifcondensedbi.php │ │ ├── dejavuserifcondensedbi.z │ │ ├── dejavuserifcondensedi.ctg.z │ │ ├── dejavuserifcondensedi.php │ │ ├── dejavuserifcondensedi.z │ │ ├── dejavuserifi.ctg.z │ │ ├── dejavuserifi.php │ │ ├── dejavuserifi.z │ │ ├── freefont-20090104 │ │ │ ├── AUTHORS │ │ │ ├── COPYING │ │ │ ├── CREDITS │ │ │ ├── ChangeLog │ │ │ ├── INSTALL │ │ │ └── README │ │ ├── freemono.ctg.z │ │ ├── freemono.php │ │ ├── freemono.z │ │ ├── freemonob.ctg.z │ │ ├── freemonob.php │ │ ├── freemonob.z │ │ ├── freemonobi.ctg.z │ │ ├── freemonobi.php │ │ ├── freemonobi.z │ │ ├── freemonoi.ctg.z │ │ ├── freemonoi.php │ │ ├── freemonoi.z │ │ ├── freesans.ctg.z │ │ ├── freesans.php │ │ ├── freesans.z │ │ ├── freesansb.ctg.z │ │ ├── freesansb.php │ │ ├── freesansb.z │ │ ├── freesansbi.ctg.z │ │ ├── freesansbi.php │ │ ├── freesansbi.z │ │ ├── freesansi.ctg.z │ │ ├── freesansi.php │ │ ├── freesansi.z │ │ ├── freeserif.ctg.z │ │ ├── freeserif.php │ │ ├── freeserif.z │ │ ├── freeserifb.ctg.z │ │ ├── freeserifb.php │ │ ├── freeserifb.z │ │ ├── freeserifbi.ctg.z │ │ ├── freeserifbi.php │ │ ├── freeserifbi.z │ │ ├── freeserifi.ctg.z │ │ ├── freeserifi.php │ │ ├── freeserifi.z │ │ ├── helvetica.php │ │ ├── helveticab.php │ │ ├── helveticabi.php │ │ ├── helveticai.php │ │ ├── hysmyeongjostdmedium.php │ │ ├── kozgopromedium.php │ │ ├── kozminproregular.php │ │ ├── msungstdlight.php │ │ ├── nothing.txt │ │ ├── stsongstdlight.php │ │ ├── symbol.php │ │ ├── times.php │ │ ├── timesb.php │ │ ├── timesbi.php │ │ ├── timesi.php │ │ ├── uni2cid_ac15.php │ │ ├── uni2cid_ag15.php │ │ ├── uni2cid_aj16.php │ │ ├── uni2cid_ak12.php │ │ ├── utils │ │ │ ├── README.TXT │ │ │ ├── enc │ │ │ │ ├── cp1250.map │ │ │ │ ├── cp1251.map │ │ │ │ ├── cp1252.map │ │ │ │ ├── cp1253.map │ │ │ │ ├── cp1254.map │ │ │ │ ├── cp1255.map │ │ │ │ ├── cp1257.map │ │ │ │ ├── cp1258.map │ │ │ │ ├── cp874.map │ │ │ │ ├── iso-8859-1.map │ │ │ │ ├── iso-8859-11.map │ │ │ │ ├── iso-8859-15.map │ │ │ │ ├── iso-8859-16.map │ │ │ │ ├── iso-8859-2.map │ │ │ │ ├── iso-8859-4.map │ │ │ │ ├── iso-8859-5.map │ │ │ │ ├── iso-8859-7.map │ │ │ │ ├── iso-8859-9.map │ │ │ │ ├── koi8-r.map │ │ │ │ └── koi8-u.map │ │ │ ├── freetype6.dll │ │ │ ├── makeallttffonts.php │ │ │ ├── makefont.php │ │ │ ├── pfm2afm │ │ │ ├── pfm2afm.exe │ │ │ ├── src │ │ │ │ ├── pfm2afm-src.tar.gz │ │ │ │ ├── readme.txt │ │ │ │ └── ttf2ufm-src.tar.gz │ │ │ ├── ttf2ufm │ │ │ ├── ttf2ufm.exe │ │ │ └── zlib1.dll │ │ ├── zapfdingbats.php │ │ └── zarbold.php │ ├── htmlcolors.php │ ├── images │ │ └── read_me.txt │ ├── nothing.txt │ ├── qrcode.php │ ├── tcpdf.crt │ ├── tcpdf.fdf │ ├── tcpdf.php │ └── unicode_data.php ├── examples │ ├── about.php │ ├── bookmark.php │ ├── exemple00.php │ ├── exemple01.php │ ├── exemple02.php │ ├── exemple03.php │ ├── exemple04.php │ ├── exemple05.php │ ├── exemple06.php │ ├── exemple07.php │ ├── exemple08.php │ ├── exemple09.php │ ├── exemple10.php │ ├── exemple11.php │ ├── exemple12.php │ ├── exemple13.php │ ├── forms.php │ ├── groups.php │ ├── js1.php │ ├── js2.php │ ├── js3.php │ ├── qrcode.php │ ├── radius.php │ ├── regle.php │ ├── res │ │ ├── about.php │ │ ├── bas_page.png │ │ ├── exemple00.php │ │ ├── exemple01.php │ │ ├── exemple02.php │ │ ├── exemple03.php │ │ ├── exemple04.php │ │ ├── exemple05.php │ │ ├── exemple06.css │ │ ├── exemple06.php │ │ ├── exemple07a.php │ │ ├── exemple07b.php │ │ ├── exemple08.php │ │ ├── exemple09.png.php │ │ ├── exemple10.php │ │ ├── exemple10a.gif │ │ ├── exemple10b.jpg │ │ ├── exemple10c.gif │ │ ├── exemple11.php │ │ ├── exemple12.php │ │ ├── exemple13.php │ │ ├── forms.php │ │ ├── logo.gif │ │ ├── logo.png │ │ ├── off.png │ │ ├── puce.gif │ │ ├── puce2.gif │ │ ├── regle.png │ │ ├── svg.php │ │ └── tcpdf_logo.jpg │ ├── svg.php │ ├── svg_tiger.php │ ├── svg_tree.php │ ├── ticket.php │ └── utf8.php ├── html2pdf.class.php ├── locale │ ├── ca.csv │ ├── cs.csv │ ├── da.csv │ ├── de.csv │ ├── en.csv │ ├── es.csv │ ├── fr.csv │ ├── it.csv │ ├── nl.csv │ ├── pt.csv │ └── tr.csv └── test │ └── generate.sh ├── index.php ├── koneksi.php ├── laporan ├── README.md ├── index.php └── isi │ ├── bootstrap │ └── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ ├── coba.php │ ├── laporan_pembelian_detail.php │ ├── laporan_pembelian_detail2.php │ ├── laporan_pembelian_rangkuman.php │ ├── laporan_penjualan_detail.php │ ├── laporan_penjualan_rangkuman.php │ ├── laporan_peramalan.php │ ├── laporan_peramalan2.php │ ├── laporan_peramalan_multi.php │ ├── nota_pembelian.php │ ├── nota_pembelian2.php │ ├── nota_penjualan.php │ └── style_css │ ├── laporan_pembelian.css │ ├── laporan_pembelian2.css │ ├── laporan_penjualan.css │ ├── laporan_peramalan.css │ ├── laporan_peramalan_multi.css │ ├── nota_pembelian.css │ ├── nota_penjualan.css │ └── tanda_pembayaran.css ├── login.php └── pages ├── README.md ├── dataobat.php ├── datapegawai.php ├── datapembelian.php ├── datapenjualan.php ├── datapjl_perobat.php ├── datasupplier.php ├── form_editdataobat.php ├── form_editdatapegawai.php ├── form_editdatasupplier.php ├── form_entrypembelian.php ├── form_entrypenjualan.php ├── form_laporanpembelian.php ├── form_laporanpenjualan.php ├── form_tmbdataobat.php ├── form_tmbdatapegawai.php ├── form_tmbdatasupplier.php ├── hasil_peramalan2.php ├── hasilperamalan.php ├── home.php ├── info_kadaluarsa.php ├── laporan.php ├── peramalan.php ├── peramalan_multiobat.php ├── peramalan_singleobat.php ├── proses.php └── riwayat_peramalan.php /README.md: -------------------------------------------------------------------------------- 1 | # Aplikasi POS Apotek dan Peramalan Penjualan Obat dengan Metode Single Moving Average dan Single Exponential Smoothing 2 | Daftar fitur : 3 | - Transaksi Penjualan Obat dan laporan 4 | - Transaksi Pembelian Obat dan laporan 5 | - Peramalan Angka Penjualan Obat untuk Periode Berikutnya 6 | 7 | Metode Peramalan yang digunakan : 8 | - Single Moving Average (MA 2 dan 5 periode) 9 | - Single Exponential Smoothing (alpha 0.2 dan 0.8) 10 | 11 | Hasil Peramalan disini adalah ramalan angka penjualan obat untuk n periode kedepan. 12 | Hasil Peramalan diperoleh dari perbandingan hasil perhitungan dari kedua metode dengan tingkat error terendah. 13 | 14 | Cara install di localhost : 15 | - Import database "db_apt_margosaras" ke dalam database anda. 16 | - Ubah data untuk koneksi ke localhost anda dengan mengubah file "koneksi.php". 17 | - Siap di akses melalui localhost. 18 | - username / pasword : admin / admin. 19 | -------------------------------------------------------------------------------- /ajax/README.md: -------------------------------------------------------------------------------- 1 | # Folder Ajax 2 | Berisi proses-proses yang berhubungan dengan server menggunakan ajax 3 | -------------------------------------------------------------------------------- /ajax/ceklogin.php: -------------------------------------------------------------------------------- 1 | error); 10 | $data = mysqli_fetch_array($sql); 11 | if(mysqli_num_rows($sql) > 0) { 12 | $_SESSION['username_peg'] = $data['username']; 13 | $_SESSION['id_peg'] = $data['id_peg']; 14 | $_SESSION['nama_peg'] = $data['nama_peg']; 15 | $_SESSION['posisi_peg'] = $data['pos_peg']; 16 | 17 | echo "berhasil"; 18 | } else { 19 | echo "gagal"; 20 | } 21 | 22 | ?> -------------------------------------------------------------------------------- /ajax/detail.php: -------------------------------------------------------------------------------- 1 | error); 8 | $data = array(); 9 | 10 | while($detail=mysqli_fetch_array($sql_lihat)) { 11 | $data[] = $detail; 12 | } 13 | echo json_encode($data); 14 | } 15 | else if(@$_GET['page']=='pembelian') { 16 | $no_faktur = @mysqli_real_escape_string($conn, $_GET['no_faktur']); 17 | $query_lihat = "SELECT tbl_dataobat.nm_obat, tbl_pembeliandetail.hrg_beli, tbl_pembeliandetail.jml_beli, tbl_pembeliandetail.sat_beli, tbl_pembeliandetail.subtotal FROM tbl_pembeliandetail INNER JOIN tbl_dataobat ON tbl_pembeliandetail.kd_obat = tbl_dataobat.kd_obat WHERE tbl_pembeliandetail.no_faktur = '$no_faktur'"; 18 | $sql_lihat = mysqli_query($conn, $query_lihat) or die ($conn->error); 19 | $data = array(); 20 | 21 | while($detail=mysqli_fetch_array($sql_lihat)) { 22 | $data[] = $detail; 23 | } 24 | echo json_encode($data); 25 | } 26 | else if(@$_GET['page']=='pelunasan_pembelian') { 27 | $no_faktur = @mysqli_real_escape_string($conn, $_POST['no_faktur']); 28 | // $no_faktur = "tesss"; 29 | $tgl_lunas = date('Y-m-d'); 30 | $query_lunas = "UPDATE tbl_pembelian SET status_byr = 'Lunas', tgl_lunas = '$tgl_lunas' WHERE no_faktur = '$no_faktur'"; 31 | mysqli_query($conn, $query_lunas) or die ($conn->error); 32 | } 33 | else if(@$_GET['page']=='expstok_obat') { 34 | $kd_obat = @mysqli_real_escape_string($conn, $_GET['kd_obat']); 35 | $query_expstok = "SELECT * FROM tbl_stokexpobat WHERE kd_obat = '$kd_obat'"; 36 | $sql_expstok = mysqli_query($conn, $query_expstok) or die ($conn->error); 37 | $data_expstok = array(); 38 | 39 | while($data = mysqli_fetch_array($sql_expstok)) { 40 | $data_expstok[] = $data; 41 | } 42 | 43 | echo json_encode($data_expstok); 44 | } 45 | ?> -------------------------------------------------------------------------------- /ajax/edit_dataobat.php: -------------------------------------------------------------------------------- 1 | error); 40 | } 41 | 42 | $query = "UPDATE tbl_dataobat SET nm_obat='$nama', ktg_obat='$ktg', sat_obat='$satuan', hrg_obat='$harga_jual', hrgbeli_obat='$harga', stk_obat='$stok', bnt_obat='$bentuk', minstk_obat='$min_stok' WHERE kd_obat = '$kode'"; 43 | $sql = mysqli_query($conn, $query) or die ($conn->error); 44 | 45 | 46 | if($sql && $sql_stok) { 47 | echo "berhasil"; 48 | } else { 49 | echo "gagal"; 50 | } 51 | ?> -------------------------------------------------------------------------------- /ajax/edit_pegawai.php: -------------------------------------------------------------------------------- 1 | error); 10 | $hasil_validasi = mysqli_fetch_array($sql_validasi); 11 | if($hasil_validasi) { 12 | echo "gagal-username"; 13 | }else { 14 | $nama = @mysqli_real_escape_string($conn, $_POST['nama']); 15 | $posisi = @mysqli_real_escape_string($conn, $_POST['posisi']); 16 | $jk = @mysqli_real_escape_string($conn, $_POST['jk']); 17 | $alamat = @mysqli_real_escape_string($conn, $_POST['alamat']); 18 | $tgl_lahir = @mysqli_real_escape_string($conn, $_POST['tgl_lahir']); 19 | $password = @mysqli_real_escape_string($conn, $_POST['password']); 20 | $no_hp = @mysqli_real_escape_string($conn, $_POST['no_hp']); 21 | 22 | $query = "UPDATE tbl_pegawai SET nama_peg = '$nama', alamat_peg = '$alamat', hp_peg = '$no_hp', jk_peg = '$jk', lhr_peg = '$tgl_lahir', pos_peg = '$posisi', username = '$username', password = '$password' WHERE id_peg = '$id'"; 23 | $sql = mysqli_query($conn, $query) or die ($conn->error); 24 | if($sql) { 25 | if($_SESSION['id_peg']==$id) { 26 | $_SESSION['nama_peg'] = $nama; 27 | $_SESSION['username_peg'] = $username; 28 | } 29 | echo "berhasil"; 30 | } else { 31 | echo "gagal"; 32 | } 33 | } 34 | ?> -------------------------------------------------------------------------------- /ajax/edit_supplier.php: -------------------------------------------------------------------------------- 1 | error); 13 | if($sql) { 14 | echo "berhasil"; 15 | } else { 16 | echo "gagal"; 17 | } 18 | ?> -------------------------------------------------------------------------------- /ajax/logout.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ajax/simpan_obat.php: -------------------------------------------------------------------------------- 1 | error); 19 | 20 | $query_stok = "INSERT INTO tbl_stokexpobat (kd_obat, tgl_exp, stok) VALUES ('$kode', '$exp', '$stok')"; 21 | $sql_stok = mysqli_query($conn, $query_stok) or die ($conn->error); 22 | 23 | if($sql && $sql_stok) { 24 | echo "tersimpan"; 25 | } else { 26 | echo "gagal"; 27 | } 28 | ?> -------------------------------------------------------------------------------- /ajax/simpan_pegawai.php: -------------------------------------------------------------------------------- 1 | error); 9 | $hasil_validasi = mysqli_fetch_array($sql_validasi); 10 | if($hasil_validasi) { 11 | echo "gagal-username"; 12 | }else { 13 | $nama = @mysqli_real_escape_string($conn, $_POST['nama']); 14 | $posisi = @mysqli_real_escape_string($conn, $_POST['posisi']); 15 | $jk = @mysqli_real_escape_string($conn, $_POST['jk']); 16 | $alamat = @mysqli_real_escape_string($conn, $_POST['alamat']); 17 | $tgl_lahir = @mysqli_real_escape_string($conn, $_POST['tgl_lahir']); 18 | $password = @mysqli_real_escape_string($conn, $_POST['password']); 19 | $no_hp = @mysqli_real_escape_string($conn, $_POST['no_hp']); 20 | $tgl_masuk = date('Y-m-d'); 21 | 22 | $tahun = substr($tgl_lahir, 2, 2); 23 | $bulan = substr($tgl_lahir, 5, 2); 24 | $hari = substr($tgl_lahir, 8, 2); 25 | $tgl = $tahun.$bulan.$hari; 26 | 27 | if($posisi=="Admin") { 28 | $pos = "ADM"; 29 | } else if($posisi=="Manager") { 30 | $pos = "MNG"; 31 | } else if($posisi=="Apoteker") { 32 | $pos = "APT"; 33 | } else if($posisi=="Kasir") { 34 | $pos = "KSR"; 35 | } 36 | 37 | $query_id = "SELECT id_peg FROM tbl_pegawai WHERE pos_peg='$posisi' ORDER BY id_peg DESC"; 38 | $sql_id = mysqli_query($conn, $query_id) or die ($conn->error); 39 | $data_id = mysqli_fetch_array($sql_id); 40 | if($data_id) { 41 | $indeks = substr($data_id[0], 3, 2); 42 | $no_indeks = (int) $indeks; 43 | $no_indeks = $no_indeks + 1; 44 | $id = $pos.str_pad($no_indeks, 2, "0", STR_PAD_LEFT).$tgl; 45 | } else { 46 | $id = $pos."01".$tgl; 47 | } 48 | 49 | $query = "INSERT INTO tbl_pegawai VALUES('$username', '$password', '$id', '$nama', '$alamat', '$no_hp', '$jk', '$tgl_lahir', '$tgl_masuk', '$posisi')"; 50 | $sql = mysqli_query($conn, $query) or die ($conn->error); 51 | if($sql) { 52 | echo "berhasil"; 53 | } else { 54 | echo "gagal"; 55 | } 56 | } 57 | ?> -------------------------------------------------------------------------------- /ajax/simpan_supplier.php: -------------------------------------------------------------------------------- 1 | error); 12 | if($sql) { 13 | echo "berhasil"; 14 | } else { 15 | echo "gagal"; 16 | } 17 | ?> -------------------------------------------------------------------------------- /alg_ramalan/README.md: -------------------------------------------------------------------------------- 1 | # Folder Algoritma Peramalan 2 | Berisi algoritma dari metode : 3 | - Single Moving Average (met_sma) 4 | - Single Exponential Smoothing (met_ses) 5 | -------------------------------------------------------------------------------- /asset/DataTables/DataTables-1.10.18/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abifaizal/peramalan_penjualan/5dc98f83780ec90dbb5eea5bae06c8c84dabe4fb/asset/DataTables/DataTables-1.10.18/images/sort_asc.png -------------------------------------------------------------------------------- /asset/DataTables/DataTables-1.10.18/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abifaizal/peramalan_penjualan/5dc98f83780ec90dbb5eea5bae06c8c84dabe4fb/asset/DataTables/DataTables-1.10.18/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /asset/DataTables/DataTables-1.10.18/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abifaizal/peramalan_penjualan/5dc98f83780ec90dbb5eea5bae06c8c84dabe4fb/asset/DataTables/DataTables-1.10.18/images/sort_both.png -------------------------------------------------------------------------------- /asset/DataTables/DataTables-1.10.18/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abifaizal/peramalan_penjualan/5dc98f83780ec90dbb5eea5bae06c8c84dabe4fb/asset/DataTables/DataTables-1.10.18/images/sort_desc.png -------------------------------------------------------------------------------- /asset/DataTables/DataTables-1.10.18/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abifaizal/peramalan_penjualan/5dc98f83780ec90dbb5eea5bae06c8c84dabe4fb/asset/DataTables/DataTables-1.10.18/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /asset/DataTables/DataTables-1.10.18/js/dataTables.bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 3 integration 3 | ©2011-2015 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes, 6 | {sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; 7 | l=0;for(h=f.length;l",{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#", 8 | "aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('