From a7b888dbdd3014005ef9625fcd204c599ec0c4ef Mon Sep 17 00:00:00 2001 From: grnlogic Date: Mon, 12 May 2025 22:43:00 +0700 Subject: [PATCH] Improved the GUI by adding an information panel --- .project | 11 ++++++ bin/algo_Calc/Frame$1.class | Bin 803 -> 936 bytes bin/algo_Calc/Frame$2.class | Bin 940 -> 939 bytes bin/algo_Calc/Frame$3.class | Bin 943 -> 939 bytes bin/algo_Calc/Frame$4.class | Bin 943 -> 935 bytes bin/algo_Calc/Frame$5.class | Bin 939 -> 935 bytes bin/algo_Calc/Frame$6.class | Bin 939 -> 935 bytes bin/algo_Calc/Frame$7.class | Bin 939 -> 0 bytes bin/algo_Calc/Frame.class | Bin 2303 -> 3680 bytes bin/algo_Calc/Sortingss$1.class | Bin 827 -> 823 bytes bin/algo_Calc/Sortingss$2.class | Bin 3390 -> 3386 bytes bin/algo_Calc/Sortingss$3.class | Bin 792 -> 788 bytes bin/algo_Calc/Sortingss$4.class | Bin 1845 -> 1841 bytes src/algo_Calc/Frame.java | 66 +++++++++++++++++++------------- 14 files changed, 51 insertions(+), 26 deletions(-) delete mode 100644 bin/algo_Calc/Frame$7.class diff --git a/.project b/.project index 0521783..6f1c393 100644 --- a/.project +++ b/.project @@ -14,4 +14,15 @@ org.eclipse.jdt.core.javanature + + + 1747063860741 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/bin/algo_Calc/Frame$1.class b/bin/algo_Calc/Frame$1.class index 479490f87c70e9cce0a87cfb2ae4b8e6c3119314..5116e9024c69113b8b5c7285ce620f0359b7743d 100644 GIT binary patch literal 936 zcmaJXad3Ffp$DklD8mSd$$j=SXUN{!#j z#8%@UegHp|arPiW)p*I?&hE^-dGls}{QUMEzz!a1h%wA_r|-RMaK|?HeLfVWZ4C*A z+<=d`>2SAi9&`u74mBhhR-#*e5}INp+|b;!L+QDe3_{@wpCK6@$)L1FsMa5_H3n_O zos!obFf7h^+nygvw;u!)k$fUu8SXMv$}NAzgo6uUpMx`{31~j_W9DSfvtEm3}v6;0A6I;=4`y&eaOShIz&fhf z(6COTsCLeK4cx^hgC2;mBLf*}mngqgqB4?k`F{#fTH8DJZLu$vYFiwz__bOm*WFx#}0>KShCy^iNVCu!{oyRT70_372VSxPq$_m^OhZ;HBzk z@ELDnPK!Z>vTOCT_@MZj@v6J!kcaG&-BjdKSN L$78C%lY literal 803 zcmZWnT~8B16g|@}Y+V+ir7hqWRjagAsYc&wd}$!j6iqB?qCS}Ec2Wknv(4^Sc<}%D z%nKMz`~m(bsuJx#!&b`_GSG0G^|1BO{QP{xJB|mcG~A4dqBxpW3hl zmJj6@+4Q9uHsAISl^5HX7bskuzMB{$`@RyGf1! z^Hda7p9pN$E@QRoorJ-0Gdj{__Bv(Ua6Ecm`%v#W z*uY&I6_$LV%FeN;#<32Ji+d^eai~q)jivW_Ka^gg7GE9&M-=`_aRPz~rL@GU^yhGt zU@=A6ljE6QPB)l@p4!z(51f?Ac2Wp6+A*FVL}a+9;)7t|;t?LRF(avsK)LqupBK6@ z3mmqR#<{PIQDNJcQKTYNK-IbCI4c=0wvyg8TFpvu`!jaD@f}6$6l>p*>oiVr=On$lj1@|pB@o!!q>dsXN(3s? zTE!aMmONBp4#8#*<(P9HRU#Bw$^$&4waGY#y=!B`Vsedc26b$4w>UZtY}0a>n9$<) E7fK_fDF6Tf diff --git a/bin/algo_Calc/Frame$2.class b/bin/algo_Calc/Frame$2.class index 5fa39591a19c02e4acdbe946a11d069063b4fa76..d0d50096e1b3ea29054aef3d9b2158c040c589b0 100644 GIT binary patch delta 89 zcmZ3(zM6eQ86y{;r(dvZP>83$-{xAz97aaV$*-6c*x48u85kJcCyO%cXtN7RZ)1=R p*V@9sw}U~Mc^iY~MxY!MgD8;XV_*i7o($X!UJPOk-jj2f9RQrm5l;XB delta 62 zcmZ3@zJ`5686!KlQ>c@ZkL%_J#vDdQ+sSX46u7w3us7#X-2^e2lj>oBrRc4SuM SG-TjrFk%p6FrJ*v>;M3~&kOMY diff --git a/bin/algo_Calc/Frame$3.class b/bin/algo_Calc/Frame$3.class index 16eddfa2f49bee1daf784ac8408d9e67f5d455b9..3b32f041a43f4620de50e6878be30b4f56d6e511 100644 GIT binary patch delta 56 zcmZ3_zM6eQIU{SZtB*%%lZ7#IR3OEBv&vQBnoR^$v~;ARMB M5Mv0LoX_k40FK8DApigX delta 60 zcmZ3@zMg$UIU}p5U$AS?<{HKVMn>DoZ*fZ=97aaV$#0ny*x48u85kHMCrdEvFmgjX5eOs NVGv`8ot)3?005OF3{n69 delta 65 zcmZ3^zMg$U86y{8u&a-&bBL$E-{u;|97aal$uF4{xVadZ7#J8B8MqjnCkrs^FtSdz VWme>LW#DFTV-RC-pPbI@008|G4J`lw diff --git a/bin/algo_Calc/Frame$5.class b/bin/algo_Calc/Frame$5.class index f38e0af3354a80fe3dc78eae722744124a975b1e..f60366fe8e9b784ef4a5924f4bc1909fa9e98819 100644 GIT binary patch delta 56 zcmZ3@zMOqSIU{ResHd~{<{HKvMn=oYFPRkB*%%lZ7#NZ!i!kdjvQ2hmR^&`!;ATi= M5MxN2oXzY20FnL-UjP6A delta 60 zcmZ3^zM6eQIU}pDYmmF^<{HKvMn>DoFPRj$xfqxj7#J8CxEOpV3oz?2a!j^mR^;?& Q;ARM55Mv0OoX+e30ISvv3;+NC diff --git a/bin/algo_Calc/Frame$6.class b/bin/algo_Calc/Frame$6.class index 168ac273da6429f67b82ee74e1ecb2522c91fab3..404a8da031e38c64c7fcc698ad794017f5b613b1 100644 GIT binary patch delta 116 zcmZ3@zMOqS86zvFhpS`2<{HKvMn=oYFPRjK*%%lZ7#Ok{#DF9Zn9a{1&L9EgF)~Op vNC8P+AUlMCnSlvNOK5Fj5SVPwtSp}kRGkM@nGe<}29bs81ge|d$gBkb^#2Yb delta 94 zcmZ3^zM6eQ86z84V5q0F_vUKG97aal$uF1`xVadZ7#J8B8Mqk2C-XDQ^8_<6gGI!( mwlGY#W>%JuWZ-6qVi04924V&v1}PT@LJ1%ZWKFJR)&c-b?G7ve diff --git a/bin/algo_Calc/Frame$7.class b/bin/algo_Calc/Frame$7.class deleted file mode 100644 index 02542d50892b926a3ad8b2707010d4ca0239adcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 939 zcmaJpWnU%*u`TF35G@P4*Yj@?mG5P_4H;!E8puM| zk;IaL1zciCS}HW(lAd^VJnD&{!+Wk^D71WsyImegb)H_P)D#R$b0w$LP>*>Y&wMC? z_kJ)EeTH?b^-o$FilSPjo53nW_IYFPu+%Lm zqC^dI-fQ44wi)zLL|qxmn7NeoR#D1`#MS@JPibxcIB>+iRD|nsxouU0+HZJ{>xb0F zOA#IUeFG1bSh{)zlDqOFB^XVQo>txEVJJeBNZll@3rLuzk{d7!N^E-330ey<$a|5j zr*uxzp0946B3Ioyg<1WA!lyWJnf`j5K-Iueq_aw-a9qX;?F?6NbqduXAO*fs{S4Dg z7p|RQ?G4$vueg;wLuH1Ui%U9$)h8Sg;}$2mQ(QuUjU7Tx;vQipa32q7Pm!j(ctn;? JKGg|*zW`#V(+&Ut diff --git a/bin/algo_Calc/Frame.class b/bin/algo_Calc/Frame.class index b5bfc3849f294f678163f762750884e8b059d454..087ad2d05099a092eb03726ca5d8d7afb129ed08 100644 GIT binary patch literal 3680 zcma)9TX+-475)cgue>Z+h)YmNf=NxV%|+Y;c1W>}ZH#3bupx0$N=DLRFJA4cs};s6 zZA#jd^nOh*>HQjdOGBH;DQan(Uecs}?_*#4^|=py>eqjE*Rp*1@>TlenK|>%nKS47 z=gj!+|K7O^;1K?*VU<9$v?tw5z0%I5`#o7OHN*rGSL9Whwxu(f9?f1cbG|^sWi>0X zF{9?LrAspwXHN%fx&&ecX*mL$+nx;O!?k0+M^IP$1{A&5ZO-PvD-ml@zJ1 zn=_VUj+6^o(;HXX1(F#zC+!Q;v(z{e#-uk{;)W|6K%nsv%dz}NX?9!t1s$ug)xZ{{ zbO_vU-~prrbcL{_Z9UB$V*ZpxW$QCbyxXPWLGH029dkXOJ}Q-TY{ym&J80c<2gk8f zVB3(ir^~kVU9Y8^LGvuXAY0Cu&Scpu`_j?TigsmIhrp(KZ`8ujM00l=Xh5UF?lq9c zK7po^>G!y0Cr^X5wn2W>5nFM zj-zPTK)0{0(V*XT{5VdKklhR)H#v?Tb?DwD6o?KT9_A?e4D@4w2jpRt3K|u;NO4O^ zNK<9;pn=mEVxVO{FVIm3>U9f6*C7eJBF?In3qlRU^>iKZtb9h!x@BKS2BXTveMGjJT88B<$F+5I&v*EnJ z_ArQx5;YsFO@|QX*I_(i;7Pn^KKx3vzyqOC^Vz+4k&5(tqa)5EPWP03-*w`6iuu@6 z&N7`^6s2`sRFTWkzy+=cwW4*ujx3nNTX0#Ry=_^B)Cp?I5%}aHrVLoPqIBl--8n_U zj8*bYN16U$oj*-gD$BF5p#K zFFn&i9iGBpWf>SYy~)rC8m_H?J)~nsVc$>e*|L?Jj_mlr3fRLst}E<^m;uA`TFWU@ z79;qxE5MKFxB*k;?sEn{ikq~4()4>tZu&#zq$<#h$m{ql+vJ>vkFjXfk}RajJbjuI;dpH+5w@yla9; zeTg-<20*>3V zkj=|h78w>7#ep9i_z8Z>!!s@ytdbR6eX+JDRGoVnuW0!Be7y=T`o3#9v#5A(;I_KY znv1-={V`wWrpG;*BX=5k<>%cQ0l`7&k?@|cEu}}+1}lbTF}hauF}LjH%zjHf*fT;PHscqPRQIkdfoT^+AtS0bOtuNVJbFW#tNj}kOiu)m7KL_a)S#nFjm=Nujx*;B>w ziR8OuiR2u*D>%7(PX(tQQ@AQJ6O9dtjfstO7@5PF&R8m@M(X=I#wsA<;zaV&9Asxh zs-cSPM8~c<StN`&; zyo#9sFdG8mHNevf(3EPb;(7r1UV%TT2mw0-Oy#1a0haf0uSGwfZ!G1%zjrFI-Q z@hD!vNqmD3vs)NI1;e>2hf&btV2_nTBWJL;7Vmn^|yD=>~c{}&O z7h@=kr+D)^yjB(0iXjaUQY0=W@nw94Bsn6E;j4I&q&Xqd_!_=Wdf8$%_kWQTyNQ3| zoA?$fehY8n+w3*ck{{wb>}j;)IeeGBIIYOzd+asQhF*N1Jv|Y}4~Pu;yo0UcbAxiz zD*;DULNo@#WMCjuBcZE&j+S^dNi9iLA?Wa1LuzTPf*-wv_)td$Kf4`FC$NEKdv%as zn`tL-FMYig3EW57{miLtf%?r<7w7jEK|D6{Y`?^-M8C!#|Kl6e@N$f5DjcrD9P>6z q&)-t^JNyBE#GfeXBs9xbeF|a27f$$@iQ4N?dn0Q9jKAP*r2Yq+)U-?h literal 2303 zcmZuxT~`xV6x|n+Oc(}8#II;SP|+qK7*IYcv1$lfu>pk8P)ikV!Zi#eGnkp6^`Waj zpwC^t_Yc&rHgq*>wXa>SzV{dOAM~;9>bWyx2qD8F=gzr%pL6axd+wY6e)$!^1ojnl zF%0l>$=t~Baxr|})yGo!`EKmCxbBkj4GKAX_4v(u)(Wjvw0}O$ix}n>*7`mgeyoxXe z6`WugbPD3n?d08kVc5$xQ4<qHD^ z+s>C#aDn0-dUIygrnXp?iXrqV7^X^&_f*9t^z~4(4>b4@kgqWfaf~qZSi+t)YsMC( zQ=;?q$W~p#sD`UZGMuITIq{U&%66t~T4HHWRJpC2G#_8o!;WjXhU*OdC1Gbw!=|P_ z= zc?BdGXQE9R&DLz&G=lhu<~ds{&^U%W9Wz4OubWwIKt6S6_DXxnxhZ0hU$)gA_L`*g-t6>3)q+^Q1 z5N}~-%*vi=5Ic3G({G(YJfyMA8X2GmCf(0)efHNAG>H2tb%LARoc^Eg8*&4uDDBJ@T_!GISg zMOKFCi67t`{hvP!((mLSqP!O<>&2EpJ$MiA6RAtyZ*HKjWvVhru`3M>Q9T#4@dhr@ z;_^?p68{lbLR+D&F#A2s=IV$_N1%>`v~`TJIwl&Jd356D0d6fM8c08ij~pOV$Gt>o zBs3Pr*P%!q4?K9Hj!)Jc{1V|8M;lmn@HxVdhVkz)!f2DQN`x6-#MeOHp?pS^h>vpE zZ8;*oCWj7jYsMe(H?Zz-9!rj2<~c_4H%U(&u4AT8Sj1eU0Z<_A{*%z|{0Bbb{T>t<8 diff --git a/bin/algo_Calc/Sortingss$3.class b/bin/algo_Calc/Sortingss$3.class index 0c8dcd41877d39890bab3b9d9e393d7bf83e9469..e8c6a0c49499d2cb22e079878bd62e25b1a3c813 100644 GIT binary patch delta 23 ecmbQiHid0NCKIE{RyGDk28PLfOkDs*F9lox delta 27 icmbQjHiKPA&!}1_lO32G+@4OkDs~x&>l9_0}~K3FmP#UZ)M=o+RnhY5y)d=5CoEJ42%p6o2^-XF#!O)KnHFB delta 50 ycmdnUx0P>$7>lX}0}~K3FmP#UZ)M=o+RnhY5y)d=5Cn;VWf&P)H=DEkVgdlu<_CQM diff --git a/src/algo_Calc/Frame.java b/src/algo_Calc/Frame.java index 4dfc503..cb81f4f 100644 --- a/src/algo_Calc/Frame.java +++ b/src/algo_Calc/Frame.java @@ -1,10 +1,17 @@ package algo_Calc; +import java.awt.BorderLayout; import java.awt.EventQueue; +import java.awt.Font; +import java.awt.GridBagLayout; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; -import javax.swing.JFrame; +import javax.swing.BorderFactory; import javax.swing.JButton; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; public class Frame { @@ -14,14 +21,12 @@ public class Frame { * Launch the application. */ public static void main(String[] args) { - EventQueue.invokeLater(new Runnable() { - public void run() { - try { - Frame window = new Frame(); - window.frame.setVisible(true); - } catch (Exception e) { - e.printStackTrace(); - } + EventQueue.invokeLater(() -> { + try { + Frame window = new Frame(); + window.frame.setVisible(true); + } catch (Exception e) { + e.printStackTrace(); } }); } @@ -38,11 +43,21 @@ public Frame() { */ private void initialize() { Sortingss obj = new Sortingss(); - frame = new JFrame(); - frame.setBounds(100, 100, 456, 324); + frame = new JFrame("Kalkulator Algoritma Pengurutan"); + frame.setBounds(100, 100, 500, 450); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.getContentPane().setLayout(null); + // Panel untuk judul + JPanel titlePanel = new JPanel(); + JLabel titleLabel = new JLabel("KALKULATOR ALGORITMA PENGURUTAN"); + titleLabel.setFont(new Font("Arial", Font.BOLD, 18)); + titlePanel.add(titleLabel); + + // Panel untuk tombol-tombol + JPanel buttonPanel = new JPanel(new GridLayout(3, 2, 20, 20)); + buttonPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); + + // Tambahkan tombol ke panel JButton btnNewButton = new JButton("Bubble Sort"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @@ -50,8 +65,7 @@ public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }); - btnNewButton.setBounds(43, 48, 128, 25); - frame.getContentPane().add(btnNewButton); + buttonPanel.add(btnNewButton); JButton btnNewButton_1 = new JButton("Insertion Sort"); btnNewButton_1.addActionListener(new ActionListener() { @@ -60,8 +74,7 @@ public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }); - btnNewButton_1.setBounds(253, 48, 128, 25); - frame.getContentPane().add(btnNewButton_1); + buttonPanel.add(btnNewButton_1); JButton btnNewButton_2 = new JButton("Selection Sort"); btnNewButton_2.addActionListener(new ActionListener() { @@ -70,8 +83,7 @@ public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }); - btnNewButton_2.setBounds(43, 116, 128, 25); - frame.getContentPane().add(btnNewButton_2); + buttonPanel.add(btnNewButton_2); JButton btnNewButton_3 = new JButton("Merge Sort"); btnNewButton_3.addActionListener(new ActionListener() { @@ -80,8 +92,7 @@ public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }); - btnNewButton_3.setBounds(253, 116, 128, 25); - frame.getContentPane().add(btnNewButton_3); + buttonPanel.add(btnNewButton_3); JButton btnNewButton_4 = new JButton("Quick Sort"); btnNewButton_4.addActionListener(new ActionListener() { @@ -90,8 +101,7 @@ public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }); - btnNewButton_4.setBounds(43, 178, 128, 25); - frame.getContentPane().add(btnNewButton_4); + buttonPanel.add(btnNewButton_4); JButton btnNewButton_5 = new JButton("Max Heap Sort"); btnNewButton_5.addActionListener(new ActionListener() { @@ -100,7 +110,11 @@ public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }); - btnNewButton_5.setBounds(253, 178, 128, 25); - frame.getContentPane().add(btnNewButton_5); + buttonPanel.add(btnNewButton_5); + + // Mengatur layout utama + frame.getContentPane().setLayout(new BorderLayout()); + frame.getContentPane().add(titlePanel, BorderLayout.NORTH); + frame.getContentPane().add(buttonPanel, BorderLayout.CENTER); } }