From 17621df31fec97731b1c257bc68ab8a4e3a2e8f7 Mon Sep 17 00:00:00 2001 From: 202310715130 DWI FEBRYANTI <202310715130@mhs.ubharajaya.ac.id> Date: Fri, 7 Nov 2025 17:00:19 +0700 Subject: [PATCH] Upload Tugas ProgramSorting --- ProgramSorting/MainActivity.kt | 77 ++++++++++++++++++ .../Screenshot 2025-11-05 192819.png | Bin 0 -> 7011 bytes 2 files changed, 77 insertions(+) create mode 100644 ProgramSorting/MainActivity.kt create mode 100644 ProgramSorting/Screenshot 2025-11-05 192819.png diff --git a/ProgramSorting/MainActivity.kt b/ProgramSorting/MainActivity.kt new file mode 100644 index 0000000..3a80c21 --- /dev/null +++ b/ProgramSorting/MainActivity.kt @@ -0,0 +1,77 @@ +package com.example.programsorting + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.programsorting.ui.theme.ProgramsortingTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContent { + ProgramsortingTheme { + Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> + Tampilan( + data = intArrayOf(15, 20, 35, 50, 85), + modifier = Modifier.padding(innerPadding) + ) + } + } + } + } +} + +// Fungsi Bubble Sort +fun bubbleSort(numbers: IntArray): IntArray { + val arr = numbers.copyOf() + val n = arr.size + for (i in 0 until n - 1) { + for (j in 0 until n - i - 1) { + if (arr[j] > arr[j + 1]) { + val temp = arr[j] + arr[j] = arr[j + 1] + arr[j + 1] = temp + } + } + } + return arr +} + +@Composable +fun Tampilan(data: IntArray, modifier: Modifier = Modifier) { + + // Acak angka dulu biar berbeda + val shuffledData = data.copyOf() + shuffledData.shuffle() + + // Lalu sort + val sorted = bubbleSort(shuffledData) + + Column(modifier = modifier.padding(16.dp)) { + Text(text = "Data sebelum sort (acak):", fontSize = 18.sp) + Text(text = shuffledData.joinToString(", "), fontSize = 18.sp) + + Text(text = "\nData setelah sort:", fontSize = 18.sp) + Text(text = sorted.joinToString(", "), fontSize = 18.sp) + } +} + +@Preview(showBackground = true) +@Composable +fun TampilanPreview() { + ProgramsortingTheme { + Tampilan(intArrayOf(15, 20, 35, 50, 85)) + } +} diff --git a/ProgramSorting/Screenshot 2025-11-05 192819.png b/ProgramSorting/Screenshot 2025-11-05 192819.png new file mode 100644 index 0000000000000000000000000000000000000000..d7507ce4cff444ef2f0c891f99b9d1f597b95d04 GIT binary patch literal 7011 zcmeI1_g7Qfw#QM9a)gtEh~NPP6hWj2M-h>30U>nhMTiXpp+rik0n{r3N|8_^{eTqd zNUsUVp&3YMAyPtAN`OF+5(0!IZ*#}E@2C6T`vcznVULWp*Us8&tvT0se&*b9Ru)De zesO*t9v%?b*ua{H=ZFw+MgDpmxKngp@v{!1$xW;77x#-B!Pp6 z$AI>UXU0weJUqX5A6`fL;2)px@QCk%4Q|aNg9{eKecTc(c*ezF) z7k~MVcjY_W%FK_wc0}mpNg)HnLPc{!6Au&Ndrw487GAh~QvK+Pv(?QoAz9<(cdul( zI70qc1NvWesv3)~6A(iU0lC!djDTAFQ0gGKf2ip+^8^px#(2Q``w^kNMOp&qEzi3m z+zc% zXx003{X)#Zs*xH$8+N^CO89PtjE);~m|Liycy{Emxm2(qHCE0Py*x?Ro#}S2d6s<9 zGJ>ERZ~9I_W)U%YFsXo)~#K~qSbwh%Z6v(V~^LtzNJ~Q3Tf4{%* zLlr*T-b$bH5@9jIz@vEAw$tA?V4JC)Wln8XT8L14RQ0JvH0xAFTin_M z9$8tt_kjp(o31nW3be|S!YShzOD2e`*$YX*JO5Eg!c~7Xsz#3&ASBYtttQ2|oET{l zVBjBx3U7XfG(>hEhvM_Nrdc2fjg`1`OB0lyON|vm;%*tDZ6~aO%L8oZ%J_m4Vtvw7 zGIv>gTkf8H-^f-E+U^q!l#ul^5ipa_WGyk{?avU#yQTu?1|QWu_Q5EZv_|Cc5<6TR zpqk}*TeSp-OP}Y6+9?-lFZ>r8o^70hRy|#74XY)OiHoRP2uW32TU%$h1YR&QD&;&D z_#C|dtG;q`eeSCA+^KuDw#@`CD)n9F8m{L12V_UM;BS9~ZxnGb$rt2z zQKzgU=K3rdk_T%wYG)$hn$-PST|VCQI%g91s?UlUgpeDNy?}QO+dq6#-ZGp2>(hZB zX_z2O#D<();r`0F&uZ4y1zu>??H*?gh=$dli#%mn{EISQ8^>@k4DzA35(z$0ikZwq zE|xoYvCn9_29bQG3X{_#Ft?K?qRa$DRYqO9V@y!?70#Ezu#wgT=X&1{V4Gr3_Um|I zYTiN`}S!+E;~~XQCn=8Q^71T|2<6mL|hy{2!u!Vr^* z-W+dqbad&GI>{Insr~GxV7LydP+0y4?*xJylSXXiXz7d@N)vKFynA=D0X8xtR&8Bc z@Q75>aV7=N1@%n^=pm{I`viH|Y(;6^D)(*$m&MbC#Q3L$FJ&LoPW&RGv_xZwt>ad? zYZ}!3z0D~2lD9t9ro;kVLfN$toKBR~M(iy^(WrVDQJmT;tGoS;x6BdK{^ktUj`w(n z)Soe?d73f;qL=M~o&7b*fu`X-o+*OMZV8r;w<&_D14p}TK=|^}#MaMR9%ro6;*CPu`5EB~R`nkDpa+;*cLpJfV}q(kZrmn@%-@6J zC7S|+XCkxeENU!O@rE^X?+P_yKz_Y6b?-t%xx+8sG*MB};@ESl=DFTPYc(jl&k4Um zZQrd6#pAO1aA~9;gwf9~1qObuk$Vexy=b&TrO$LDpSKd&M!w?%0r12fN$tY1jV~$k zNovwv66I)Fi}3@ElixRw!PLj^KPtEOJKc$l)Fo4jV?P^66}{)L6c+6?HS^_ z6MsJF81$ZOwToa0+QP~#*(^*!6xlCEtqH~uPe>FmDIkdwmxSO?_siFB`aXQqzoI^} zviAeWFCZ|+AVEr!o|*+O0s?27Z=#+cp*AI^gs=ot!=3`#c{!6?`sVar$;$QE-$HI$ zAcJcY&*~O9t6%+$BCbVX9;F?}=sA|BtBy4KOcU!vanC7fu|Gr9J%5Bi_a+`SeSFaM z5?||L-zR)1>CKl8jniK|bb7MpMdo$i`6k3)kjTjj`Mfaa5hb*ey1LzhqU{7U09x)b z;#D8neV2jUaId`I=*Zexb71%Po>>UidA@qJBfF)+@k&pxff8(dny%nO!Q650?zUUW zMd9U?!gp3jgp)MxCChkX!CKxwy)uE52IY_-QFcQs#JY%Z>A~#MBM~fP)SJA>*WdM` zUUPliMNYc==`2H31XOLDQP;NE%NI-#4Fu3fWDkkBno;-u`j z6sdM>mKC>a-$Dg;gGfrs%4S$BF!0n}b zB5ezz(5i7=xdu;RtYYE}?sT$p^s7s9a)xTf=Jyufh%6{T20HE*k7D!AgF!TC_RjiZ z7Th}jcJ#II3A44?IwK-%VrP2Aj96xWk8`j$hT+?Mc5H~j>M7aXO;NNijGg^M%aM1# zqpUYcKmT!GBA<8E>vMf60BQ^m*Tr0T?~c=Vz##VmeMSoC3SjG8ozT?x?>8F4&o#9? z5Gr*kX*~S@`Sa()Djr5G;Lw(BLF+-)L9f5Q_W*2K4osY3M)JjnjDKvhYqK|Z4VrWp zmsWQ+N|F@#ieHOHhtazDq@MX!M?MjzN|fzwLGlf^sEU9Mn$j*+1^GC8?Ydl;(GWWK zb>r0{$j-!Mu|!NKYi&CCqb2r8ran`cnR)^6w9wj()#J^MDvk!C%FbtN?k`DmtpLsM ze2*oE?=0cIIzn4;YLdK|Q|p+HI;V!PgsCRn4J@@gH>Q4mJ1+LR_rYDh-_HgvR<-PB zDl^S9W}@~t?nki^Z;}YRCJ{lFodE~Ce(IqG(U|*LL05|ckMW-#=CH*eT(0|;DA}#R zpi}FnuYZ?JEpSFbQEF=tCZNsBR`;{%&FmoXX!8kSS1(fsNJK+x5N)`Sw!|A=QJo`k_vP)n^$C|%#J<@^_ zZNcI@i!LkU=hw1}GS;$cZ{%*XZ}@M2lr5d!(k0gWO|c}pb}j?{VF%MGsGc~Mi@t+$ zTOry=YM0~)t7~dH86`;(%{9nNZlHd3V8dPuhPnd4sq}fyE?SYO&P;K_&!l>aNgpd| zlTkKXkC!gz`;z7WgpF4z^6E(A-V?qU=cc;^#!?XwM-JzIARq-mWCWAVjBHAM3h08Q zKBr_$3Rf66hv*S;Fh+3@eQPV@`5kH`Ag;Cohh3o`v#i`#x3X0fR?m41kYSqYHCu99 zQO?1Qub2+aM}@MQeJfl&D@K{!eCX0GfC@M5%gRFQ^n-jr^D4y@VNGdZ#Gyc`9QY|RCDD}lQh{UUcD2{E{4KwScn3pmz?h8FcV5HoN9n+MXm2JUhrn?e-6AJ zm3t%qd^hEpAmn7!LWJw3w`djO6ygf~;kN=cqrV}OKd%DxLIluV7F?>ACxvW&xn<_Q zP*#t1ZhA2Ch*&j!6P3O6i;IRD5k?G}$kIV%s&TrL^fl)I$B;SJqI$?pqfWuDgJTNld!tA2rzkC83?_^ccEhEk?z(J&5#mWGehy=l6_R2U1lB z62R?&z_te@Y$6-)fVn;Nyyfo{1x(>9TS_5#ouw6s#Aj?_cPYK|U^S$qb`bLrvvcXg zL(JZ+$Js5c3yQmqzO&1RZy(BQnvb7bCq>1oDz3Of_xiu<6Pi_3?yL058Rf+pTYGr8 z6%`g5qZT7|Oncr^$`ro0~?P8d|%m7?Sr1KBO~Avv(uL>19T&g2Ho#QM>rf^c;}5xvF;`d**4Q|e(1n51^3 z&I3JmQYacENWw(0co#=q?V4+*bjkO^cj$Io@=~OJAy3tE%p10|Yu@sF1rxT8-tLWU z%31Kwjmf5E4CLu!!+&kQmGi$wW$u52AHj2^OK7ZjFkws;eDM&nu&-S`@?ixTpWy8&;m$$;L`AUW?*AIvNp%J zeS>@LV-#cv$<;+fRK>`a0)Vm)2r{%|LzqJRfPk@lP8`7hGhgquGaC@KW;9&`PN2Qc%`$vEn zj7y|bgUNfUc9l*pkLAs5_r4J8JvL4$q_CV@Jzf9_Q8_8*x3O~e@qU-mGK%h#OICk9 z2ROh!$xXG?m6b?e_Kwp=IwqTED!^t!bY~0F_IE;^Q1!cYmP8<128nTA=hDAAX$R45 z*{w;f8o@IXQdOQ~P>F5+C|&#eo^A>wXwFYe@wMVyX2VD)rk&W6z9L?!mP zG9}0*?)kzXl0}Yc@M8KBE8N!NAv~-F^w3nhdpT_4WAX6t@bi|zY%PSzTTxZJxKllL zoAkD$i!-dCZji>MD2~$6Lss6ECbZDAWDTobO9~5R?Mm+}04vg;oYeUC=!&jzoPMZv zPOHvga-+&zrsdk#rB|ve!YTqZvw&M~(aLsRM~`hk>rp&Hsj9T8&hL$vsQw&XZQH`1 z*5Je1dG13#Om{`fY)NSjqNDMG&@$u#?8p{9V!90u??gTYSY4YGF}D1ey@wvsdiL`# zfT#D6VwZy{mO(q9W=AuEfnKhzk>CM~q6I|b;~=Smf0FnPom`^F-uK$n?!uZ;;oZIP z?frKT_n%C}pb7ytxl{{Qi)ipo2;9Gg=D4@riTSJ)5tiszsWBlI@r&sXmObhvy?uigo586>fE5li7= zFt-+mT4{Lg27d-D0zYi?>eQji_7?Rs9n5oOO@geV* z?}Pr3wcP6@v7uw10vyc$(7uZby!w4Uv_t+K3iTr!xzxQZCa(&pjVjn#ShBLm6rHo- zFQe9#NJZ|fm3@w8Y}@#V`0c+ka5q7ZMljRU@Bx(PZ3J0%NwGV*&9dqwv?`4bau^M zF3hhMv~EyLQ-3tS1ep7!Bw=sW1(4<5#JrC{8ID10Rd;R=%-C54hg0T|hs(pWg`Va5 zw(LD!o5~5A`n%$q_l&LNRMQxC9ZL~Ya^4mPNC(;(MwMwd^8~iWffdCX(go@fR|R3tBO6?e7-Olpl=66epKQ3xNT8!@$o_0c2)`i zL)y53fq}zun*$muZ!b z4bG~VgD+xpkNYgGfc!K^yC|pg202gO;-h~-{7z19=U$ z|7uoT@7hv{0afOoOy^pIR_j`w#zM-|OLF{_> ze(5ZV{$Fat|AMxEUpf9y?|-)LfBLHMAK&