From e3985c0a1e9513c2366c92ab59ae661cd576e749 Mon Sep 17 00:00:00 2001 From: nabilahazz Date: Sun, 18 Jun 2023 22:18:41 +0800 Subject: [PATCH] Initial commit --- .../.vscode/settings.json | 8 + Projek 1/H071221090_Tugas Proyek/README.md | 24 + .../H071221090_Tugas Proyek/bin/App.class | Bin 0 -> 2008 bytes .../bin/MyConfig.class | Bin 0 -> 3863 bytes Projek 1/H071221090_Tugas Proyek/src/App.java | 74 + .../H071221090_Tugas Proyek/src/MyConfig.java | 98 + Projek 2/Kasir/build.xml | 73 + .../build/classes/.netbeans_automatic_build | 0 .../build/classes/.netbeans_update_resources | 0 .../Kasir/build/classes/App/Kasirku$1.class | Bin 0 -> 731 bytes .../Kasir/build/classes/App/Kasirku$2.class | Bin 0 -> 733 bytes .../Kasir/build/classes/App/Kasirku$3.class | Bin 0 -> 1162 bytes .../Kasir/build/classes/App/Kasirku$4.class | Bin 0 -> 734 bytes .../Kasir/build/classes/App/Kasirku$5.class | Bin 0 -> 529 bytes .../Kasir/build/classes/App/Kasirku.class | Bin 0 -> 11291 bytes .../classes/Com/Config/DatabaseConnect.class | Bin 0 -> 502 bytes .../build/classes/Com/Config/MyConfig.class | Bin 0 -> 1105 bytes .../build/classes/Kasirku/Kasirku$1.class | Bin 0 -> 753 bytes .../build/classes/Kasirku/Kasirku$10.class | Bin 0 -> 757 bytes .../build/classes/Kasirku/Kasirku$2.class | Bin 0 -> 756 bytes .../build/classes/Kasirku/Kasirku$3.class | Bin 0 -> 754 bytes .../build/classes/Kasirku/Kasirku$4.class | Bin 0 -> 756 bytes .../build/classes/Kasirku/Kasirku$5.class | Bin 0 -> 754 bytes .../build/classes/Kasirku/Kasirku$6.class | Bin 0 -> 753 bytes .../build/classes/Kasirku/Kasirku$7.class | Bin 0 -> 755 bytes .../build/classes/Kasirku/Kasirku$8.class | Bin 0 -> 756 bytes .../build/classes/Kasirku/Kasirku$9.class | Bin 0 -> 1182 bytes .../Kasir/build/classes/Kasirku/Kasirku.class | Bin 0 -> 17435 bytes .../Kasir/build/classes/Kasirku/Kasirku.form | 502 +++++ Projek 2/Kasir/manifest.mf | 3 + Projek 2/Kasir/nbproject/build-impl.xml | 1771 +++++++++++++++++ Projek 2/Kasir/nbproject/genfiles.properties | 8 + .../nbproject/private/private.properties | 2 + Projek 2/Kasir/nbproject/private/private.xml | 11 + Projek 2/Kasir/nbproject/project.properties | 96 + Projek 2/Kasir/nbproject/project.xml | 15 + .../Kasir/src/Com/Config/DatabaseConnect.java | 10 + Projek 2/Kasir/src/Com/Config/MyConfig.java | 27 + Projek 2/Kasir/src/Kasirku/Kasirku.form | 502 +++++ Projek 2/Kasir/src/Kasirku/Kasirku.java | 589 ++++++ 40 files changed, 3813 insertions(+) create mode 100644 Projek 1/H071221090_Tugas Proyek/.vscode/settings.json create mode 100644 Projek 1/H071221090_Tugas Proyek/README.md create mode 100644 Projek 1/H071221090_Tugas Proyek/bin/App.class create mode 100644 Projek 1/H071221090_Tugas Proyek/bin/MyConfig.class create mode 100644 Projek 1/H071221090_Tugas Proyek/src/App.java create mode 100644 Projek 1/H071221090_Tugas Proyek/src/MyConfig.java create mode 100644 Projek 2/Kasir/build.xml create mode 100644 Projek 2/Kasir/build/classes/.netbeans_automatic_build create mode 100644 Projek 2/Kasir/build/classes/.netbeans_update_resources create mode 100644 Projek 2/Kasir/build/classes/App/Kasirku$1.class create mode 100644 Projek 2/Kasir/build/classes/App/Kasirku$2.class create mode 100644 Projek 2/Kasir/build/classes/App/Kasirku$3.class create mode 100644 Projek 2/Kasir/build/classes/App/Kasirku$4.class create mode 100644 Projek 2/Kasir/build/classes/App/Kasirku$5.class create mode 100644 Projek 2/Kasir/build/classes/App/Kasirku.class create mode 100644 Projek 2/Kasir/build/classes/Com/Config/DatabaseConnect.class create mode 100644 Projek 2/Kasir/build/classes/Com/Config/MyConfig.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$1.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$10.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$2.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$3.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$4.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$5.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$6.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$7.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$8.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku$9.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku.class create mode 100644 Projek 2/Kasir/build/classes/Kasirku/Kasirku.form create mode 100644 Projek 2/Kasir/manifest.mf create mode 100644 Projek 2/Kasir/nbproject/build-impl.xml create mode 100644 Projek 2/Kasir/nbproject/genfiles.properties create mode 100644 Projek 2/Kasir/nbproject/private/private.properties create mode 100644 Projek 2/Kasir/nbproject/private/private.xml create mode 100644 Projek 2/Kasir/nbproject/project.properties create mode 100644 Projek 2/Kasir/nbproject/project.xml create mode 100644 Projek 2/Kasir/src/Com/Config/DatabaseConnect.java create mode 100644 Projek 2/Kasir/src/Com/Config/MyConfig.java create mode 100644 Projek 2/Kasir/src/Kasirku/Kasirku.form create mode 100644 Projek 2/Kasir/src/Kasirku/Kasirku.java diff --git a/Projek 1/H071221090_Tugas Proyek/.vscode/settings.json b/Projek 1/H071221090_Tugas Proyek/.vscode/settings.json new file mode 100644 index 0000000..cf9abf8 --- /dev/null +++ b/Projek 1/H071221090_Tugas Proyek/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "java.project.sourcePaths": ["src"], + "java.project.outputPath": "bin", + "java.project.referencedLibraries": [ + "lib/**/*.jar" + "C:\\MYSQL\\mysql-connector-j-8.0.32\\mysql-connector-j-8.0.32\\mysql-connector-j-8.0.32.jar" + ] +} diff --git a/Projek 1/H071221090_Tugas Proyek/README.md b/Projek 1/H071221090_Tugas Proyek/README.md new file mode 100644 index 0000000..ea6d65b --- /dev/null +++ b/Projek 1/H071221090_Tugas Proyek/README.md @@ -0,0 +1,24 @@ +# App.java +didalam App.java terdapat method static yaitu method main. Dimana dalam method main terdapat Menu.showMenu(); + +# com +terdapat 1 package + +## config +di dalam package config terdapat java class yaitu MyConfig +di dalamnya terdapat java class yaitu DbController terdapat method static getDatabase untuk mengambil data yang ada dalam dalam database yang kita buat, selain itu terdapat juga getProdukByNama(), insertData(), updateNama(), updateHarga(), updataStok() dan deleteData() + +a. Delete: berfungsi untuk menghapus data yang ingin dihapus dengan cara menginput nama produk dengan benar + +b. Edit: berfungsi untuk mengedit data yang sudah ada + +c. Insert: berfungsi untuk menambahkan data baru + +d. Menu: berfungsi untuk menampilkan menu serta user dapat menginput menu yang diinginkan + +e. Read: berfungsi menampilkan seluruh data yang tersimpan + +dan terdapat java class Produk yang menyimpan atribut Id, name, price, stock, serta terdapat method setter dan getter untuk masing-masing atribut. + + + diff --git a/Projek 1/H071221090_Tugas Proyek/bin/App.class b/Projek 1/H071221090_Tugas Proyek/bin/App.class new file mode 100644 index 0000000000000000000000000000000000000000..2fbc437c5f46653326ea4f9afc13e38345fbc7e4 GIT binary patch literal 2008 zcmZ`(OH&kA6#g#E(9KM%fDEER(?k28ua5f?CuY z2%}D6OWJYmv89C>yEJ9Z6l{g2bTMlcrmd1Ad>{;Yb52>LsSD__-IsG(b z#w$5)zBe(gp;4jHS1fr>p)-@UT-PquV=H1BnxD%vbF=K(3kF)SO`%4d#wsqIVrR-- zT=MAEwibFLXux*Kd51!4{Dmfo=?L1eOT$hDee~u)(Vcbj240pjH|1@Q0+*OLMOW=0PD3%Fr$SUR8kXv8SfHZQXbEvIk_G}ZfdF!%sMJG!iD#c1&dwI-SAWTgg z%ka@&o?|HL)kwv<>=oywRS84L^-qQai%>;nICHJwR)E4KJ<1ypP>YdsmSV+8NL)e<2Tqf|_U3Z`* z6sudq8!K2A#igo3^CODra^R*%7w$^cpkBCls$3+dZP#PoK*uD zR_BL=9I H;M0ErNS3eX literal 0 HcmV?d00001 diff --git a/Projek 1/H071221090_Tugas Proyek/bin/MyConfig.class b/Projek 1/H071221090_Tugas Proyek/bin/MyConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..0a99cfff48923b979fbc2f3298f65c9ddb003075 GIT binary patch literal 3863 zcma)9YgZfB72P97jDT^RD)<2fd;AIl%a&^!VnYm(kuU;DfF!W79h*TKW7$H&dN|Oy zP1>YQ-%a{%`bgWfao?@&7Dq{&Hf=xk|8(_3*GjtY9Z5)qX5|B;d+(fk?m2t!bLR5T z_uhI3zzF`K!J)tvSsTq|ucenXs0tpvVcs@<88f@&n_9eKC5sB0O8JZecX;DXyqHgC zmxdH<=0mX3*!$FvqP1*g zxwU=6CSF~oN%NEGY`QqiBs{%yJYY1JvRcuE-8$N_L&5fNI%`Es%ZpY%VJ>DYk*5fG z&djI9yt1ekucr$NTEkVWMD9ygaU+~o?8QC}hJu|EClPEQpT2G7BWBiIvhq5*v0p*N zvl+(^v(mef-^QUsEyU@djz{s47Ca7*hMoon<7)-tqoWsnL?BlpP8BTEIo~unERspf zTpn`4OE@cztyC+H;+O`Xg2!Ysjn+CohU4UCML5W0>2r&mdgoek5(66g`M!ood?p-R zO5D$if zqY0zW7>i9sjI;ijKYFf>a`$U^s+v)wmUNuOD3M#qTPtSXstHKJv8__uh;7>5kgDw% zYC{m`G>j?etYy8)O2;@t3Uq7LN|uV&Ov%cxQ8=DDl4Dk(lqtroBDtAV;0OiU5W$p& zC?#6+T(iW}z^vsoQ;I8WZW$*yPxkN^LCWlyM7z6Gbt#KIWzRh}DKSdCW--jOCM z3gx0k&1F--ZswQxtH#+$HGHbE;$>%6(3WIf7wz`t!ix&lMq@#LB4{N1XTw1wG-gDn z5=QVsD4vK{O2qJl0!ApBFs5Unh(9)OOa|u-|7>FFYADLhkzh386}TI7{@5si^BnK* z?=_;c;jmZ2DEG>#fU!2~6&3MW9WUW?EZ&OZXID~;PGUt-eu2dztJ$!lP8o$#GHDeG z*GicT3qvzgDN*87*A^^KgnH*hd4EO6SMf4iy6vP^lK)d!wRPD%zox^D$6WY^f4^{0^!ErvPp{F2AK*0&KddkCTC@Vd85e#`3?w36yCGl62;WxFA<-*I{Wapp&wI+sSVha0n#w-Jr2e9y zJHQVLldAiiRH6?tdKccUdbPK2@*2;T@=0qfEp8Xvsuzf(qEBKUzu!%~i#gHBzh=%f z&Kz)Y-dZLcjdgxR*B?K6i5F<1a5!aP~dKu6rCf(7~rT0Ma?2 z+Xnb3y13TD+evkEh9L>NZnw+b=6>W&?0J9#_i@O5cpXRX!Zq2qjuZE!NjrA&E8irY z?_>sGETXlGNOm)lF23pHsyJ*nRGh+T&Ib9%tLJ$QCsm$2R6SXV(nJ98qWj6o`#8{7 z#;^n7!({|`ak`5uUiU;9VF!l2?pPTK2L@HI`+{5=aC+Sr?NKvheH)kO-B%uBp?e*R z?rZC~-l6j0zRAZ9r&wDSqh^lQkz-!oGI+sz_5Ifx6MPn*tR*-=3Wy5R-NVsdCb^I4 z?}vc{=)*zU9l|iLVR^1U3lE;-z3T-WmH@zqVeEqX9(HMXUPDkrW7*nURAdBN`IH?iBrB&+Q1k;M2IUO&ShVBk-X-BS$vG*cgvNg8}Bv`|fQ zdnHMuA!IUtwG!PI@g-s)1p6*cgnXi;y^Jp_cz{>#;}uEc*GVHKcisI>KK8ET+j1a@ zeU&TZuZ-_I>?D39lV}}O1>HZfMLLQxwnkf|of7{MV)PV)_G6Sczi~bzY$`&ieT;)q z;AhfKjNZUqDfK9RF4-ApoTu;$+6fuA!0~U4X?VSv!(ZZ8m302a*MjJ2_pb+4rqrQI zDGxe3oGRt~TL$BFcD+=_eU+o;?lRWJlGa%nlu>2nt@?y2RTpH)RbGxtxi8|A(I@JTu#&a4r64Lh%;JI^3#~-nvlsfF3EINf+YA< z>Ahd_>7*|K!RdMk#>uFF;7|B-1%fxE7=R=0cfv$~S+kZSUe!*KO>@Jo3 z4x*=)-+mSjaDmR|sk@7m^Cjx;GBx)!OY92sT&N@Nh%6z{dY_D%4VNV^} + + + + + + + + + + Builds, tests, and runs the project Kasir. + + + diff --git a/Projek 2/Kasir/build/classes/.netbeans_automatic_build b/Projek 2/Kasir/build/classes/.netbeans_automatic_build new file mode 100644 index 0000000..e69de29 diff --git a/Projek 2/Kasir/build/classes/.netbeans_update_resources b/Projek 2/Kasir/build/classes/.netbeans_update_resources new file mode 100644 index 0000000..e69de29 diff --git a/Projek 2/Kasir/build/classes/App/Kasirku$1.class b/Projek 2/Kasir/build/classes/App/Kasirku$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6f11ddb1aafa744f76c7b83b5c25e03f3fd7899a GIT binary patch literal 731 zcmaKp+iuf95QhKF$+6?6ZYbr{P@n-Nsf6iuP*I4As4%4xDEAv@X*bxrk?jO7c_kzc z5*IuG4~3X@EC>i;$$Oan_nY}=zyJ994ZtJZvr$6XLd8WDHHMAheC|KvsZ8E1I)@Ck z>_VoU2XqjuoeUh*VOwxqG~hCLGrr`0#MQa~Vloq9Mi(DSC9@-jaB{0u3PfV{~qQ8O5H1E*rh-MRU z`UjuD`d?su$Te4JtkF$ihO0F0tW>y$>$D?%PGh)1>ncO_y+`6*vSAC^{(lD5Ju#F`UnXM?96u%SC6G zp<<3@+PO^^;o8l>Llv$A&qobDL*s-mc@T4T6g-)nh{#aj9jT<*V<>ieV-Iy~I%xPf zg(gF74aLy9r(Zv(&|zexR)->ap_7@IGHiFljLTn{KrDqa!Ai1k?Llws;0#0ipOR3f zMktX`Y27~x?~NHsBRv%io1s+VU@@DB%nOB%-3{~BTNp6W#siTlzP;pfx8Wg8>pzKUXBSq-S%jXc&~bdLUBsK&O<=f2gSSQOwg+q_{#4Tm{2vutvi^GQE3&{u<8G-Xd#{ zcI)x_JDIW!tp#f5YIdsQ8akP$jvKUlB)3h__Y-26 BnGOH| literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/App/Kasirku$3.class b/Projek 2/Kasir/build/classes/App/Kasirku$3.class new file mode 100644 index 0000000000000000000000000000000000000000..4546a1384bc0eddfd0b75ffb01a54005fe993ab5 GIT binary patch literal 1162 zcma)4-A)rh6#k~W?Lt|g6a*DikgDzSQ=}>vH4;-XZY*d5A*oyq?Fft8-DYX=E4% z?{_-o$2@d`7u`aIArtL8VPT0b>WQ0b7JcY9kTo#?lVSFNzvM^d@X+!0$`RjnMfrhv z&bw~3B@gR*b{+)JVWl(9rMZt$4s2VI72#m)e#{>KAB5VRweAbi3_;MU^Kb6)^Z|-)Xp=8 zmEu3W|99;SdW|}#`s&~AC7KqGIK$Xk znHdI}zT0hk8@w%B8%?&>QJ(4L5DDpCnR^hLXrm`W_m3BB#L z#1R9tDbfjR!gZxWvU-xWXxk+csxR;ld${bT-wm4Lp(F3j-h*0{v!Mppyr%1i^j6}k z4BVtNiKb0da7*T)=Th_A9p4jPL?vs*(l%w;5MlJl4{1E6?Rg?lm5LD4G{Qc5)fz1t zH~k^!3FLC}anniO3}BLQQ)Im%uTJ}_HFpeV%`bd}VHsaA*wFIBn+-ibve`&WD?`6y zj9SKLy`gDa4V_k+Rz}-8#>9J~NZ}Iwhg5>^l;Q_&;3qDV&x%vv3Y90nRaFX8)(oyv zr1Z_AK(W`z9@LP2ox=>7v$Pnl6IEPqm39d?tPdESTz*GpoHs)-;Frob9z#y@87QJe z_mVr!=pZ>Q%n?j#utvL7MRHC|Ro;@BE3i|^wA literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/App/Kasirku$4.class b/Projek 2/Kasir/build/classes/App/Kasirku$4.class new file mode 100644 index 0000000000000000000000000000000000000000..3f973ed9e9f5394971be9b9487c5e60eb422478f GIT binary patch literal 734 zcmaKpTW`}a6vzMWElrwrrNG8zWxxt*JBjcx@lrHYsv!_zOak@YO})(}wX4J}uY4sW zE)oxX06x^jaT-BEh)A)0j{p9h+mDNH-vKqXwU$G384h#9W;Pug6mn8G86wDrpWGikFttE{xIY(I7HXs}qr&>SQJ+47;5$1M~ML5KEyy)DTFBFwNjCq=h6t`)@RWMuzYc%YXY48R5Yq(1L7M%`h zw;r#z{~4_J70$;@vrTJ-UIG`mM(fr}h3mLM7U?q@!%aGu8Ok3TB;G+Y#}0C=+xrBz z{{4K;!Z5V0v`Tgu zGNrY^MV2AA_xR`^3!~!u)PswRJ#rizBMhFANuZ3Xhmyf5U0F{`O?>qZzErEgATavL={7O_N%AA}<0bm_Xl&mBN$=3n;$xg}&bn_`PTUl>`y|vpDblNu9GbZWII|G=)G-V7kf8eb) zDNTIBy=-CFd572Iu&)R9f*gD8-&?7Bixm|IwLeZm5qZH};1(T*? As{jB1 literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/App/Kasirku.class b/Projek 2/Kasir/build/classes/App/Kasirku.class new file mode 100644 index 0000000000000000000000000000000000000000..6b0439781bce355c349dbc16184eea625d497dad GIT binary patch literal 11291 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 literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Com/Config/DatabaseConnect.class b/Projek 2/Kasir/build/classes/Com/Config/DatabaseConnect.class new file mode 100644 index 0000000000000000000000000000000000000000..a471b57e07d201fd5a88187e57bb6e853aded71b GIT binary patch literal 502 zcmZut%TB^T6g{`C6lw+JAquE*2VK|?z~}06)rj z2gDF!CUbHh=bkxpzrNo;0i5B`f(G4$VPgX+LVh5ggd2*e?_T+XpqCI*Co+=BDM4>E zyC%|vVmltX?KrxZeYf+x2rQV;GuVV}V#`JrIYM=XcPbt)<0H0aKtV(Uc0)y zAVw(5jKqic&$!E32RcVU&6$Cm516+zWTvnj=M~l)@>7&vxUFH2G0SA|sKGnSA&n|$ Q_F^10)Hx&UGio^a0lBtrO#lD@ literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Com/Config/MyConfig.class b/Projek 2/Kasir/build/classes/Com/Config/MyConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..dc7aa95d671c53514a458ae51b51d13c61428247 GIT binary patch literal 1105 zcmZuwT~pIQ6g^u?)7F-c00mUADo9(jL93{Zqcaq7)E0E=;PW?6i#Xx^Ewvei~_9Qjp0YixGy=K3L7+ zLBOEw3V)NkCc|Q(-p@8e-}WrMI1q|{&=rg^y0osI z2KTsS`V3ji3~R#kXdu*&p>YBG0rEXP|3`WXWrseTp29q?DadDV9XA*zYQmN2UE9(c zCtZW4PX@zO7xN#0Bo=6OuZ3ss1$KVT^xHhJoiuJ?NkJilB1#O?Qrxi?9MPz?S6k8K z-f)k0F&?zVQNs)Z61#45M_3HSoU5*K%$u)REcY)FBpo>knS&r z6c#R?FGI{crgVRHgCq$h+YGs}*WmlTrs<|Q@C|drmb9|xJ19$yw4!->G5~?fb&(Y# zn;s9H8hILh>1JWL^bPEDlwP4zrhz2x(wXTN;2tXEG2F)kI_1wF5s$zts&a F{{RIC2#Ejy literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Kasirku/Kasirku$1.class b/Projek 2/Kasir/build/classes/Kasirku/Kasirku$1.class new file mode 100644 index 0000000000000000000000000000000000000000..976486d87fd30e8e5334ab307556f94fec8fb0a1 GIT binary patch literal 753 zcmaJ&@r?hsMlkj@cmFnN*;>zSfz=WF>LjMoSVPWzE}vU{UzkUtm7WM=GOk?qf+7jAEW;BExmM^g2icnCF>`r?*g|e+?HXwkg}A zXe!QN=M&iA3#<=0<|2(X+6lbHB^ujH6fWZm%?O{fF&l?HB6bO>%l(DxHI C8KIg0 literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Kasirku/Kasirku$10.class b/Projek 2/Kasir/build/classes/Kasirku/Kasirku$10.class new file mode 100644 index 0000000000000000000000000000000000000000..c6ce6547ce4f946bf8cf1644d17f93e515db908b GIT binary patch literal 757 zcmaKqU2oGc6oy~-D{U6qtc)>WWqcIWb`pW>qM@l80uja}P!Zf9H#M6_Y9q%jxBMj} zJ|r&q0sJV$aT)1C zN1LIwf@9d4SoJDN1vmSNm0BGM^IDskm@@42;+)Rk*+?veve8m<;PPRA>|ukU^G``E zGb@xZ3>&?_TIi1%DkD7=be>o$aX6n%gn7m%DXp|)o$z$bjdb&3vEuw7)+&n38j=T( zg+0;JBX0OiSYb%n;;YS+#e%%q{$EE7{!=|SiMTJ_NrJ+wTdqSw9;hVMnN-KiasjTp z3urpCM|$>FD{_TO*AGQzALxv#1rHT@FiLrri40fh;_F~I3l@g%^67sl(YuCo6gMf` zqv%%r!R{xp!54TRa?N=fYqS&WIkqU@T&i#Z7imWNoW^j8@+w31eMsVMvr3jbG#jI=D=*g504373|PhqIRz4vnH;go3Au+gQ8Dz*91L3 E0m#v!HUIzs literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Kasirku/Kasirku$2.class b/Projek 2/Kasir/build/classes/Kasirku/Kasirku$2.class new file mode 100644 index 0000000000000000000000000000000000000000..c672cf6cae2030e1131acfedf3eec25c9d8072d2 GIT binary patch literal 756 zcmaJR05XX7xyHl(^+9e+h|~ zhQtrxMbH9weJ%)yv z$*gyuHiMPjk%J~|3yzC5xD4JIUvNL>>ePQ8o{7lN;RjMlv(HfN4<-&;Xj|}HtfRxw zUZG>y3XOVccoOp2L1d&>$0B{D(?m=ecKSg<&)*tfEQB)t5^|W&M}vul4TkPNA%V<{ zP$Fg6=>Mf*Fkz^T^;FP>0;$B&JPAemf`>6>I)RROJmIO#*JZMn8^UmLm8!QlA`hMk zGt<*!p7KN(krJ@YSG82dg1p)OpCAV3M9>kR8g!msZN*WT-?qZ z(8|po>*S4AWD1pT9*N96))`fEpD40m9P=y_8E#PDn;;Qjo|pHYo&Nwa;5 zdBz#;egqqShV{O{T&A%>CxI`xLgVHVg)LmA72yjuhHEshGt}RC1l~rcq&+BU?coQo z-A}mio7E|p&gouX|6sO%G27_kI+2ykT`Ew+4viI(bF)~ra0|U6)50B!4#9H~^!)@O Ci=$lt literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Kasirku/Kasirku$3.class b/Projek 2/Kasir/build/classes/Kasirku/Kasirku$3.class new file mode 100644 index 0000000000000000000000000000000000000000..1dbb804368105473d79f08e0dc824906c51a54b7 GIT binary patch literal 754 zcmaJTMpWjS{!K@|TeK zka$2s@WhWoT&EGBf`}B~>+9oleUAP8$EVK#9^j6P63PxLKB}lOtUlqHOkd8zB6fBe zYUWI4oqMzxEv*hb)Zsete5}A{2+sMOhY44w;j{6%hz)JNFO@WV4CQWbFt&T)`qSL9EFl=?BoSeTlp_mJ0!Ug2O=7ZkI!5TyRpO8pq zMktXotablV&>JyShI%6CIFVH1a5f!_^f@0VRB1&z=E;bs($0%w#oEDeaha;KJ0J(1 z3Uj6>M?B?IVMI#6CSTT47ISiD^M8UEykk8}WARYhgZPD0cdbC8JWz3>GpSA&?R?y_ z_BX86Lp^<^6`4Y<>xUvUk90=e{Ktwc7$!W+M1~u5>vfO_upqEEPmiHQ{|YWqT&HZ0 zqOExSo%dk6K;TWZ3fldG*6qIo z+xdVCzgfMU=_{S<+aJvCFJ>2QTqm-ExlIi!*rKsSa&G3c2DZ`3D-GPH=n>qCpzkLW Cs-m#~ literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Kasirku/Kasirku$4.class b/Projek 2/Kasir/build/classes/Kasirku/Kasirku$4.class new file mode 100644 index 0000000000000000000000000000000000000000..d495a62f9a30ca691550531475e040512cf72ad1 GIT binary patch literal 756 zcmaJTMpWjS{!K@|TeK zka*w+Oz@Ww*J%W(AR@)rzCJ$J=UiX>`0^FNBiwUQLfJvZM-?@O)n`1D>FZfo#Lg~5 z&78@s^ME#^rQLytI$Q^yj}`a~!8xDvFyZPnd@(*3v7y5crIKckq1^3_JT%aB5cpU{ zi=nwh$FMOr>eWOf!ifFYNUe@UdZN>*m@sU0qnw_T5EEpy{%S47-)b~0_1XvK*-qUj^(Z7N#6xV6C zN6}`y{?13R{%1JvbIes5YjhI0z%?4z7btAtI;{wwvoYMDd6l91E+FtGS_SQXLF@KE zfbD$3rQfVx&h(A$_5BZK_ZPE^Hf|DG!Q7?-6>QO1B00D7RRi1Ty78bFy z!%#D)GV9!>#b{}D;GquJf#+idK0|QE=R8cfItibR&qQo!^F67g*<~nqdm|4GG#vy! zR?%W;F3~Y;JkYO?wc*KLY@}9)B7LsYshBWqb)%e|zcQhi3uVFuWZ&k4-pIikL;IhQ zNM=STkut1x|5DH!F;s?nBIr1gRN`PZ9gFmsj}xl2A|3NYYKMX_S-U^u@_)!7-4 z15brH)ssV>@~JQ)C18^;YblF4IkWjcK@8rJo~5yPDD6S~!l^q}AW`nCIMJC@CyRDI zZd&^r*6N|2zSN3Lq1N>Sk(oz2qi+6VMHUPbo@FA#HM;dWNCa3A*qf)vP@;bY7bvb% zwoB1gy#Drku>MClZ*$BBjWyZ{e8oi?*B2;U!eyEfK4)XNLV1;;`X(UoCRzpUUP0^j z-+^s^z`5V7Ue5H5&h`BdX7?Afi#DzjS;5?<1{G}4SRy&s^H~Eo(8((e+@k0a+=`&@ ECjsoD@Bjb+ literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Kasirku/Kasirku$6.class b/Projek 2/Kasir/build/classes/Kasirku/Kasirku$6.class new file mode 100644 index 0000000000000000000000000000000000000000..407f5a6ca50bc847a5a37d20f44ed335f2112dd5 GIT binary patch literal 753 zcmaJ0R1lHkYhRyxuFtW*{P^@4z#ZIhQ9{{4#YYu2hV_R$lj)0jSj6rQ zL(Lq^tb2<#qm|vEhdNvbo{u&748aLs@G#-(D11CQ5wW4-+fqrh%TVt1#~vDJItYBM zqs7o%p<`&@)vupX`Ce?KR)->euG5*AGHmstoSVNgp;!oI!X;$i&WHW6gAInxKOvFK zj8GzF*y#Nwpg(4)jPz8{X(Fk_!F)Cm=~F&QDAS5`%#$%srCk@vigknG^eR<%XGjJ- z66RP>4|&RG!ibcBO}?t7EEZ(U=KlmScu({^jm14_58@X_-LwLUa$m)X&ZIh8w)1h# zy5F!)kM!)NR%8mbt{;fZ+}9a(^B*X(V3hDI6B#bkrPo0sz=FVDJiUby{cAWwu}!mG ziZydKEipMW6si8qe|c_&e7OjqHrD;Xhry(jo~8As|?jQ0f9HsDrol#T6gdc zZ2JRF{bu!Yrf+nv?|(46znEQgaEZtY<_&l3G&78bFy z%TP0?N!GbTi_y~Rz(XCb1JB0_e1_nR&v}?~c@jPupNZJe=DUeZ%pOCz+Z%akpy?p+ zv5FQ$bBT^&V{GK}F@MeVerysYkAyx}dMYLiTiqyU=dVmC=0ciq0XeYwpf_@`#?byJ zBuX+Pq|gj&-M=LCMhumqng}{ilt^(nn~sHk#>XjDT9Jx*I^sI9^P*U>elVP0rt0ht z$b!ehoT|wY*L*6B&;)GqWi4efCu=tUCy2p&s%APC_Y->%zp(1I6-bl^GEP;N$dg4o zAKTXdhV^==rZ1HwQ>b1jsX+x>G?qxt^?cUA4RrEK12-vp1h*pS F`w4;3qq6`2 literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Kasirku/Kasirku$8.class b/Projek 2/Kasir/build/classes/Kasirku/Kasirku$8.class new file mode 100644 index 0000000000000000000000000000000000000000..1ab99fa09c0b6af9d247ab8472ba09ab1974d494 GIT binary patch literal 756 zcmaJDve0H_3b!a<4yj(L}2b-@_`} z46P+PhK-3;FO5vjx!RAc)app2$2v{KlwqqE=Jfov4a8h18!R9P*?ia^*RjUX`6ncl z#tJ1;hPB>b8v0{~%1BQIT_}`F9L|!7NMGe zvj#LXvqw5P*NRM`(v3r5>?3Wcn)g_d1*4c7BMfd(-y0wiV7{OAo}NRA{uNxJxK6V@ zidn`T?7RmXd_?_ij=4-@jZOkzafQb91qvIuN-M(WYz)_EUS+7h@d><%c0s#e&^m*6 zU^^dh;Ww+BGkv3begA{m`Niy@gX=_AFn6dx1zR+hNY2fC)x<4y^Gp-BDY^vDM9}vW D)CQzV literal 0 HcmV?d00001 diff --git a/Projek 2/Kasir/build/classes/Kasirku/Kasirku$9.class b/Projek 2/Kasir/build/classes/Kasirku/Kasirku$9.class new file mode 100644 index 0000000000000000000000000000000000000000..4289741e89cf7ed6587f0e3632801373c031bfa1 GIT binary patch literal 1182 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 + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + </TableColumnModel> + </Property> + <Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor"> + <TableHeader reorderingAllowed="true" resizingAllowed="true"/> + </Property> + </Properties> + </Component> + </SubComponents> + </Container> + </SubComponents> + </Container> + <Component class="javax.swing.JButton" name="btn_clear"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="66" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Clear"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_clearActionPerformed"/> + </Events> + </Component> + </SubComponents> +</Form> diff --git a/Projek 2/Kasir/manifest.mf b/Projek 2/Kasir/manifest.mf new file mode 100644 index 0000000..328e8e5 --- /dev/null +++ b/Projek 2/Kasir/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/Projek 2/Kasir/nbproject/build-impl.xml b/Projek 2/Kasir/nbproject/build-impl.xml new file mode 100644 index 0000000..71a78ed --- /dev/null +++ b/Projek 2/Kasir/nbproject/build-impl.xml @@ -0,0 +1,1771 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +*** GENERATED FROM project.xml - DO NOT EDIT *** +*** EDIT ../build.xml INSTEAD *** + +For the purpose of easier reading the script +is divided into following sections: + + - initialization + - compilation + - jar + - execution + - debugging + - javadoc + - test compilation + - test execution + - test debugging + - applet + - cleanup + + --> +<project xmlns:if="ant:if" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" xmlns:unless="ant:unless" basedir=".." default="default" name="Kasir-impl"> + <fail message="Please build using Ant 1.8.0 or higher."> + <condition> + <not> + <antversion atleast="1.8.0"/> + </not> + </condition> + </fail> + <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/> + <!-- + ====================== + INITIALIZATION SECTION + ====================== + --> + <target name="-pre-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-pre-init" name="-init-private"> + <property file="nbproject/private/config.properties"/> + <property file="nbproject/private/configs/${config}.properties"/> + <property file="nbproject/private/private.properties"/> + </target> + <target depends="-pre-init,-init-private" name="-init-user"> + <property file="${user.properties.file}"/> + <!-- The two properties below are usually overridden --> + <!-- by the active platform. Just a fallback. --> + <property name="default.javac.source" value="1.8"/> + <property name="default.javac.target" value="1.8"/> + </target> + <target depends="-pre-init,-init-private,-init-user" name="-init-project"> + <property file="nbproject/configs/${config}.properties"/> + <property file="nbproject/project.properties"/> + </target> + <target name="-init-modules-supported"> + <condition property="modules.supported.internal" value="true"> + <not> + <matches pattern="1\.[0-8](\..*)?" string="${javac.source}"/> + </not> + </condition> + </target> + <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-modulename"> + <macrodef name="modulename" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute name="property"/> + <attribute name="sourcepath"/> + <sequential> + <loadresource property="@{property}" quiet="true"> + <javaresource classpath="@{sourcepath}" name="module-info.java" parentFirst="false"/> + <filterchain> + <stripjavacomments/> + <linecontainsregexp> + <regexp pattern="module .* \{"/> + </linecontainsregexp> + <tokenfilter> + <linetokenizer/> + <replaceregex flags="s" pattern="(\s*module\s+)(\S*)(\s*\{.*)" replace="\2"/> + </tokenfilter> + <striplinebreaks/> + </filterchain> + </loadresource> + </sequential> + </macrodef> + </target> + <target depends="-init-modules-supported,-init-macrodef-modulename" if="modules.supported.internal" name="-init-source-module-properties"> + <fail message="Java 9 support requires Ant 1.10.0 or higher."> + <condition> + <not> + <antversion atleast="1.10.0"/> + </not> + </condition> + </fail> + <j2seproject3:modulename property="module.name" sourcepath="${src.dir}"/> + <condition property="named.module.internal"> + <and> + <isset property="module.name"/> + <length length="0" string="${module.name}" when="greater"/> + </and> + </condition> + <condition property="unnamed.module.internal"> + <not> + <isset property="named.module.internal"/> + </not> + </condition> + <property name="javac.modulepath" value=""/> + <property name="run.modulepath" value="${javac.modulepath}"/> + <property name="module.build.classes.dir" value="${build.classes.dir}"/> + <property name="debug.modulepath" value="${run.modulepath}"/> + <property name="javac.upgrademodulepath" value=""/> + <property name="run.upgrademodulepath" value="${javac.upgrademodulepath}"/> + <condition else="" property="javac.systemmodulepath.cmd.line.arg" value="--system '${javac.systemmodulepath}'"> + <and> + <isset property="javac.systemmodulepath"/> + <length length="0" string="${javac.systemmodulepath}" when="greater"/> + </and> + </condition> + <property name="dist.jlink.dir" value="${dist.dir}/jlink"/> + <property name="dist.jlink.output" value="${dist.jlink.dir}/${application.title}"/> + <property name="module.name" value=""/> + </target> + <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property,-init-modules-supported" name="-do-init"> + <property name="platform.java" value="${java.home}/bin/java"/> + <available file="${manifest.file}" property="manifest.available"/> + <condition property="splashscreen.available"> + <and> + <not> + <equals arg1="${application.splash}" arg2="" trim="true"/> + </not> + <available file="${application.splash}"/> + </and> + </condition> + <condition property="main.class.available"> + <and> + <isset property="main.class"/> + <not> + <equals arg1="${main.class}" arg2="" trim="true"/> + </not> + </and> + </condition> + <condition property="profile.available"> + <and> + <isset property="javac.profile"/> + <length length="0" string="${javac.profile}" when="greater"/> + <not> + <matches pattern="1\.[0-7](\..*)?" string="${javac.source}"/> + </not> + </and> + </condition> + <condition property="do.archive"> + <or> + <not> + <istrue value="${jar.archive.disabled}"/> + </not> + <istrue value="${not.archive.disabled}"/> + </or> + </condition> + <condition property="do.archive+manifest.available"> + <and> + <isset property="manifest.available"/> + <istrue value="${do.archive}"/> + </and> + </condition> + <condition property="do.archive+main.class.available"> + <and> + <isset property="main.class.available"/> + <istrue value="${do.archive}"/> + </and> + </condition> + <condition property="do.archive+splashscreen.available"> + <and> + <isset property="splashscreen.available"/> + <istrue value="${do.archive}"/> + </and> + </condition> + <condition property="do.archive+profile.available"> + <and> + <isset property="profile.available"/> + <istrue value="${do.archive}"/> + </and> + </condition> + <condition property="have.tests"> + <or> + <available file="${test.src.dir}"/> + </or> + </condition> + <condition property="have.sources"> + <or> + <available file="${src.dir}"/> + </or> + </condition> + <condition property="netbeans.home+have.tests"> + <and> + <isset property="netbeans.home"/> + <isset property="have.tests"/> + </and> + </condition> + <condition property="no.javadoc.preview"> + <and> + <isset property="javadoc.preview"/> + <isfalse value="${javadoc.preview}"/> + </and> + </condition> + <property name="run.jvmargs" value=""/> + <property name="run.jvmargs.ide" value=""/> + <property name="javac.compilerargs" value=""/> + <property name="work.dir" value="${basedir}"/> + <condition property="no.deps"> + <and> + <istrue value="${no.dependencies}"/> + </and> + </condition> + <property name="javac.debug" value="true"/> + <property name="javadoc.preview" value="true"/> + <property name="application.args" value=""/> + <property name="source.encoding" value="${file.encoding}"/> + <property name="runtime.encoding" value="${source.encoding}"/> + <property name="manifest.encoding" value="${source.encoding}"/> + <condition property="javadoc.encoding.used" value="${javadoc.encoding}"> + <and> + <isset property="javadoc.encoding"/> + <not> + <equals arg1="${javadoc.encoding}" arg2=""/> + </not> + </and> + </condition> + <property name="javadoc.encoding.used" value="${source.encoding}"/> + <property name="includes" value="**"/> + <property name="excludes" value=""/> + <property name="do.depend" value="false"/> + <condition property="do.depend.true"> + <istrue value="${do.depend}"/> + </condition> + <path id="endorsed.classpath.path" path="${endorsed.classpath}"/> + <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'"> + <and> + <isset property="endorsed.classpath"/> + <not> + <equals arg1="${endorsed.classpath}" arg2="" trim="true"/> + </not> + </and> + </condition> + <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}"> + <isset property="profile.available"/> + </condition> + <condition else="false" property="jdkBug6558476"> + <and> + <matches pattern="1\.[56]" string="${java.specification.version}"/> + <not> + <os family="unix"/> + </not> + </and> + </condition> + <condition else="false" property="javac.fork"> + <or> + <istrue value="${jdkBug6558476}"/> + <istrue value="${javac.external.vm}"/> + </or> + </condition> + <property name="jar.index" value="false"/> + <property name="jar.index.metainf" value="${jar.index}"/> + <property name="copylibs.rebase" value="true"/> + <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/> + <condition property="junit.available"> + <or> + <available classname="org.junit.Test" classpath="${run.test.classpath}"/> + <available classname="junit.framework.Test" classpath="${run.test.classpath}"/> + </or> + </condition> + <condition property="testng.available"> + <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/> + </condition> + <condition property="junit+testng.available"> + <and> + <istrue value="${junit.available}"/> + <istrue value="${testng.available}"/> + </and> + </condition> + <condition else="testng" property="testng.mode" value="mixed"> + <istrue value="${junit+testng.available}"/> + </condition> + <condition else="" property="testng.debug.mode" value="-mixed"> + <istrue value="${junit+testng.available}"/> + </condition> + <property name="java.failonerror" value="true"/> + </target> + <target name="-post-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check"> + <fail unless="src.dir">Must set src.dir</fail> + <fail unless="test.src.dir">Must set test.src.dir</fail> + <fail unless="build.dir">Must set build.dir</fail> + <fail unless="dist.dir">Must set dist.dir</fail> + <fail unless="build.classes.dir">Must set build.classes.dir</fail> + <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail> + <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail> + <fail unless="build.test.results.dir">Must set build.test.results.dir</fail> + <fail unless="build.classes.excludes">Must set build.classes.excludes</fail> + <fail unless="dist.jar">Must set dist.jar</fail> + </target> + <target name="-init-macrodef-property"> + <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute name="name"/> + <attribute name="value"/> + <sequential> + <property name="@{name}" value="${@{value}}"/> + </sequential> + </macrodef> + </target> + <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="modules.supported.internal" name="-init-macrodef-javac-with-module"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> + <attribute default="${javac.modulepath}" name="modulepath"/> + <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${javac.processormodulepath}" name="processormodulepath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="${javac.debug}" name="debug"/> + <attribute default="${empty.dir}" name="sourcepath" unless:set="named.module.internal"/> + <attribute default="${src.dir}" if:set="named.module.internal" name="sourcepath"/> + <attribute default="${empty.dir}" name="gensrcdir"/> + <element name="customize" optional="true"/> + <sequential> + <condition property="warn.excludes.internal"> + <and> + <isset property="named.module.internal"/> + <length length="0" string="@{excludes}" trim="true" when="greater"/> + </and> + </condition> + <echo if:set="warn.excludes.internal" level="warning" message="The javac excludes are not supported in the JDK 9 Named Module."/> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <mkdir dir="@{apgeneratedsrcdir}"/> + <condition property="processormodulepath.set"> + <resourcecount count="0" when="greater"> + <path> + <pathelement path="@{processormodulepath}"/> + </path> + </resourcecount> + </condition> + <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </src> + <classpath> + <path path="@{classpath}"/> + </classpath> + <modulepath> + <path path="@{modulepath}"/> + </modulepath> + <upgrademodulepath> + <path path="@{upgrademodulepath}"/> + </upgrademodulepath> + <compilerarg line="${javac.systemmodulepath.cmd.line.arg}"/> + <compilerarg line="${javac.profile.cmd.line.arg}"/> + <compilerarg line="${javac.compilerargs}"/> + <compilerarg if:set="processormodulepath.set" value="--processor-module-path"/> + <compilerarg if:set="processormodulepath.set" path="@{processormodulepath}"/> + <compilerarg unless:set="processormodulepath.set" value="-processorpath"/> + <compilerarg path="@{processorpath}:${empty.dir}" unless:set="processormodulepath.set"/> + <compilerarg line="${ap.processors.internal}"/> + <compilerarg line="${annotation.processing.processor.options}"/> + <compilerarg value="-s"/> + <compilerarg path="@{apgeneratedsrcdir}"/> + <compilerarg line="${ap.proc.none.internal}"/> + <customize/> + </javac> + </sequential> + </macrodef> + </target> + <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors" unless="modules.supported.internal"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> + <attribute default="${javac.modulepath}" name="modulepath"/> + <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="${javac.debug}" name="debug"/> + <attribute default="${empty.dir}" name="sourcepath"/> + <attribute default="${empty.dir}" name="gensrcdir"/> + <element name="customize" optional="true"/> + <sequential> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <mkdir dir="@{apgeneratedsrcdir}"/> + <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </src> + <classpath> + <path path="@{classpath}"/> + </classpath> + <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> + <compilerarg line="${javac.profile.cmd.line.arg}"/> + <compilerarg line="${javac.compilerargs}"/> + <compilerarg value="-processorpath"/> + <compilerarg path="@{processorpath}:${empty.dir}"/> + <compilerarg line="${ap.processors.internal}"/> + <compilerarg line="${annotation.processing.processor.options}"/> + <compilerarg value="-s"/> + <compilerarg path="@{apgeneratedsrcdir}"/> + <compilerarg line="${ap.proc.none.internal}"/> + <customize/> + </javac> + </sequential> + </macrodef> + </target> + <target depends="-init-ap-cmdline-properties,-init-source-module-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> + <attribute default="${javac.modulepath}" name="modulepath"/> + <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="${javac.debug}" name="debug"/> + <attribute default="${empty.dir}" name="sourcepath"/> + <attribute default="${empty.dir}" name="gensrcdir"/> + <element name="customize" optional="true"/> + <sequential> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </src> + <classpath> + <path path="@{classpath}"/> + </classpath> + <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> + <compilerarg line="${javac.profile.cmd.line.arg}"/> + <compilerarg line="${javac.compilerargs}"/> + <customize/> + </javac> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-javac-with-module,-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> + <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> + <sequential> + <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}"> + <classpath> + <path path="@{classpath}"/> + </classpath> + </depend> + </sequential> + </macrodef> + <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${build.classes.dir}" name="destdir"/> + <sequential> + <fail unless="javac.includes">Must set javac.includes</fail> + <pathconvert pathsep="${line.separator}" property="javac.includes.binary"> + <path> + <filelist dir="@{destdir}" files="${javac.includes}"/> + </path> + <globmapper from="*.java" to="*.class"/> + </pathconvert> + <tempfile deleteonexit="true" property="javac.includesfile.binary"/> + <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/> + <delete> + <files includesfile="${javac.includesfile.binary}"/> + </delete> + <delete> + <fileset file="${javac.includesfile.binary}"/> + </delete> + </sequential> + </macrodef> + </target> + <target if="${junit.available}" name="-init-macrodef-junit-init"> + <condition else="false" property="nb.junit.batch" value="true"> + <and> + <istrue value="${junit.available}"/> + <not> + <isset property="test.method"/> + </not> + </and> + </condition> + <condition else="false" property="nb.junit.single" value="true"> + <and> + <istrue value="${junit.available}"/> + <isset property="test.method"/> + </and> + </condition> + </target> + <target name="-init-test-properties"> + <property name="test.binaryincludes" value="<nothing>"/> + <property name="test.binarytestincludes" value=""/> + <property name="test.binaryexcludes" value=""/> + </target> + <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-junit-prototype-with-module"> + <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <element name="customizePrototype" optional="true"/> + <sequential> + <property name="junit.forkmode" value="perTest"/> + <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + <modulepath> + <path path="${run.test.modulepath}"/> + </modulepath> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-ea"/> + <jvmarg line="${run.test.jvmargs}"/> + <customizePrototype/> + </junit> + </sequential> + </macrodef> + </target> + <target depends="-init-modules-supported" name="-init-macrodef-junit-prototype-without-module" unless="modules.supported.internal"> + <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <element name="customizePrototype" optional="true"/> + <sequential> + <property name="junit.forkmode" value="perTest"/> + <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-ea"/> + <customizePrototype/> + </junit> + </sequential> + </macrodef> + </target> + <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}"> + <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <j2seproject3:junit-prototype> + <customizePrototype> + <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> + <customize/> + </customizePrototype> + </j2seproject3:junit-prototype> + </sequential> + </macrodef> + </target> + <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}"> + <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <j2seproject3:junit-prototype> + <customizePrototype> + <batchtest todir="${build.test.results.dir}"> + <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> + <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> + <filename name="${test.binarytestincludes}"/> + </fileset> + </batchtest> + <customize/> + </customizePrototype> + </j2seproject3:junit-prototype> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/> + <target if="${testng.available}" name="-init-macrodef-testng"> + <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}"> + <isset property="test.method"/> + </condition> + <union id="test.set"> + <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> + </union> + <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> + <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Kasir" testname="TestNG tests" workingDir="${work.dir}"> + <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> + <propertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </propertyset> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <customize/> + </testng> + </sequential> + </macrodef> + </target> + <target name="-init-macrodef-test-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <echo>No tests executed.</echo> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize/> + </j2seproject3:junit> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize/> + </j2seproject3:testng> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test"> + <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <sequential> + <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + </customize> + </j2seproject3:test-impl> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-debug-impl"> + <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customizeDebuggee" optional="true"/> + <sequential> + <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize> + <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> + <customizeDebuggee/> + </customize> + </j2seproject3:junit> + </sequential> + </macrodef> + </target> + <target if="${testng.available}" name="-init-macrodef-testng-debug"> + <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <element name="customize2" optional="true"/> + <sequential> + <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}"> + <isset property="test.method"/> + </condition> + <condition else="-suitename Kasir -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}"> + <matches pattern=".*\.xml" string="@{testClass}"/> + </condition> + <delete dir="${build.test.results.dir}" quiet="true"/> + <mkdir dir="${build.test.results.dir}"/> + <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}"> + <customizeDebuggee> + <customize2/> + <jvmarg value="-ea"/> + <arg line="${testng.debug.mode}"/> + <arg line="-d ${build.test.results.dir}"/> + <arg line="-listener org.testng.reporters.VerboseReporter"/> + <arg line="${testng.cmd.args}"/> + </customizeDebuggee> + </j2seproject3:debug> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl"> + <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <element implicit="true" name="customize2" optional="true"/> + <sequential> + <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}"> + <customize2/> + </j2seproject3:testng-debug> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit"> + <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <sequential> + <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customizeDebuggee> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + </customizeDebuggee> + </j2seproject3:test-debug-impl> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng"> + <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <sequential> + <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}"> + <customize2> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + </customize2> + </j2seproject3:testng-debug-impl> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/> + <!-- + pre NB7.2 profiling section; consider it deprecated + --> + <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/> + <target if="profiler.info.jvmargs.agent" name="-profile-pre-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target if="profiler.info.jvmargs.agent" name="-profile-post-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile"> + <macrodef name="resolve"> + <attribute name="name"/> + <attribute name="value"/> + <sequential> + <property name="@{name}" value="${env.@{value}}"/> + </sequential> + </macrodef> + <macrodef name="profile"> + <attribute default="${main.class}" name="classname"/> + <element name="customize" optional="true"/> + <sequential> + <property environment="env"/> + <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/> + <java classname="@{classname}" dir="${profiler.info.dir}" failonerror="${java.failonerror}" fork="true" jvm="${profiler.info.jvm}"> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="${profiler.info.jvmargs.agent}"/> + <jvmarg line="${profiler.info.jvmargs}"/> + <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> + <arg line="${application.args}"/> + <classpath> + <path path="${run.classpath}"/> + </classpath> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check"> + <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail> + <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail> + </target> + <!-- + end of pre NB7.2 profiling section + --> + <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> + <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="${main.class}" name="name"/> + <attribute default="${debug.modulepath}" name="modulepath"/> + <attribute default="${debug.classpath}" name="classpath"/> + <attribute default="" name="stopclassname"/> + <sequential> + <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}"> + <modulepath> + <path path="@{modulepath}"/> + </modulepath> + <classpath> + <path path="@{classpath}"/> + </classpath> + </nbjpdastart> + </sequential> + </macrodef> + <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="${build.classes.dir}" name="dir"/> + <sequential> + <nbjpdareload> + <fileset dir="@{dir}" includes="${fix.classes}"> + <include name="${fix.includes}*.class"/> + </fileset> + </nbjpdareload> + </sequential> + </macrodef> + </target> + <target name="-init-debug-args"> + <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem"> + <os family="windows"/> + </condition> + <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}"> + <isset property="debug.transport"/> + </condition> + </target> + <target depends="-init-debug-args" name="-init-macrodef-debug"> + <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${module.name}" name="modulename"/> + <attribute default="${main.class}" name="classname"/> + <attribute default="${debug.modulepath}" name="modulepath"/> + <attribute default="${debug.classpath}" name="classpath"/> + <element name="customizeDebuggee" optional="true"/> + <sequential> + <j2seproject1:java classname="@{classname}" classpath="@{classpath}" modulename="@{modulename}" modulepath="@{modulepath}"> + <customize> + <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> + <customizeDebuggee/> + </customize> + </j2seproject1:java> + </sequential> + </macrodef> + </target> + <target depends="-init-source-module-properties" if="named.module.internal" name="-init-macrodef-java-with-module"> + <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="${module.name}" name="modulename"/> + <attribute default="${main.class}" name="classname"/> + <attribute default="${run.modulepath}" name="modulepath"/> + <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${run.classpath}" name="classpath"/> + <attribute default="jvm" name="jvm"/> + <element name="customize" optional="true"/> + <sequential> + <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" module="@{modulename}"> + <classpath> + <path path="@{classpath}"/> + </classpath> + <modulepath> + <pathelement path="@{modulepath}"/> + <pathelement location="${module.build.classes.dir}"/> + </modulepath> + <upgrademodulepath> + <path path="@{upgrademodulepath}"/> + </upgrademodulepath> + <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> + <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target depends="-init-source-module-properties" if="unnamed.module.internal" name="-init-macrodef-java-with-unnamed-module"> + <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="" name="modulename"/> + <attribute default="${main.class}" name="classname"/> + <attribute default="${run.modulepath}" name="modulepath"/> + <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${run.classpath}" name="classpath"/> + <attribute default="jvm" name="jvm"/> + <element name="customize" optional="true"/> + <sequential> + <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true"> + <classpath> + <path path="@{classpath}"/> + </classpath> + <modulepath> + <path path="@{modulepath}"/> + </modulepath> + <upgrademodulepath> + <path path="@{upgrademodulepath}"/> + </upgrademodulepath> + <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> + <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target depends="-init-source-module-properties" name="-init-macrodef-java-without-module" unless="modules.supported.internal"> + <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="" name="modulename"/> + <attribute default="${main.class}" name="classname"/> + <attribute default="" name="modulepath"/> + <attribute default="${run.classpath}" name="classpath"/> + <attribute default="jvm" name="jvm"/> + <element name="customize" optional="true"/> + <sequential> + <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true"> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> + <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + <classpath> + <path path="@{classpath}"/> + </classpath> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-java-with-module, -init-macrodef-java-with-unnamed-module, -init-macrodef-java-without-module" name="-init-macrodef-java"/> + <target name="-init-macrodef-copylibs"> + <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${manifest.file}" name="manifest"/> + <element name="customize" optional="true"/> + <sequential> + <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> + <pathconvert property="run.classpath.without.build.classes.dir"> + <path path="${run.classpath}"/> + <map from="${build.classes.dir.resolved}" to=""/> + </pathconvert> + <pathconvert pathsep=" " property="jar.classpath"> + <path path="${run.classpath.without.build.classes.dir}"/> + <chainedmapper> + <flattenmapper/> + <filtermapper> + <replacestring from=" " to="%20"/> + </filtermapper> + <globmapper from="*" to="lib/*"/> + </chainedmapper> + </pathconvert> + <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/> + <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" manifestencoding="UTF-8" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> + <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> + <manifest> + <attribute name="Class-Path" value="${jar.classpath}"/> + <customize/> + </manifest> + </copylibs> + </sequential> + </macrodef> + </target> + <target name="-init-presetdef-jar"> + <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1"> + <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifestencoding="UTF-8"> + <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> + </jar> + </presetdef> + </target> + <target name="-init-ap-cmdline-properties"> + <property name="annotation.processing.enabled" value="true"/> + <property name="annotation.processing.processors.list" value=""/> + <property name="annotation.processing.processor.options" value=""/> + <property name="annotation.processing.run.all.processors" value="true"/> + <property name="javac.processorpath" value="${javac.classpath}"/> + <property name="javac.test.processorpath" value="${javac.test.classpath}"/> + <condition property="ap.supported.internal" value="true"> + <not> + <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/> + </not> + </condition> + </target> + <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported"> + <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}"> + <isfalse value="${annotation.processing.run.all.processors}"/> + </condition> + <condition else="" property="ap.proc.none.internal" value="-proc:none"> + <isfalse value="${annotation.processing.enabled}"/> + </condition> + </target> + <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline"> + <property name="ap.cmd.line.internal" value=""/> + </target> + <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/> + <!-- + =================== + COMPILATION SECTION + =================== + --> + <target name="-deps-jar-init" unless="built-jar.properties"> + <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/> + <delete file="${built-jar.properties}" quiet="true"/> + </target> + <target if="already.built.jar.${basedir}" name="-warn-already-built-jar"> + <echo level="warn" message="Cycle detected: Kasir was already built"/> + </target> + <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps"> + <mkdir dir="${build.dir}"/> + <touch file="${built-jar.properties}" verbose="false"/> + <property file="${built-jar.properties}" prefix="already.built.jar."/> + <antcall target="-warn-already-built-jar"/> + <propertyfile file="${built-jar.properties}"> + <entry key="${basedir}" value=""/> + </propertyfile> + </target> + <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/> + <target depends="init" name="-check-automatic-build"> + <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/> + </target> + <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build"> + <antcall target="clean"> + <param name="no.dependencies" value="true"/> + </antcall> + </target> + <target depends="init,deps-jar" name="-pre-pre-compile"> + <mkdir dir="${build.classes.dir}"/> + </target> + <target name="-pre-compile"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target if="do.depend.true" name="-compile-depend"> + <pathconvert property="build.generated.subdirs"> + <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </pathconvert> + <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/> + </target> + <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile"> + <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/> + <copy todir="${build.classes.dir}"> + <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target if="has.persistence.xml" name="-copy-persistence-xml"> + <mkdir dir="${build.classes.dir}/META-INF"/> + <copy todir="${build.classes.dir}/META-INF"> + <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/> + </copy> + </target> + <target name="-post-compile"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/> + <target name="-pre-compile-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> + <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> + <j2seproject3:force-recompile/> + <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}, module-info.java" sourcepath="${src.dir}"/> + </target> + <target name="-post-compile-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/> + <!-- + ==================== + JAR BUILDING SECTION + ==================== + --> + <target depends="init" name="-pre-pre-jar"> + <dirname file="${dist.jar}" property="dist.jar.dir"/> + <mkdir dir="${dist.jar.dir}"/> + </target> + <target name="-pre-jar"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile" name="-check-module-main-class"> + <pathconvert property="main.class.file"> + <string value="${main.class}"/> + <unpackagemapper from="*" to="*.class"/> + </pathconvert> + <condition property="do.module.main.class"> + <and> + <isset property="main.class.available"/> + <available file="${build.classes.dir}/module-info.class"/> + <available file="${build.classes.dir}/${main.class.file}"/> + <isset property="libs.CopyLibs.classpath"/> + <available classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}"/> + </and> + </condition> + </target> + <target depends="-check-module-main-class" if="do.module.main.class" name="-set-module-main-class"> + <taskdef classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}" name="modulemainclass"/> + <modulemainclass failonerror="false" mainclass="${main.class}" moduleinfo="${build.classes.dir}/module-info.class"/> + </target> + <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available"> + <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> + <touch file="${tmp.manifest.file}" verbose="false"/> + </target> + <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest"> + <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> + <copy encoding="${manifest.encoding}" file="${manifest.file}" outputencoding="UTF-8" tofile="${tmp.manifest.file}"/> + </target> + <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass"> + <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="Main-Class" value="${main.class}"/> + </manifest> + </target> + <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile"> + <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="Profile" value="${javac.profile}"/> + </manifest> + </target> + <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen"> + <basename file="${application.splash}" property="splashscreen.basename"/> + <mkdir dir="${build.classes.dir}/META-INF"/> + <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/> + <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> + </manifest> + </target> + <target depends="init,compile" name="-check-do-mkdist"> + <condition property="do.mkdist"> + <and> + <isset property="do.archive"/> + <isset property="libs.CopyLibs.classpath"/> + <not> + <istrue value="${mkdist.disabled}"/> + </not> + <not> + <available file="${build.classes.dir}/module-info.class"/> + </not> + </and> + </condition> + </target> + <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-check-do-mkdist" if="do.mkdist" name="-do-jar-copylibs"> + <j2seproject3:copylibs manifest="${tmp.manifest.file}"/> + <echo level="info">To run this application from the command line without Ant, try:</echo> + <property location="${dist.jar}" name="dist.jar.resolved"/> + <echo level="info">java -jar "${dist.jar.resolved}"</echo> + </target> + <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-check-do-mkdist" if="do.archive" name="-do-jar-jar" unless="do.mkdist"> + <j2seproject1:jar manifest="${tmp.manifest.file}"/> + <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> + <property location="${dist.jar}" name="dist.jar.resolved"/> + <condition else="${dist.jar.resolved}" property="jar.usage.message.class.path.replacement" value=""> + <isset property="named.module.internal"/> + </condition> + <pathconvert property="run.classpath.with.dist.jar"> + <path path="${run.classpath}"/> + <map from="${build.classes.dir.resolved}" to="${jar.usage.message.class.path.replacement}"/> + </pathconvert> + <pathconvert property="run.modulepath.with.dist.jar"> + <path location="${dist.jar.resolved}"/> + <path path="${run.modulepath}"/> + <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/> + </pathconvert> + <condition else="${run.modulepath}" property="jar.usage.message.run.modulepath.with.dist.jar" value="${run.modulepath.with.dist.jar}"> + <isset property="named.module.internal"/> + </condition> + <condition else="" property="jar.usage.message.module.path" value=" -p ${jar.usage.message.run.modulepath.with.dist.jar}"> + <and> + <isset property="modules.supported.internal"/> + <length length="0" string="${jar.usage.message.run.modulepath.with.dist.jar}" when="greater"/> + </and> + </condition> + <condition else="" property="jar.usage.message.class.path" value=" -cp ${run.classpath.with.dist.jar}"> + <length length="0" string="${run.classpath.with.dist.jar}" when="greater"/> + </condition> + <condition else="/${main.class}" property="jar.usage.message.main.class.class.selector" value=""> + <isset property="do.module.main.class"/> + </condition> + <condition else=" ${main.class}" property="jar.usage.message.main.class" value=" -m ${module.name}${jar.usage.message.main.class.class.selector}"> + <isset property="named.module.internal"/> + </condition> + <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java}${jar.usage.message.module.path}${jar.usage.message.class.path}${jar.usage.message.main.class}"> + <isset property="main.class.available"/> + </condition> + <condition else="debug" property="jar.usage.level" value="info"> + <isset property="main.class.available"/> + </condition> + <echo level="${jar.usage.level}" message="${jar.usage.message}"/> + </target> + <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest"> + <delete> + <fileset file="${tmp.manifest.file}"/> + </delete> + </target> + <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/> + <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/> + <target name="-post-jar"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-jar,-set-module-main-class,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/> + <target depends="init,compile,-pre-jar,-do-jar,-post-jar,deploy" description="Build JAR." name="jar"/> + <!-- + ================= + DEPLOY SECTION + ================= + --> + <target name="-pre-deploy"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init" name="-check-jlink"> + <condition property="do.jlink.internal"> + <and> + <istrue value="${do.jlink}"/> + <isset property="do.archive"/> + <isset property="named.module.internal"/> + </and> + </condition> + </target> + <target depends="init,-do-jar,-post-jar,-pre-deploy,-check-jlink" if="do.jlink.internal" name="-do-deploy"> + <delete dir="${dist.jlink.dir}" failonerror="false" quiet="true"/> + <property name="jlink.launcher.name" value="${application.title}"/> + <condition else="${module.name}" property="jlink.add.modules" value="${module.name},${jlink.additionalmodules}"> + <and> + <isset property="jlink.additionalmodules"/> + <length length="0" string="${jlink.additionalmodules}" when="greater"/> + </and> + </condition> + <condition property="jlink.do.strip.internal"> + <and> + <isset property="jlink.strip"/> + <istrue value="${jlink.strip}"/> + </and> + </condition> + <condition property="jlink.do.additionalparam.internal"> + <and> + <isset property="jlink.additionalparam"/> + <length length="0" string="${jlink.additionalparam}" when="greater"/> + </and> + </condition> + <condition property="jlink.do.launcher.internal"> + <and> + <istrue value="${jlink.launcher}"/> + <isset property="main.class.available"/> + </and> + </condition> + <property name="platform.jlink" value="${jdk.home}/bin/jlink"/> + <property name="jlink.systemmodules.internal" value="${jdk.home}/jmods"/> + <exec executable="${platform.jlink}"> + <arg value="--module-path"/> + <arg path="${jlink.systemmodules.internal}:${run.modulepath}:${dist.jar}"/> + <arg value="--add-modules"/> + <arg value="${jlink.add.modules}"/> + <arg if:set="jlink.do.strip.internal" value="--strip-debug"/> + <arg if:set="jlink.do.launcher.internal" value="--launcher"/> + <arg if:set="jlink.do.launcher.internal" value="${jlink.launcher.name}=${module.name}/${main.class}"/> + <arg if:set="jlink.do.additionalparam.internal" line="${jlink.additionalparam}"/> + <arg value="--output"/> + <arg value="${dist.jlink.output}"/> + </exec> + </target> + <target name="-post-deploy"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-do-jar,-post-jar,-pre-deploy,-do-deploy,-post-deploy" name="deploy"/> + <!-- + ================= + EXECUTION SECTION + ================= + --> + <target depends="init,compile" description="Run a main class." name="run"> + <j2seproject1:java> + <customize> + <arg line="${application.args}"/> + </customize> + </j2seproject1:java> + </target> + <target name="-do-not-recompile"> + <property name="javac.includes.binary" value=""/> + </target> + <target depends="init,compile-single" name="run-single"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <j2seproject1:java classname="${run.class}"/> + </target> + <target depends="init,compile-test-single" name="run-test-with-main"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/> + </target> + <!-- + ================= + DEBUGGING SECTION + ================= + --> + <target depends="init" if="netbeans.home" name="-debug-start-debugger"> + <j2seproject1:nbjpdastart name="${debug.class}"/> + </target> + <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test"> + <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/> + </target> + <target depends="init,compile" name="-debug-start-debuggee"> + <j2seproject3:debug> + <customizeDebuggee> + <arg line="${application.args}"/> + </customizeDebuggee> + </j2seproject3:debug> + </target> + <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/> + <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto"> + <j2seproject1:nbjpdastart stopclassname="${main.class}"/> + </target> + <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/> + <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single"> + <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> + <j2seproject3:debug classname="${debug.class}"/> + </target> + <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/> + <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test"> + <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> + <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/> + </target> + <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/> + <target depends="init" name="-pre-debug-fix"> + <fail unless="fix.includes">Must set fix.includes</fail> + <property name="javac.includes" value="${fix.includes}.java"/> + </target> + <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix"> + <j2seproject1:nbjpdareload/> + </target> + <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/> + <!-- + ================= + PROFILING SECTION + ================= + --> + <!-- + pre NB7.2 profiler integration + --> + <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72"> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.classpath}"/> + </classpath> + </nbprofiledirect> + <profile/> + </target> + <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72"> + <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.classpath}"/> + </classpath> + </nbprofiledirect> + <profile classname="${profile.class}"/> + </target> + <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72"> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.classpath}"/> + </classpath> + </nbprofiledirect> + <profile classname="sun.applet.AppletViewer"> + <customize> + <arg value="${applet.url}"/> + </customize> + </profile> + </target> + <target depends="-init-macrodef-junit,profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72"> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + </nbprofiledirect> + <j2seproject3:junit excludes="${excludes}" includes="${includes}" testincludes="${profile.class}" testmethods=""> + <customize> + <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> + <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> + <jvmarg value="${profiler.info.jvmargs.agent}"/> + <jvmarg line="${profiler.info.jvmargs}"/> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + </customize> + </j2seproject3:junit> + </target> + <!-- + end of pre NB72 profiling section + --> + <target if="netbeans.home" name="-profile-check"> + <condition property="profiler.configured"> + <or> + <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/> + <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/> + </or> + </condition> + </target> + <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent"> + <startprofiler/> + <antcall target="run"/> + </target> + <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <startprofiler/> + <antcall target="run-single"/> + </target> + <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/> + <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs"> + <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> + <startprofiler/> + <antcall target="test-single"/> + </target> + <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <startprofiler/> + <antcall target="run-test-with-main"/> + </target> + <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent"> + <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> + <startprofiler/> + <antcall target="run-applet"/> + </target> + <!-- + =============== + JAVADOC SECTION + =============== + --> + <target depends="init" if="have.sources" name="-javadoc-build"> + <mkdir dir="${dist.javadoc.dir}"/> + <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}"> + <and> + <isset property="endorsed.classpath.cmd.line.arg"/> + <not> + <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/> + </not> + </and> + </condition> + <condition else="" property="bug5101868workaround" value="*.java"> + <matches pattern="1\.[56](\..*)?" string="${java.version}"/> + </condition> + <condition else="" property="javadoc.html5.cmd.line.arg" value="-html5"> + <and> + <isset property="javadoc.html5"/> + <available file="${jdk.home}${file.separator}lib${file.separator}jrt-fs.jar"/> + </and> + </condition> + <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}"> + <classpath> + <path path="${javac.classpath}"/> + </classpath> + <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}"> + <filename name="**/*.java"/> + </fileset> + <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> + <include name="**/*.java"/> + <exclude name="*.java"/> + </fileset> + <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/> + <arg line="${javadoc.html5.cmd.line.arg}"/> + </javadoc> + <copy todir="${dist.javadoc.dir}"> + <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> + <filename name="**/doc-files/**"/> + </fileset> + <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> + <include name="**/doc-files/**"/> + </fileset> + </copy> + </target> + <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview"> + <nbbrowse file="${dist.javadoc.dir}/index.html"/> + </target> + <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/> + <!-- + ========================= + TEST COMPILATION SECTION + ========================= + --> + <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test"> + <mkdir dir="${build.test.classes.dir}"/> + </target> + <target name="-pre-compile-test"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-javac-module-properties-with-module"> + <j2seproject3:modulename property="test.module.name" sourcepath="${test.src.dir}"/> + <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.src.dir}"> + <and> + <isset property="test.module.name"/> + <length length="0" string="${test.module.name}" when="greater"/> + </and> + </condition> + <condition else="--patch-module ${module.name}=${test.src.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value="--add-reads ${test.module.name}=ALL-UNNAMED"> + <and> + <isset property="test.module.name"/> + <length length="0" string="${test.module.name}" when="greater"/> + </and> + </condition> + </target> + <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-run-module-properties"> + <condition else="${module.name}" property="run.test.addexport.source.module.internal" value="${test.module.name}"> + <and> + <isset property="test.module.name"/> + <length length="0" string="${test.module.name}" when="greater"/> + </and> + </condition> + <fileset dir="${build.test.classes.dir}" id="run.test.packages.internal" includes="**/*.class"/> + <property location="${build.test.classes.dir}" name="build.test.classes.dir.abs.internal"/> + <pathconvert pathsep=" " property="run.test.addexports.internal" refid="run.test.packages.internal"> + <chainedmapper> + <regexpmapper from="^(.*)\Q${file.separator}\E.*\.class$$" to="\1"/> + <filtermapper> + <uniqfilter/> + <replacestring from="${build.test.classes.dir.abs.internal}" to=""/> + </filtermapper> + <cutdirsmapper dirs="1"/> + <packagemapper from="*" to="--add-exports ${run.test.addexport.source.module.internal}/*=ALL-UNNAMED"/> + </chainedmapper> + </pathconvert> + <condition else="--patch-module ${module.name}=${build.test.classes.dir} --add-modules ${module.name} --add-reads ${module.name}=ALL-UNNAMED ${run.test.addexports.internal}" property="run.test.jvmargs" value="--add-modules ${test.module.name} --add-reads ${test.module.name}=ALL-UNNAMED ${run.test.addexports.internal}"> + <and> + <isset property="test.module.name"/> + <length length="0" string="${test.module.name}" when="greater"/> + </and> + </condition> + </target> + <target depends="-init-source-module-properties" name="-init-test-module-properties-without-module" unless="named.module.internal"> + <property name="javac.test.sourcepath" value="${empty.dir}"/> + <property name="javac.test.compilerargs" value=""/> + <property name="run.test.jvmargs" value=""/> + </target> + <target depends="-init-test-javac-module-properties-with-module,-init-test-module-properties-without-module" name="-init-test-module-properties"/> + <target if="do.depend.true" name="-compile-test-depend"> + <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> + </target> + <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> + <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.src.dir}"> + <customize> + <compilerarg line="${javac.test.compilerargs}"/> + </customize> + </j2seproject3:javac> + <copy todir="${build.test.classes.dir}"> + <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target name="-post-compile-test"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/> + <target name="-pre-compile-test-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> + <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> + <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> + <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"> + <customize> + <compilerarg line="${javac.test.compilerargs}"/> + </customize> + </j2seproject3:javac> + <copy todir="${build.test.classes.dir}"> + <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target name="-post-compile-test-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/> + <!-- + ======================= + TEST EXECUTION SECTION + ======================= + --> + <target depends="init" if="have.tests" name="-pre-test-run"> + <mkdir dir="${build.test.results.dir}"/> + </target> + <target depends="init,compile-test,-init-test-run-module-properties,-pre-test-run" if="have.tests" name="-do-test-run"> + <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/> + </target> + <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init" if="have.tests" name="test-report"/> + <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/> + <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/> + <target depends="init" if="have.tests" name="-pre-test-run-single"> + <mkdir dir="${build.test.results.dir}"/> + </target> + <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single" if="have.tests" name="-do-test-run-single"> + <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> + <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method"> + <fail unless="test.class">Must select some files in the IDE or set test.class</fail> + <fail unless="test.method">Must select some method in the IDE or set test.method</fail> + <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/> + <!-- + ======================= + TEST DEBUGGING SECTION + ======================= + --> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test"> + <fail unless="test.class">Must select one file in the IDE or set test.class</fail> + <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method"> + <fail unless="test.class">Must select one file in the IDE or set test.class</fail> + <fail unless="test.method">Must select some method in the IDE or set test.method</fail> + <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/> + </target> + <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test"> + <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/> + </target> + <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/> + <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/> + <target depends="debug-test-method" name="debug-single-method"/> + <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test"> + <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/> + </target> + <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/> + <!-- + ========================= + APPLET EXECUTION SECTION + ========================= + --> + <target depends="init,compile-single" name="run-applet"> + <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> + <j2seproject1:java classname="sun.applet.AppletViewer"> + <customize> + <arg value="${applet.url}"/> + </customize> + </j2seproject1:java> + </target> + <!-- + ========================= + APPLET DEBUGGING SECTION + ========================= + --> + <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet"> + <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> + <j2seproject3:debug classname="sun.applet.AppletViewer"> + <customizeDebuggee> + <arg value="${applet.url}"/> + </customizeDebuggee> + </j2seproject3:debug> + </target> + <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/> + <!-- + =============== + CLEANUP SECTION + =============== + --> + <target name="-deps-clean-init" unless="built-clean.properties"> + <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/> + <delete file="${built-clean.properties}" quiet="true"/> + </target> + <target if="already.built.clean.${basedir}" name="-warn-already-built-clean"> + <echo level="warn" message="Cycle detected: Kasir was already built"/> + </target> + <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps"> + <mkdir dir="${build.dir}"/> + <touch file="${built-clean.properties}" verbose="false"/> + <property file="${built-clean.properties}" prefix="already.built.clean."/> + <antcall target="-warn-already-built-clean"/> + <propertyfile file="${built-clean.properties}"> + <entry key="${basedir}" value=""/> + </propertyfile> + </target> + <target depends="init" name="-do-clean"> + <delete dir="${build.dir}"/> + <delete dir="${dist.jlink.output}"/> + <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/> + </target> + <target name="-post-clean"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/> + <target name="-check-call-dep"> + <property file="${call.built.properties}" prefix="already.built."/> + <condition property="should.call.dep"> + <and> + <not> + <isset property="already.built.${call.subproject}"/> + </not> + <available file="${call.script}"/> + </and> + </condition> + </target> + <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep"> + <ant antfile="${call.script}" inheritall="false" target="${call.target}"> + <propertyset> + <propertyref prefix="transfer."/> + <mapper from="transfer.*" to="*" type="glob"/> + </propertyset> + </ant> + </target> +</project> diff --git a/Projek 2/Kasir/nbproject/genfiles.properties b/Projek 2/Kasir/nbproject/genfiles.properties new file mode 100644 index 0000000..2d1d5c8 --- /dev/null +++ b/Projek 2/Kasir/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=c8f061af +build.xml.script.CRC32=479c19fa +build.xml.stylesheet.CRC32=f85dc8f2@1.107.0.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=c8f061af +nbproject/build-impl.xml.script.CRC32=4f67fa6a +nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.107.0.48 diff --git a/Projek 2/Kasir/nbproject/private/private.properties b/Projek 2/Kasir/nbproject/private/private.properties new file mode 100644 index 0000000..b8c8127 --- /dev/null +++ b/Projek 2/Kasir/nbproject/private/private.properties @@ -0,0 +1,2 @@ +compile.on.save=true +user.properties.file=C:\\Users\\NABILA AZAHRANI\\AppData\\Roaming\\NetBeans\\18\\build.properties diff --git a/Projek 2/Kasir/nbproject/private/private.xml b/Projek 2/Kasir/nbproject/private/private.xml new file mode 100644 index 0000000..69ee66c --- /dev/null +++ b/Projek 2/Kasir/nbproject/private/private.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project-private xmlns="http://www.netbeans.org/ns/project-private/1"> + <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> + <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> + <group> + <file>file:/C:/Users/NABILA%20AZAHRANI/OneDrive/Documents/Tugas%20PBO/Kasir/src/Com/Config/DatabaseConnect.java</file> + <file>file:/C:/Users/NABILA%20AZAHRANI/OneDrive/Documents/Tugas%20PBO/Kasir/src/Com/Config/MyConfig.java</file> + <file>file:/C:/Users/NABILA%20AZAHRANI/OneDrive/Documents/Tugas%20PBO/Kasir/src/Kasirku/Kasirku.java</file> + </group> + </open-files> +</project-private> diff --git a/Projek 2/Kasir/nbproject/project.properties b/Projek 2/Kasir/nbproject/project.properties new file mode 100644 index 0000000..6a3887f --- /dev/null +++ b/Projek 2/Kasir/nbproject/project.properties @@ -0,0 +1,96 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.modulepath=\ + ${run.modulepath} +debug.test.classpath=\ + ${run.test.classpath} +debug.test.modulepath=\ + ${run.test.modulepath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/Kasir.jar +dist.javadoc.dir=${dist.dir}/javadoc +dist.jlink.dir=${dist.dir}/jlink +dist.jlink.output=${dist.jlink.dir}/Kasir +excludes= +includes=** +jar.compress=false +javac.classpath=\ + ${libs.MySQL_JDBC_Driver.classpath} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=true +javac.modulepath= +javac.processormodulepath= +javac.processorpath=\ + ${javac.classpath} +javac.source=19 +javac.target=19 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.modulepath=\ + ${javac.modulepath} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.html5=false +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +# The jlink additional root modules to resolve +jlink.additionalmodules= +# The jlink additional command line parameters +jlink.additionalparam= +jlink.launcher=true +jlink.launcher.name=Kasir +main.class= +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.modulepath=\ + ${javac.modulepath} +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +run.test.modulepath=\ + ${javac.test.modulepath} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/Projek 2/Kasir/nbproject/project.xml b/Projek 2/Kasir/nbproject/project.xml new file mode 100644 index 0000000..35b1f18 --- /dev/null +++ b/Projek 2/Kasir/nbproject/project.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.java.j2seproject</type> + <configuration> + <data xmlns="http://www.netbeans.org/ns/j2se-project/3"> + <name>Kasir</name> + <source-roots> + <root id="src.dir"/> + </source-roots> + <test-roots> + <root id="test.src.dir"/> + </test-roots> + </data> + </configuration> +</project> diff --git a/Projek 2/Kasir/src/Com/Config/DatabaseConnect.java b/Projek 2/Kasir/src/Com/Config/DatabaseConnect.java new file mode 100644 index 0000000..7bebc0d --- /dev/null +++ b/Projek 2/Kasir/src/Com/Config/DatabaseConnect.java @@ -0,0 +1,10 @@ + +package Com.Config; + +import java.sql.Connection; + +public class DatabaseConnect { + MyConfig Con = new MyConfig(); + Connection MyConfig = Con.getConnect(); +} + diff --git a/Projek 2/Kasir/src/Com/Config/MyConfig.java b/Projek 2/Kasir/src/Com/Config/MyConfig.java new file mode 100644 index 0000000..624e8e6 --- /dev/null +++ b/Projek 2/Kasir/src/Com/Config/MyConfig.java @@ -0,0 +1,27 @@ +package Com.Config; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import javax.swing.JOptionPane; + +public class MyConfig { + private Connection Con; + + public Connection getConnect(){ + try{ + Class.forName("com.mysql.cj.jdbc.Driver"); + }catch(ClassNotFoundException ex){ + + } + try{ + Con = DriverManager.getConnection("jdbc:mysql://localhost:3306/imeltoko","root",""); + if(Con != null){ + JOptionPane.showMessageDialog(null, "Koneksi Berhasil"); + } + }catch(SQLException ex){ + JOptionPane.showMessageDialog(null, "Koneksi Gagal"); + } + return Con; + } +} \ No newline at end of file diff --git a/Projek 2/Kasir/src/Kasirku/Kasirku.form b/Projek 2/Kasir/src/Kasirku/Kasirku.form new file mode 100644 index 0000000..be11dac --- /dev/null +++ b/Projek 2/Kasir/src/Kasirku/Kasirku.form @@ -0,0 +1,502 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> + <Properties> + <Property name="defaultCloseOperation" type="int" value="3"/> + </Properties> + <SyntheticProperties> + <SyntheticProperty name="formSizePolicy" type="int" value="1"/> + <SyntheticProperty name="generateCenter" type="boolean" value="false"/> + </SyntheticProperties> + <AuxValues> + <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> + <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> + </AuxValues> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="jPanel1" alignment="0" max="32767" attributes="0"/> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="jPanel2" max="32767" attributes="0"/> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="LabelNama" min="-2" max="-2" attributes="0"/> + <Component id="LabelHarga" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="LabelJumlah" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="btn_tambah" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="1" attributes="0"> + <Component id="BoxNama" alignment="0" max="32767" attributes="0"/> + <Component id="BoxHarga" alignment="0" max="32767" attributes="0"/> + <Component id="BoxJumlah" alignment="0" max="32767" attributes="0"/> + <Group type="102" attributes="0"> + <Component id="btn_clear" min="-2" pref="88" max="-2" attributes="0"/> + <EmptySpace min="-2" pref="35" max="-2" attributes="0"/> + <Component id="btn_edit" min="-2" pref="99" max="-2" attributes="0"/> + <EmptySpace pref="14" max="32767" attributes="0"/> + <Component id="btn_delete" min="-2" pref="99" max="-2" attributes="0"/> + </Group> + </Group> + </Group> + <Component id="jPanel3" max="32767" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="10" max="-2" attributes="0"/> + <Component id="jPanel4" max="32767" attributes="0"/> + </Group> + </Group> + <EmptySpace max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Component id="jPanel1" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="LabelNama" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="BoxNama" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="19" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="BoxHarga" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="LabelHarga" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace type="separate" min="-2" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="LabelJumlah" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="BoxJumlah" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="btn_tambah" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="btn_edit" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="btn_delete" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="btn_clear" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="-2" attributes="0"/> + <Component id="jPanel3" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="jPanel4" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="10" max="-2" attributes="0"/> + <Component id="jPanel2" max="32767" attributes="0"/> + <EmptySpace min="-2" pref="5" max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Container class="javax.swing.JPanel" name="jPanel1"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="cc" green="cc" red="0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace min="-2" pref="15" max="-2" attributes="0"/> + <Component id="jLabel1" min="-2" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace min="-2" pref="30" max="-2" attributes="0"/> + <Component id="jLabel1" min="-2" pref="36" max="-2" attributes="0"/> + <EmptySpace pref="46" max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JLabel" name="jLabel1"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="36" style="1"/> + </Property> + <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="ff" type="rgb"/> + </Property> + <Property name="text" type="java.lang.String" value="KasirIbel"/> + </Properties> + </Component> + </SubComponents> + </Container> + <Component class="javax.swing.JLabel" name="LabelHarga"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Harga Barang"/> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="LabelNama"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Nama Barang"/> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="LabelJumlah"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Jumlah Barang"/> + </Properties> + </Component> + <Component class="javax.swing.JTextField" name="BoxNama"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="cc" green="cc" red="0" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="BoxNamaActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JTextField" name="BoxHarga"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="cc" green="cc" red="0" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JTextField" name="BoxJumlah"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="cc" green="cc" red="0" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + </Properties> + </Component> + <Container class="javax.swing.JPanel" name="jPanel2"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="cc" green="cc" red="0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <EmptySpace min="0" pref="0" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <EmptySpace min="0" pref="71" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + </Layout> + </Container> + <Component class="javax.swing.JButton" name="btn_tambah"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="66" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Tambah"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_tambahActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="btn_edit"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="66" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Edit"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_editActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="btn_delete"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="66" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Delete"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_deleteActionPerformed"/> + </Events> + </Component> + <Container class="javax.swing.JPanel" name="jPanel3"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="cc" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="103" alignment="0" groupAlignment="0" max="-2" attributes="0"> + <Component id="LabelTotal" alignment="0" max="32767" attributes="0"/> + <Component id="LabelUang" alignment="0" pref="58" max="32767" attributes="0"/> + </Group> + <Component id="LabelKembalian" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace pref="38" max="32767" attributes="0"/> + <Group type="103" groupAlignment="0" max="-2" attributes="0"> + <Component id="BoxKembalian" pref="328" max="32767" attributes="0"/> + <Component id="BoxTotal" pref="328" max="32767" attributes="0"/> + <Component id="BoxUang" max="32767" attributes="0"/> + </Group> + </Group> + <Group type="102" alignment="1" attributes="0"> + <EmptySpace min="0" pref="0" max="32767" attributes="0"/> + <Component id="btn_simpan" min="-2" pref="120" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="btn_bayar" min="-2" pref="120" max="-2" attributes="0"/> + </Group> + </Group> + <EmptySpace max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace min="-2" pref="23" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="LabelTotal" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="BoxTotal" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="LabelUang" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="BoxUang" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="LabelKembalian" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="BoxKembalian" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="32" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="btn_simpan" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="btn_bayar" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace pref="87" max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JLabel" name="LabelTotal"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="cc" green="cc" red="0" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Total"/> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="LabelUang"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Uang"/> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="LabelKembalian"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Kembalian"/> + </Properties> + </Component> + <Component class="javax.swing.JTextField" name="BoxTotal"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Rp."/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="BoxTotalActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JTextField" name="BoxUang"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="BoxUangActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JTextField" name="BoxKembalian"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Rp."/> + </Properties> + </Component> + <Component class="javax.swing.JButton" name="btn_bayar"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="66" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Bayar"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_bayarActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="btn_simpan"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="66" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Simpan"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_simpanActionPerformed"/> + </Events> + </Component> + </SubComponents> + </Container> + <Container class="javax.swing.JPanel" name="jPanel4"> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="jScrollPane1" alignment="0" pref="505" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="jScrollPane1" alignment="0" pref="489" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Container class="javax.swing.JScrollPane" name="jScrollPane1"> + <AuxValues> + <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> + </AuxValues> + + <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> + <SubComponents> + <Component class="javax.swing.JTable" name="TabelProduk"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="cc" type="rgb"/> + </Property> + <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor"> + <Table columnCount="4" rowCount="0"> + <Column editable="false" title="ID" type="java.lang.Integer"/> + <Column editable="false" title="Nama " type="java.lang.Object"/> + <Column editable="false" title="Harga " type="java.lang.Integer"/> + <Column editable="false" title="Jumlah " type="java.lang.Integer"/> + </Table> + </Property> + <Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor"> + <TableColumnModel selectionModel="0"> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + </TableColumnModel> + </Property> + <Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor"> + <TableHeader reorderingAllowed="true" resizingAllowed="true"/> + </Property> + </Properties> + </Component> + </SubComponents> + </Container> + </SubComponents> + </Container> + <Component class="javax.swing.JButton" name="btn_clear"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="ff" green="ff" red="66" type="rgb"/> + </Property> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Segoe UI" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Clear"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_clearActionPerformed"/> + </Events> + </Component> + </SubComponents> +</Form> diff --git a/Projek 2/Kasir/src/Kasirku/Kasirku.java b/Projek 2/Kasir/src/Kasirku/Kasirku.java new file mode 100644 index 0000000..8262b17 --- /dev/null +++ b/Projek 2/Kasir/src/Kasirku/Kasirku.java @@ -0,0 +1,589 @@ + +package Kasirku; + +import Com.Config.MyConfig; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Statement; +import java.sql.PreparedStatement; +import java.sql.DriverManager; +import java.sql.SQLException; +import javax.swing.JOptionPane; +import javax.swing.table.DefaultTableModel; +import javax.swing.JTable; + + + +public class Kasirku extends javax.swing.JFrame { + private Statement St; + private Connection Con; + private ResultSet Rs; + private String sql = ""; + private DefaultTableModel model; + + +public void clear() { + BoxNama.setText(""); + BoxHarga.setText(""); + BoxJumlah.setText(""); + BoxNama.requestFocus(); + } + +public void insertData(){ + DefaultTableModel model = (DefaultTableModel) TabelProduk.getModel(); + int row = TabelProduk.getRowCount(); + model.addRow(new Object[]{ + row += 1, + BoxNama.getText(), + BoxHarga.getText(), + BoxJumlah.getText() + }); + } +public double hitungTotal(){ + DefaultTableModel model = (DefaultTableModel) TabelProduk.getModel(); +// int[] selectedRows = TblBarang.getSelectedRows(); + int rowCount = model.getRowCount(); + double total = 0.0; + +// double total = 0.0; +// for(int row : selectedRows){ +// double harga = Double.parseDouble(model.getValueAt(row, 2).toString()); +// int jumlah = Integer.parseInt(model.getValueAt(row, 3).toString()); +// total += harga*jumlah; +// } + + for(int i = 0; i < rowCount; i++){ + double harga = Double.parseDouble(model.getValueAt(i, 2).toString()); + int jumlah = Integer.parseInt(model.getValueAt(i, 3).toString()); + total += harga*jumlah; + } + return total; + } + + public void Show(){ + MyConfig connect = new MyConfig(); + try{ + Con = connect.getConnect(); + St = Con.createStatement(); + Rs = St.executeQuery("SELECT * FROM utils"); + int i = 1; + while(Rs.next()){ + String[] row = {Integer.toString(i), Rs.getString(2), Rs.getString(3), Rs.getString(4)}; + model.addRow(row); + i++; + } + }catch(SQLException ex){ + System.out.print(ex.getMessage()); + } + } + +public Kasirku() { + initComponents(); + String [] header = {"ID", "NAMA", "HARGA", "STOK"}; + model = new DefaultTableModel (header,0); + TabelProduk.setModel(model); + Show(); +// KoneksiDatabase(); + } + + + @SuppressWarnings("unchecked") + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents + private void initComponents() { + + jPanel1 = new javax.swing.JPanel(); + jLabel1 = new javax.swing.JLabel(); + LabelHarga = new javax.swing.JLabel(); + LabelNama = new javax.swing.JLabel(); + LabelJumlah = new javax.swing.JLabel(); + BoxNama = new javax.swing.JTextField(); + BoxHarga = new javax.swing.JTextField(); + BoxJumlah = new javax.swing.JTextField(); + jPanel2 = new javax.swing.JPanel(); + btn_tambah = new javax.swing.JButton(); + btn_edit = new javax.swing.JButton(); + btn_delete = new javax.swing.JButton(); + jPanel3 = new javax.swing.JPanel(); + LabelTotal = new javax.swing.JLabel(); + LabelUang = new javax.swing.JLabel(); + LabelKembalian = new javax.swing.JLabel(); + BoxTotal = new javax.swing.JTextField(); + BoxUang = new javax.swing.JTextField(); + BoxKembalian = new javax.swing.JTextField(); + btn_bayar = new javax.swing.JButton(); + btn_simpan = new javax.swing.JButton(); + jPanel4 = new javax.swing.JPanel(); + jScrollPane1 = new javax.swing.JScrollPane(); + TabelProduk = new javax.swing.JTable(); + btn_clear = new javax.swing.JButton(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + + jPanel1.setBackground(new java.awt.Color(0, 204, 204)); + + jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 36)); // NOI18N + jLabel1.setForeground(new java.awt.Color(255, 255, 255)); + jLabel1.setText("KasirIbel"); + + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addGap(15, 15, 15) + .addComponent(jLabel1) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + jPanel1Layout.setVerticalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addGap(30, 30, 30) + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(46, Short.MAX_VALUE)) + ); + + LabelHarga.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + LabelHarga.setText("Harga Barang"); + + LabelNama.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + LabelNama.setText("Nama Barang"); + + LabelJumlah.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + LabelJumlah.setText("Jumlah Barang"); + + BoxNama.setBackground(new java.awt.Color(0, 204, 204)); + BoxNama.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + BoxNama.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + BoxNamaActionPerformed(evt); + } + }); + + BoxHarga.setBackground(new java.awt.Color(0, 204, 204)); + BoxHarga.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + + BoxJumlah.setBackground(new java.awt.Color(0, 204, 204)); + BoxJumlah.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + + jPanel2.setBackground(new java.awt.Color(0, 204, 204)); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 0, Short.MAX_VALUE) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 71, Short.MAX_VALUE) + ); + + btn_tambah.setBackground(new java.awt.Color(102, 255, 255)); + btn_tambah.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + btn_tambah.setText("Tambah"); + btn_tambah.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btn_tambahActionPerformed(evt); + } + }); + + btn_edit.setBackground(new java.awt.Color(102, 255, 255)); + btn_edit.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + btn_edit.setText("Edit"); + btn_edit.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btn_editActionPerformed(evt); + } + }); + + btn_delete.setBackground(new java.awt.Color(102, 255, 255)); + btn_delete.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + btn_delete.setText("Delete"); + btn_delete.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btn_deleteActionPerformed(evt); + } + }); + + jPanel3.setBackground(new java.awt.Color(204, 255, 255)); + + LabelTotal.setBackground(new java.awt.Color(0, 204, 204)); + LabelTotal.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + LabelTotal.setText("Total"); + + LabelUang.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + LabelUang.setText("Uang"); + + LabelKembalian.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + LabelKembalian.setText("Kembalian"); + + BoxTotal.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + BoxTotal.setText("Rp."); + BoxTotal.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + BoxTotalActionPerformed(evt); + } + }); + + BoxUang.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + BoxUang.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + BoxUangActionPerformed(evt); + } + }); + + BoxKembalian.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + BoxKembalian.setText("Rp."); + + btn_bayar.setBackground(new java.awt.Color(102, 255, 255)); + btn_bayar.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + btn_bayar.setText("Bayar"); + btn_bayar.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btn_bayarActionPerformed(evt); + } + }); + + btn_simpan.setBackground(new java.awt.Color(102, 255, 255)); + btn_simpan.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + btn_simpan.setText("Simpan"); + btn_simpan.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btn_simpanActionPerformed(evt); + } + }); + + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout.setHorizontalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(LabelTotal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(LabelUang, javax.swing.GroupLayout.DEFAULT_SIZE, 58, Short.MAX_VALUE)) + .addComponent(LabelKembalian)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 38, Short.MAX_VALUE) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(BoxKembalian, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) + .addComponent(BoxTotal, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) + .addComponent(BoxUang))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(btn_simpan, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(btn_bayar, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addContainerGap()) + ); + jPanel3Layout.setVerticalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGap(23, 23, 23) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(LabelTotal) + .addComponent(BoxTotal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(LabelUang) + .addComponent(BoxUang, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(LabelKembalian) + .addComponent(BoxKembalian, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(32, 32, 32) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btn_simpan) + .addComponent(btn_bayar)) + .addContainerGap(87, Short.MAX_VALUE)) + ); + + TabelProduk.setBackground(new java.awt.Color(204, 255, 255)); + TabelProduk.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + + }, + new String [] { + "ID", "Nama ", "Harga ", "Jumlah " + } + ) { + Class[] types = new Class [] { + java.lang.Integer.class, java.lang.Object.class, java.lang.Integer.class, java.lang.Integer.class + }; + boolean[] canEdit = new boolean [] { + false, false, false, false + }; + + public Class getColumnClass(int columnIndex) { + return types [columnIndex]; + } + + public boolean isCellEditable(int rowIndex, int columnIndex) { + return canEdit [columnIndex]; + } + }); + jScrollPane1.setViewportView(TabelProduk); + + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 505, Short.MAX_VALUE) + ); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 489, Short.MAX_VALUE) + ); + + btn_clear.setBackground(new java.awt.Color(102, 255, 255)); + btn_clear.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N + btn_clear.setText("Clear"); + btn_clear.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btn_clearActionPerformed(evt); + } + }); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(LabelNama) + .addComponent(LabelHarga) + .addComponent(LabelJumlah) + .addComponent(btn_tambah)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(BoxNama, javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(BoxHarga, javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(BoxJumlah, javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(btn_clear, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(35, 35, 35) + .addComponent(btn_edit, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE) + .addComponent(btn_delete, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(10, 10, 10) + .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(LabelNama) + .addComponent(BoxNama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(19, 19, 19) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(BoxHarga, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(LabelHarga)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(LabelJumlah) + .addComponent(BoxJumlah, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btn_tambah) + .addComponent(btn_edit) + .addComponent(btn_delete) + .addComponent(btn_clear)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(10, 10, 10) + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGap(5, 5, 5)) + ); + + pack(); + }// </editor-fold>//GEN-END:initComponents + + private void BoxUangActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BoxUangActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_BoxUangActionPerformed + + private void btn_simpanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_simpanActionPerformed + // TODO add your handling code here: + try{ + Connection Con = DriverManager.getConnection("jdbc:mysql://localhost:3306/imeltoko","root",""); + + int rowCount = TabelProduk.getRowCount(); + for(int i = 0; i < rowCount; i++){ + String Column1 = TabelProduk.getValueAt(i, 1).toString(); + String Column2 = TabelProduk.getValueAt(i, 2).toString(); + String Column3 = TabelProduk.getValueAt(i, 3).toString(); + + String sql = "INSERT INTO muti_table (NAMMA, HARGA, STOK) VALUES (?,?,?)"; + PreparedStatement statement = Con.prepareStatement(sql); + + statement.setString(1, Column1); + statement.setString(2, Column2); + statement.setString(3, Column3); + + statement.executeUpdate(); + } + + JOptionPane.showMessageDialog(this, "Data berhasil disimpan ke database."); + Con.close(); + + }catch(SQLException e){ + JOptionPane.showMessageDialog(this, "Terjadi kesalahan saat menyimpan data ke database."); + } + + + }//GEN-LAST:event_btn_simpanActionPerformed + + private void btn_tambahActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_tambahActionPerformed + // TODO add your handling code here: + if(BoxNama.getText().isEmpty()){ + JOptionPane.showMessageDialog(null, "Nama Barang Belum di Masukan"); + }else if(BoxHarga.getText().isEmpty()){ + JOptionPane.showMessageDialog(null, "Harga Barang Belum di Masukan"); + }else if(BoxJumlah.getText().isEmpty()){ + JOptionPane.showMessageDialog(null, "Jumlah Barang Belum di Masukan"); + }else{ + insertData(); + clear(); + } + + }//GEN-LAST:event_btn_tambahActionPerformed + + private void btn_clearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_clearActionPerformed + // TODO add your handling code here: + clear(); + }//GEN-LAST:event_btn_clearActionPerformed + + private void btn_editActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_editActionPerformed + // TODO add your handling code here + DefaultTableModel model = (DefaultTableModel) TabelProduk.getModel(); + int rowSelect = TabelProduk.getSelectedRow(); + + if(btn_edit.getText()== "Edit"){ + btn_tambah.setEnabled(false); + btn_delete.setEnabled(false); + btn_edit.setText("Update"); + + BoxNama.setText(model.getValueAt(rowSelect, 1).toString()); + BoxHarga.setText(model.getValueAt(rowSelect, 2).toString()); + BoxJumlah.setText(model.getValueAt(rowSelect, 3).toString()); + + }else { + btn_tambah.setEnabled(true); + btn_delete.setEnabled(true); + btn_edit.setText("Edit"); + + String name = BoxNama.getText(); + String price = BoxHarga.getText(); + String stock = BoxJumlah.getText(); + + model.setValueAt(name, rowSelect, 1); + model.setValueAt(price, rowSelect, 2); + model.setValueAt(stock, rowSelect, 3); + } + }//GEN-LAST:event_btn_editActionPerformed + + private void btn_deleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_deleteActionPerformed + // TODO add your handling code here: + DefaultTableModel model = (DefaultTableModel) TabelProduk.getModel(); + int rowSelect = TabelProduk.getSelectedRow(); + + if(rowSelect == -1){ + JOptionPane.showMessageDialog(this, "Pilih baris yang ingin dihapus.", + "Error", JOptionPane.ERROR_MESSAGE); + } else { + int confirm = JOptionPane.showConfirmDialog(this, "Apakah anda yakin menghapus data ini?", + "Konfirmasi Pengahapusan Data",JOptionPane.YES_NO_OPTION); + if(confirm == JOptionPane.YES_OPTION){ + model.removeRow(rowSelect); + } + } + }//GEN-LAST:event_btn_deleteActionPerformed + + private void BoxTotalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BoxTotalActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_BoxTotalActionPerformed + + private void btn_bayarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_bayarActionPerformed + // TODO add your handling code here: + double total = hitungTotal(); + BoxTotal.setText("Rp." + String.valueOf(total)); + + try { + String totalText = BoxTotal.getText().substring(3); + double total1 = Double.parseDouble(totalText); + double bayar = Double.parseDouble(BoxUang.getText()); + double kembali = bayar - total1; + BoxKembalian.setText("Rp." + String.valueOf(kembali)); + + } catch (NumberFormatException e){ + JOptionPane.showMessageDialog(this, "Input tidak Valid"); + } + }//GEN-LAST:event_btn_bayarActionPerformed + + private void BoxNamaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BoxNamaActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_BoxNamaActionPerformed + + /** + * @param args the command line arguments + */ + public static void main(String args[]) { + try { + for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { + if ("Nimbus".equals(info.getName())) { + javax.swing.UIManager.setLookAndFeel(info.getClassName()); + break; + } + } + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) { + java.util.logging.Logger.getLogger(Kasirku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + + java.awt.EventQueue.invokeLater(() -> { + new Kasirku().setVisible(true); + }); + } + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JTextField BoxHarga; + private javax.swing.JTextField BoxJumlah; + private javax.swing.JTextField BoxKembalian; + private javax.swing.JTextField BoxNama; + private javax.swing.JTextField BoxTotal; + private javax.swing.JTextField BoxUang; + private javax.swing.JLabel LabelHarga; + private javax.swing.JLabel LabelJumlah; + private javax.swing.JLabel LabelKembalian; + private javax.swing.JLabel LabelNama; + private javax.swing.JLabel LabelTotal; + private javax.swing.JLabel LabelUang; + private javax.swing.JTable TabelProduk; + private javax.swing.JButton btn_bayar; + private javax.swing.JButton btn_clear; + private javax.swing.JButton btn_delete; + private javax.swing.JButton btn_edit; + private javax.swing.JButton btn_simpan; + private javax.swing.JButton btn_tambah; + private javax.swing.JLabel jLabel1; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel4; + private javax.swing.JScrollPane jScrollPane1; + // End of variables declaration//GEN-END:variables +}